Java数组图书管理系统
使用数组实现图书管理
综合使用 Java变量,数组,选择结构,循环结构等知识实现图书管理
功能分析:
- 新增图书
- 用户能够向系统中添加新的图书,当图书库中没有位置储放图书时能够提示用户没有位置装新书
- 查看图书
- 删除图书
- 在新增图书的同时,会对已经不重要的图书进行清理,不再提供借阅,此时就需要将这些图书的信息从系统中删除
- 借出图书
- 用户输入所需要借出的图书名称,记录用户所借阅图书的日期,对用户所输入的数字进行相应的判断
- 归还图书
- 用户输入所需要归还的图书名称,记录用户所归还图书的日期,判断归还日期是否真实,然后计算相应的租金
- 退出
public static void main(String[] args) {
int isReturn = 0;
double money = 1;
Scanner input = new Scanner(System.in);
String[] name = {
"罗马假日","童年","在人间","我的大学","骆驼祥子",null
};
int[] state = {
1,0,0,0,0,0
};
int[] count = {
15,12,30,0,0,0
};
int[] date = new int[6];
try {
do {
System.out.println("欢迎使用迷你图书管理系统\n----------------------------------");
System.out.println("\n\t1.新增图书\n\t2.查看图书\n\t3.删除图书\n\t4.借出图书\n\t5.归还图书\n\t6.退出\n");
System.out.println("----------------------------------");
System.out.println("请选择:");
int num = input.nextInt();
switch (num) {
case 1:
System.out.println("--->新增图书\n");
int index01 = -1;
boolean check = false;
for (int i = 0; i < name.length; i++) {
if (name[i] == null) {
index01 = i;
check = true;
break;
}
}
if (check) {
System.out.println("请输入图书名称:");
name[index01] = input.next();
System.out.println("新增《" + name[index01] + "》成功!");
}else{
System.out.println("该系统内已不能储存图书,请选择其他服务...");
}
break;
case 2:
System.out.println("--->查看图书\n");
System.out.println("序号\t状态\t名称\t借出日期\t借出次数");
for (int i = 0; i < name.length; i++) {
if (name[i] != null) {
String out = state[i] == 0 ? "可借阅":"已借出";
String time = date[i] == 0 ? " ":date[i]+"号";
System.out.println((i + 1) + "\t" + out + "\t" + name[i] + "\t" + time + "\t" + count[i]);
}
}
break;
case 3:
System.out.println("--->删除图书\n");
System.out.println("请输入要删除的图书名称:");
String delete = input.next();
int index02 = -1;
boolean isTrue = false;
for (int i = 0; i < name.length; i++) {
if (name[i].equals(delete)) {
index02 = i;
isTrue = true;
break;
}
}
if (isTrue) {
if (state[index02] == 0) {
for (int i = index02; i < name.length-1; i++) {
name[i] = name[i+1];
date[i] = date[i+1];
state[i] = state[i+1];
count[i] = count[i+1];
}
name[5] = null;
System.out.println("《" + delete + "》图书删除成功!");
}else{
System.out.println("你要删除的图书被借出,无法执行删除操作!");
}
}else{
System.out.println("查无此书...");
}
break;
case 4:
boolean isFind = true;
System.out.println("--->借出图书\n");
System.out.println("请输入图书名称:");
String book = input.next();
int index03 = -1;
for (int i = 0; i < name.length; i++) {
if (name[i].equals(book)) {
index03 = i;
isFind = true;
break;
}
}
if (isFind) {
if (state[index03] == 0) {
System.out.println("请输入借阅日期:");
int outdate=input.nextInt();
while(outdate > 31 || outdate < 1){
System.out.println("您的输入日期有误,请重新输入...");
outdate=input.nextInt();
}
System.out.println("《" + book + "》借出成功。");
date[index03]=outdate;
state[index03]=1;
count[index03]++;
}else{
System.out.println("你要借阅的书《" + book + "》已被借出。");
}
}else{
System.out.println("没有找到匹配的图书,请检查输入...");
}
break;
case 5:
System.out.println("--->归还图书\n");
System.out.println("请输入归还图书名称:");
String give = input.next();
int index04 = -1;
boolean again = false;
for (int i = 0; i < name.length; i++) {
if (name[i].equals(give)) {
index04 = i;
again = true;
break;
}
}
if (again) {
if (state[index04] == 1) {
System.out.println("请输入归还日期:");
int giveDate=input.nextInt();
while(giveDate < date[index04] || giveDate > 31){
System.out.println("输入日期有误,请重新输入:");
giveDate=input.nextInt();
}
System.out.println("归还《" + give + "》成功。");
System.out.println("借出日期为:" + date[index04] + "号");
System.out.println("归还日期为:" + giveDate + "号");
System.out.println("应付租金为:" + (giveDate-date[index04]) * money + "元");
state[index04] = 0;
date[index04] = 0;
}else{
System.out.println("你要归还的书未借出,无法完成归还操作");
}
}else{
System.out.println("你要归还的书不存在!");
}
break;
case 6:
System.out.println("谢谢使用...");
return;
default:
System.out.println("您的输入有误,请重新输入...");
while(num > 6 || num < 0){
num = input.nextInt();
}
break;
}
System.out.println("********************************************\n输入0返回:");
isReturn = input.nextInt();
while (isReturn != 0) {
System.out.println("\n您的输入有误,请重新输入...(输入0返回)");
isReturn = input.nextInt();
}
} while (isReturn == 0);
}catch (InputMismatchException e) {
System.out.println("您的输入有误,请退出重新输入...");
}
}