Java图书管理系统

建立了一个“图书管理系统”包 

包下有total、book_information、reader_information、book_lending 四个类

分别实现总控制表、图书信息表,读者信息表,图书借阅表三个表的功能

目录

1.总类

2.图书信息表

1.添加(书号、书名、作者、出版社、出版日期、存馆数量、定价)

2.查询(可根据书名、作者名、出版社分别查询)

3.排序(根据书号、书名排序)

4.修改(根据书号、书名进行修改图书信息操作)和删除(据书号、书名进行删除图书信息操作)

5.退出图书信息表

3.读者信息表

1.读者信息添加(学号、姓名、学院、专业班级)

2.读者信息查询(可根据学号、姓名、专业班级进行查询)

3.读者信息排序(可根据学号、学院进行排序)

4.读者信息修改和删除(均根据学号+姓名的方式进行操作)

5.退出读者信息表

4.图书借阅表

1.图书借阅登记(借阅者学号、借阅者姓名、图书书号、图书书名、借阅日期、应还日期、实际归还日期)

2.图书归还登记(输入借阅者学号以及图书书号即可归还)

3.图书借阅查询(可根据借阅者学号、图书书号、借阅者学院进行查询)

4.退出图书借阅表


1.总类

在总类中可选择进入图书信息表、读者信息表、图书借阅表,可退出图书管理系统。

package 图书管理系统;

import java.io.IOException;
import java.util.Scanner;

public class total {
    public static void main(String[]args) throws IOException {
        System.out.println("亲爱的图书管理员,欢迎来到图书管理系统!");
        System.out.println("图书管理系统有如下表:");
        System.out.println("1.图书信息表");
        System.out.println("2.读者信息表");
        System.out.println("3.图书借阅表");
        System.out.println("4.退出图书管理系统");
        System.out.println("**********************");

        Scanner scanner=new Scanner(System.in);

        while(true){
            System.out.println("请输入你要进行操作的表的序号:");
            int a=scanner.nextInt();
            switch(a){
                case 1:
                    book_information.main(args);
                    break;
                case 2:
                    reader_information.main(args);

                    break;
                case 3:
                    book_lending.main(args);
                    break;
                case 4:
                    System.out.println("退出成功!欢迎下次使用!");
                    return;

            }
        }

    }


}

2.图书信息表

1.添加(书号、书名、作者、出版社、出版日期、存馆数量、定价)

2.查询(可根据书名、作者名、出版社分别查询)

3.排序(根据书号、书名排序)

4.修改(根据书号、书名进行修改图书信息操作)和删除(据书号、书名进行删除图书信息操作)

5.退出图书信息表

package 图书管理系统;

import sun.swing.BakedArrayList;

import java.io.*;
import java.text.Collator;
import java.util.*;

public class book_information {
    public static void main(String[] args) throws IOException {
        Scanner scanner = new Scanner(System.in);
        System.out.println("欢迎进入图书信息表!");
        System.out.println("您可进行以下操作:");
        System.out.println("1.图书信息添加");
        System.out.println("2.图书信息查询");
        System.out.println("3.图书信息排序");
        System.out.println("4.图书信息修改和删除");
        System.out.println("5.退出图书信息表");
        System.out.println("**********************");

        int a;
        while (true) {
            System.out.println("请输入你要进行的操作的序号:");
            a = scanner.nextInt();
            switch (a) {
                case 1://添加
                    BufferedWriter bw = new BufferedWriter(new FileWriter("book_information.txt", true));
                    List<book> arr = new ArrayList<>();
                    System.out.println("请输入书号:");
                    String id = scanner.next();
                    System.out.println("请输入书名:");
                    String name = scanner.next();
                    System.out.println("请输入作者:");
                    String writer = scanner.next();
                    System.out.println("请输入出版社:");
                    String press = scanner.next();
                    System.out.println("请输入出版日期:");
                    String date = scanner.next();
                    System.out.println("请输入存馆数量:");
                    int number = scanner.nextInt();
                    System.out.println("请输入定价:");
                    double price = scanner.nextDouble();
                    book b = new book(id, name, writer, press, date, number, price);
                    arr.add(b);
                    for (book i : arr) {
                        bw.write(i.id + "," + i.name + "," + i.writer + "," + i.press + "," + i.date + "," + i.number + "," + i.price);
                        bw.newLine();
                        bw.flush();
                    }
                    System.out.println("添加成功!");
                    bw.close();
                    break;
                case 2://查询
                    System.out.println("请输入你要查询的书的(1.书名,2.作者名,3.出版社)的序号");
                    int c = scanner.nextInt();
                    switch (c) {
                        case 1:
                            System.out.println("请输入要查询的书名:");
                            String s_name = scanner.next();
                            BufferedReader br = new BufferedReader(new FileReader("book_information.txt"));
                            String lines;
                            while ((lines = br.readLine()) != null) {
                                String single = lines.split(",")[1];
                                if (Objects.equals(single, s_name)) {
                                    System.out.println("该书所有信息如下");
                                    System.out.println(lines);

                                }
                            }
                            br.close();
                            break;
                        case 2:
                            System.out.println("请输入要查询的作者名:");
                            String r_name = scanner.next();
                            BufferedReader br2 = new BufferedReader(new FileReader("book_information.txt"));
                            String lines2;
                            while ((lines2 = br2.readLine()) != null) {
                                String single = lines2.split(",")[2];
                                if (Objects.equals(single, r_name)) {
                                    System.out.println("该书所有信息如下");
                                    System.out.println(lines2);

                                }
                            }
                            br2.close();
                            break;
                        case 3:
                            System.out.println("请输入要查询的出版社:");
                            String c_name = scanner.next();
                            BufferedReader br3 = new BufferedReader(new FileReader("book_information.txt"));
                            String lines3;
                            while ((lines3 = br3.readLine()) != null) {
                                String single = lines3.split(",")[3];
                                if (Objects.equals(single, c_name)) {
                                    System.out.println("该书所有信息如下");
                                    System.out.println(lines3);

                                }
                            }
                            br3.close();
                            break;

                    }
                    break;
                case 3://排序
                    System.out.println("请输入你要按何种顺序排序(1.书号,2.书名):");
                    int d = scanner.nextInt();
                    switch (d) {
                        case 1:
                            BufferedReader br = new BufferedReader(new FileReader("book_information.txt"));
                            List<book> arr3 = new ArrayList<>();
                            List<String> al = new ArrayList<>();
                            String lines;

                            while ((lines = br.readLine()) != null) {
                                book m_book = new book("0", "0", "0", "0", "0", 0, 0);
                                m_book.setId(lines.split(",")[0]);
                                m_book.setName(lines.split(",")[1]);
                                m_book.setWriter(lines.split(",")[2]);
                                m_book.setPress(lines.split(",")[3]);
                                m_book.setDate(lines.split(",")[4]);
                                m_book.setNumber(Integer.parseInt(lines.split(",")[5]));
                                m_book.setPrice(Double.parseDouble(lines.split(",")[6]));
                                arr3.add(m_book);
                                al.add(m_book.id);
                            }
                            br.close();
                            al.sort(new Comparator<String>() {
                                @Override
                                public int compare(String o1, String o2) {
                                    int a = 0;
                                    for (int i = 0; i < o1.length(); i++) {
                                        if (o1.charAt(i) != o2.charAt(i)) {
                                            a = i;
                                            break;
                                        }
                                    }
                                    return o1.charAt(a) - o2.charAt(a);
                                }
                            });
                            BufferedWriter bw3 = new BufferedWriter(new FileWriter("book_information.txt"));
                            for (String s : al) {

                                for (book w : arr3) {
                                    if (Objects.equals(w.id, s)) {
                                        bw3.write(w.id + "," + w.name + "," + w.writer + "," + w.press + "," + w.date + "," + w.number + "," + w.price);
                                        bw3.newLine();
                                        bw3.flush();
                                    }
                                }
                            }
                            bw3.close();
                            break;
                        case 2:
                            BufferedReader br2 = new BufferedReader(new FileReader("book_information.txt"));
                            List<book> arr3_2 = new ArrayList<>();
                            List<String> al2 = new ArrayList<>();
                            String lines2;

                            while ((lines2 = br2.readLine()) != null) {
                                book m_book = new book("0", "0", "0", "0", "0", 0, 0);
                                m_book.setId(lines2.split(",")[0]);
                                m_book.setName(lines2.split(",")[1]);
                                m_book.setWriter(lines2.split(",")[2]);
                                m_book.setPress(lines2.split(",")[3]);
                                m_book.setDate(lines2.split(",")[4]);
                                m_book.setNumber(Integer.parseInt(lines2.split(",")[5]));
                                m_book.setPrice(Double.parseDouble(lines2.split(",")[6]));
                                arr3_2.add(m_book);
                                al2.add(m_book.name);
                            }
                            br2.close();
                            Collator china = Collator.getInstance(Locale.CHINA);
                            al2.sort(china);
                            BufferedWriter bw3_2 = new BufferedWriter(new FileWriter("book_information.txt"));
                            for (String s : al2) {
                                for (book w : arr3_2) {
                                    if (Objects.equals(w.name, s)) {
                                        bw3_2.write(w.id + "," + w.name + "," + w.writer + "," + w.press + "," + w.date + "," + w.number + "," + w.price);
                                        bw3_2.newLine();
                                        bw3_2.flush();
                                    }
                                }
                            }
                            bw3_2.close();
                            break;
                    }
                    break;
                case 4://修改或删除
                    System.out.println("请输入你要进行的操作(1.修改,2.删除):");
                    int e = scanner.nextInt();
                    switch (e) {
                        case 1:
                            System.out.println("请输入你要修改的书籍的信息(1.书号,2.书名):");
                            int x = scanner.nextInt();
                            switch (x) {
                                case 1:
                                    System.out.println("请输入书号:");
                                    String m_id = scanner.next();
                                    BufferedReader br = new BufferedReader(new FileReader("book_information.txt"));
                                    List<String> arr4 = new ArrayList<>();
                                    String lines;
                                    while ((lines = br.readLine()) != null) {
                                        if (Objects.equals(lines.split(",")[0], m_id)) {

                                            System.out.println("该图书信息如下:");
                                            System.out.println(lines);
                                            System.out.print("请输入修改后的书号:");
                                            String str_id = scanner.next();
                                            System.out.print("请输入修改后的书名:");
                                            String str_name = scanner.next();
                                            System.out.print("请输入修改后的作者:");
                                            String str_writer = scanner.next();
                                            System.out.print("请输入修改后的出版社:");
                                            String str_press = scanner.next();
                                            System.out.print("请输入修改后的出版日期:");
                                            String str_date = scanner.next();
                                            System.out.print("请输入修改后的存馆数量:");
                                            int i_number = scanner.nextInt();
                                            System.out.print("请输入修改后的定价:");
                                            double i_price = scanner.nextDouble();
                                            lines = str_id + "," + str_name + "," + str_writer + "," + str_press + "," + str_date + "," + i_number + "," + i_price;
                                        }
                                        arr4.add(lines);
                                    }
                                    br.close();
                                    BufferedWriter bw4 = new BufferedWriter(new FileWriter("book_information.txt"));
                                    for (String s : arr4) {
                                        bw4.write(s);
                                        bw4.newLine();
                                        bw4.flush();
                                    }
                                    bw4.close();
                                    break;
                                case 2:
                                    System.out.println("请输入书名:");
                                    String m_name = scanner.next();
                                    BufferedReader br1 = new BufferedReader(new FileReader("book_information.txt"));
                                    List<String> arr4_1 = new ArrayList<>();
                                    String lines1;
                                    while ((lines1 = br1.readLine()) != null) {
                                        if (Objects.equals(lines1.split(",")[1], m_name)) {
                                            System.out.println("该图书信息如下:");
                                            System.out.println(lines1);
                                            System.out.print("请输入修改后的书号:");
                                            String str_id = scanner.next();
                                            System.out.print("请输入修改后的书名:");
                                            String str_name = scanner.next();
                                            System.out.print("请输入修改后的作者:");
                                            String str_writer = scanner.next();
                                            System.out.print("请输入修改后的出版社:");
                                            String str_press = scanner.next();
                                            System.out.print("请输入修改后的出版日期(:");
                                            String str_date = scanner.next();
                                            System.out.print("请输入修改后的存馆数量:");
                                            int i_number = scanner.nextInt();
                                            System.out.print("请输入修改后的定价:");
                                            double i_price = scanner.nextDouble();
                                            lines1 = str_id + "," + str_name + "," + str_writer + "," + str_press + "," + str_date + "," + i_number + "," + i_price;
                                        }
                                        arr4_1.add(lines1);
                                    }
                                    br1.close();
                                    BufferedWriter bw4_1 = new BufferedWriter(new FileWriter("book_information.txt"));
                                    for (String s : arr4_1) {
                                        bw4_1.write(s);
                                        bw4_1.newLine();
                                        bw4_1.flush();
                                    }
                                    bw4_1.close();
                            }
                            break;
                        case 2:
                            System.out.println("请输入你要删除的书籍的信息的(1.书号,2.书名)序号:");
                            int f=scanner.nextInt();
                            switch(f){
                                case 1:
                                    System.out.print("请输入你要删除的图书的书号:");
                                    String str= scanner.next();
                                    BufferedReader br5=new BufferedReader(new FileReader("book_information.txt"));
                                    List<String>arr5=new ArrayList<>();
                                    String lines5;
                                    while((lines5=br5.readLine())!=null){
                                        arr5.add(lines5);
                                        if(Objects.equals(lines5.split(",")[0], str)){
                                            System.out.println("你要删除的图书的所有信息如下:");
                                            System.out.println(lines5);
                                            arr5.remove(lines5);
                                            System.out.println("删除成功!");
                                        }
                                    }
                                    br5.close();
                                    BufferedWriter bw5=new BufferedWriter(new FileWriter("book_information.txt"));
                                    for(String s:arr5){
                                        bw5.write(s);
                                        bw5.newLine();
                                        bw5.flush();
                                    }
                                    bw5.close();
                                    break;
                                case 2:
                                    System.out.print("请输入你要删除的图书的书名:");
                                    String str1= scanner.next();
                                    BufferedReader br5_1=new BufferedReader(new FileReader("book_information.txt"));
                                    List<String>arr5_1=new ArrayList<>();
                                    String lines5_1;
                                    while((lines5_1=br5_1.readLine())!=null){
                                        arr5_1.add(lines5_1);
                                        if(Objects.equals(lines5_1.split(",")[1], str1)){
                                            System.out.println("你要删除的图书的所有信息如下:");
                                            System.out.println(lines5_1);
                                            arr5_1.remove(lines5_1);
                                            System.out.println("删除成功!");
                                        }
                                    }
                                    br5_1.close();
                                    BufferedWriter bw5_1=new BufferedWriter(new FileWriter("book_information.txt"));
                                    for(String s:arr5_1){
                                        bw5_1.write(s);
                                        bw5_1.newLine();
                                        bw5_1.flush();
                                    }
                                    bw5_1.close();
                                    break;
                            }
                            break;
                    }
                    break;
                case 5:
                    System.out.println("成功退出!欢迎下次使用图书信息表!");
                    return;

            }
        }

    }

    public static class book {
        private String id;
        private String name;
        private String writer;
        private String press;
        private String date;
        private int number;
        private double price;

        public book(String id, String name, String writer, String press, String date, int number, double price) {
            this.id = id;
            this.name = name;
            this.writer = writer;
            this.press = press;
            this.date = date;
            this.number = number;
            this.price = price;
        }

        public void setId(String id) {
            this.id = id;
        }

        public void setName(String name) {
            this.name = name;
        }

        public void setWriter(String writer) {
            this.writer = writer;
        }

        public void setPress(String press) {
            this.press = press;
        }

        public void setDate(String date) {
            this.date = date;
        }

        public void setNumber(int number) {
            this.number = number;
        }

        public void setPrice(double price) {
            this.price = price;
        }

    }
}

3.读者信息表

1.读者信息添加(学号、姓名、学院、专业班级)

2.读者信息查询(可根据学号、姓名、专业班级进行查询)

3.读者信息排序(可根据学号、学院进行排序)

4.读者信息修改和删除(均根据学号+姓名的方式进行操作)

5.退出读者信息表

package 图书管理系统;

import java.io.*;
import java.lang.reflect.Array;
import java.text.Collator;
import java.util.*;

public class reader_information {
    public static void main(String[] args) throws IOException {
        Scanner scanner = new Scanner(System.in);
        System.out.println("欢迎进入读者信息表!");
        System.out.println("您可进行以下操作:");
        System.out.println("1.读者信息添加");
        System.out.println("2.读者信息查询");
        System.out.println("3.读者信息排序");
        System.out.println("4.读者信息修改和删除");
        System.out.println("5.退出读者信息表");
        System.out.println("**********************");

        int b;
        while(true){
            System.out.println("请输入你要进行的操作的序号:");
            b = scanner.nextInt();
            switch (b) {
                case 1://添加读者信息
                    BufferedWriter bw = new BufferedWriter(new FileWriter("reader_information.txt",true));
                    List<reader> arr = new ArrayList<>();
                    System.out.print("请输入学号:");
                    String id = scanner.next();
                    System.out.print("请输入姓名:");
                    String name = scanner.next();
                    System.out.print("请输入学院:");
                    String college = scanner.next();
                    System.out.print("请输入专业班级:");
                    String professional_class = scanner.next();
                    reader r = new reader(id, name, college, professional_class);
                    arr.add(r);
                    for (reader i : arr) {
                        bw.write(i.id + "," + i.name + "," + i.college + "," + i.professional_class);
                        bw.newLine();
                    }
                    System.out.println("添加成功!");
                    bw.close();
                    break;
                case 2://查询读者信息
                    System.out.println("请输入你要查找人的(1.学号,2.姓名,3.专业班级)的序号:");
                    int c = scanner.nextInt();
                    switch (c) {
                        case 1:
                            System.out.print("请输入学号:");
                            String id1 = scanner.next();
                            BufferedReader br1 = new BufferedReader(new FileReader("reader_information.txt"));
                            String line1;
                            while ((line1 = br1.readLine()) != null) {
                                String[] str = line1.split(",");
                                if (Objects.equals(str[0], id1)) {
                                    System.out.println("读者信息如下:");
                                    System.out.println(line1);
                                }


                            }break;
                        case 2:
                            System.out.print("请输入姓名:");
                            String id2 = scanner.next();
                            BufferedReader br2 = new BufferedReader(new FileReader("reader_information.txt"));
                            String line2;
                            while ((line2 = br2.readLine()) != null) {
                                String[] str = line2.split(",");
                                if (Objects.equals(str[1], id2)) {
                                    System.out.println("读者信息如下:");
                                    System.out.println(line2);
                                }


                            }break;
                        case 3:
                            System.out.print("请输入专业班级:");
                            String id3= scanner.next();
                            BufferedReader br3 = new BufferedReader(new FileReader("reader_information.txt"));
                            String line3;
                            while ((line3 = br3.readLine()) != null) {
                                String[] str = line3.split(",");
                                if (Objects.equals(str[3], id3)) {
                                    System.out.println("读者信息如下:");
                                    System.out.println(line3);
                                }

                            }break;
                    }break;
                case 3://排序
                    System.out.println("请输入您要按何种顺序排序(1.学号,2.学院):");
                    int c1= scanner.nextInt();
                    switch(c1){
                        case 1://按学号进行排序
                            BufferedReader br = new BufferedReader(new FileReader("reader_information.txt"));
                            List<reader> arr3 = new ArrayList<>();
                            List<String> al = new ArrayList<>();
                            String lines;

                            while ((lines = br.readLine()) != null) {
                                reader read= new reader("0", "0", "0", "0");
                                read.id=(lines.split(",")[0]);
                                read.name=(lines.split(",")[1]);
                                read.college=(lines.split(",")[2]);
                                read.professional_class=(lines.split(",")[3]);
                                arr3.add(read);
                                al.add(read.id);
                            }
                            br.close();
                            al.sort(new Comparator<String>() {
                                @Override
                                public int compare(String o1, String o2) {
                                    int a = 0;
                                    for (int i = 0; i < o1.length(); i++) {
                                        if (o1.charAt(i) != o2.charAt(i)) {
                                            a = i;
                                            break;
                                        }
                                    }
                                    return o1.charAt(a) - o2.charAt(a);
                                }
                            });
                            BufferedWriter bw3 = new BufferedWriter(new FileWriter("reader_information.txt"));
                            for (String s : al) {

                                for (reader re : arr3) {
                                    if (Objects.equals(re.id, s)) { 
                                        bw3.write(re.id + "," + re.name + "," + re.college + "," + re.professional_class );
                                        bw3.newLine();
                                        bw3.flush();
                                    }
                                }
                            }
                            bw3.close();
                            break;
                        case 2://按学院进行排序
                            //读读者信息表
                            BufferedReader br32=new BufferedReader(new FileReader("reader_information.txt"));
                            //List<String> arr32=new ArrayList<>();
                            String line32;
                            ArrayList<String> l2=new ArrayList<>();
                            List<reader>list=new ArrayList<>();
                            while((line32= br32.readLine())!=null){
                                reader m_reader = new reader("0", "0", "0", "0");
                                m_reader.id=(line32.split(",")[0]);
                                m_reader.name=(line32.split(",")[1]);
                                m_reader.college=(line32.split(",")[2]);
                                m_reader.professional_class=(line32.split(",")[3]);
                                list.add(m_reader);
                                l2.add(m_reader.college);
                            }
                            LinkedHashSet<String> hash=new LinkedHashSet<>(l2);
                            ArrayList<String>l3=new ArrayList<>(hash);
                            br32.close();
                            //按首字母排序
                            Collator china=Collator.getInstance(Locale.CHINA);
                            l3.sort(china);
                            BufferedWriter bw32=new BufferedWriter(new FileWriter("reader_information.txt"));
                            for(String s3:l3){
                                //写读者信息表
                                for (reader m_r : list) {
                                    if (Objects.equals(m_r.college, s3)) {
                                        bw32.write(m_r.id + "," + m_r.name + "," + m_r.college + "," + m_r.professional_class);
                                        bw32.newLine();
                                        bw32.flush();
                                    }
                                }
                            }
                            bw32.close();
                            break;
                    }
                    break;
                case 4://删除和修改
                    System.out.println("请输入您要进行的操作的序号(1.修改,2.删除):");
                    int c4=scanner.nextInt();
                    switch(c4){
                        case 1:
                            System.out.println("请输入学号,姓名(格式为“学号,姓名”)【英文逗号】:");
                            String in=scanner.next();
                            BufferedReader br4=new BufferedReader(new FileReader("reader_information.txt"));
                            List<String>array=new ArrayList<>();
                            String line4;
                            while((line4=br4.readLine())!=null){
                                array.add(line4);
                                String[]str=line4.split(",");
                                if(Objects.equals(in, str[0] + "," + str[1])) {
                                    System.out.println("读者信息如下:");
                                    System.out.println(line4);
                                    System.out.println("请输入修改后的学号");
                                    str[0]=scanner.next();
                                    System.out.println("请输入修改后的姓名");
                                    str[1]=scanner.next();
                                    System.out.println("请输入修改后的学院");
                                    str[2]=scanner.next();
                                    System.out.println("请输入修改后的专业班级");
                                    str[3]=scanner.next();
                                    array.remove(line4);
                                    String lineh4=str[0]+","+str[1]+","+str[2]+","+str[3];
                                    array.add(lineh4);
                                }

                                BufferedWriter bw4=new BufferedWriter(new FileWriter("reader_information.txt"));
                                for(String s4:array){
                                    bw4.write(s4);
                                    bw4.newLine();
                                    bw4.flush();
                                }
                                bw4.close();

                            }
                            br4.close();
                            break;
                        case 2:
                            System.out.println("请输入学号,姓名(格式为“学号,姓名”)【英文逗号】:");
                            String in1=scanner.next();
                            BufferedReader br4_1=new BufferedReader(new FileReader("reader_information.txt"));
                            List<String>array1=new ArrayList<>();
                            String line4_1;
                            while((line4_1=br4_1.readLine())!=null){
                                array1.add(line4_1);
                                String[]str=line4_1.split(",");
                                if(Objects.equals(in1, str[0] + "," + str[1])) {
                                    System.out.println("读者信息如下:");
                                    System.out.println(line4_1);
                                    array1.remove(line4_1);
                                    System.out.println("删除成功!");
                                }

                                BufferedWriter bw4=new BufferedWriter(new FileWriter("reader_information.txt"));
                                for(String s4:array1){
                                    bw4.write(s4);
                                    bw4.newLine();
                                    bw4.flush();
                                }
                                bw4.close();

                            }
                            br4_1.close();
                            break;
                    }

                    break;
                case 5:
                    System.out.println("成功退出!欢迎下次使用读者信息表!");
                    return;

            }

        }


    }

    public static class reader {
        private String id;
        private String name;
        private String college;
        private String professional_class;

        public reader(String id, String name, String college, String professional_class) {
            this.id = id;
            this.name = name;
            this.college = college;
            this.professional_class = professional_class;
        }

    }
}

4.图书借阅表

1.图书借阅登记(借阅者学号、借阅者姓名、图书书号、图书书名、借阅日期、应还日期、实际归还日期)

2.图书归还登记(输入借阅者学号以及图书书号即可归还)

3.图书借阅查询(可根据借阅者学号、图书书号、借阅者学院进行查询)

4.退出图书借阅表

package 图书管理系统;

import com.sun.corba.se.impl.orbutil.ObjectWriter;

import java.io.*;
import java.text.DateFormat;
import java.text.SimpleDateFormat;
import java.util.*;

public class book_lending {
    public static void main(String[]args) throws IOException {
        //表头
        System.out.println("欢迎进入图书借阅表!");
        System.out.println("您可进行以下操作:");
        System.out.println("1.图书借阅登记");
        System.out.println("2.图书归还登记");
        System.out.println("3.图书借阅查询");
        System.out.println("4.退出图书借阅表");
        System.out.println("**********************");
        //输入操作
        Scanner scanner = new Scanner(System.in);


        while(true){
            System.out.println("请输入你要进行的操作的序号:");
            int a=scanner.nextInt();

            switch(a){
                case 1://1.图书借阅登记
                    System.out.print("请输入读者学号:");
                    String r_id=scanner.next();

                    //读出读者信息表中的内容
                    BufferedReader brr=new BufferedReader(new FileReader("reader_information.txt"));
                    String line_r;
                    while((line_r=brr.readLine())!=null){
                        if(Objects.equals(line_r.split(",")[0], r_id)){
                            System.out.println("可以借阅!");
                        }
                    }
                    brr.close();

                    System.out.print("请输入图书书号:");
                    String b_id=scanner.next();
                    BufferedReader bri=new BufferedReader(new FileReader("book_information.txt"));
                    BufferedWriter bwl=new BufferedWriter(new FileWriter("book_lending.txt",true));
                    String line;
                    List<String> arr=new ArrayList<>();
                    List<lending>arr1=new ArrayList<>();
                    while((line=bri.readLine())!=null){
                        if(Objects.equals(b_id, line.split(",")[0])){
                            int s=Integer.parseInt(line.split(",")[5]);
                            System.out.println("该图书存馆数量为:");
                            System.out.println(s);
                            if(s>0){
                                System.out.println("可以借阅");
                                s-=1;
                                line=line.replaceAll(line.split(",")[5],Integer.toString(s));
                                arr.add(line);
                                System.out.print("请输入借阅者姓名:");
                                String name=scanner.next();
                                String book_name=line.split(",")[1];
                                System.out.print("请输入应还日期:");
                                String ying_date=scanner.next();
                                DateFormat df=new SimpleDateFormat("yyyy年MM月dd日");
                                String jie_date=df.format(new Date());
                                String return_date=" ";
                                lending lend=new lending(r_id,name,b_id,book_name,jie_date,ying_date,return_date);
                                arr1.add(lend);
                            }

                            else{
                                System.out.println("不可借阅");
                                return;
                            }
                            for(lending l:arr1){
                                bwl.write(l.r_id+","+l.r_name+","+l.b_id+","+l.b_name+","+l.borrow_date+","+l.y_return_date+","+l.s_return_date);
                                bwl.newLine();
                                bwl.flush();
                            }
                            bwl.close();


                        }
                        else{
                            arr.add(line);
                        }
                    }bri.close();
                    BufferedWriter bwi=new BufferedWriter(new FileWriter("book_information.txt"));
                    for(String s:arr){
                        //System.out.println(s);
                        bwi.write(s);
                        bwi.newLine();
                        bwi.flush();
                    }
                    bwi.close();
                    break;
                case 2://2.图书归还登记
                    System.out.print("请输入归还读者学号:");
                    String r_id_h=scanner.next();
                    System.out.print("请输入归还图书书号:");
                    String b_id_h=scanner.next();

                    //读出图书信息表中的内容
                    BufferedReader brl_h=new BufferedReader(new FileReader("book_lending.txt"));
                    ArrayList<lending>arr1_h=new ArrayList<>();
                    String s_h;

                    while((s_h=brl_h.readLine())!=null){
                        lending lend_h=new lending(s_h.split(",")[0],s_h.split(",")[1],s_h.split(",")[2],s_h.split(",")[3],s_h.split(",")[4],s_h.split(",")[5],s_h.split(",")[6]);
                        arr1_h.add(lend_h);
                        //System.out.println(lend_h.r_id+lend_h.r_name+lend_h.b_id+lend_h.b_name+lend_h.borrow_date+lend_h.y_return_date+lend_h.s_return_date);
                    }
                    brl_h.close();
                    //写图书借阅表
                    BufferedWriter bwl_h=new BufferedWriter(new FileWriter("book_lending.txt"));
                    for(lending l_h:arr1_h){
                        //System.out.println(l_h.r_id+","+l_h.r_name+","+l_h.b_id+","+l_h.b_name+","+l_h.borrow_date+","+l_h.y_return_date+","+l_h.s_return_date);
                        if(Objects.equals(l_h.b_id, b_id_h)&&Objects.equals(l_h.r_id, r_id_h)){
                            DateFormat df=new SimpleDateFormat("yyyy年MM月dd日");
                            l_h.s_return_date=df.format(new Date());
                        }
                        bwl_h.write(l_h.r_id+","+l_h.r_name+","+l_h.b_id+","+l_h.b_name+","+l_h.borrow_date+","+l_h.y_return_date+","+l_h.s_return_date);
                        bwl_h.newLine();
                        bwl_h.flush();

                    }
                    bwl_h.close();
                    //读图书信息表
                    BufferedReader br_h=new BufferedReader(new FileReader("book_information.txt"));
                    ArrayList<String>arr_h=new ArrayList<>();
                    String line_h;
                    while((line_h=br_h.readLine())!=null){
                        if(Objects.equals(line_h.split(",")[0],b_id_h)){
                            int s=Integer.parseInt(line_h.split(",")[5]);
                            s+=1;
                            line_h=line_h.replaceAll(line_h.split(",")[5],Integer.toString(s));
                            arr_h.add(line_h);
                        }
                        else
                        {
                            arr_h.add(line_h);
                        }
                    }
                    br_h.close();
                    //写图书信息表
                    BufferedWriter bw_h=new BufferedWriter(new FileWriter("book_information.txt"));
                    for(String a_h:arr_h){
                        bw_h.write(a_h);
                        bw_h.newLine();
                        bw_h.flush();
                    }
                    bw_h.close();
                    System.out.println("归还成功!");
                    break;
                case 3://3.图书借阅查询
                    System.out.println("请输入你要按何种方式进行查询(1.学号,2.书号,3.学院):");
                    int x=scanner.nextInt();
                    switch(x){
                        case 1:
                            System.out.print("请输入学号:");
                            String r_id_c=scanner.next();
                            BufferedReader br_c=new BufferedReader(new FileReader("book_lending.txt"));
                            String line_c;
                            System.out.println("此图书借阅所有信息如下:");
                            while((line_c=br_c.readLine())!=null){
                                if(Objects.equals(r_id_c, line_c.split(",")[0])){

                                    System.out.println(line_c);
                                }
                            }
                            break;
                        case 2:
                            System.out.print("请输入书号:");
                            String b_id_c=scanner.next();
                            BufferedReader br_c1=new BufferedReader(new FileReader("book_lending.txt"));
                            String line_c1;
                            System.out.println("此图书借阅所有信息如下:");
                            while((line_c1=br_c1.readLine())!=null){
                                if(Objects.equals(b_id_c, line_c1.split(",")[2])){
                                    System.out.println(line_c1);
                                }
                            }
                            break;
                        case 3:
                            System.out.print("请输入学院:");
                            String b_college_c=scanner.next();
                            BufferedReader br_c2=new BufferedReader(new FileReader("reader_information.txt"));
                            ArrayList<String> list=new ArrayList<>();
                            String line_c2;
                            System.out.println("此图书借阅所有信息如下:");
                            while((line_c2=br_c2.readLine())!=null){
                                if(Objects.equals(b_college_c, line_c2.split(",")[2])){
                                    list.add(line_c2);
                                }
                            }
                            BufferedReader br_c3=new BufferedReader(new FileReader("book_lending.txt"));
                            String ss;
                            ArrayList<String>list1=new ArrayList<>();
                            while((ss=br_c3.readLine())!=null){
                                list1.add(ss);
                            }
                            for(String i:list){
                                for(String j:list1){
                                    if(Objects.equals(i.split(",")[0], j.split(",")[0])){
                                        System.out.println(j);
                                    }
                                }
                            }

                            break;
                    }
                    break;
                case 4://4.退出图书借阅表
                    System.out.println("成功退出!欢迎下次使用图书借阅表!");
                    return;
            }
        }


    }
    public static class lending implements Serializable{
        private final String r_id;//读者学号
        private final String r_name;//读者姓名
        private final String b_id;//图书书号
        private final String b_name;//图书名
        private final String borrow_date;//借出日期
        private final String y_return_date;//应还日期
        private String s_return_date;//实际归还日期
        public lending(String r_id,String r_name,String b_id,String b_name,String borrow_date,String y_return_date,String s_return_date){
            this.r_id=r_id;
            this.r_name=r_name;
            this.b_id=b_id;
            this.b_name=b_name;
            this.borrow_date=borrow_date;
            this.y_return_date=y_return_date;
            this.s_return_date=s_return_date;
        }
    }
}

  • 5
    点赞
  • 19
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值