//图书类
package 对象和集合.图书管理系统;
public class Book {
// // 图书相关信息,最多只能存储6个图书信息
// String[] name = new String[6]; // 图书名称
// int[] state = new int[6]; // 借阅状态,0:可借阅 ;1:已借出
// int[] date = new int[6]; // 借出日期
// int[] count = new int[6]; // 借出次数
private String name;
private int state;
private int date;
private int count;
public Book() {
}
public Book(String name, int state, int date, int count) {
this.name = name;
this.state = state;
this.date = date;
this.count = count;
}
/**
* 获取
* @return name
*/
public String getName() {
return name;
}
/**
* 设置
* @param name
*/
public void setName(String name) {
this.name = name;
}
/**
* 获取
* @return state
*/
public int getState() {
return state;
}
/**
* 设置
* @param state
*/
public void setState(int state) {
this.state = state;
}
/**
* 获取
* @return date
*/
public int getDate() {
return date;
}
/**
* 设置
* @param date
*/
public void setDate(int date) {
this.date = date;
}
/**
* 获取
* @return count
*/
public int getCount() {
return count;
}
/**
* 设置
* @param count
*/
public void setCount(int count) {
this.count = count;
}
public String toString() {
return "Book{name = " + name + ", state = " + state + ", date = " + date + ", count = " + count + "}";
}
}
// 功能类
package 对象和集合.图书管理系统;
import java.util.List;
import java.util.Scanner;
public class Test {
/**
* 归还图书
* @param books
*/
public static final Scanner SC = new Scanner(System.in);
public static void returnBook(List<Book> books) {
see(books);
System.out.println("请输入归还的图书名");
String okName = SC.next();
for (int i = 0; i < books.size(); i++) {
if ( books.get(i).getName().equals(okName) && books.get(i).getState() == 0) {
//可以
System.out.println("图书还没有借出!!");
System.out.println("是否继续(y/n)");
String command = SC.next();
switch (command) {
case "y":
returnBook(books);
default:
return;
}
} else if ( books.get(i).getName().equals(okName) && books.get(i).getState() == 1) {
books.get(i).setState(0); // 将借阅状态修改为可借阅
System.out.print("请输入归还日期:");
int redate = SC.nextInt();
while (redate < books.get(i).getDate() || redate > 31) { // 归还日期不能小于借出日期,也不能大于31
if (redate <books.get(i).getDate()) {
System.out.println("归还日期不能小于借出日期,请重新输入:");
} else {
System.out.println("一个月只有31天,请重新输入:");
}
redate = SC.nextInt();
}
books.get(i).setState(0);
int change=redate-books.get(i).getDate();
System.out.println("付租金:"+change+"元");
see(books);
return;
}
}
}
/**
* 借书
* @param books
*/
public static void lendBook(List<Book> books) {
//定义一个是否可以借
see(books);
System.out.println("请输入你要借的图书名:");
String okName = SC.next();
for (int i = 0; i < books.size(); i++) {
if (books.get(i).getName().equals(okName) && books.get(i).getState() == 0) {
//可以借了
System.out.println("请输入你借书的日期(1-31)");
int date =SC.nextInt();
while (date<1||date>31){
System.out.println("输入错误请重新输入!");
date =SC.nextInt();
}
books.get(i).setState(1);
books.get(i).setDate(date);
System.out.println(books.get(i).getDate());
books.get(i).setCount(books.get(i).getCount()+1);
System.out.println("成功借"+"《"+books.get(i).getName()+"》");
return;
} else if (books.get(i) != null && books.get(i).getName().equals(okName) &&books.get(i).getState() == 1) {
System.out.println("图书还在借阅中!");
System.out.println("是否继续(y/n)");
String command = SC.next();
switch (command) {
case "y":
lendBook(books);
default:
return;
}
}
}
}
/**
* 删除数组
* @param books
*/
public static void deleteBook(List<Book> books) {
//定义一个是否可以删除
see(books);
System.out.println("请输入你要删除的图书名:");
String okName =SC.next();
for (int i = 0; i < books.size(); i++) {
if (books.get(i).getName().equals(okName)&&books.get(i).getState()==0){
//可以删除了
books.remove(i);
System.out.println("删除成功!");
break;
}else if (books.get(i).getName().equals(okName)&&books.get(i).getState()==1){
System.out.println("图书还在借阅中不能删除!");
System.out.println("是否继续(y/n)");
String command=SC.next();
switch (command){
case "y":
continue;
default:
return;
}
}
}
}
/**
* 查看数组
* @param books
*/
public static void see(List<Book> books) {
System.out.println("---------查看图书-------------");
System.out.println("序号\t\t名称\t\t状态\t\t借出日期\t\t借出次数");
for (int i = 0; i < books.size(); i++) {
String state=books.get(i).getState()==0?"可借阅":"已借出";
String date =books.get(i).getDate()+"日";
String count =books.get(i).getCount()+"次";
System.out.println((i+1)+"\t"+"《"+books.get(i).getName()+"》"+"\t"+state+"\t\t"+date+"\t\t"+count);
}
}
/**
* 新增图书
* @param sc
*/
public static void newBook(List<Book> books, Scanner sc) {
System.out.println("----------------新曾图书---------------");
//遍历到空
for (int i = 0; i < books.size(); i++) {
//可以插入了
System.out.println("请输入你要新增的书名:");
String name=SC.next();
for (int j = 0; j < books.size(); j++) {
if (books.get(j).getName().equals(name)) {
System.out.println("图书已存在!请重新输入!");
return;
}
Book book =new Book(name,0,0,0);
books.add(book);
System.out.println("添加成功");
return;
}
}
}
}
// 主类
package 对象和集合.图书管理系统;
import java.util.ArrayList;
import java.util.List;
public class BookSystem {
public static void main(String[] args) {
//定义数组存book对象
// // 图书相关信息,最多只能存储6个图书信息
// String[] name = new String[6]; // 图书名称
// int[] state = new int[6]; // 借阅状态,0:可借阅 ;1:已借出
// int[] date = new int[6]; // 借出日期
// int[] count = new int[6]; // 借出次数
Book book = new Book();
List<Book> books = new ArrayList<>();
books.add( new Book("金色花", 1, 1, 15));
books.add( new Book("白色花", 0, 0, 9));
books.add( new Book("红色花", 0, 0, 0));
//循环条件
int num = 1;
do {
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("6.退出图书");
System.out.println("请选择:");
int choose = Test.SC.nextInt();
switch (choose) {
case 1:
//新增图书
Test.newBook(books, Test.SC);
break;
case 2:
//查看图书
Test.see(books);
break;
case 3:
//删除图书
Test.deleteBook(books);
break;
case 4:
Test.lendBook(books);
//借出图书
break;
case 5:
Test.returnBook(books);
//归还图书
break;
case 6:
//退出系统
System.out.println("谢谢您的使用欢迎下次光临!!");
return;
default:
System.out.println("输入错误!");
}
System.out.print("输入0返回");
num = Test.SC.nextInt();
while (num != 0) {
num = Test.SC.nextInt();
System.out.println("输入错误重新输入!");
}
} while (num == 0);
}
}
图书管理系统设计
本文介绍了一个简单的图书管理系统的设计与实现,该系统使用Java编程语言,通过命令行界面进行操作。主要功能包括新增图书、查看图书信息、删除图书、借出图书和归还图书等。系统采用面向对象的方法,通过Book类来表示图书信息,并使用List集合存储和管理图书。
861

被折叠的 条评论
为什么被折叠?



