简单的图书管理系统

自写的极其简陋的图书管理系统,代码不太规范,在学习中慢慢改

现在还存在两个问题:

1.还书还的是null

2.借书传的不是书的编号

在周末之前解决

如有疑问或建议欢迎留言

简书的代码排版实在有问题,如果有需要,可通过我的博客园的代码进行使用:

博客园谭二皮_简单的图书管理系统


LibMain.java

import java.util.Scanner;/* *  * 图书管理系统

* 1.登录和注册

* 2.登录成功后

*        a.显示所有图书列表 添加 查询  修  删除

*        b.借阅图书  需要绑定借阅人账号

*        c.查看已借阅图书列表  归还图书

* 3.退出当前登录的账号

*/publicclass LibMain {

    publicstaticvoid main(String[] args) {

        /*        * 预定义

        */        Libmanage lib =new Libmanage();

        Scanner sc =new Scanner(System.in);

        //将会接收op1方法的返回值,是否进行下一阶段intOp1=0;

        //用于第一个while循环————登录注册操作intflag1=1;

        //用于第二个while循环————是否对图书进行操作intflag2=1;

        //将用于接收对图书的操作intOp2=0;

        /*        * 开始进入图书馆

        */        System.out.println("欢迎来到网络图书馆!");

        while(flag1==1){

            System.out.println("请输入需要的操作:1.登录2.注册0.退出系统");

            Op1 = lib.op1();//在op1方法中登录成功,就会返回1,进入图书操作界面if(Op1==1){

                while(flag2==1){

                    lib.show();//显示操作菜单Op2=sc.nextInt();

                    switch(Op2){

                    case1:

                        lib.addBook();

                        break;

                    case2:

                        lib.delBook();

                        break;

                    case3:

                        lib.modBook();

                        break;

                    case4:

                        lib.selBook();

                        break;

                    case5:

                        lib.showAllBook();

                        break;

                    case6:

                        lib.borBook();

                        break;

                    case7:

                        lib.showBorBook();

                        break;

                    case8:

                        lib.huanBook();

                        break;

                    case0:

                        flag2=0;

                        break;

                    default:

                        break;

                    }

                }//第二个while的大括号            }

        }//第一个while循环的大括号    }

}


Library.java

/** * 图书信息

* @author y

*

*/publicclass Library {

    //书名private String bookName;

    //作者private String bookAuther;

    //价格privatedouble bookPrice;

    /*    * set&get

    */public String getBookName() {

        return bookName;

    }

    publicvoid setBookName(String bookName) {

        this.bookName = bookName;

    }

    publicdouble getBookPrice() {

        return bookPrice;

    }

    publicvoidsetBookPrice(double bookPrice) {

        this.bookPrice = bookPrice;

    }

    public String getBookAuther() {

        return bookAuther;

    }

    publicvoid setBookAuther(String bookAuther) {

        this.bookAuther = bookAuther;

    }

    /*    * 构造方法

    */public Library() {

        super();

        // TODO Auto-generated constructor stub    }

    publicLibrary(String bookName, String bookAuther,double bookPrice) {

        super();

        this.bookName = bookName;

        this.bookAuther = bookAuther;

        this.bookPrice = bookPrice;

    }

    @Override

    public String toString() {

        return"书名:" + bookName + ",作者: " + bookAuther + ", 价格:" + bookPrice;

    }




}


Libmanage.java

package com.inclass.test;/** * 图书和用户的操作

* @author y

*

*/import java.util.Scanner;import java.util.TreeMap;publicclass Libmanage {

    Scanner sc =new Scanner(System.in);

    //将会接收登录注册指令intop1=0;

    //成员变量————用户TreeMap userMap =newTreeMap<>();

    //成员变量————图书TreeMap bookMap =newTreeMap<>();

    //图书编号intbno=0;

    //成员变量————用户和借书的关系TreeMap borBook =newTreeMap<>();//将会被借出去的书存在这个treemap里,然后再与用户关联TreeMap huanBook =newTreeMap<>();//要还的书的中介TreeMap userBook =newTreeMap<>();


    //用于注册或登录的用户名和密码String name=null,password=null;

    //用于图书操作的属性定义String bname,bauther;//书名,书作者doublebprice;//书价格/*    * 登录注册选择

    */publicint op1(){

        intfh=0;

        try{

            op1 = sc.nextInt();//接收登录注册指令if(op1==1){

                inti=1;

                System.out.println("请输入用户名:");

                name = sc.next();

                for (String str : userMap.keySet()) {

                    if(str.equals(name)){

                        fh=login(str);//登录————登录成功会返回1,失败返回0i=0;//如果没有该用户,那就会进行注册,有,置为0,不注册break;

                    }

                }

                if(i==1){

                    System.out.println("没有"+name+"用户,请进行注册!");

                    register();//跳到注册界面                }


            }elseif(op1==2){

                register();//注册}elseif(op1==0){

                System.out.println("退出系统!...");

                System.exit(0);

            }else{

                System.out.println("输入有误请重新输入");

            }

        }catch(Exception e){

            System.out.println("输入有误请重新输入");

            sc.next();//出现异常后,就不断进行死循环的解决办法(可想想别的解决办法)        }

        return fh;

    }


    /*    * 用户注册

    *    ->对密码没有要求

    */publicint register(){

        System.out.println("请输入用户名:");

        name = sc.next();

        System.out.println("请输入密码:");

        password = sc.next();

        for (String str : userMap.keySet()) {

            if(str.equals(name)){

                System.out.println("已经存在该用户!请重新注册!");

                return0;

            }

        }

        userMap.put(name, password);

        System.out.println("注册成功!");

        return1;

    }


    /*    * 用户登录

    *    ->先判断用户名是否相同,然后再判断密码是否相同。没有符合条件的就返回false,否则返回true

    */publicint login(String name){

        System.out.println("请输入密码:");

        password = sc.next();

        if(password.equals(userMap.get(name))){

            System.out.println("登陆成功!");

            return1;

        }

        System.out.println("用户名或密码错误!");

        return0;

    }



    /*    *1.增加图书

    */publicvoid addBook(){

        try {

            intx=0;

            System.out.println("请输入图书编号:");

            bno = sc.nextInt();


            for(int i : bookMap.keySet()) {

                if(i==bno){

                    x=1;//如果已有图书,置为1,告诉用户不能添加                }

            }

            if(x==0){

                System.out.println("请输入书名:");

                bname = sc.next();

                System.out.println("请输入作者:");

                bauther = sc.next();

                System.out.println("请输入价格:");

                bprice = sc.nextDouble();

                bookMap.put(bno, new Library(bname,bauther,bprice));

                System.out.println("增加成功!新添图书的信息为:");

                System.out.println("编号:"+bno + " " + bookMap.get(bno));

            }elseif(x==1){

                System.out.println("已经存在编号为"+bno+"的书,请重新输入");

            }


        } catch (Exception e) {

            System.out.println("输入有误请重新输入!");

        }

        bno=0;//预防性措施    }


    /*    * 2.删除图书

    */publicvoid delBook(){

        System.out.println("请输入图书编号:");

        try {

            intx=0;

            bno=sc.nextInt();

            for(int i : bookMap.keySet()) {

                if(bno==i){

                    x=1;

                }

            }

            if(x==1){

                bookMap.remove(bno);

                System.out.println("删除成功!");

            }else{

                System.out.println("没有编号为"+bno+"的书");

            }

        } catch (Exception e) {

            System.out.println("输入有误请重新输入!");

        }

        bno=0;//预防性措施    }


    /*    * 3.修改图书信息

    */publicvoid modBook(){

        try {

            intx=0;

            System.out.println("请输入需要修改的图书编号:");

            bno = sc.nextInt();

            for(int i : bookMap.keySet()) {

                if(bno==i){

                    x=1;

                }

            }

            if(x==1){

                System.out.println("请输入修改后的书名:");

                bname = sc.next();

                System.out.println("请输入修改后的作者:");

                bauther = sc.next();

                System.out.println("请输入修改后的价格:");

                bprice = sc.nextDouble();

                bookMap.put(bno, new Library(bname,bauther,bprice));

                System.out.println("修改成功!修改后图书的信息为:");

                System.out.println("编号:"+bno + " " + bookMap.get(bno));

            }else{

                System.out.println("没有编号为"+bno+"的书");

            }

        } catch (Exception e) {

            System.out.println("输入有误请重新输入!");

        }

        bno=0;//预防性措施    }


    /*    * 4.查询图书

    */publicvoid selBook(){

        intx=0;

        try {

            System.out.println("请输入需要查询的图书编号:");

            bno=sc.nextInt();

            for(int i : bookMap.keySet()) {

                if(i==bno){

                    System.out.println(bookMap.get(i));

                    x=1;

                    break;

                }

            }

            if(x==0){

                System.out.println("没有编号为"+bno+"的书");

            }

        } catch (Exception e) {

            System.out.println("输入有误请重新输入!");

        }

        bno=0;//预防性措施    }


    /*    * 5.显示所有可借阅的书

    */publicvoid showAllBook(){

        for(int i : bookMap.keySet()) {

            System.out.println(i +" "+ bookMap.get(i));

        }

    }


    /*    * 6.借书

    */publicvoid borBook(){

        try {

            intx=0;

            System.out.println("请输入需要借阅图书的编号:");

            bno=sc.nextInt();

            for(int i : bookMap.keySet()) {

                if(bno==i){

                    x=1;

                }

            }

            if(x==1){

                borBook.put(bno, bookMap.get(bno));//中介userBook.put(name, bookMap);//用户和借出去的书相关联bookMap.remove(bno);//把这本书从图书馆移除borBook.clear();//清除缓存,便于多用户借书}else{

                System.out.println("不存在"+bno+"的书,请重新输入");

            }

        } catch (Exception e) {

            System.out.println("输入有误请重新输入!");

        }

        bno=0;//预防性措施    }


    /*    * 7.查看已经借出去的书

    */publicvoid showBorBook(){

        for (String str : userBook.keySet()) {

            System.out.println(str);

            System.out.println("        " + userBook.get(str));

        }

    }


    /*    * 8.还书

    */publicvoid huanBook(){

        try {

            System.out.println("请输入需要归还图书的编号:");

            bno=sc.nextInt();

            huanBook.put(bno, (Library) userBook.get(name).get(bno));//中介bookMap.put(bno, huanBook.get(bno));//向图书馆存书userBook.remove(name, userBook.get(name).get(bno));//将对应关系中的书删除huanBook.clear();//清除缓存}catch (Exception e) {

            System.out.println("输入有误请重新输入!");

        }

        bno=0;//预防性措施    }


    /*    * 显示操作菜单

    */publicvoid show(){

        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("7.查看已经借阅的图书");

        System.out.println("8.归还图书");

        System.out.println("0.返回上一级");

    }


    {//事先存几本书和一名用户bookMap.put(001,newLibrary("书1","作者1",12));

        bookMap.put(002,newLibrary("书2","作者2",15));

        bookMap.put(003,newLibrary("书3","作者3",17));

        bookMap.put(004,newLibrary("书4","作者4",19));

        userMap.put("aaa", "123");

    }


}

©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 211,743评论 6 492
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 90,296评论 3 385
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 157,285评论 0 348
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 56,485评论 1 283
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 65,581评论 6 386
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 49,821评论 1 290
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 38,960评论 3 408
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 37,719评论 0 266
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 44,186评论 1 303
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 36,516评论 2 327
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 38,650评论 1 340
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 34,329评论 4 330
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 39,936评论 3 313
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 30,757评论 0 21
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 31,991评论 1 266
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 46,370评论 2 360
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 43,527评论 2 349

推荐阅读更多精彩内容

  • 【程序1】 题目:古典问题:有一对兔子,从出生后第3个月起每个月都生一对兔子,小兔子长到第三个月后每个月又生一对兔...
    叶总韩阅读 5,128评论 0 41
  • 好久没有写东西,已经忘记情感赋予文字的使命。 一直在思考,是先成家再立业还是先立业再成家的问题。在这个科技高速发展...
    无你结局阅读 161评论 0 1
  • 木落雁度怒雪涛,称娖漕漼楚士蕘。青山隐隐暗秋色,赤水悠悠逆西折。 心事浩茫连广宇,于无声处听惊雷。 汉中百二秦军地...
    谁动了我的斯达舒阅读 321评论 0 3