Java实现 图书管理系统
- 一、菜单
- 二、基本框架
- 1.book包
- 1.1 book类
- 1.2 bookList类
- 2.use包
- 2.1 User类
- 2.2 AdminUser类
- 2.3 NormalUser类
- 2.4 用户菜单
- 3.operation包
- 3.1 IOperation接口
- 3.2 AddIOperation类
- 3.3 剩余类如下
- 4.Main类
- 4.1 login方法
- 4.2 main函数
- 三、具体运行
- 3.1 ExitIOperation类
- 3.2 ShowIOperation类
- 3.3 AddIOperation类
- 3.4 BorrowedIOperation类
- 3.5 ReturnIoperation类
- 3.6 DelIoperation类
一、菜单
该图书管理系统的菜单界面主要有以下两种:
管理员菜单:
查找图书
新增图书
删除图书
显示图书
退出系统
用户菜单:
查找图书
借阅图书
归还图书
退出系统
二、基本框架
1.book包
因为是图书管理系统,所以可以先从书(book)这个包开始。
book包中有book类和bookList类
1.1 book类
在book类中存放中图书的各种属性,书名、作者、价格、种类、借出状态。
private String name;
private String autor;
private int price;
private String type;
private boolean isBorrowed;
再生成对应的构造方法:(Alt + insert) + Construct+(Crtl+鼠标)
鼠标右键 + Generate + Construct+(Crtl+鼠标)
生成以下代码:
public Book(String name, String author, int price, String type) {
this.name = name;
this.autor = author;
this.price = price;
this.type = type;
}
再生成对应属性的get和set方法:(Alt + insert)+ Getter and Setter +(Crtl+鼠标)
生成以下代码:
public String getName() {
return name;
}
public void setName(String name) {
this.name = name;
}
public String getAuthor() {
return autor;
}
public void setAuthor(String autor) {
this.autor = autor;
}
public int getPrice() {
return price;
}
public void setPrice(int price) {
this.price = price;
}
public String getType() {
return type;
}
public void setType(String type) {
this.type = type;
}
public boolean isBorrowed() {
return isBorrowed;
}
public void setBorrowed(boolean borrowed) {
isBorrowed = borrowed;
}
最后再重写toString方法:(Alt + insert)+ toString() +(Crtl+鼠标)
其中isBorrowed可以改写为下面三位运算符的形似:
1.2 bookList类
bookList类更像是一个书架,书是放在里面的。先创建Book数组,同时可以用useSized来记录图书数量。同时也可以放三本书在书架里面,方便后面运行功能。
private Book[] books = new Book[10];
private int useSized = 0;//计数器 来记录 当前实际放的书的书目!
public BookList(){
//构造方法 来初始化成员
this.books[0] = new Book("三国演义","罗贯中",15,"小说");
this.books[1] = new Book("西游记","吴承恩",14,"小说");
this.books[2] = new Book("红楼梦","曹雪芹",15,"小说");
this.useSized = 3;
}
再生成useSized的get和set方法:(Alt + insert) + Getter and Setter +(Crtl+鼠标)
public int getUseSized() {
return useSized;
}
public void setUseSized(int useSized) {
this.useSized = useSized;
}
2.use包
写完部分book包的内容,我们可以开始写use包、用户方面的内容。从一开始的菜单可以得知,用户分为管理员和普通用户。而这两者之间有一些相同的属性:都有菜单,都有用户姓名。所以可以写一个User来被它们继承。
ues包中有User类、AdminUser类和NormalUser类
2.1 User类
2.2 AdminUser类
2.3 NormalUser类
2.4 用户菜单
3.operation包
在写完book包和use包的部分内容后,我们可以开始来写不同用户所对应的功能
operation包中有AddIOperation类、BorrowedIOperation类、DelIOperation类、ExitIOperation类、FindIOperation类、IOperation接口、ReturnIOperation类、ShowIOperation类。
3.1 IOperation接口
在创建class文件时,选择Interface,创建接口
并在其中创建work方法
public interface IOperation {
void work(BookList bookList);
}
3.2 AddIOperation类
AddIOperation类去使用IOperation接口(implements)。
其中需要重写work方法:(Alt + insert)+ Overr Methodes + 鼠标
然后对其中的内容进行重写:
public class AddIOperation implements IOperation{
@Override
public void work(BookList bookList) {
System.out.println("新增图书");
}
}
3.3 剩余类如下
步骤同上:接口 + 重写方法。
BorrowedIOperation类
public class BorrowedeIOperation implements IOperation{
@Override
public void work(BookList bookList) {
System.out.println("借阅图书...");
}
}
DelIOperation类
public class DelIOperation implements IOperation{
@Override
public void work(BookList bookList) {
System.out.println("删除图书");
}
ExitIOperation类
public class ExitIOperation implements IOperation{
@Override
public void work(BookList bookList) {
System.out.println("退出系统");
}
FindIOperation类
public class FindIOperation implements IOperation{
@Override
public void work(BookList bookList) {
System.out.println("查阅图书");
}
ReturnIOperation类
public class ReturnIOperation implements IOperation{
@Override
public void work(BookList bookList) {
System.out.println("归还图书");
}
ShowIOperation类
public class ReturnIOperation implements IOperation{
@Override
public void work(BookList bookList) {
System.out.println("归还图书");
}