图书管理模块:
某图书管需要对图书进行信息化管理,
要求管理员能够进行新增图书,
能按照书名进行模糊查看图书
能进行价格统计
系统实现如下:
1.新增
2.查询
3.统计价格
1
请输入新书:
图书号,书名,作者,价格
新增成功,选择其他操作
1.新增
2.查询
3.统计价格
2
请输入书名:
水
1002,水浒传,施耐庵,108
1003,喝水好处多,张三,199
选择其他操作
1.新增
2.查询
3.统计价格
3
总计:图书10本,价格1020元
package com.bingbing.blogs;
public class Book {
private String bName;
private String bNo;
private String author;
private float price;
public Book() {
}
public Book(Book newBook) {
this.bName = newBook.bName;
this.bNo = newBook.bNo;
this.author = newBook.author;
this.price = newBook.price;
}
public Book(String bName, String bNo, String author, float price) {
this.bName = bName;
this.bNo = bNo;
this.author = author;
this.price = price;
}
public String getbName() {
return bName;
}
public String getbNo() {
return bNo;
}
public String getAuthor() {
return author;
}
public float getPrice() {
return price;
}
public void setbName(String bName) {
this.bName = bName;
}
public void setbNo(String bNo) {
this.bNo = bNo;
}
public void setAuthor(String author) {
this.author = author;
}
public void setPrice(float price) {
this.price = price;
}
}
1 package com.bingbing.blogs;
2
3 import java.util.Scanner;
4
5 /**
6 * 新增成功,选择其他操作 1.新增 2.查询 3.统计价格 2 请输入书名: 水 1002,水浒传,施耐庵,108 1003,喝水好处多,张三,199
7 * 选择其他操作 1.新增 2.查询 3.统计价格 3 总计:图书10本,价格1020元
8 * */
9 public class DoWithBook {
10 public final static int MAX_NUM = 100;
11 private Book[] book = new Book[MAX_NUM];
12 private static int bkNum = 0;
13
14 public DoWithBook() {
15 for (int i = 0; i < MAX_NUM; i++) {
16 this.book[i] = new Book();
17 }
18 System.out.println("数组初始化");
19 }
20
21 // 显示所有书籍信息
22 public void showBook() {
23 if (bkNum > 0) {
24 System.out.println("查询结果如下:\n" + "书名" + "书编号" + "作者" + "价格");
25 } else {
26 System.out.println("暂无图书,您可以先添加后查询");
27 }
28 for (int i = 0; i < bkNum; i++) {
29 System.out.println(book[i].getbName() + "\t" + book[i].getbNo()
30 + "\t" + book[i].getAuthor() + "\t" + book[i].getPrice());
31 }
32 }
33
34 public void addBook(Book newBook) {
35 if (bkNum == MAX_NUM) {
36 System.out.println("书库已满,禁止添加");
37 } else {
38 this.book[bkNum] = new Book(newBook);
39 bkNum++;
40 System.out.println("添加书籍成功,当前共有书籍" + bkNum + "册");
41 }
42 }
43
44 public void delBook(Book k) {
45 if (k == null) {
46 System.out.println("要删除的对象不存在");
47 } else {
48 String bName = "";
49 for (int i = 0; i < bkNum; i++) {
50 if (k.equals(this.book[i])) {
51
52 bName = k.getbName();
53
54 for (int j = i; j < bkNum; j++) {
55 this.book[j] = book[j + 1];
56 }
57 }
58 }
59 bkNum--;
60 System.out.println("已将图书" + bName + "删除");
61 }
62 }
63
64 public void editBook(Book book) {
65
66 System.out.println("请输入新的书名,书编码,作者和价格,用空格将它们隔开");
67 Scanner sc = new Scanner(System.in);
68 String temp = sc.nextLine();
69 String[] input = temp.split(" ");
70 float price = Float.parseFloat(input[3]);
71
72 book.setbName(input[0]);
73 book.setbNo(input[1]);
74 book.setAuthor(input[2]);
75 book.setPrice(price);
76
77 System.out.println("编辑成功");
78 }
79
80 // 统计价格
81 public void statisPrice() {
82
83 float totalMoney = 0;
84
85 for (int i = 0; i < bkNum; i++) {
86
87 totalMoney += book[i].getPrice();
88 }
89 System.out.println("共有图书" + bkNum + "册,共计" + totalMoney + "元");
90 System.out.println("统计成功");
91 }
92
93 public Book searchByName(String name) {
94
95 for (int i = 0; i < bkNum; i++) {
96
97 if (name.equals(book[i].getbName())) {
98
99 return book[i];
100 }
101 }
102 return null;
103 }
104 }
1 package com.bingbing.blogs;
2
3 import java.util.Scanner;
4
5 public class BookMain {
6
7 public static void main(String[] args) {
8 DoWithBook doWithBook = new DoWithBook();
9 doWithBook.showBook();
10 String choice;
11 Scanner sc = new Scanner(System.in);
12
13 while (true) {
14 printMenu();
15 choice = sc.nextLine();
16 if ("1".equals(choice)) {
17 System.out.println("请输入书名,书编码,作者和价格,用空格将它们隔开");
18 String temp = sc.nextLine();
19 String[] input = temp.split(" ");
20 float price = Float.parseFloat(input[3]);
21 Book newBook = new Book(input[0], input[1], input[2], price);
22 doWithBook.addBook(newBook);
23 System.out.println("添加成功");
24 } else if ("2".equals(choice)) {
25 System.out.println("请输入要删除的书名");
26 String bName = sc.nextLine().trim();
27 Book newBook = doWithBook.searchByName(bName);
28 doWithBook.delBook(newBook);
29 } else if ("3".equals(choice)) {
30 doWithBook.showBook();
31 } else if ("4".equals(choice)) {
32 System.out.println("请输入要修改书的书名");
33 String bName = sc.nextLine();
34 Book newBook = doWithBook.searchByName(bName);
35 if (newBook == null) {
36 System.out.println("没有这本书");
37 } else {
38 doWithBook.editBook(newBook);
39 }
40 } else if ("5".equals(choice)) {
41 doWithBook.statisPrice();
42
43 } else {
44 System.out.println("输入错误");
45 }
46 }
47
48 }
49
50 private static void printMenu() {
51 System.out
52 .println("请选择操作序号:\n1.添加书籍\n2.删除书籍\n3.显示所有书籍\n4.更改书籍信息\n5.统计书籍价格\n");
53
54 }
55
执行结果:(部分)
数组初始化
暂无图书,您可以先添加后查询
请选择操作序号:
1.添加书籍
2.删除书籍
3.显示所有书籍
4.更改书籍信息
5.统计书籍价格
1
请输入书名,书编码,作者和价格,用空格将它们隔开
水浒传 54 发送 54
添加书籍成功,当前共有书籍1册
添加成功
请选择操作序号:
1.添加书籍
2.删除书籍
3.显示所有书籍
4.更改书籍信息
5.统计书籍价格
4
请输入要修改书的书名
水浒传
请输入新的书名,书编码,作者和价格,用空格将它们隔开
水浒传 15 施耐庵 24
编辑成功
请选择操作序号:
1.添加书籍
2.删除书籍
3.显示所有书籍
4.更改书籍信息
5.统计书籍价格
1
请输入书名,书编码,作者和价格,用空格将它们隔开
红楼梦 12 曹雪芹 21
添加书籍成功,当前共有书籍2册
添加成功
请选择操作序号:
1.添加书籍
2.删除书籍
3.显示所有书籍
4.更改书籍信息
5.统计书籍价格
3
查询结果如下:
书名书编号作者价格
水浒传 15 施耐庵 24.0
红楼梦 12 曹雪芹 21.0
请选择操作序号:
1.添加书籍
2.删除书籍
3.显示所有书籍
4.更改书籍信息
5.统计书籍价格
5
共有图书2册,共计45.0元
统计成功
请选择操作序号:
1.添加书籍
2.删除书籍
3.显示所有书籍
4.更改书籍信息
5.统计书籍价格
2
请输入要删除的书名
水浒传
已将图书水浒传删除
请选择操作序号:
1.添加书籍
2.删除书籍
3.显示所有书籍
4.更改书籍信息
5.统计书籍价格
3
查询结果如下:
书名书编号作者价格
红楼梦 12 曹雪芹 21.0
请选择操作序号:
1.添加书籍
2.删除书籍
3.显示所有书籍
4.更改书籍信息
5.统计书籍价格