成人在线亚洲_国产日韩视频一区二区三区_久久久国产精品_99国内精品久久久久久久

您的位置:首頁技術文章
文章詳情頁

java實現圖書管理系統

瀏覽:173日期:2022-08-15 08:15:51

本文通過實例為大家分享了java實現圖書管理系統的具體代碼,供大家參考,具體內容如下

一、背景介紹

通過一段時間java編程的學習,需要一個比較綜合的實例來進行編程的練習,是一個對前段時間所學內容進行總合提升的一個契機。選擇了圖書管理系統,會用到的javaSE知識有:變量、包、繼承、類、接口、循環結構等。是一個很綜合的典例。

二、核心需求

1.用戶可以登錄到系統上 分為 管理員、普通用戶兩種角色,這兩種不同的角色根據自己的身份可以實現不同的操作。

普通用戶

a)查閱某個書籍的信息b)借閱書籍c) 歸還書籍d)退出程序

管理員

a)查閱某個書籍的信息b)增加書籍c) 刪除書籍d)查看書籍列表e)退出程序

程序框架結構圖

java實現圖書管理系統

三、代碼以及詳解

1.User類

package booksystem;import booksystem.operation.IOperation;abstract public class User { protected String name;//定義書名 protected IOperation[] operations;//定義一個接口數組 public abstract int menu();//是用戶和管理員的父類,不進行實例化,所以定義為抽象方法 public void doOperation(int choice,BookList bookList){ IOperation operation=this.operations[choice-1]; operation.work(bookList); }}

User類是NormalUser類和Admin類的父類,由于不需要實例化,將menu()函數定義為了抽象函數。

2.NormalUser類

package booksystem;import booksystem.operation.*;import booksystem.operation.IOperation;import java.util.Scanner;public class NormalUser extends User { public NormalUser(String name) { this.name = name; this.operations = new IOperation[] { new FindOperation(), new BorrowOperation(), new ReturnOperation(), new ExitOperation(), }; } @Override public int menu(){ System.out.println('~~~~~~~~~~~~~~~~~~'); System.out.println('Hello'+name+'Welcome to use booksyetem'); System.out.println('1.查閱書籍信息'); System.out.println('2.借閱書籍'); System.out.println('3.歸還書籍'); System.out.println('4.退出系統'); System.out.println('~~~~~~~~~~~~~~~~~~'); System.out.println('請輸入您的選擇:'); Scanner scanner=new Scanner(System.in); int choice=scanner.nextInt(); return choice;//返回一個整型數 }}

NormalUser類針對與普通用戶而編寫,在代碼中定義了一個接口數組,在其中添加了普通用戶需要用到的查閱、借閱、歸還、退出系統的四大功能,在menu()函數中也按照同樣的順序,menu()函數是重寫父類的,所以為了提醒編譯器,在函數頭前加上了 @Override進行提示。

3.Admin類

package booksystem;import booksystem.operation.*;import java.util.Scanner;public class Admin extends User { public Admin(String name){ this.name=name; this.operations=new IOperation[]{ new FindOperation(), new AddOperation(), new DelOperation(), new DisplayOperation(), new ExitOperation(), }; } @Override public int menu(){ System.out.println('~~~~~~~~~~~~~~~~~~'); System.out.println('Hello'+name+'Welcome to use booksyetem'); System.out.println('1.查閱書籍信息'); System.out.println('2.新增書籍信息'); System.out.println('3.刪除書籍信息'); System.out.println('4.退出系統'); System.out.println('~~~~~~~~~~~~~~~~~~'); System.out.println('請輸入您的選擇:'); Scanner scanner=new Scanner(System.in); int choice=scanner.nextInt(); return choice; }}

Admin類編寫的思路和NormalUser類的思路相同,區別在于用戶界面的不同,對應要使用的功能也不同,分別是查閱、新增、刪除和退出系統。

4.Book類

package booksystem;public class Book { private String name; private String author; private double price; private String type; private boolean isBorrowed = false; public Book(String name, String author, double price, String type) { this.name = name; this.author = author; this.price = price; this.type = type; } @Override public String toString() { return 'Book{' + 'name=' + name + ’’’ + ',author' + author + ’’’ + ',price=' + price + ',type=’' + ’’’ + type + ’’’ + ',isBorrow=' + isBorrowed + ’}’; } public String getName() { return name; } public boolean isBorrowed(){ return isBorrowed; } public void setBorrowed(boolean borrowed){ isBorrowed=borrowed; }}

Book類針對書籍,定義了有關書的屬性,作者、價格、名字、類別,重寫了toString函數,以及對于書的幾個常用的操作功能函數,getName,以及判讀是否借出和定義書籍借出狀態的函數。

5.BookList類

package booksystem;public class BookList { private Book[] books=new Book[100];//定義一book數組 private int size=0; public BookList(){ books[0]=new Book('計算機網絡教程','郝文源',125,'專業書籍'); books[1]=new Book('盜墓筆記','南派三叔',150,'網絡小說'); books[2]=new Book('三體','劉慈欣',178,'科幻小說'); size = 3; }//給book數組中初始化一些書 public Book getBook(int index){ return books[index]; } public void setBook(int index,Book book) { books[index]=book; } public int getSize(){ return size; } public void setSize(int size){ this.size=size; }}

BookList類中定義了一個book數組,并給數組中初始化了一些書,定義了常用的功能函數

6.Main類

package booksystem;import java.util.Scanner;public class Main { public static void main(String[] args){ Object o=null; BookList booklist= new BookList(); User user=login();//上轉型,這里先調用了login()函數,返回一個Admin對象或NormalUser對象 while(true){ int choice=user.menu(); user.doOperation(choice,booklist); }//在進行退出系統的功能時,會一直進行循環,menu()函數最終會返回一個整型數,對應選擇操作中的一項 }public static User login() { System.out.println('請輸入您的姓名'); Scanner scanner = new Scanner(System.in); String name = scanner.next(); System.out.println('請輸入您的角色:1 管理員 0 普通用戶');//根據不同的選擇創建對應的對象 int who = scanner.nextInt(); if (who == 1) { return new Admin(name); } return new NormalUser(name);}}

主函數中主要實現了login()函數,根據登錄系統用戶的選擇,決定不同的身份,返回兩種對象中的一種,在while循環中,只要不進行exit功能,循環便會一直執行。

7.IOperation

package booksystem.operation;import booksystem.BookList;public interface IOperation { void work(BookList bookList);}

9.AddOperation

package booksystem.operation;import booksystem.Book;import booksystem.BookList;import java.util.Scanner;public class AddOperation implements IOperation { @Override public void work(BookList bookList){ Scanner scanner=new Scanner(System.in); System.out.println('新增書籍'); System.out.println('請輸入新書籍的名稱'); String name=scanner.next(); System.out.println('請輸入新書籍的作者'); String author=scanner.next(); System.out.println('請輸入新書籍的價格'); double price=scanner.nextDouble(); System.out.println('請輸入新書籍的類別'); String type=scanner.next(); Book newBook=new Book(name,author,price,type); int curSize=bookList.getSize(); bookList.setBook(curSize,newBook); bookList.setSize(curSize+1); System.out.println('新增書籍成功'); }}

10.BorrowOperation

package booksystem.operation;import booksystem.Book;import booksystem.BookList;import java.util.Scanner;public class BorrowOperation implements IOperation{ @Override public void work(BookList bookList) { Scanner scanner=new Scanner(System.in); System.out.println('借閱書籍'); System.out.println('請輸入要借閱的書籍的名稱'); String name=scanner.next(); int i=0; for(;i<bookList.getSize();i++) { if(bookList.getBook(i).getName().equals(name)){ break; } } if(i>=bookList.getSize()){ System.out.println('未找到指定的書籍,無法借閱!'); return; } Book currentBook=bookList.getBook(i); if(currentBook.isBorrowed()){ System.out.println('該書籍已經被借出!'); return; } bookList.getBook(i).setBorrowed(true); System.out.println('借書成功!'); }}

11.DelOperation

package booksystem.operation;import booksystem.BookList;import java.util.Scanner;public class DelOperation implements IOperation{ @Override public void work(BookList bookList) { Scanner scanner=new Scanner(System.in); System.out.println('刪除書籍'); System.out.println('請輸入要刪除的書籍的名稱'); String name=scanner.next(); int i=0; for(;i<bookList.getSize();i++) { if(bookList.getBook(i).getName().equals(name)){ break; } } if(i>=bookList.getSize()){ System.out.println('您輸入的書籍在+'+name+'在系統中沒有找到!刪除失??!'); return; } if(i==bookList.getSize()-1) { bookList.setSize(bookList.getSize()-1); System.out.println('刪除成功!'); return; } bookList.setBook(i,bookList.getBook(bookList.getSize()-1)); bookList.setSize(bookList.getSize()-1); System.out.println('刪除成功!'); }}

13.ExitOperation

package booksystem.operation;import booksystem.BookList;public class ExitOperation implements IOperation{ @Override public void work(BookList bookList) { System.out.println('退出程序'); System.exit(0); }}

14.FindOperation

package booksystem.operation;import booksystem.BookList;public class ExitOperation implements IOperation{ @Override public void work(BookList bookList) { System.out.println('退出程序'); System.exit(0); }}

15.ReturnOperation

package booksystem.operation;import booksystem.BookList;import booksystem.Book;import java.util.Scanner;public class ReturnOperation implements IOperation{@Override public void work(BookList bookList){ Scanner scanner=new Scanner(System.in); System.out.println('歸還書籍'); System.out.println('請輸入要還的書籍的名稱'); String name=scanner.next(); int i=0; for(;i<bookList.getSize();i++) { Book book=bookList.getBook(i); if(book.getName().equals(i)) { break; } } if(i>=bookList.getSize()) { System.out.println('書籍沒有找到,無法歸還'); return; } Book currentBook=bookList.getBook(i); if(!currentBook.isBorrowed()) { System.out.println('這本書沒有借出,無法歸還'); } currentBook.setBorrowed(false); System.out.println('歸還書籍成功'); return;}}四、編程截圖及測試圖

java實現圖書管理系統

包和類放置圖

java實現圖書管理系統

運行截圖

以上就是本文的全部內容,希望對大家的學習有所幫助,也希望大家多多支持好吧啦網。

標簽: Java
相關文章:
成人在线亚洲_国产日韩视频一区二区三区_久久久国产精品_99国内精品久久久久久久
欧美日韩高清一区| 色国产精品一区在线观看| 一区二区三区久久网| 国产色产综合色产在线视频| 国产精品99久久久| 欧美亚洲免费在线一区| 五月婷婷欧美视频| 亚洲高清资源| 国产精品美女久久久久久2018| 99re热视频精品| 欧美r级电影在线观看| 国产高清在线精品| 91精品国产综合久久久久久漫画 | 懂色一区二区三区免费观看| 精品视频色一区| 麻豆freexxxx性91精品| 欧美色综合天天久久综合精品| 婷婷综合五月天| 美女91精品| 五月激情六月综合| 一本一道久久a久久精品| 日韩专区欧美专区| 欧洲一区二区三区在线| 婷婷开心久久网| 久久精品女人天堂| 亚洲国产日日夜夜| 国产精品久久777777毛茸茸| 一区二区三区不卡视频在线观看| 亚洲一级影院| 中文字幕字幕中文在线中不卡视频| 欧美日韩免费观看一区| 亚洲欧洲另类国产综合| 亚洲黄色影院| 日韩毛片视频在线看| 亚洲国产精品一区二区第四页av| 亚洲视频一二区| 亚洲精品乱码久久久久久蜜桃麻豆| 亚洲欧洲www| 国产日韩欧美一区二区三区四区| 亚洲人吸女人奶水| 在线亚洲激情| 一区二区三区在线视频免费| 久久久福利视频| 首页亚洲欧美制服丝腿| 欧美三级日韩在线| 国产乱码精品一区二区三区av| 欧美大片在线观看| 欧美黄色大片网站| 国产精品亲子伦对白| 亚洲青色在线| 一区二区三区在线看| 欧美日韩一区二| 国产精品成人一区二区三区夜夜夜 | 欧美图区在线视频| 国产精品一区二区黑丝| 精品少妇一区二区三区在线播放 | 欧美xxxx老人做受| 欧美日韩在线观看一区二区三区| 精品1区2区| 国产精品沙发午睡系列990531| 亚洲伦伦在线| 91蜜桃传媒精品久久久一区二区| 亚洲人快播电影网| 欧美专区亚洲专区| 91蜜桃视频在线| 国产精品福利在线播放| 欧美丰满少妇xxxbbb| 国产69精品久久久久毛片 | 一区二区三区中文免费| 久久午夜激情| 麻豆91精品91久久久的内涵| 7799精品视频| 91蜜桃婷婷狠狠久久综合9色| 中文字幕一区二区三区蜜月| 免费永久网站黄欧美| 老司机免费视频一区二区| 欧美videofree性高清杂交| 91免费观看国产| 夜夜嗨av一区二区三区网页| 六月婷婷久久| 国产精品1区2区| 国产色产综合色产在线视频| 亚洲综合首页| 美女看a上一区| 国产三级久久久| 一本色道久久综合亚洲精品不卡 | 国产精品网友自拍| 色综合久久天天| 国产精品一区二区在线看| 久久久久久麻豆| 一区在线视频观看| 亚洲日本在线观看| 欧美影片第一页| 欧美在线播放| 五月天网站亚洲| 日韩一区二区三区免费看 | 欧美精品一区二区三| 欧美日韩国产色综合一二三四| 亚洲宅男天堂在线观看无病毒| 欧美日韩国产在线观看| 欧美不卡一卡二卡免费版| 亚洲一线二线三线视频| 欧美日韩和欧美的一区二区| 午夜精品婷婷| 日本亚洲最大的色成网站www| 国产成人精品三级| 久久国产成人午夜av影院| 一区二区三区在线观看视频 | 国产精品美女久久久久久久网站| 777久久久精品| 久久天堂成人| 国产伦理一区| 99re热精品| 国产白丝精品91爽爽久久| 性做久久久久久久免费看| 亚洲女与黑人做爰| 欧美高清视频不卡网| 91小视频在线免费看| 国产亚洲欧美日韩在线一区| 成人在线视频一区二区| 成人黄色片在线观看| 成人国产精品免费观看| 亚洲午夜视频在线观看| 日韩一区二区免费高清| 亚洲精品1区| 蜜桃视频免费观看一区| 久久精品视频免费| 欧美最猛性xxxxx直播| 国内成+人亚洲| 国产一区二区三区视频在线播放| 中文字幕日韩一区| 在线播放91灌醉迷j高跟美女| 一区二区三区我不卡| 亚洲精品视频在线| 日韩欧美一卡二卡| 亚洲一区日韩| 94色蜜桃网一区二区三区| 水蜜桃久久夜色精品一区的特点| 久久久久99精品一区| 在线欧美小视频| 在线成人欧美| 99久久99久久精品免费看蜜桃| 美腿丝袜亚洲综合| 一区二区视频在线| 久久久99久久| 欧美日韩国产美| 一区二区黄色| 91丨porny丨首页| 国产精品系列在线观看| 丝袜诱惑亚洲看片| 欧美日韩国产另类不卡| 美女日韩在线中文字幕| 久久国产免费看| 天天综合日日夜夜精品| 亚洲一卡二卡三卡四卡无卡久久| 久久久亚洲欧洲日产国码αv| 欧美精品777| 欧美在线999| 亚洲一区二区毛片| 中日韩男男gay无套| 欧美bbbxxxxx| 成av人片一区二区| 精品一区精品二区高清| 亚洲五码中文字幕| 亚洲欧洲日产国码二区| 久久精品一区二区三区不卡| 91精品在线一区二区| 日本韩国欧美在线| 亚洲在线电影| 亚洲国产mv| 欧美 日韩 国产 一区| 国产精品1区2区3区| 美女脱光内衣内裤视频久久网站| 一区二区三区免费看视频| 国产精品久久夜| 久久亚洲综合色| 精品国产sm最大网站免费看| 欧美三片在线视频观看| 精品1区2区3区| 欧美色区777第一页| 欧美三级韩国三级日本三斤| 美女黄网久久| 一本一道波多野结衣一区二区| 国产亚洲福利| 日韩亚洲一区在线播放| 韩日在线一区| 91视频观看视频| 不卡一区二区在线| 成人激情免费网站| 国v精品久久久网| 国产一区二区影院| 激情久久五月天| 精品一区二区三区久久久| 蜜桃av噜噜一区| 美女性感视频久久| 久久99这里只有精品| 免费观看91视频大全| 日韩**一区毛片| 久久精品免费看| 国产在线日韩欧美|