自寫(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");
? ? }
}