利用 Vector数据结构、对象序列化、输入输出流设计并编写一个命令行图书管理系统Java应用程序,具备以下功能:1)打印系统列表(书号,作者姓名,标题,出版社,定价);2)增加一本新书;3)查找一本书;4)删除一本书;5)离开系统;6)保存系统数据到文件中;7)从文件中加载旧数据。
首先我说一下Vector,Vector本身已经很少使用了,它虽然是线程安全的,但是性能不如ArrayList,其操作方式也与ArrayList基本类似,另外说一下栈Stack继承了Vector,你也可以考虑一下使用栈。
1、打印就不说了,对象序列化后遍历向量打印输出,遍历可以使用jdk1.8的lambda表达式所支持的forEach()方法:
2、新增:Vector的public boolean add(E e)方法。
3、查找:可以使用Vector的public boolean contains(Object o) 方法确定有没有这本书。如果是只知道书名或者作者这些来查找的话,则需要遍历这个向量挨个元素进行书名比较,有则返回这本书。
4、删除:Vector的public boolean remove(Object o)方法。
5、退出:System.exit(-1);考虑用这个?
6和7:就是文件的读写可以使用xml或者json都行,json的话用阿里巴巴的fastjson能很好的序列化与反序列化,网上也有很多资料,我个人习惯使用:
读文件:FileInputStream + InputStreamReader + BufferedReader
写文件:FileOutputStream + OutputStreamWriter + BufferedWriter
记得完事了关闭流
首先我想这边肯定要用到io流
以及可以的话,把某些数据放进数据库或者保存在本地
大体思路
你需要有一个完整的程序,在程序的mian方法中开启键盘输入对象,并尽可能让界面美观些,比如
-------------------------图书管理系统-----------------------
1.书籍列表 2.新增数据 3.查询书籍 4.删除书籍 5.退出系统
---------------------------------------------------------------
2.这几个最好是一各switch结构组成,并设置合理的输入错误字母判断
3.这些似乎是围绕集合来的,所以你需要一个集合
4.查看书籍是把一个集合中的所有数据循环出来,并提供返回上一级按键
5.新增书籍要求依次输入书号,作者姓名,标题,出版社,定价,最终数据类型正确则把这个元素添加到集合中
6.查询书籍,你可以试着输入一个书号,然后遍历集合元素中的书号属性,如果是包含或者精准匹配则打印出书籍信息,否则提示没有书籍,按键返回输入书号界面或者主菜单
7.删除书籍,输入书号,遍历集合,存在则删除,没有则重复按键返回输入书号界面或者主菜单
8.退出系统,使用最终感谢界面------欢迎再次使用图书管理系统---------
并break程序。
9.保存系统数据到文件中则调用io流把集合中所有元素信息打印在xml文件中会比价好,具体才做可以百度
10.从文件中加载旧数据。则是io流的输入流,把xml中的数据放在集合中
这里的集合你可以换成字典等合适的数据
有帮助别忘记采纳亲