什么是java的图书管理系统呢?

package com.cn.booksystem;


import java.text.ParseException;
import java.text.SimpleDateFormat;
import java.util.*;

public class BookMgr {
    // 创建图书对象
    BookSet book = new BookSet();
    //初始化三本图书的信息
 

        book.count[1] = 0;
        book.name[2] = "人月神话";
        book.state[2] = 1;
        book.count[2] = 0;
    }


    /**
     * 开始菜单
     */
    public void startMenu(){
        System.out.println("欢 迎 使 用 图 书 管 理 系 统");
        System.out.println("-------------------------------------");
        System.out.println("0. 借出排行榜");
        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.print("--------------------------------------\n");
        System.out.print("请选择: ");
        Scanner input = new Scanner(System.in);
        int choice = input.nextInt();
        switch(choice){
            case 0:
                list();
                break;
            case 1:
                add();
                break;
            case 2:
                search();
                break;
            case 3:
                delete();
                break;
            case 4:
                lend();
                break;
            case 5:
                returnBook();
                break;
            case 6:
                System.out.println("\n谢 谢 使 用!");
                break;
        }
    }

    /**
     * 返回主菜单
     */
    public void returnMain(){
        Scanner input = new Scanner(System.in);
        System.out.print("输入0返回:");
        if(input.nextInt() == 0){
            startMenu();
        }else{
            System.out.println("输入错误, 异常终止!");

        }
    }


    /**
     * 查看图书
     */
    public void search(){
        System.out.println("---> 查看图书\n");
        System.out.println("序号\t状 态\t名称\t\t借出日期");
        for(int i = 0 ; i < book.name.length; i++){
            if(book.name[i]==null){
                break;
            }else if(book.state[i] == 0){
                System.out.println((i+1)+"\t已借出\t"+"<<"+ book.name[i]+ ">>\t" + book.date[i]);
            }else if(book.state[i] == 1){
                System.out.println((i+1)+"\t可 借\t"+"<<"+book.name[i]+">>");
            }
        }
        System.out.println("**************************");
        returnMain();
    }


    /**
     * 新增图书
     */
    public void add(){
        Scanner input = new Scanner(System.in);
        System.out.println("---> 新增图书\n");
        System.out.print("请输入图书名称: ");
        String name = input.next();
        for(int i = 0; i < book.name.length; i++){
            if(book.name[i] == null){    //查询最后一个空位置插入
                book.name[i]=name;
                book.state[i]=1;//新增的图书可借状态
                System.out.println("新增《"+name+"》成功!");
                break;
            }
        }
        System.out.println("**************************");
        returnMain();
    }



    /**
     * 删除图书
     */
    public void delete(){
        Scanner input = new Scanner(System.in);
        boolean flag=false;//标识删除成功与否
        System.out.println("---> 删除图书\n");
        System.out.print("请输入图书名称: ");
        String name = input.next();
        //遍历数组,查找匹配信息
        for(int i = 0 ; i < book.name.length; i++){
            //查找到,每个元素前移一位
            if(book.name[i]!=null &&book.name[i].equalsIgnoreCase(name)&&book.state[i]==1){
                int j=i;
                while(book.name[j+1]!=null){
                    book.name[j]=book.name[j+1];
                    book.state[j]=book.state[j+1];
                    book.date[j]=book.date[j+1];
                    j++;
                }
                //最后一个不为空的元素置空
                book.name[j]=null;
                book.date[j]=null;
                System.out.println("删除《"+name+"》成功!");
                flag=true;//置位,表示删除成功
                break;
            }else if(book.name[i]!=null &&book.name[i].equalsIgnoreCase(name)&&book.state[i]==0){
                System.out.println("《"+name+"》为借出状态,不能删除!");
                flag=true;//置位
                break;
            }
        }
        if(!flag){
            System.out.println("没有找到匹配信息!");
        }
        System.out.println("**************************");
        returnMain();
    }


    /**
     * 借出图书
     */
    public void lend(){
        System.out.println("---> 借出图书\n");

        Scanner input = new Scanner(System.in);
        System.out.print("请输入图书名称: ");
        String want = input.next();  //要借出的图书名称
        for(int i = 0; i < book.name.length; i++){
            if(book.name[i] == null){    //无匹配
                System.out.println("没有找到匹配信息!");
                break;
            }else if(book.name[i].equals(want)&& book.state[i]==1){  //找到匹配可借
                book.state[i] = 0;
                System.out.print("请输入借出日期(年-月-日):");
                book.date[i]=input.next();
                System.out.println("借出《"+want+"》成功!");
                break;
            }else if(book.name[i].equals(want)&& book.state[i]==0){  //找到匹配已被借出
                System.out.println("《"+want+"》已被借出!");
                break;
            }
        }
        System.out.println("**************************");
        returnMain();
    }

    /**
     * 归还图书并计算租金
     */
  
            }else if(book.name[i].equals(want) && book.state[i]==0){  //找到匹配
                book.state[i] = 1;
                System.out.print("请输入归还日期(年-月-日):");
                String redate=input.next();
                //计算租金
                loan=charge(book.date[i],redate);
                System.out.println("\n归还《"+want+"》成功!");
                System.out.println("借出日期为:"+book.date[i]);
                System.out.println("归还日期为:"+redate);
                System.out.println("应付租金(元):"+loan);
                book.count[i] = book.count[i] + 1;
                break;
            }  else if(book.name[i].equals(want) && book.state[i]==1){ //找到匹配但没有借出
                System.out.println("该图书没有被借出!无法进行归还操作。");
                break;
            }
        }
        System.out.println("**************************");
        returnMain();
    }
    /**
     * 计算日期差
     * @param dstr1 第一个日期
     * @param dstr2 第二个日期
     *
     */
    public long charge(String dstr1,String dstr2){
        long charge=0;
        SimpleDateFormat sd=new SimpleDateFormat("yyyy-MM-dd");
        try {
            Date d1=sd.parse(dstr1);
            Date d2=sd.parse(dstr2);
            charge=(d2.getTime()-d1.getTime())/(24*60*60*1000);
        } catch (ParseException e) {
            e.printStackTrace();
        }
        return charge;
    }



    /**
     * 借出排行榜
     */
    public void list(){
        //定义新数组,用来存放排序后图书信息
        String[] newname = new String[50];   //
        int[] newcount=new int[50];
        for(int k=0;k<book.name.length;k++){
            newname[k]=book.name[k];
       

        //利用冒泡排序算法进行排序
        for(int i=0;i<newname.length-1;i++){
            for(int j=0;j<newname.length-i-1;j++){
                if(newcount[j]>newcount[j+1]){
                    int tempc=newcount[j];
                    newcount[j]=newcount[j+1];
                    newcount[j+1]=tempc;

                    String tempn=newname[j];
                    newname[j]=newname[j+1];
                    newname[j+1]=tempn;
                }
            }
        }
学无止境,我永远都是学习者 ,我还是一个新手 ,经验有限 ,世界这么忙 ,我刚好有空写下了自己的心得 ,希望对大家有所帮助 ,缘分让我们一起,你们的赞赏,支持,关注就是对我莫大的支持,哪里写的不好的,也欢迎大家评论留言交流,希望大家多多指点,我将不胜感激,也希望我们共同进步。

只有自己深深痛过,才能体会别人的痛,于是难得自我们反省。学习也是如此,只有我们自我反省思考才会进步,正所谓吾日三省吾身就是这样的道理。我们一定要努力学好java语言。

  • 1
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值