使用简单的java进行程序设计
小型的图书管理程序BMS
该程序可以管理你的图书,实现图书的添加、删除和查询功能。
要求:
2.所有的图书在程序中用一个ArrayList存储管理;
3.当程序启动时,从一个指定的文件(bookList.txt)中读入全部已录入的图书信息;
4.程序退出时,所有的图书存入指定的文件(bookList.txt) ;5.提供一个菜单,执行添加、删除、查询功能。
程序图
运行结果:
Book类:
public class Book {
private String mName;
private String mAuth;
private String mPublisher;
private String mDate; //出版日期
private String mISBN;
public String getmName() {
return mName;
}
public void setmName(String mName) {
this.mName = mName;
}
public String getmAuth() {
return mAuth;
}
public void setmAuth(String mAuth) {
this.mAuth = mAuth;
}
public String getmPublisher() {
return mPublisher;
}
public void setmPublisher(String mPublisher) {
this.mPublisher = mPublisher;
}
public String getmDate() {
return mDate;
}
public void setmDate(String mDate) {
this.mDate = mDate;
}
public String getmISBN() {
return mISBN;
}
public void setmISBN(String mISBN) {
this.mISBN = mISBN;
}
@Override
public String toString() {
return mName + " " + mAuth + " " + mPublisher + " " + mDate
+ " " + mISBN;
}
}
BookManager类:
import java.io.BufferedReader;
import java.io.File;
import java.io.FileInputStream;
import java.io.FileWriter;
import java.io.IOException;
import java.io.InputStreamReader;
import java.util.ArrayList;
import java.util.Scanner;
public class BookManager {
private static String filename ;
private static Scanner sc;// = new Scanner(System.in);
private static ArrayList<Book> books;// = new ArrayList<Book>();
//显示菜单
public static void Menu(){
System.out.println("欢迎使用小型的图书管理程序BMS");
System.out.println();
System.out.println("1.添加新书(N)");
System.out.println("2.删除书目(D)");
System.out.println("3.查询书目(Q)");
System.out.println("4.所有书目(L)");
System.out.println("5.保存数据(S)");
System.out.println("6.退出程序(X)");
System.out.println();
System.out.println("请输入你要执行的命令:");
}
//读文件
public static void readFile(){
try{
String encoding="GBK";
File file = new File(filename);
if(file.isFile() && file.exists()){
InputStreamReader read = new InputStreamReader(new FileInputStream(file),encoding);
BufferedReader bufReader = new BufferedReader(read);
String line = null;
while((line = bufReader.readLine()) != null){
//解析数据
Book b = new Book();
String[] ls = line.split(" "); //使用空格分隔
if(ls.length== 5){
b.setmName(ls[0]);
b.setmAuth(ls[1]);
b.setmPublisher(ls[2]);
b.setmDate(ls[3]);
b.setmISBN(ls[4]);
books.add(b);
}
}
}
}catch(Exception e){
System.out.println("文件读取失败!");
}
}
//添加书目
public static void addBook(){
System.out.print("请输入书名:");
String name = sc.next();
System.out.print("请输入作者:");
String auth = sc.next();
System.out.print("请输入出版社:");
String pub = sc.next();
System.out.print("请输入出版日期(2022-2-2):");
String tm = sc.next();
System.out.print("请输入ISBN:");
String isbn = sc.next();
Book b = new Book();
b.setmName(name);
b.setmAuth(auth);
b.setmPublisher(pub);
b.setmDate(tm);
b.setmISBN(isbn);
books.add(b);
System.out.println("添加成功!");
}
//删除
public static void deleteBook(){
System.out.print("请输入要删除的书名:");
String name = sc.next();
int i = 0;
for( i=0;i<books.size();i++){
if(books.get(i).getmName().equals(name)){
books.remove(i);
System.out.println("删除成功!");
break;
}
}
if(i == books.size())
System.out.println("未找到该书");
}
//查询
public static void searchBook(){
System.out.print("请输入要查询的书名或者作者:");
String name = sc.next();
int i = 0;
int flag = 0;
for(;i<books.size();i++){
if(books.get(i).getmName().equals(name) || books.get(i).getmAuth().equals(name)){
System.out.println(books.get(i));
flag = 1;
}
}
if(flag == 0)
System.out.println("未找到符合条件的书目");
}
//所有书目
public static void allBooks(){
if(books.size() == 0){
System.out.println("目前暂无书籍");
return;
}
for(int i=0;i<books.size();i++)
System.out.println(books.get(i));
}
//保存数据
public static void saveBooks(){
try{
FileWriter fw = new FileWriter(filename);
for(int i = 0;i<books.size();i++){
String text = books.get(i).toString();
fw.write(text);
}
fw.close();
System.out.println("保存成功!");
}catch(IOException e){
System.out.println("保存失败!");
}
}
public static void main(String[] args) {
filename ="bookList.txt";
sc = new Scanner(System.in);
books = new ArrayList<Book>();
int flag = 1;
readFile(); //读文件
while(flag==1){
Menu();
String choise = sc.next();
char ch = choise.charAt(0);
switch(ch){
case '1':
case 'N':
case 'n':
addBook();
break;
case '2':
case 'D':
case 'd':
deleteBook();
break;
case '3':
case 'Q':
case 'q':
searchBook();
break;
case '4':
case 'L':
case 'l':
allBooks();
break;
case '5':
case 'S':
case 's':
saveBooks();
break;
case '6':
case 'X':
case 'x':
flag = 0;
break;
}
}
}
}
您好,我是有问必答小助手,您的问题已经有小伙伴帮您解答,感谢您对有问必答的支持与关注!