版權(quán)說(shuō)明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡(jiǎn)介
今天再給大家分享一個(gè)小項(xiàng)目:MiNi圖書管理系統(tǒng)。用的是Java語(yǔ)言開發(fā)的,代碼不多,大概260行左右吧,系統(tǒng)是實(shí)現(xiàn)圖書的新增圖書、刪除圖書、借閱圖書、歸還圖書、查看圖書等簡(jiǎn)單的功能(后附源代碼)!首先展示一下運(yùn)行界面效果圖:運(yùn)行代碼后,會(huì)在控制臺(tái)顯示如下界面:然后讓用戶選擇,如果用戶不小心或者誤輸入了錯(cuò)誤的數(shù),會(huì)再次讓用戶進(jìn)行輸入。當(dāng)用戶輸入2后,可以查看圖書,會(huì)顯示已有的圖書:包括圖書書名、借閱狀態(tài)、借閱次數(shù)、借閱日期等信息。當(dāng)用戶輸入1后,可以新增圖書,再次讓用戶輸入新增的圖書名字,這里博主用mybook,效果如下:當(dāng)用戶輸入3后,可以借閱圖書。讓用戶再次輸入借閱的圖書名,如果輸入的名字沒(méi)在圖書館,則不可以借閱;如果在館,且狀態(tài)是已借出,也不能再次借閱;如果在館,且狀態(tài)是可借閱,則可以進(jìn)行借閱。當(dāng)用戶輸入4后,可以歸還圖書。再次讓用戶輸入歸還的圖書名,同理,如果圖書館找不到該名字,提示用戶不是本圖書館的書,不用歸還;如果找到該書的名字,且狀態(tài)是可借閱的,也不能歸還;如果找到該書,且狀態(tài)是已借出,則可以進(jìn)行圖書的歸還。同時(shí),還要讓用戶輸入歸還的日期,并對(duì)歸還的日期進(jìn)行判斷,如果日期小于借閱的日期,則提示用戶歸還日期必須大于借閱日期,讓用戶再次輸入,輸入成功后,則顯示歸還成功。當(dāng)用戶輸入5后,可以進(jìn)行刪除圖書的操作。如果該館找不到用戶輸入的書名,則提示用戶不是本圖書館的書,不用歸還;如果找到,且狀態(tài)是已借出,則不能歸還;如果找到該書,且書的狀態(tài)是可借閱的,則可以進(jìn)行刪除圖書的操作。當(dāng)用戶輸入6后,就退出系統(tǒng)。源代碼如下:packagecn.kgc.sg.MiTuSys;
importjava.util.Scanner;
publicclassMiNiBookMgrSys{publicstaticvoidmain(String[]args){Scannersc=newScanner(System.in);//初始化書本信息String[]bookNames=newString[6];int[]borrowDates=newint[6];int[]borrowCounts=newint[6];int[]states=newint[6];//初始化三本書bookNames[0]="安徒生童話";borrowDates[0]=15;borrowCounts[0]=16;states[0]=0;//0:可借閱1:已借出bookNames[1]="格林童話";borrowDates[1]=0;borrowCounts[1]=0;states[1]=1;//0:可借閱1:已借出bookNames[2]="Java開發(fā)";borrowDates[2]=0;borrowCounts[2]=0;states[2]=0;//0:可借閱1:已借出intnum=-1;//初始化用戶輸入的數(shù)字booleanflag=true;//true:不退出系統(tǒng)false:退出系統(tǒng)do{System.out.println("************歡迎使用MiNi圖書管理系統(tǒng)**********");System.out.println("\t\t\t\t\t1.新增圖書");System.out.println("\t\t\t\t\t2.查看圖書");System.out.println("\t\t\t\t\t3.借閱圖書");System.out.println("\t\t\t\t\t4.歸還圖書");System.out.println("\t\t\t\t\t5.刪除圖書");System.out.println("\t\t\t\t\t6.退出系統(tǒng)");System.out.print("\n請(qǐng)選擇:");intchoose=sc.nextInt();while(choose<0||choose>6){System.out.print("輸入有誤,重新輸入:");choose=sc.nextInt();}switch(choose){case1:System.out.println("************1.新增圖書**********");System.out.print("請(qǐng)輸入新增圖書的名字:");StringaddBook=sc.next();booleanisAdd=false;//false:不能添加圖書true:可以添加圖書//遍歷數(shù)組,查找新增圖書的位置for(inti=1;i<bookNames.length;i++){//數(shù)組沒(méi)滿,可以新增圖書if(bookNames[i]==null){isAdd=true;bookNames[i]=addBook;System.out.println("新增圖書成功?。?!");break;}else{isAdd=false;}}//循環(huán)遍歷輸出數(shù)組內(nèi)圖書信息for(inti=0;i<bookNames.length;i++){//如果為空,不輸出if(bookNames[i]!=null){Stringstate=(states[i]==0)?"可借閱":"已借出";//把借閱狀態(tài)的01變成易看的“可借閱已借出”StringborrowCount=borrowCounts[i]+"次";StringborrowDate=borrowDates[i]+"日";System.out.println((i+1)+"\t\t"+bookNames[i]+"\t\t"+state+"\t\t"+borrowCount+"\t\t"+borrowDate);}}if(!isAdd){System.out.println("對(duì)不起,圖書已滿,不能新增!");break;}break;case2:System.out.println("2.查看圖書");System.out.println("序號(hào)"+"\t\t\t"+"書名"+"\t\t\t"+"借閱狀態(tài)"+"\t\t"+"借閱次數(shù)"+"\t\t"+"借閱日期");//循環(huán)遍歷輸出數(shù)組內(nèi)圖書信息for(inti=0;i<bookNames.length;i++){//如果為空,不輸出if(bookNames[i]!=null){Stringstate=(states[i]==0)?"可借閱":"已借出";//把借閱狀態(tài)的01變成易看的“可借閱已借出”StringborrowCount=borrowCounts[i]+"次";StringborrowDate=borrowDates[i]+"日";System.out.println((i+1)+"\t\t"+bookNames[i]+"\t\t"+state+"\t\t"+borrowCount+"\t\t"+borrowDate);}}break;case3:System.out.println("3.借閱圖書");System.out.print("請(qǐng)輸入您要借閱圖書的名字:");StringborrowName=sc.next();booleanisBorrow=false;//true:能借閱for(inti=0;i<bookNames.length;i++){//如果可以找到書,且書的狀態(tài)是可借閱,就可以借閱if(bookNames[i]!=null&&bookNames[i].equals(borrowName)&&states[i]==0){isBorrow=true;//輸入借閱日期System.out.print("請(qǐng)輸入借閱的日期:");intborrowRiQi=sc.nextInt();//判斷輸入的借閱日期是否合法while(borrowRiQi<1||borrowRiQi>31){System.out.print("輸入有誤,重新輸入:");borrowRiQi=sc.nextInt();}System.out.println("借閱成功!??!");//更改借閱日期borrowDates[i]=borrowRiQi;//更新借閱狀態(tài)states[i]=1;//更新借閱次數(shù)borrowCounts[i]++;break;}elseif(bookNames[i]!=null&&bookNames[i].equals(borrowName)&&states[i]==1){//如果可以找到書,且書的狀態(tài)是已借出,不能借閱isBorrow=true;System.out.println("書已經(jīng)借出,不能重復(fù)借閱!");break;//if(bookNames[i]==null)//if(!bookNames[i].equals(borrowName))}/*elseif(bookNames[i]==null){isBorrow=false;break;}*/}if(!isBorrow){//bookNames[i]==null說(shuō)明找不到書System.out.println("抱歉,找不到該書?。。?);break;}break;case4:System.out.println("4.歸還圖書");System.out.print("請(qǐng)輸入您要?dú)w還圖書的名字:");StringreturnName=sc.next();booleanisReturn=false;//true:能歸還for(inti=0;i<bookNames.length;i++){//if(!bookNames[i].equals(borrowName))/*if(bookNames[i]==null){//找不到書isReturn=false;break;}else*///如果可以找到書,且書的狀態(tài)是已借出,就可以歸還if(bookNames[i]!=null&&bookNames[i].equals(returnName)&&states[i]==1){isReturn=true;//輸入歸還日期System.out.print("請(qǐng)輸入歸還的日期:");intreturnRiQi=sc.nextInt();//判斷輸入的歸還日期是否合法while(returnRiQi<1||returnRiQi>31||returnRiQi<borrowDates[i]){//輸入的歸還日期不合法if(returnRiQi<1||returnRiQi>31){System.out.print("輸入的日期有誤,重新輸入:");returnRiQi=sc.nextInt();}elseif(returnRiQi<borrowDates[i]){System.out.print("歸還日期必須大于借閱日期,從新輸入:");returnRiQi=sc.nextInt();}}System.out.println("歸還成功!?。?);//更新借閱狀態(tài)states[i]=0;/*//更新借閱次數(shù)borrowCounts[i]++;*/break;}elseif(bookNames[i]!=null&&bookNames[i].equals(returnName)&&states[i]==0){//如果可以找到書,且書的狀態(tài)是可借閱,不能歸還isReturn=true;System.out.println("書可借閱,不能歸還!");break;}}if(!isReturn){//bookNames[i]==null.說(shuō)明找不到書,不可以歸還System.out.println("抱歉,不是本圖書館的書,不用歸還?。?!");break;}break;case5:System.out.println("5.刪除圖書");System.out.print("請(qǐng)輸入您要?jiǎng)h除圖書的名字:");StringdeleteName=sc.next();booleanisDelete=false;//true:能刪false:不能刪for(inti=0;i<bookNames.length;i++){/*//if(!bookNames[i].equals(borrowName))if(bookNames[i]==null){//找不到書,不能刪isDelete=false;break;}else*/if(bookNames[i]!=null&&bookNames[i].equals(deleteName)&&states[i]==1){//如果可以找到書,且書的狀態(tài)是已借出,不能刪除isDelete=true;System.out.println("書已借出,不能刪除!");break;}elseif(bookNames[i]!=null&&bookNames[i].equals(deleteName)&&states[i]==0){//如果可以找到書,且書的狀態(tài)是可借閱,可以刪除isDelete=true;//初始化呢index,用來(lái)記錄下需要?jiǎng)h除的位置intindex=-1;if(bookNames[i].equals(deleteName)){index=i;}//判斷index是-1還是iif(index!=-1){//index不是-1,說(shuō)明找到了圖書,可以刪除for(i=index;i<bookNames.length-1;i++){//從下標(biāo)index1開始,后面的整體向前移一位bookNames[i]=bookNames[i+1];borrowDates[i]=borrowDates[i+1];borrowCounts[i]=borrowCounts[i+1];states[i]=states[i+1];
溫馨提示
- 1. 本站所有資源如無(wú)特殊說(shuō)明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁(yè)內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒(méi)有圖紙預(yù)覽就沒(méi)有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫(kù)網(wǎng)僅提供信息存儲(chǔ)空間,僅對(duì)用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對(duì)任何下載內(nèi)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請(qǐng)與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對(duì)自己和他人造成任何形式的傷害或損失。
最新文檔
- 2025年平?jīng)雎殬I(yè)技術(shù)學(xué)院高職單招語(yǔ)文2018-2024歷年參考題庫(kù)頻考點(diǎn)含答案解析
- 2025年山西國(guó)際商務(wù)職業(yè)學(xué)院高職單招高職單招英語(yǔ)2016-2024歷年頻考點(diǎn)試題含答案解析
- 2025年山東醫(yī)學(xué)高等??茖W(xué)校高職單招職業(yè)技能測(cè)試近5年常考版參考題庫(kù)含答案解析
- 2025年宿遷澤達(dá)職業(yè)技術(shù)學(xué)院高職單招高職單招英語(yǔ)2016-2024歷年頻考點(diǎn)試題含答案解析
- 2025年塔里木職業(yè)技術(shù)學(xué)院高職單招高職單招英語(yǔ)2016-2024歷年頻考點(diǎn)試題含答案解析
- 2025年四川幼兒師范高等??茖W(xué)校高職單招職業(yè)技能測(cè)試近5年??及鎱⒖碱}庫(kù)含答案解析
- 2025年合肥共達(dá)職業(yè)技術(shù)學(xué)院高職單招高職單招英語(yǔ)2016-2024歷年頻考點(diǎn)試題含答案解析
- 2025年南通職業(yè)大學(xué)高職單招職業(yè)技能測(cè)試近5年常考版參考題庫(kù)含答案解析
- 2025至2031年中國(guó)電驅(qū)動(dòng)高壓清洗機(jī)行業(yè)投資前景及策略咨詢研究報(bào)告
- 2025至2031年中國(guó)熱壓爐石墨模行業(yè)投資前景及策略咨詢研究報(bào)告
- 2024年度-美團(tuán)新騎手入門培訓(xùn)
- 駕照體檢表完整版本
- 高一數(shù)學(xué)寒假講義(新人教A專用)【復(fù)習(xí)】第05講 三角函數(shù)(學(xué)生卷)
- 農(nóng)村高中思想政治課時(shí)政教育研究的中期報(bào)告
- 醫(yī)院定崗定編方案文檔
- 4-熔化焊與熱切割作業(yè)基礎(chǔ)知識(shí)(一)
- 2023年200MW儲(chǔ)能電站儲(chǔ)能系統(tǒng)設(shè)計(jì)方案
- 個(gè)人安全與社會(huì)責(zé)任的基本知識(shí)概述
- 簡(jiǎn)易勞務(wù)合同電子版
- 明代文學(xué)緒論
- 體育賽事的策劃、組織與實(shí)施 體育賽事利益相關(guān)者
評(píng)論
0/150
提交評(píng)論