大家先看看图片吧,虽然很简陋,但是我们这次主要是体现面向对象编程的思想
这个是管理员登录
这个是普通用户登录
现在这是存储的文件信息
现在给大家我的分析:
我们要做一个图书管理系统(带文件)
分析:
A:有哪些类?
1.Book、BookLinkedList 这是书和链表实现的图书系统
2.AddOperation、BorrowOperation、DelOperation
DisplayOperation、ExitOperation、FindOperation
IOperation、ReturnOperation 这些就是图书系统的功能
3.AdminUser、NormalUser、User 这就是两种用户1.管理员 2.普通用户
4.Demo
B:每个类啥东西呢?见名知意
C:每个类之间的关系?
IOperation是个接口(后面待Operation的都实现这个接口),
User是个抽象类,NormalUser、User继承User类
Demo类是测试类,里面有主方法,还有读文件和存文件,还有登录方法
现在为大家献上我的代码
book包:
package book;
public class Book {
private String name;
private String author;
private int price;
private String type;
private boolean isBorrow;
private Book next;
public Book(String name, String author, int price, String type) {
this.name = name;
this.author = author;
this.price = price;
this.type = type;
}
public String getName() {
return name;
}
public void setName(String name) {
this.name = name;
}
public String getAuthor() {
return author;
}
public void setAuthor(String author) {
this.author = author;
}
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 isBorrow() {
return isBorrow;
}
public void setBorrow(boolean borrow) {
isBorrow = borrow;
}
public Book getNext() {
return next;
}
public void setNext(Book next) {
this.next = next;
}
@Override
public String toString() {
return "Book{" +
"书名='" + name + '\'' +
", 作者='" + author + '\'' +
", 价钱=" + price +
", 类型='" + type + '\'' +
", 是否被借出=" + isBorrow +
'}';
}
}
package book;
public class BookLinkedList {
private Book head; //链表第一个有效元素
private Book tail; //链表最后一个有效元素
public BookLinkedList(){
//一开始就读取文件里面存储的图书吧
}
//判断图书管理系统里面是否没有书
public Boolean isEmpty(){
return head==null;
}
public Book getHead(){
return head;
}
public void setHead(Book head){
this.head=head;
}
public Book getTail() {
return tail;
}
public void setTail(Book tail) {
this.tail = tail;
}
}
operation包下
package operation;
import book.Book;
import book.BookLinkedList;
import java.util.Scanner;
public class AddOperation implements IOperation {
@Override
public void work(BookLinkedList bookLinkedList) {
Scanner sc = new Scanner(System.in);
//System.out.println("添加图书");
System.out.println("请输入书名:");
String name = sc.next();
System.out.println("请输入作者:");
String author = sc.next();
System.out.println("请输入价钱:");
int price = sc.nextInt</