本次认为要求综合运用Java变量、数组、选择结构、循环结构等知识,为某校开发一套迷你图书管理器,实现系统菜单控制个一下6个技能:
>增加图书
>查看图书
>删除图书
>借出图书
>归还图书
>退出
废话不多说,下面开始演示......
效果演示
源码演示
package nte.csdn.www;
import java.util.Scanner;
public class Library {
public static void main(String[] args) {
Scanner input=new Scanner(System.in);
String [] name=new String [6];//图书名称
int [] state=new int [6];//图书借阅状态
int [] date=new int [6];//图书借阅日期
int [] count=new int [6];//图书借出次数
int num=0;
int day=0;
do {
boolean flag=false;//数组中是否有此书
int index=0;//记录下标
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("6.退出");
System.out.println("-----------------------------");
System.out.print("-->请选择:\t");
int choose=input.nextInt();
String bookName="";
switch (choose) {
case 1://添加图书
System.out.print("-->新增图书\t");
System.out.print("请输入图书名称:\t");
bookName=input.next();
//判断数组中是否有值
for (int i = 0; i < count.length; i++) {
if (null==name[i]) {
flag=true;
index=i;
break;
}
}
if (flag) {
name[index]=bookName;
state[index]=0;//可借阅
date[index]=0;//日期
count[index]=0;
System.out.println("新增《"+bookName+"》成功!");
}else{
System.out.println("新增失败,图书已满");
}
break;
case 2://查看图书
System.out.println("序号\t状态\t名称\t借出日期\t借出次数");
int a=1;
for (int i = 0; i < count.length; i++) {
if (null!=name[i]) {
String sta="";
if (state[i]==0) {
sta="可借阅";
} else {
sta="已借阅";
}
System.out.println(a+"\t"+sta+"\t"+name[i]+"\t"+date[i]+"\t"+count[i]);
a++;
}
}
break;
case 3://删除书籍
System.out.print("请输入要删除的书籍的名字:\t");
String bookdelete=input.next();
//去数组中寻找
for (int i = 0; i < count.length; i++) {
if (name[i] !=null && name[i].equals(bookdelete)) {
flag=true;//数组中有此书
index=i;//记录下标
break;
}
}
//处理结果
if (flag==true) {
name[index]=null;
state[index]=0;//可借阅
date[index]=0;//日期
count[index]=0;
System.out.println("删除成功");
} else {
System.out.println("删除失败!书架中没有这本书");
}
break;
case 4://借出此书
System.out.print("请输入图书名称:\t");
bookName=input.next();
//去数组中寻找
for (int i = 0; i < count.length; i++) {
if (name[i] !=null && name[i].equals(bookName)) {
flag=true;//数组中有此书
index=i;//记录下标
break;
}
}
//接收借出日期
if (state[index]==1) {
System.out.println("此书已被借阅");
}else{
if (flag==true) {
while(true){
System.out.println("请输入借出日期");
input.nextInt();
if (day<=1 && day <= 31) {
date [index]=day;//改变日期
state[index]=1;//改变状态
count[index]++;//次数+1
break;
} else {
System.out.println("借出天数有误,请输入1-31其中一个数字");
}
}
System.out.println("借出《"+name[index]+"》成功");
}
}
break;
case 5://归还图书
System.out.print("请输入名称:\t");
bookName=input.next();
//去数组中寻找
for (int i = 0; i < count.length; i++) {
if (name[i]!=null && name[i].equals(bookName)) {
flag=true;//数组中有此书
index=i;//记录下标
break;
}
}
//查看是否被借出
int money=0;
if (state[index]==0) {
System.out.println("该图书没有被借出");
} else {
System.out.println("请输入归还日期");
int day2=input.nextInt();
money=day2-day;//金额=归还日期-借出日期
while (true) {
if (day2<=day) {
System.out.println("归还日期不正确。应大于借出日期");
} else {
state[index]=0;//改变状态
date[index]=0;//改变日期
break;
}
}
System.out.println("归还成功,应支付"+money+"元");
}
break;
case 6://系统退出
num=1;
break;
}
if (num==1) {
break;
} else {
System.out.println("请输入0返回上一级,输入1退出系统");
num=input.nextInt();
}
} while (num==0);{
System.out.println("谢谢使用");
}
}
}
下载链接:https://pan.baidu.com/s/1BxsrhOSSzdYXKWzwNlNcTg 提取码: cpe2