初步的去学习使用java来编写一个微型的图书管理系统。在这个里面实现几个功能。
(1)查询现有图书
(2)新增图书
(3)借阅图书
(4)归还图书
(5)删除图书
(6)退出系统
这编写这个小控制台程序的时候,是真的充分体会了所学非所得。这个程序其实意义上也就是数组和循环还有判断条件的灵活使用,但是在学习以上的那些元素的时候,是真的觉得简单,但是在实际上来解决这个系统的要求确实是有些麻烦。
整个系统用的是swtich的选择结构来判断所需要的功能再加以实现
查询功能的实现
首先知道的是图书有几个属性:图书的名称,图书在整个系统中处于什么状态,图书需要被借的日期,图书已经被借过的次数
这些东西都是利用数组来实现的,因为没有去学习JAVA里的动态数组,所以是用简单的一维数组的多次使用来储存信息
名称用string字符串数组,其他的都使用int型数组来表示,其中判断状态的多用一个bollean判断
然后再在数组之中进行查询
其次我觉得麻烦一点的是删除功能,因为删除的话要判断是否会超过数组的长度,所以一定要记得加上一个if()的判断语句来判断。
整个图书管理系统代码:
import java.util.Scanner;
public class Try {
public static void main(String[] args){
Scanner a=new Scanner(System.in);
//第一步书数据的初始化
//图书的名称 图书的借阅状态 图书的借阅日期 图书的借阅次数
//给存在的书进行空间的划分
String[] name=new String[6];
int States[]=new int[6];//0可借 1已经借出
int dates[]=new int[6];
int Count[]=new int[6];
//初始化已经拥有的图书
name[0]="白雪公主";
States[0]=1;
dates[0]=15;
Count[0]=13;
name[1]="西游记";
States[1]=0;
dates[1]=0;
Count[1]=18;
name[2]="三国志";
States[2]=0;
dates[2]=0;
Count[2]=23;
boolean flag=true;
//用户是否退出系统
int num;
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 input=a.nextInt();
switch(input){
case 1://查询
System.out.println("图书列表");
System.out.println("图书序号\t图书名称\t图书状态\t借阅时间\t借阅次数");
//遍历所有图书的信息来显示
for(int i=0;iif(name[i]!=null){
String state=(States[i]==0?"可借阅":"已借出");
String date=(dates[i]==0?" ":dates[i]+"日");
String Count1=Count[i]+"次";
System.out.println((i+1)+"\t"+name[i]+"\t"+state+"\t"+date+"\t"+Count1);
}else{
//遇到第一个为null的空数组元素后面亦为空
break;
}
}
break;
case 2:
//新增图书;
for(int i=0;iif(name[i]!=null){
}else{
name[i]=a.next();
System.out.print(name[i]);
break;
}
}
break;
case 3:
//借阅图书;
System.out.println("请借阅您想要的书籍");
String s=a.next();
for(int i=0;iif(name[i]==null){
System.out.print("没有你想要的书");
}else if(name[i].equals(s)&&States[i]==0){
System.out.print("请输入借阅时间");
dates[i]=a.nextInt();
while(dates[i]<1||dates[i]>31){
System.out.print("输入不正确,请重新输入");
dates[i]=a.nextInt();
}
System.out.print("借书成功");
States[i]=1;
Count[i]++;
break;
}
}
break;
case 4:
//归还图书;
System.out.println("请归还图书");
String guihuan=a.next();
for(int i=0;iif(name[i].equals(guihuan)&&States[i]==1){
States[i]=0;
dates[i]=0;
System.out.print("还书成功");
break;
}else if(name[i]==null){
System.out.print("非馆藏书籍,请重新输入");
}
}
break;
case 5:
//删除图书;
int index=-1;
System.out.print("请删除不需要的老图书");
String delete=a.next();
for(int i=0;i1;i++){
if(name[i].equals(delete)){
index=i;
break;
}
}
if(index!=-1){
for(int i=index;iif(i!=name.length-1){
name[i]=name[i+1];
dates[i]=dates[i+1];
Count[i]=Count[i+1];}
}
System.out.print("删除成功");
}
break;
case 6:
//退出系统;
flag=false;
break;
default:
flag=false;
//输入错了,退出
break;
}
if(!flag){
//跳出循环
break;
}else{
System.out.print("请输入0返回主菜单");
num=a.nextInt();
}
}while(num==0);
System.out.println("谢谢使用");
}
}