簡(jiǎn)單的圖書(shū)管理系統(tǒng)

自寫(xiě)的極其簡(jiǎn)陋的圖書(shū)管理系統(tǒng),代碼不太規(guī)范,在學(xué)習(xí)中慢慢改

現(xiàn)在還存在兩個(gè)問(wèn)題:

1.還書(shū)還的是null

2.借書(shū)傳的不是書(shū)的編號(hào)

在周末之前解決

如有疑問(wèn)或建議歡迎留言

簡(jiǎn)書(shū)的代碼排版實(shí)在有問(wèn)題,如果有需要,可通過(guò)我的博客園的代碼進(jìn)行使用:

博客園譚二皮_簡(jiǎn)單的圖書(shū)管理系統(tǒng)


LibMain.java

import java.util.Scanner;/* *? * 圖書(shū)管理系統(tǒng)

* 1.登錄和注冊(cè)

* 2.登錄成功后

*? ? ? ? a.顯示所有圖書(shū)列表 添加 查詢? 修? 刪除

*? ? ? ? b.借閱圖書(shū)? 需要綁定借閱人賬號(hào)

*? ? ? ? c.查看已借閱圖書(shū)列表? 歸還圖書(shū)

* 3.退出當(dāng)前登錄的賬號(hào)

*/publicclass LibMain {

? ? publicstaticvoid main(String[] args) {

? ? ? ? /*? ? ? ? * 預(yù)定義

? ? ? ? */? ? ? ? Libmanage lib =new Libmanage();

? ? ? ? Scanner sc =new Scanner(System.in);

? ? ? ? //將會(huì)接收op1方法的返回值,是否進(jìn)行下一階段intOp1=0;

? ? ? ? //用于第一個(gè)while循環(huán)————登錄注冊(cè)操作intflag1=1;

? ? ? ? //用于第二個(gè)while循環(huán)————是否對(duì)圖書(shū)進(jìn)行操作intflag2=1;

? ? ? ? //將用于接收對(duì)圖書(shū)的操作intOp2=0;

? ? ? ? /*? ? ? ? * 開(kāi)始進(jìn)入圖書(shū)館

? ? ? ? */? ? ? ? System.out.println("歡迎來(lái)到網(wǎng)絡(luò)圖書(shū)館!");

? ? ? ? while(flag1==1){

? ? ? ? ? ? System.out.println("請(qǐng)輸入需要的操作:1.登錄2.注冊(cè)0.退出系統(tǒng)");

? ? ? ? ? ? Op1 = lib.op1();//在op1方法中登錄成功,就會(huì)返回1,進(jìn)入圖書(shū)操作界面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;

? ? ? ? ? ? ? ? ? ? }

? ? ? ? ? ? ? ? }//第二個(gè)while的大括號(hào)? ? ? ? ? ? }

? ? ? ? }//第一個(gè)while循環(huán)的大括號(hào)? ? }

}


Library.java

/** * 圖書(shū)信息

* @author y

*

*/publicclass Library {

? ? //書(shū)名private String bookName;

? ? //作者private String bookAuther;

? ? //價(jià)格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;

? ? }

? ? /*? ? * 構(gòu)造方法

? ? */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"書(shū)名:" + bookName + ",作者: " + bookAuther + ", 價(jià)格:" + bookPrice;

? ? }




}


Libmanage.java

package com.inclass.test;/** * 圖書(shū)和用戶的操作

* @author y

*

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

? ? Scanner sc =new Scanner(System.in);

? ? //將會(huì)接收登錄注冊(cè)指令intop1=0;

? ? //成員變量————用戶TreeMap userMap =newTreeMap<>();

? ? //成員變量————圖書(shū)TreeMap bookMap =newTreeMap<>();

? ? //圖書(shū)編號(hào)intbno=0;

? ? //成員變量————用戶和借書(shū)的關(guān)系TreeMap borBook =newTreeMap<>();//將會(huì)被借出去的書(shū)存在這個(gè)treemap里,然后再與用戶關(guān)聯(lián)TreeMap huanBook =newTreeMap<>();//要還的書(shū)的中介T(mén)reeMap userBook =newTreeMap<>();


? ? //用于注冊(cè)或登錄的用戶名和密碼String name=null,password=null;

? ? //用于圖書(shū)操作的屬性定義String bname,bauther;//書(shū)名,書(shū)作者doublebprice;//書(shū)價(jià)格/*? ? * 登錄注冊(cè)選擇

? ? */publicint op1(){

? ? ? ? intfh=0;

? ? ? ? try{

? ? ? ? ? ? op1 = sc.nextInt();//接收登錄注冊(cè)指令if(op1==1){

? ? ? ? ? ? ? ? inti=1;

? ? ? ? ? ? ? ? System.out.println("請(qǐng)輸入用戶名:");

? ? ? ? ? ? ? ? name = sc.next();

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

? ? ? ? ? ? ? ? ? ? if(str.equals(name)){

? ? ? ? ? ? ? ? ? ? ? ? fh=login(str);//登錄————登錄成功會(huì)返回1,失敗返回0i=0;//如果沒(méi)有該用戶,那就會(huì)進(jìn)行注冊(cè),有,置為0,不注冊(cè)break;

? ? ? ? ? ? ? ? ? ? }

? ? ? ? ? ? ? ? }

? ? ? ? ? ? ? ? if(i==1){

? ? ? ? ? ? ? ? ? ? System.out.println("沒(méi)有"+name+"用戶,請(qǐng)進(jìn)行注冊(cè)!");

? ? ? ? ? ? ? ? ? ? register();//跳到注冊(cè)界面? ? ? ? ? ? ? ? }


? ? ? ? ? ? }elseif(op1==2){

? ? ? ? ? ? ? ? register();//注冊(cè)}elseif(op1==0){

? ? ? ? ? ? ? ? System.out.println("退出系統(tǒng)!...");

? ? ? ? ? ? ? ? System.exit(0);

? ? ? ? ? ? }else{

? ? ? ? ? ? ? ? System.out.println("輸入有誤請(qǐng)重新輸入");

? ? ? ? ? ? }

? ? ? ? }catch(Exception e){

? ? ? ? ? ? System.out.println("輸入有誤請(qǐng)重新輸入");

? ? ? ? ? ? sc.next();//出現(xiàn)異常后,就不斷進(jìn)行死循環(huán)的解決辦法(可想想別的解決辦法)? ? ? ? }

? ? ? ? return fh;

? ? }


? ? /*? ? * 用戶注冊(cè)

? ? *? ? ->對(duì)密碼沒(méi)有要求

? ? */publicint register(){

? ? ? ? System.out.println("請(qǐng)輸入用戶名:");

? ? ? ? name = sc.next();

? ? ? ? System.out.println("請(qǐng)輸入密碼:");

? ? ? ? password = sc.next();

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

? ? ? ? ? ? if(str.equals(name)){

? ? ? ? ? ? ? ? System.out.println("已經(jīng)存在該用戶!請(qǐng)重新注冊(cè)!");

? ? ? ? ? ? ? ? return0;

? ? ? ? ? ? }

? ? ? ? }

? ? ? ? userMap.put(name, password);

? ? ? ? System.out.println("注冊(cè)成功!");

? ? ? ? return1;

? ? }


? ? /*? ? * 用戶登錄

? ? *? ? ->先判斷用戶名是否相同,然后再判斷密碼是否相同。沒(méi)有符合條件的就返回false,否則返回true

? ? */publicint login(String name){

? ? ? ? System.out.println("請(qǐng)輸入密碼:");

? ? ? ? password = sc.next();

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

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

? ? ? ? ? ? return1;

? ? ? ? }

? ? ? ? System.out.println("用戶名或密碼錯(cuò)誤!");

? ? ? ? return0;

? ? }



? ? /*? ? *1.增加圖書(shū)

? ? */publicvoid addBook(){

? ? ? ? try {

? ? ? ? ? ? intx=0;

? ? ? ? ? ? System.out.println("請(qǐng)輸入圖書(shū)編號(hào):");

? ? ? ? ? ? bno = sc.nextInt();


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

? ? ? ? ? ? ? ? if(i==bno){

? ? ? ? ? ? ? ? ? ? x=1;//如果已有圖書(shū),置為1,告訴用戶不能添加? ? ? ? ? ? ? ? }

? ? ? ? ? ? }

? ? ? ? ? ? if(x==0){

? ? ? ? ? ? ? ? System.out.println("請(qǐng)輸入書(shū)名:");

? ? ? ? ? ? ? ? bname = sc.next();

? ? ? ? ? ? ? ? System.out.println("請(qǐng)輸入作者:");

? ? ? ? ? ? ? ? bauther = sc.next();

? ? ? ? ? ? ? ? System.out.println("請(qǐng)輸入價(jià)格:");

? ? ? ? ? ? ? ? bprice = sc.nextDouble();

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

? ? ? ? ? ? ? ? System.out.println("增加成功!新添圖書(shū)的信息為:");

? ? ? ? ? ? ? ? System.out.println("編號(hào):"+bno + " " + bookMap.get(bno));

? ? ? ? ? ? }elseif(x==1){

? ? ? ? ? ? ? ? System.out.println("已經(jīng)存在編號(hào)為"+bno+"的書(shū),請(qǐng)重新輸入");

? ? ? ? ? ? }


? ? ? ? } catch (Exception e) {

? ? ? ? ? ? System.out.println("輸入有誤請(qǐng)重新輸入!");

? ? ? ? }

? ? ? ? bno=0;//預(yù)防性措施? ? }


? ? /*? ? * 2.刪除圖書(shū)

? ? */publicvoid delBook(){

? ? ? ? System.out.println("請(qǐng)輸入圖書(shū)編號(hào):");

? ? ? ? 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("沒(méi)有編號(hào)為"+bno+"的書(shū)");

? ? ? ? ? ? }

? ? ? ? } catch (Exception e) {

? ? ? ? ? ? System.out.println("輸入有誤請(qǐng)重新輸入!");

? ? ? ? }

? ? ? ? bno=0;//預(yù)防性措施? ? }


? ? /*? ? * 3.修改圖書(shū)信息

? ? */publicvoid modBook(){

? ? ? ? try {

? ? ? ? ? ? intx=0;

? ? ? ? ? ? System.out.println("請(qǐng)輸入需要修改的圖書(shū)編號(hào):");

? ? ? ? ? ? bno = sc.nextInt();

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

? ? ? ? ? ? ? ? if(bno==i){

? ? ? ? ? ? ? ? ? ? x=1;

? ? ? ? ? ? ? ? }

? ? ? ? ? ? }

? ? ? ? ? ? if(x==1){

? ? ? ? ? ? ? ? System.out.println("請(qǐng)輸入修改后的書(shū)名:");

? ? ? ? ? ? ? ? bname = sc.next();

? ? ? ? ? ? ? ? System.out.println("請(qǐng)輸入修改后的作者:");

? ? ? ? ? ? ? ? bauther = sc.next();

? ? ? ? ? ? ? ? System.out.println("請(qǐng)輸入修改后的價(jià)格:");

? ? ? ? ? ? ? ? bprice = sc.nextDouble();

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

? ? ? ? ? ? ? ? System.out.println("修改成功!修改后圖書(shū)的信息為:");

? ? ? ? ? ? ? ? System.out.println("編號(hào):"+bno + " " + bookMap.get(bno));

? ? ? ? ? ? }else{

? ? ? ? ? ? ? ? System.out.println("沒(méi)有編號(hào)為"+bno+"的書(shū)");

? ? ? ? ? ? }

? ? ? ? } catch (Exception e) {

? ? ? ? ? ? System.out.println("輸入有誤請(qǐng)重新輸入!");

? ? ? ? }

? ? ? ? bno=0;//預(yù)防性措施? ? }


? ? /*? ? * 4.查詢圖書(shū)

? ? */publicvoid selBook(){

? ? ? ? intx=0;

? ? ? ? try {

? ? ? ? ? ? System.out.println("請(qǐng)輸入需要查詢的圖書(shū)編號(hào):");

? ? ? ? ? ? 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("沒(méi)有編號(hào)為"+bno+"的書(shū)");

? ? ? ? ? ? }

? ? ? ? } catch (Exception e) {

? ? ? ? ? ? System.out.println("輸入有誤請(qǐng)重新輸入!");

? ? ? ? }

? ? ? ? bno=0;//預(yù)防性措施? ? }


? ? /*? ? * 5.顯示所有可借閱的書(shū)

? ? */publicvoid showAllBook(){

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

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

? ? ? ? }

? ? }


? ? /*? ? * 6.借書(shū)

? ? */publicvoid borBook(){

? ? ? ? try {

? ? ? ? ? ? intx=0;

? ? ? ? ? ? System.out.println("請(qǐng)輸入需要借閱圖書(shū)的編號(hào):");

? ? ? ? ? ? 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);//用戶和借出去的書(shū)相關(guān)聯(lián)bookMap.remove(bno);//把這本書(shū)從圖書(shū)館移除borBook.clear();//清除緩存,便于多用戶借書(shū)}else{

? ? ? ? ? ? ? ? System.out.println("不存在"+bno+"的書(shū),請(qǐng)重新輸入");

? ? ? ? ? ? }

? ? ? ? } catch (Exception e) {

? ? ? ? ? ? System.out.println("輸入有誤請(qǐng)重新輸入!");

? ? ? ? }

? ? ? ? bno=0;//預(yù)防性措施? ? }


? ? /*? ? * 7.查看已經(jīng)借出去的書(shū)

? ? */publicvoid showBorBook(){

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

? ? ? ? ? ? System.out.println(str);

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

? ? ? ? }

? ? }


? ? /*? ? * 8.還書(shū)

? ? */publicvoid huanBook(){

? ? ? ? try {

? ? ? ? ? ? System.out.println("請(qǐng)輸入需要?dú)w還圖書(shū)的編號(hào):");

? ? ? ? ? ? bno=sc.nextInt();

? ? ? ? ? ? huanBook.put(bno, (Library) userBook.get(name).get(bno));//中介bookMap.put(bno, huanBook.get(bno));//向圖書(shū)館存書(shū)userBook.remove(name, userBook.get(name).get(bno));//將對(duì)應(yīng)關(guān)系中的書(shū)刪除huanBook.clear();//清除緩存}catch (Exception e) {

? ? ? ? ? ? System.out.println("輸入有誤請(qǐng)重新輸入!");

? ? ? ? }

? ? ? ? bno=0;//預(yù)防性措施? ? }


? ? /*? ? * 顯示操作菜單

? ? */publicvoid show(){

? ? ? ? System.out.println("請(qǐng)輸入需要進(jìn)行的操作:");

? ? ? ? System.out.println("1.增加圖書(shū)");

? ? ? ? System.out.println("2.刪除圖書(shū)");

? ? ? ? System.out.println("3.修改圖書(shū)");

? ? ? ? System.out.println("4.查詢圖書(shū)信息");

? ? ? ? System.out.println("5.顯示可借閱圖書(shū)");

? ? ? ? System.out.println("6.借閱圖書(shū)");

? ? ? ? System.out.println("7.查看已經(jīng)借閱的圖書(shū)");

? ? ? ? System.out.println("8.歸還圖書(shū)");

? ? ? ? System.out.println("0.返回上一級(jí)");

? ? }


? ? {//事先存幾本書(shū)和一名用戶bookMap.put(001,newLibrary("書(shū)1","作者1",12));

? ? ? ? bookMap.put(002,newLibrary("書(shū)2","作者2",15));

? ? ? ? bookMap.put(003,newLibrary("書(shū)3","作者3",17));

? ? ? ? bookMap.put(004,newLibrary("書(shū)4","作者4",19));

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

? ? }


}

?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時(shí)請(qǐng)結(jié)合常識(shí)與多方信息審慎甄別。
平臺(tái)聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點(diǎn),簡(jiǎn)書(shū)系信息發(fā)布平臺(tái),僅提供信息存儲(chǔ)服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

  • 【程序1】 題目:古典問(wèn)題:有一對(duì)兔子,從出生后第3個(gè)月起每個(gè)月都生一對(duì)兔子,小兔子長(zhǎng)到第三個(gè)月后每個(gè)月又生一對(duì)兔...
    葉總韓閱讀 5,224評(píng)論 0 41
  • 好久沒(méi)有寫(xiě)東西,已經(jīng)忘記情感賦予文字的使命。 一直在思考,是先成家再立業(yè)還是先立業(yè)再成家的問(wèn)題。在這個(gè)科技高速發(fā)展...
    無(wú)你結(jié)局閱讀 198評(píng)論 0 1
  • 木落雁度怒雪濤,稱娖漕漼楚士蕘。青山隱隱暗秋色,赤水悠悠逆西折。 心事浩茫連廣宇,于無(wú)聲處聽(tīng)驚雷。 漢中百二秦軍地...
    誰(shuí)動(dòng)了我的斯達(dá)舒閱讀 370評(píng)論 0 3

友情鏈接更多精彩內(nèi)容