本次项目因为没有接触过数据库的知识,还在学习当中,所以用到的都是I/O流的知识。
相关的思想:
1.需要掌握java的基本语法。
2.有一定的控制流程。
3.运用面向对象的思想。
4.封装好方法,方便调用。
5.运用集合来存初对象
6.运用I/O流存储数据,写入文件保存和读取。
-----------------------------------------------------------------
项目说明:
- 长期以来,人们使用传统的人工方式管理图书馆的日常业务,其操作流程比较烦琐。在借书时,读者首先将要借的书和借阅证交给工作人员,然后工作人员将每本书的信息卡片和读者的借阅证放在一个小格栏里,最后在借阅证和每本书贴的借阅条上填写借阅信息。在还书时,读者首先将要还的书交给工作人员,工作人员根据图书信息找到相应的书卡和借阅证,并填好相应的还书信息。太过于繁琐了!所以,我们需求设计一个图书管理系统来方便学生的借书和图书馆管理书籍。
- 本系统功能分为读者信息管理模块、图书信息管理模块、图书借阅管理模块、基础信息维护模块和用户管理模块。
- 读者信息管理:能够对读者的基本信息进行管理,包括新增读者,如学校新来一名教师,想要借书,就必须先添加读者信息;读者信息的修改,如学生转到别的专业,此时要修改学生的基本信息;删除读者的信息,比如某个学生中途退学了,可以将其信息删除。查询读者的信息,比如有同学拾到了一张借阅卡,卡上有学生的编号,通过此号来查询学生的联系电话,从而可以找到学生。
- 图书信息管理:能够对图书的基本信息进行管理,包括新增图书,学校每年会购进新书,此时需要将新书的信息录入系统中;图书信息的修改,如学生借书后将图书丢失,此时需要修改图书的总数量,使总数减1;删除图书,学校在购进新书的同时,每年会对过期的图书进行清理,不再提供借阅,此时就需要将这些图书的信息从系统中删除。查询图书的信息,比如要查看有哪些是Java相关的书籍或者指定ISBN号的图书等。
- 图书借阅信息管理:能够对图书的借阅信息进行记录,包括读者信息、图书信息、借阅时间等信息。
- 图书归还信息管理:能够对图书的借阅信息进行记录,包括读者信息、图书信息、归还时间、是否超期、罚金等信息。
- 系统用户信息管理:能够对系统用户的信息进行管理,包括增加新的系统操作用户,对当前系统用户的密码进行修改,以及删除某一用户。
----------------------------------------------------------------------------------
系统实现了两个部分,一个是管理员登陆,一个是普通用户登陆(需要经过管理员同意注册成为读者,使用读者的账号)。
实现的代码:
Administrator类:
public class Administrator implements Serializable {
private static final long serialVersionUID = 1500;
File file1 = new File("F:\\untitled\\src\\firstproject\\reader.txt");
public static void main(String[] args) throws IOException, ClassNotFoundException, ParseException {
//用来存放用户(管理员)信息
File file = new File("F:\\untitled\\src\\firstproject\\users.txt");
file.createNewFile();
ArrayList<Users> userslist = new ArrayList<Users>();
// userslist.add(new Users("lhs", "123"));
// FileUtils.usein(userslist, file);
//存放读者信息
file.createNewFile();
ArrayList<String> readerslist = new ArrayList<String>();
//
// FileUtils.readerout(new Reader(0, "勒布朗", "男", 36, "体育系", 12345, new Date(2021-1900, 05-1, 04)),file1);
//存放书籍信息
File file2 = new File("F:\\untitled\\src\\firstproject\\book.txt");
file.createNewFile();
File file3 = new File("F:\\untitled\\src\\firstproject\\borrow.txt");
file.createNewFile();
List<Book> booklist = new ArrayList<Book>();
// booklist.add(new Book(123, "《西游记》", "吴承恩", "我也不知道出版社", new Date(2017, 12, 30), 5, 30, new BookType(1, "神话类")));
// FileUtils.bookin(booklist, file2);
//借阅库
List<Borrow> borrowlist = new ArrayList();
// borrowlist.add(new Borrow(1,"教师",5,new Date(2021,5,4)));
// FileUtils.borrowout2(borrowlist);
Scanner scanner = new Scanner(System.in);
//
ArrayList<Users> userslist2 = new ArrayList<Users>();
userslist2 = FileUtils.usersOut(file);
List<Reader> readerLists = new ArrayList<>();
//开始界面
while (true) {
System.out.println("选择登陆方式 1.管理员登陆 2.普通用户登陆");
switch (scanner.nextInt()) {
case 1:
for (int ls = 0; ; ) {
System.out.println(".管理员登陆");
System.out.println("请输入用户姓名");
String a = scanner.next();
System.out.println("请输入密码");
String b = scanner.next();
Users ss = new Users(a, b);
if (userslist2.contains(ss)) {
for (int ll = 0; ; ) {
System.out.println("请选择要进行的操作1.增加用户 2.删除用户 3.修改密码 4.查看用户列表 5.读者管理 6.书籍管理");
switch (scanner.nextInt()) {
case 1:
System.out.println("输入用户姓名");
String c = scanner.next();
System.out.println("输入密码");
String d = scanner.next();
System.out.println("注册成功");
userslist2.add(new Users(c, d));
FileUtils.usein(userslist2, file);
break;
case 2:
for (Users u : userslist2) {
System.out.println(u);
System.out.println("--------------------------------");
}
System.out.println("请选择你要删除的对象");
int e = scanner.nextInt();
userslist2.remove(e - 1);
//用方法覆盖全部
FileUtils.usein(userslist2, file);
break;
case 3:
userslist2 = FileUtils.usersOut(file);
for (Users u : userslist2) {
System.out.println(u);
System.out.println("----------------------------");
}
System.out.println("请按顺序选择你要更改的用户信息,并依次输入信息");
int f = scanner.nextInt();
System.out.println("输入用户名");
String g = scanner.next();
System.out.println("输入密码");
String h = scanner.next();
userslist2.set(f - 1, new Users(g, h));
FileUtils.usein(userslist2, file);
userslist2 = FileUtils.usersOut(file);
break;
case 4:
userslist2 = FileUtils.usersOut(file);
for (Users u : userslist2) {
System.out.println(u);
System.out.println("------------------------------");
}
break;
case 5:
System.out.println("1.添加读者信息 2.读者信息删除 3.读者信息修改 4.查看读者信息 5.退出");
switch (scanner.nextInt()) {
case 1:
boolean flag1 = false;
int cc = 0;
System.out.println("输入读者id:");
int a1 = scanner.nextInt();
readerLists = FileUtils.readerin();
for (int i = 0; i < readerLists.size(); i++) {
if (a1 == readerLists.get(i).getReaderid()) {
flag1 = true;
System.out.println("读者已存在");
break;
}
}
if (!flag1) {
System.out.println("输入读者姓名:");
String a2 = scanner.next();
System.out.println("输入读者性别:");
String a3 = scanner.next();
System.out.println("输入读者年龄");
int a4 = scanner.nextInt();
System.out.println("输入读者所在院系:");
String a5 = scanner.next();
System.out.println("输入读者电话:");
int a6 = scanner.nextInt();
System.out.println("输入注册日期");
Date a7 = null;
System.out.println("年");
int a8 = scanner.nextInt();
System.out.println("月");
int a9 = scanner.nextInt();
System.out.println("日 ");
int a10 = scanner.nextInt();
a7 = new Date(a8 - 1900, a9 - 1, a10);
readerLists.add(new Reader(a1, a2, a3, a4, a5, a6, a7));
IOUtils.writeObjectInfo("F:\\untitled\\src\\firstproject\\reader.txt", readerLists);
// FileUtils.readerout(new Reader());
}
// else {
// System.out.println("读者已存在");
// }
break;
case 2:
readerLists = FileUtils.readerin();
for (int i = 0; i < readerLists.size(); i++) {
System.out.println(readerLists.get(i).getName());
}
System.out.println("请输入你要删除的读者的名字");
String rName = scanner.next();
//读取文件里读者的信息
boolean flag = false;
//循环判断是否有输入的读者
// 使用for循环遍历集合时,不可以修改集合的长度
//