JAVA实现简单的图书管理系统

初步的去学习使用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;i<name.length;i++){
                    if(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;i<name.length;i++){
                    if(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;i<name.length;i++){
                    if(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;i<name.length;i++){
                        if(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;i<name.length-1;i++){
                    if(name[i].equals(delete)){
                        index=i;
                        break;
                    }
                }
                if(index!=-1){
                    for(int i=index;i<name.length;i++){
                    if(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("谢谢使用");
    }
}
  • 31
    点赞
  • 176
    收藏
    觉得还不错? 一键收藏
  • 4
    评论
评论 4
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值