建立一个Java图书管理系统:
分为三大要点:
1.用户:管理员和普通用户。
2.书:书这个类的定义:规定成员变量如:书名,作者价格等。以及存放书的”书架“
3.对书的各类操作(书架上)
t1:构建三个包,书、用户以及对书架的操作方法(ioperation)
t2:对书类的定义:书名,作者,价格,类型,以及借阅状态。
构造书的构造方法:由于布尔变量isborrowed默认为false,构造方法可以不写(默认都是未借出)
由于是private为私有成员类,默认为封装,需要构造getter和setter方法:
t3:构建"书架”:
如何将这些书放到书架上?构建数组:
构建一个可以容纳10个书的"书架",以及”书架“上现有的书数量
booklist构造方法:将三本书写进。
t4:构建用户:在User中创建user、normalUser、AdmiUser三个类
你并不能直接确定user是普通用户还是管理员,所以user这个类是抽象类。
User构造方法:帮忙初始化父类的成员。
t5:构建普通成员类和管理员类:
这里创建的构造方法都调用了父类User,帮助父类初始化。
t6:实现以下管理员界面和普通用户界面:
、
在普通用户与管理员里创建”菜单“成员方法:
t7:实现登录界面:
创建一个独立的Main方法(class),用于实现登陆页面。
面对不同选择有不同结果,返回值为User。
在main方法里(不是Main ) 通过向下转型实现登陆界面。
由于不同menu不同结果,所以menu为抽象类,记得在User类中设置为抽象类。(在普通用户与管理员中menu实现了多态)
T8:实现具体的操作:
在ioperations包里创建这些方法。同时,这些方法都要有一个共同的”工作“接口,用于显示各项的具体操作实现。(包含上BookList方法,里面有具体用到的操作。)
(
1.Addoperation(增加书籍)方法的构建:
1:判断书架是否已经满:
创建一个currentSize类型:通过Booklist里的getused方法将usedsize赋给currentsize。
如果书架上现有的书数量和书架最大容量相等,则不能放置书了。返回
2:构建你想要添加的图书:创建name,author等新的量。
for循环,每次循环书架上的书,并构建一个新的book变量,用于保存你在书架上的书,
每次循环与你新创建的书进行比较即可(用到equal方法),如果有相同,说明不能插入(同一本书),返回。否则,可以插入
,通过setbook方法将书插入末尾。具体代码如下:
2.BorrowedOpperation方法的实现:
同理,创建一个currentSize方法,调用getusedsize得到现有书籍数量,for循环书架上的每一本书籍,其名字与你借的书比较,若相同且isBorrowed方法为true(已被借出),否则将setborrowed设为true,借阅成功。具体代码如下:
3.deloperation方法:
创建一个整形pos变量,设置一个随机值(ex1:0)
跟上述同理,fori循环书架上的每一本书与你要删除的书名字比较,若相等,将i的值赋给pos,break退出。
如果循环一遍后没有找到即pos=currentSize,没找到。
然后开始删除的具体操作:
从pos处开始作为for j循环的起点,通过getbook方法将pos+1处的书籍赋给新创建的变量book,再将book放在pos的位置上。
具体代码如下:
4.exitOperation方法的实现:
6.find方法的实现:
部分步骤和上述类似:
代码实现如下:
7.归还operation方法的实现:和borrowed方法类似,注意:找到还的那本书后isborrowed方法要从true改为false(已经借出到未借出)
8.show方法的实现:
for循环打印即可:
代码如下:
T9:将ioperation方法放在用户中 :在普通用户和管理员的构造方法中创建ioperation数组,将这些方法放入(记得将ioperation包搞进来)
在父类User中创建构造方法,用于用户操作:
最后,在main方法中循环使用即可。
喜欢的老铁来个三连吧!!!