第一次迭代:图书管理系统
第一次迭代冲刺的目标是构建一个最小可用系统,涵盖以下高优先级功能:
用户功能:
o用户注册和登录。
o书籍浏览和搜索。
o图书管理员(添加、查看、更新、删除、退出)。
管理员功能:
o添加、查看、更新、删除书籍。
数据库设计
主要以用户,管理员,书籍为主的数据表



1.book包:
建立一个图书馆首先是要定义一本书有什么性质,于是便有了book这个类:


因为变量是用private修饰的,所以要重写 构造方法。
有了书还要有书架,所以要建立一个booklist类:

数组来储存每一本书,并初始化了四本小说(四大名著),并将数组现有数量初始化为4。
把main主界面放在最后讲,因为现在没有用户信息,没办法构造主界面,所以这里先开始讲user包的思路。
2.user包:
先定义使用者,重写构造方法,并定义一个menu菜单方法,因为菜单方法后续要在子类中重写,所以用abstract修饰,并把user也修饰为抽象类,第三行的public IOperation[] iOperations;这是用来储存后续菜单中的各个选项,doOperation是用来接收用户选择,并调用各个选项。

接着是他的子类,普通学生类和管理员老师类:


他们两个可以说是一模一样,只是因为管理员的特权多,所以menu方法多写了两个
是用继承父类的数组来按菜单顺序储存operation。
3.operation包:
先写一个接口方便后续代码的编写和应用,work方法是写各个选项的运行逻辑:

然后是各个operation,先是AddOperation:

先输入要添加书籍的name,再用循环历遍图书架数组,如果重复便返回菜单,反之输入该书籍的作者,价格,类型,并添加入图书架数组中,让现有书籍数加一。
然后是BorrowedOperation:

先输入要借阅的书籍name,历遍数组如果有且借阅变量为false则将其借阅变量改为true,输出“成功借阅《name》”并返回菜单,如果借阅变量为true则输出“该书籍已被借出”,a用来判断该书籍是否存在。
然后是DelOperation:

输入要删除书籍的name,历遍数组,如果找到了,便让后续书籍位置向前加一,现有书籍数减一,如果没找到便输出“未找到该书籍”。
接着是ExitOperation:

这个用exit便可结束运行。
然后是FindOperation:

输入要查找的书籍name,如果有则用toString输出该书籍信息,如果没有则输出“该书籍不存在,请返回菜单重新选择”并返回菜单。
接着是ReturnOperation:

与借阅书籍一样,只是将true和false调换一下。
最后是ShowOperation:

这个只用历遍数组并全部输出就可以了。
4.main主界面:

首先定义一个登陆界面,判断是哪个身份,并返回该身份。

接着在main中用死循环重复菜单和选择选项并调用操作。
小结
这次迭代,算是迈出第一步,把图书管理系统的基本框架搭起来了 。但还有很多要优化的地方,特别感谢老师之前给我提的架构、规范这些建议,我后续整改时会重点关注 。也希望大家多给我提意见,一起把这个系统做得更好 !

浙公网安备 33010602011771号