




版權(quán)說(shuō)明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡(jiǎn)介
第Java快速實(shí)現(xiàn)圖書(shū)管理基本功能目錄前言主函數(shù)書(shū)的創(chuàng)建對(duì)用戶的操作對(duì)書(shū)的操作
前言
今天的內(nèi)容主要是利用前面所學(xué)的知識(shí)點(diǎn):類,抽象類,封裝,繼承,多態(tài),接口等進(jìn)行的一個(gè)簡(jiǎn)單的代碼練習(xí)。
主要要求:
1、用戶登錄
2、管理端
查找圖書(shū)新增圖書(shū)刪減圖書(shū)顯示圖書(shū)列表退出系統(tǒng)
3、用戶端
查找圖書(shū)借閱圖書(shū)歸還圖書(shū)退出系統(tǒng)
我們可以將以上內(nèi)容分為對(duì)書(shū)的創(chuàng)建初始化,對(duì)用戶的操作,對(duì)書(shū)的操作。
主函數(shù)
Main:(對(duì)所有流程進(jìn)行整合)
importbook.BookList;
importUser.NormalUser;
importUser.AdminUser;
importUser.user;
importjava.util.Scanner;
publicclassMain{
publicstaticuserlogin(){
System.out.print("請(qǐng)輸入你的姓名:");
Scannerscanner=newScanner(System.in);
Stringname=scanner.nextLine();
System.out.println("請(qǐng)選擇你的身份:1-管理員0-普通用戶");
intchoice=scanner.nextInt();
if(choice==1){
returnnewAdminUser(name);
}else{
returnnewNormalUser(name);
publicstaticvoidmain(String[]args){
BookListbookList=newBookList();
userus=login();//向上轉(zhuǎn)型
while(true){
intchoice=us.menu();//多態(tài)綁定
us.doWork(choice,bookList);
}
書(shū)的創(chuàng)建
Book:
packagebook;
//創(chuàng)建圖書(shū)
publicclassBook{
privateStringname;//書(shū)名
privateStringauthor;//書(shū)的作者
privateStringtype;//書(shū)的類型
privateintprice;//書(shū)的價(jià)格
booleanisBorrowed;//書(shū)是否被借出
//在這里我們就不對(duì)isBorrowed進(jìn)行構(gòu)造,在最后打印的時(shí)候?qū)λM(jìn)行判斷就好
publicBook(Stringname,Stringauthor,Stringtype,intprice){
=name;
this.author=author;
this.type=type;
this.price=price;
publicStringgetName(){
returnname;
publicvoidsetName(Stringname){
=name;
publicStringgetAuthor(){
returnauthor;
publicvoidsetAuthor(Stringauthor){
this.author=author;
publicStringgetType(){
returntype;
publicvoidsetType(Stringtype){
this.type=type;
publicintgetPrice(){
returnprice;
publicvoidsetPrice(intprice){
this.price=price;
publicbooleanisBorrowed(){
returnisBorrowed;
publicvoidsetBorrowed(booleanborrowed){
isBorrowed=borrowed;
@Override
publicStringtoString(){
return"Book{"+
"name='"+name+'\''+
",author='"+author+'''+
",type='"+type+'\''+
",price="+price+
((isBorrowed==true)"已被借出":"未被借出")+
'}';
}
BookList:
packagebook;
//創(chuàng)建書(shū)架
publicclassBookList{
privateBook[]books=newBook[10];//創(chuàng)建一個(gè)數(shù)組當(dāng)書(shū)架放書(shū),假設(shè)一共可以放10本
publicintusedSize;//書(shū)架上有效放書(shū)數(shù)
publicBookList(){//假設(shè)一開(kāi)始書(shū)架上就放了三本書(shū)
books[0]=newBook("紅樓夢(mèng)","曹雪芹","文學(xué)",55);
books[1]=newBook("西游記","吳承恩","文學(xué)",65);
books[2]=newBook("水滸傳","施耐庵","文學(xué)",23);
usedSize=3;
publicintgetUsedSize(){
returnusedSize;
publicvoidsetUsedSize(intusedSize){
this.usedSize=usedSize;
//獲取一本書(shū)的位置
publicBookgetpos(intpos){
returnthis.books[pos];
//在下標(biāo)為pos的位置上放一本書(shū)(添加)
publicvoidsetBook(intpos,Bookbook){
this.books[pos]=book;
}
對(duì)用戶的操作
創(chuàng)建用戶user類:
packageUser;
importbook.BookList;
importoperation.IOperation;
publicabstractclassuser{
protectedStringname;
protectedIOperation[]iOperations;//創(chuàng)建操作類數(shù)組,通過(guò)返回的數(shù)字用于對(duì)書(shū)的操作
publicuser(Stringname){
=name;
publicabstractintmenu();//用于動(dòng)態(tài)綁定
publicvoiddoWork(intchoice,BookListbookList){
iOperations[choice].work(bookList);
}
創(chuàng)建管理員用戶類AdminUser,是user的子類.
packageUser;
importoperation.*;
importjava.util.Scanner;
publicclassAdminUserextendsuser{
publicAdminUser(Stringname){
super(name);
this.iOperations=newIOperation[]{//初始化數(shù)組,將菜單上的數(shù)字與對(duì)應(yīng)的操作放好
newExitOperation(),
newFindOperation(),
newAddOperation(),
newDelOperation(),
newDisplayOperation()
publicintmenu(){
System.out.println("========管理員的菜單========");
System.out.println("歡迎"++"來(lái)到圖書(shū)館");
System.out.println("1.查找圖書(shū)");
System.out.println("2.新增圖書(shū)");
System.out.println("3.刪減圖書(shū)");
System.out.println("4.顯示圖書(shū)");
System.out.println("0.查退出系統(tǒng)");
System.out.println("===========================");
System.out.print("請(qǐng)選擇你要的操作:");
Scannerscanner=newScanner(System.in);
intchoice=scanner.nextInt();
returnchoice;//返回選擇的數(shù)字
}
創(chuàng)建普通用戶類NormalUser,是user的子類.
packageUser;
importoperation.*;
importjava.util.Scanner;
publicclassNormalUserextendsuser{
publicNormalUser(Stringname){
super(name);
this.iOperations=newIOperation[]{
newExitOperation(),
newFindOperation(),
newBorrowOperation(),
newReturnOperation()
publicintmenu(){
System.out.println("========普通用戶的菜單========");
System.out.println("歡迎"++"來(lái)到圖書(shū)館");
System.out.println("1.查找圖書(shū)");
System.out.println("2.借閱圖書(shū)");
System.out.println("3.歸還圖書(shū)");
System.out.println("0.退出系統(tǒng)");
System.out.println("============================");
System.out.print("請(qǐng)選擇你要的操作:");
Scannerscanner=newScanner(System.in);
intchoice=scanner.nextInt();
returnchoice;
}
對(duì)書(shū)的操作
創(chuàng)建接口IOperation:
packageoperation;
importbook.BookList;
importjava.util.Scanner;
publicinterfaceIOperation{
Scannerscanner=newScanner(System.in);
voidwork(BookListbookList);
}
創(chuàng)建增加圖書(shū)類AddOperation,繼承接口IOperation
packageoperation;
importbook.Book;
importbook.BookList;
importjava.util.Scanner;
publicclassAddOperationimplementsIOperation{
publicvoidwork(BookListbookList){
System.out.println("新增圖書(shū)!");
System.out.println("請(qǐng)輸入圖書(shū)的名字1請(qǐng)輸入圖書(shū)的作者2請(qǐng)輸入圖書(shū)的類型3請(qǐng)輸入圖書(shū)的價(jià)格4新增圖書(shū)成功");
}
創(chuàng)建刪減圖書(shū)類DelOperation,繼承接口IOperation
packageoperation;
importbook.Book;
importbook.BookList;
publicclassDelOperationimplementsIOperation{
publicvoidwork(BookListbookList){
System.out.println("刪減圖書(shū)");
System.out.println("請(qǐng)輸入要?jiǎng)h減圖書(shū)的名字:");
Stringname=scanner.nextLine();
intsize=bookList.getUsedSize();
intindex=0;
inti=0;
for(i=0;isize;i++){
Bookbook=bookList.getpos(i);
if(name.equals(book.getName())){
index=i;
break;
if(i=size){
System.out.println("沒(méi)有你要?jiǎng)h除的圖書(shū)");
//刪除就是要將j+1下標(biāo)的信息放進(jìn)j下標(biāo)里面信息去,這樣子j里面的信息就被刪除了
for(intj=index;jsize-1;j++){
Bookbook=bookList.getpos(j+1);//獲取j+1下標(biāo)放的書(shū)的信息給j下標(biāo)
bookList.setBook(j,book);
bookList.setBook(size,null);//刪除之后,把最后一個(gè)下標(biāo)信息置為null
bookList.setUsedSize(size-1);//下標(biāo)減1
System.out.println("刪除成功");
}
創(chuàng)建查找圖書(shū)類FindOperation,繼承接口IOperation
packageoperation;
importbook.BookList;
importbook.Book;
publicclassFindOperationimplementsIOperation{
publicvoidwork(BookListbookList){
System.out.println("查找圖書(shū)!");
System.out.println("請(qǐng)輸入要查找書(shū)的名字");
Stringname=scanner.nextLine();
intsize=bookList.getUsedSize();
for(inti=0;isize;i++){
Bookbook=bookList.getpos(i);//找到這本書(shū)的信息
if(name.equals(book.getName())){//比較名字是否相同
System.out.println("找到了這本書(shū),信息如下:");
System.out.println(book);
return;
System.out.println("沒(méi)有找到這本書(shū)!");
}
創(chuàng)建顯示圖書(shū)列表類DisplayOperation,繼承接口IOperation
packageoperation;
importbook.Book;
importbook.BookList;
publicclassDisplayOperationimplementsIOperation{
publicvoidwork(BookListbookList){
System.out.println("顯示圖書(shū)");
for(inti=0;ibookList.usedSize;i++){
Bookbook=bookList.getpos(i);
System.out.println(book);
}
創(chuàng)建借閱圖書(shū)列表類BorrowOperation,繼承接口IOperation
packageoperation;
importbook.Book;
importbook.BookList;
publicclassBorrowOperationimplementsIOperation{
publicvoidwork(BookListbookList){
System.out.println("借閱圖書(shū)");
System.out.println("請(qǐng)輸入你要借閱的圖書(shū)的名字");
Stringname=scanner.nextLine();
intsize=bookList.getUsedSize();
for(inti=0;isize;i++){
Bookbook=bookList.getpos(i);
if(name.equals(book.getName())){
book.setBorrowed(true);
System.out.println("借閱成功");
System.out.println(book);
return;
Syst
溫馨提示
- 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ì)自己和他人造成任何形式的傷害或損失。
最新文檔
- 煤礦環(huán)保集團(tuán)管理辦法
- 2024年中國(guó)工商銀行河南焦作支行春季校招筆試題帶答案
- 2024年中國(guó)工商銀行湖南張家界支行春季校招筆試題帶答案
- 作風(fēng)負(fù)面清單管理辦法
- 剩余制劑管理暫行辦法
- 江蘇槍支收繳管理辦法
- 2025年入團(tuán)考試試題及答案完美呈現(xiàn)
- 民政捐款賬戶管理辦法
- 檔案電子管理暫行辦法
- 居民預(yù)存電費(fèi)管理辦法
- ASTM B344-20 電加熱元件用拉制或軋制鎳鉻及鎳鉻鐵合金標(biāo)準(zhǔn)規(guī)范
- 《石油化工企業(yè)儲(chǔ)運(yùn)罐區(qū)罐頂油氣連通安全技術(shù)要求》
- (高清正版)JJF(浙)1080—2012明渠流量計(jì)在線校準(zhǔn)規(guī)范(電子版)
- 人教版七年級(jí)數(shù)學(xué)下冊(cè)計(jì)算類專項(xiàng)訓(xùn)練卷【含答案】
- 《希臘神話與西方文化》教學(xué)大綱
- 生活飲用水衛(wèi)生標(biāo)準(zhǔn)GB5749-2006
- 過(guò)渡金屬能級(jí)圖數(shù)據(jù)庫(kù)2
- GB-T-12137-2015-氣瓶氣密性試驗(yàn)方法
- 戰(zhàn)鍋策火鍋店項(xiàng)目策劃書(shū)
- (完整版)音標(biāo)練習(xí)題(元音部分)
- 英文形式發(fā)票樣本
評(píng)論
0/150
提交評(píng)論