欧美free性护士vide0shd,老熟女,一区二区三区,久久久久夜夜夜精品国产,久久久久久综合网天天,欧美成人护士h版

首頁綜合 正文
目錄

柚子快報邀請碼778899分享:學(xué)習(xí) Java篇圖書管理系統(tǒng)

柚子快報邀請碼778899分享:學(xué)習(xí) Java篇圖書管理系統(tǒng)

http://yzkb.51969.com/

目錄

前言

一. 圖書管理系統(tǒng)的核心

二. 圖書管理系統(tǒng)基本框架

2.1 book包

2.1.1?Book(書籍類)

?2.1.2?Booklist (書架類)

2.2 user包

2.2.1?User類

2.2.2? Administrator(管理員類)

2.2.3?Visitor(用戶類)

2.3?圖書管理系統(tǒng)操作菜單

管理員菜單

用戶菜單

2.4?operation(操作包)

三. 實現(xiàn)服務(wù)

?3.1 顯示所有書籍

3.2 查找書籍

?3.3 退出系統(tǒng)

3.4 增加書籍

3.5 刪除書籍

3.6 借閱書籍

?3.7 歸還書籍

四. 總代碼

結(jié)語

前言

相信大家都有去過圖書館吧,那么在借閱圖書和歸還的時候,都有一個系統(tǒng)來記錄并操作這些過程,所以今天就帶著大家利用之前的所學(xué)知識來簡單實現(xiàn)一下圖書管理系統(tǒng)的基本邏輯構(gòu)造

一. 圖書管理系統(tǒng)的核心

圖書管理系統(tǒng)的核心包括三個部分:書籍的信息(書本屬性)、操作書籍的人(管理員和讀者)、 對書籍的操作(借閱、歸還)

所以在這里我們分別創(chuàng)建3個包 book、operation、user 來實現(xiàn)各個部分的操作:

二. 圖書管理系統(tǒng)基本框架

2.1 book包

我們在book這個包中創(chuàng)建2個類:Book、Booklist,Book用來描述書籍的基本信息,Booklist充當(dāng)書架,里面用來記錄書架中書籍的信息。

2.1.1?Book(書籍類)

首先在Book中我們要創(chuàng)建變量來記錄書籍的基本信息:

private String name; //書名

private String author; //作者

private int price; //價格

private String type; //書籍類型

private boolean isborrow; //是否被借出

并且這里的書籍基本信息,我們是用private訪問修飾限定符修飾變量的,其他類想要直接訪問是訪問不了的,所以這里需要我們創(chuàng)建方法間接訪問。

public String getName() {

return name;

}

public void setName(String name) {

this.name = name;

}

public String getAuthor() {

return author;

}

public void setAuthor(String author) {

this.author = author;

}

public int getPrice() {

return price;

}

public void setPrice(int price) {

this.price = price;

}

public String getType() {

return type;

}

public void setType(String type) {

this.type = type;

}

public boolean isIsborrow() {

return isborrow;

}

public void setIsborrow(boolean isborrow) {

this.isborrow = isborrow;

}

接下來我們來寫B(tài)ook類的構(gòu)造方法:

那么當(dāng)我們每次新增一本書的時候 ,該書籍默認就是未借出的狀態(tài),默認初始值就是false,所以不需要在構(gòu)造方法中進行初始化

public Book(String name, String author, int price, String type) {

//初始化書的屬性

this.name = name;

this.author = author;

this.price = price;

this.type = type;

}

這時候書籍的信息屬性都能夠被記錄了,那么我們想看看這些書籍的信息該怎么辦呢?沒錯打印出來,此時我們需要對 ToString 方法進行重寫:

?2.1.2?Booklist (書架類)

能夠記錄書籍信息的Book類創(chuàng)建完成后,我們來創(chuàng)建一個書架類(Booklist),書架類的作用就是能夠存放每一本書,并且記錄每一本書的借閱狀態(tài)。

private Book [] books;//表示書架可以存放10本書

private int usedbooks;//表示books數(shù)組中存放了幾本書

那么我們依然需要通過間接訪問才能訪問書架中的基本信息,需要自己提供方法間接訪問:

public int getUsedbooks() {

return usedbooks;//返回有效書本數(shù)量

}

public void setUsedbooks(int usedbooks) {

this.usedbooks = usedbooks;//更改有效書本數(shù)量

}

public Book getbook(int pos){

return books[pos]; //返回書架中 第pos本書

}

public void setBooks(int pos,Book book){

this.books[pos]=book; //更改書架中的書

}

那么我們還是寫一下Booklist類的構(gòu)造方法,默認書架中已經(jīng)存放了書籍:

public BookList() {

this.books = new Book [10]; //默認創(chuàng)建存放10本書大小的數(shù)組

this.books[0]=new Book("三國演義","羅貫中",20,"四大名著");

this.books[1]=new Book("西游記","吳承恩",22,"四大名著");

this.books[2]=new Book("紅樓夢","曹雪芹",24,"四大名著");

this.books[3]=new Book("水滸傳","施耐庵",26,"四大名著");

this.usedbooks=4;//初始化有效書本數(shù)量為4本

}

?那么在book這個包的操作就告一段落,后續(xù)隨著思路的深入再進行補充~

2.2 user包

在user包中我們新建三個類來描述管理員和用戶,那么管理員和用戶也是擁有相同屬性的,而第三個類User,我們就定義成抽象類,讓管理員類與用戶類去繼承,這樣就可以省略一些重復(fù)的代碼啦

2.2.1?User類

那么管理員與用戶共同擁有的特征就是都有名字,那么我們就在User類中定義一個名字屬性的變量,并且通過構(gòu)造方法初始化 管理員 或 用戶 的名稱:

public abstract class User {

public String name; //名字

public User(String name) {

this.name = name; //初始化名稱

}

}

2.2.2? Administrator(管理員類)

因為我們的管理員類繼承了User類,所以需要在構(gòu)造方法中調(diào)用父類的構(gòu)造方法:

public class Administrator extends User{

public Administrator(String name) {

super(name);//通過父類初始化管理員名稱

}

}

2.2.3?Visitor(用戶類)

同理用戶類也繼承了User類,所以也需要構(gòu)造方法調(diào)用父類的構(gòu)造方法:

public class Visitor extends User{

public Visitor(String name) {

super(name); //通過父類初始化用戶名稱

}

}

那么書籍的屬性和操作者的基本框架我們已經(jīng)實現(xiàn)了,接下來該實現(xiàn)一下圖書管理系統(tǒng)的功能了~

2.3?圖書管理系統(tǒng)操作菜單

管理員菜單

1.查找圖書

2.新增圖書

3.刪除圖書

4.顯示圖書

0.退出系統(tǒng)

用戶菜單

1.查找圖書

2.借閱圖書

3.歸還圖書

0.退出系統(tǒng)

接下來,我們就針對這些功能創(chuàng)建一個包,實現(xiàn)這些功能。

2.4?operation(操作包)

在這個包中我們?nèi)崿F(xiàn)上述描述的相關(guān)操作,接著我們創(chuàng)建一個接口來實現(xiàn)多態(tài),從而降低代碼的復(fù)雜度

operate接口:

public interface Operate { //服務(wù)接口

void work(BookList books);

//功能的實現(xiàn)我們都要利用到書架,所以這里參數(shù)給定一個書架對象

}

接下來我們創(chuàng)建實現(xiàn)各個功能的類:

Addbook類:(新增書籍)

public class Addbook implements Operate{

@Override

public void work(BookList books) {

System.out.println("增加書籍...");

}

}

Borrowbook類:(借閱書籍)

public class Borrowbook implements Operate {

@Override

public void work(BookList books) {

System.out.println("借閱書籍....");

}

}

?Deletebook類:(刪除書籍)

public class Deletebook implements Operate{

@Override

public void work(BookList books) {

System.out.println("刪除書籍...");

}

}

Exitbook類:(退出系統(tǒng))

public class Exitbook implements Operate{

@Override

public void work(BookList books) {

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

}

}

Findbook類:(查閱書籍)

public class Findbook implements Operate{

@Override

public void work(BookList books) {

System.out.println("查找書籍....");

]

}

Returnbook類:(歸還書籍)

public class Retuenbook implements Operate{

@Override

public void work(BookList books) {

System.out.println("歸還書籍....");

Showbook類:(顯示書籍)

public class Showbook implements Operate {

@Override

public void work(BookList books) {

System.out.println("顯示書籍....");

}

}

接下來就要慢慢的去將每個類的功能具體的實現(xiàn),并且將每個類聯(lián)系起來運作圖書管理系統(tǒng)。

既然知道了管理員和用戶的菜單后,我們就分別給管理員和用戶添加一下菜單:

在Administrator類添加管理員菜單:

public void menu() {

System.out.println("歡迎 "+this.name+" 管理員來到圖書管理系統(tǒng)");

System.out.println("<<**************管理員操作菜單******************>>");

System.out.println("1. 查找圖書 ");

System.out.println("2. 新增圖書 ");

System.out.println("3. 刪除圖書 ");

System.out.println("4. 顯示圖書");

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

System.out.println("<<******************************************>>");

}

在Visitor類中添加用戶菜單:

public void menu(){

System.out.println("歡迎 "+this.name+" 讀者來到圖書管理系統(tǒng)");

System.out.println("<<***************游客讀者菜單*************>>");

System.out.println("1. 查找圖書 ");

System.out.println("2. 借閱圖書 ");

System.out.println("3. 歸還圖書 ");

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

System.out.println("<<**************************************>>");

}

?那么我們現(xiàn)在創(chuàng)建一個Main類,在類中寫上我們的main方法實現(xiàn)一下基本邏輯:

?

public class Main {

public static User login(){ //登錄系統(tǒng)過程

Scanner scanner=new Scanner(System.in);

System.out.println("請輸入你的名字:");

String name = scanner.nextLine();

System.out.println("請輸入你要登入的帳號:1.管理員登錄 -----> 2.游客登錄 ----->");

int choice=scanner.nextInt();

if(choice==1){

return new Administrator(name); //如果選擇了1,就實例化一個管理員對象,并返回

}else{

return new Visitor(name); //如果選擇了2,就實例化一個用戶對象,并返回

}

//此時的返回值我們不能確定返回的是管理員對象還是用戶對象,所以這里用向上轉(zhuǎn)型返回User類型的對象

}

public static void main(String[] args) {

User user=login(); //進入登錄系統(tǒng)

user.menu(); //打印菜單

}

}

?

但是此時login方法的返回對象我們使用User類型的對象進行接收的,此時我們是不能使用user.menu()的,那么該怎么辦呢?我們之前將User抽象出來作為管理員類和用戶類的父類,那么此時我們在User類中寫一個menu()方法就可以實現(xiàn)多態(tài),打印菜單啦~

public abstract class User {

public String name; //用戶名稱

public User(String name) {

this.name = name; //初始化用戶名稱

}

public abstract int menu(); //抽象方法實現(xiàn)多態(tài),打印菜單

}

那么此時只需要將子類做出相應(yīng)的改動,改變成重寫的形式就可以了:

這就實現(xiàn)了打印菜單的功能,但是光打印選擇不了功能可不行呀,所以我們要在菜單中加上一個選擇功能:

@Override

public int menu() {

System.out.println("歡迎 "+this.name+" 管理員來到圖書管理系統(tǒng)");

System.out.println("<<**************管理員操作菜單******************>>");

System.out.println("1. 查找圖書 ");

System.out.println("2. 新增圖書 ");

System.out.println("3. 刪除圖書 ");

System.out.println("4. 顯示圖書");

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

System.out.println("<<******************************************>>");

//選擇功能

Scanner scanner=new Scanner(System.in);

System.out.println("請選擇您需要的服務(wù):-->>");

int choice=scanner.nextInt();

return choice;

}

通過輸入標(biāo)號來選擇我們想要的服務(wù),那么我們應(yīng)該返回這個標(biāo)號,所以menu()方法的返回值也要改成 int 類型,Visitor類的menu()方法也是同理。

那么能夠選擇服務(wù)后,我們應(yīng)該根據(jù)對象(管理員或用戶)選擇該調(diào)用哪一個菜單方法:

Administrator(管理員類):

public Administrator(String name) {

super(name);//通過父類初始化管理員名稱

this.operate=new Operate[]{ //創(chuàng)建 管理員賬戶提供的服務(wù)

new Exitbook(),

new Findbook(),

new Addbook(),

new Deletebook(),

new Showbook()

};

}

Visitor(用戶類):

public class Visitor extends User{

public Visitor(String name) {

super(name); //通過父類初始化用戶名稱

this.operate=new Operate[]{ //創(chuàng)建 游客賬戶提供的服務(wù)

new Exitbook(),

new Findbook(),

new Borrowbook(),

new Retuenbook()

};

}

?那么當(dāng)我們分別在它們的構(gòu)造方法中創(chuàng)建一個Operate類型的數(shù)組后,里面存放Operate接口實現(xiàn)的方法,那么在new一個管理員對象或者用戶對象時,系統(tǒng)就會為這個數(shù)組分配內(nèi)存:

那么我們需要在User類中加上這么一段代碼利用動態(tài)綁定調(diào)用管理員菜單中的方法還是調(diào)用用戶菜單中的方法:

public Operate []operate; //創(chuàng)建服務(wù)數(shù)組,子類通過數(shù)組下標(biāo)調(diào)用 各個服務(wù)

public void Dooperate(int choice,BookList books){

this.operate[choice].work(books); //調(diào)用 游客/管理員 所選擇的服務(wù)

}

this.operate[ choice ]就是我們new的那個對象中構(gòu)造方法中下標(biāo)為 choice 的那個類,而后面的 .work(books)就是調(diào)用的對應(yīng)類的work方法。

那么現(xiàn)在我們在main方法中打印菜單的時候就需要有個變量來接收選擇的服務(wù)啦,再通過new對應(yīng)的對象調(diào)用上面寫的 Dooperate方法調(diào)用所選擇的服務(wù)。

public static void main(String[] args) {

BookList bookList=new BookList(); //實例化書架

User user=login(); //進入登錄系統(tǒng)

while(true) {

int chioce = user.menu(); //接收選擇服務(wù)的選項

user.Dooperate(chioce, bookList); //調(diào)用 游客/管理員 提供的服務(wù)

}

}

而為了實現(xiàn)用戶輸入0時才退出系統(tǒng),所以這里的while循環(huán)我們設(shè)置為死循環(huán)。此時基本框架就搭建完成啦~

我們來看看測試效果:

那么我們來畫圖分析一下運行的過程:

1. 通過主函數(shù)調(diào)用login方法:

?

2. 通過login方法返回的對象調(diào)用該對象類中的menu()方法

3. 最后通過調(diào)用user.Dooperate方法一步一步實現(xiàn)所選擇的服務(wù)

三. 實現(xiàn)服務(wù)

?3.1 顯示所有書籍

那么在實現(xiàn)顯示書籍功能之前,我們應(yīng)該在Booklist類中寫一個方法讓Showbook類中的work方法能夠通過數(shù)組下標(biāo)打印書籍的信息:

public Book getbook(int pos){

return this.books[pos]; //返回書架中 第pos本書

}

接下來我們就可以實現(xiàn)顯示書籍這個服務(wù)啦~

在Showbook類中實現(xiàn): ?

public class Showbook implements Operate {

@Override

public void work(BookList books) {

System.out.println("顯示書籍....");

int count=books.getUsedbooks();

for(int i=0;i

//通過循環(huán)遍歷數(shù)組;調(diào)用books.getbook(i)方法獲取指定的書籍對象

System.out.println(books.getbook(i).toString());

}

System.out.println();

}

}

3.2 查找書籍

查找書籍的過程與顯示所有書籍相似,也是通過循環(huán)遍歷數(shù)組,利用equal()方法進行對比,實現(xiàn)服務(wù)。

在Findbook類中實現(xiàn):

public class Findbook implements Operate{

@Override

public void work(BookList books) {

System.out.println("查找書籍....");

Scanner scanner=new Scanner(System.in);

System.out.print("請輸入要查找書籍的名字:-->");

String name=scanner.nextLine();

int count=books.getUsedbooks();

for(int i=0;i

{

Book book=books.getbook(i);

if(book.getName().equals(name)){

System.out.println("找到了,書本內(nèi)容如下:");

System.out.println(book);

System.out.println();

return;

}

}

System.out.println("很抱歉,沒有查找到你要查找的書籍");

System.out.println("后續(xù)會盡快聯(lián)系管理員添加~");

System.out.println();

}

}

?3.3 退出系統(tǒng)

在Exitbook類中實現(xiàn):

public class Exitbook implements Operate{

@Override

public void work(BookList books) {

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

int count=books.getUsedbooks();

for(int i=0;i

{

books.setBooks(i,null); //

}

books.setUsedbooks(0); //將有效書籍?dāng)?shù)量 制為空

System.exit(0);

}

}

書架中存放的書籍都是對象,那么在退出系統(tǒng)之前我們應(yīng)該將書籍對象都進行回收,避免發(fā)生內(nèi)存泄漏,并且將書架中的書本數(shù)量變成0,最后在結(jié)尾加上 System.exit(0);?就可以結(jié)束程序,退出系統(tǒng)了。

3.4 增加書籍

在增加書籍之前,我們應(yīng)該先判斷這個書籍是否已經(jīng)在書架中存放,如果書架中沒有那么就添加到書架中

在Addbook類中實現(xiàn):

public class Addbook implements Operate{

@Override

public void work(BookList books) {

System.out.println("增加書籍...");

int count=books.getUsedbooks();

Scanner scanner=new Scanner(System.in);

System.out.print("請輸入新添加的書名:--->");

String name=scanner.nextLine();

System.out.print("請輸入新添加書籍的作者:--->");

String author=scanner.nextLine();

System.out.print("請輸入書籍的價格:--->");

int price=scanner.nextInt();

scanner.nextLine();

System.out.print("請輸入書籍的類型:--->");

String type=scanner.nextLine();

for(int i=0;i

if(books.getbook(i).getName().equals(name)){

System.out.println("該書籍已經(jīng)存在了,不需要添加-----");

System.out.println();

return ;

}

}

Book book=new Book(name,author,price,type);

books.setBooks(count,book);

System.out.println("添加成功---");

books.setUsedbooks(count+1);

System.out.println();

}

}

那么在Booklist類中我們就要提供一個方法用來新增書籍:

public void setBooks(int pos,Book book){

this.books[pos]=book; //更改書架中的書

}

3.5 刪除書籍

在刪除書籍中我們有兩個點需要注意:當(dāng)我們刪除了某本書籍后,需要將該書籍后面的書籍往前移動,并且將移動完最后的那個空間進行回收,并且更改書架中書籍的數(shù)量

在Deletebook類中實現(xiàn):

public class Deletebook implements Operate{

@Override

public void work(BookList books) {

System.out.println("刪除書籍...");

System.out.print("請輸入你要刪除的書籍:--->");

Scanner scanner=new Scanner(System.in);

String name =scanner.nextLine();

int count=books.getUsedbooks();

int index=-1;

boolean flag=false;

for (int i = 0; i

if(books.getbook(i).getName().equals(name)){

index=i;

flag=true;

break;

}

}

if(flag==false) {

System.out.println("沒有找到你要刪除的書籍-----");

System.out.println();

return ;

}

if (books.getbook(index).isIsborrow()==true){

System.out.println("該書本已經(jīng)被借出,暫時不能進行操作-----");

System.out.println();

return;

}else{

for(int j=index;j

{

books.setBooks(j,books.getbook(j+1));

}

System.out.println("刪除成功------->");

books.setUsedbooks(count-1);

books.setBooks(count-1,null);

}

}

}

那么在刪除書籍的時候為了實現(xiàn)將后面的書籍往前面移動,我們需要在Booklist類中調(diào)用setBooks方法來實現(xiàn)這個過程:

public void setBooks(int pos,Book book){

this.books[pos]=book; //更改書架中的書

}

3.6 借閱書籍

借閱書籍的時候我們應(yīng)該判斷該書籍是否在書架上存在,如果存在再判斷該書籍是否被借出,如果沒有被借出,那么就可以進行借閱

在Borrowbook類中實現(xiàn):

ublic class Borrowbook implements Operate {

@Override

public void work(BookList books) {

System.out.println("借閱書籍....");

System.out.print("請輸入你要借閱的圖書:-->");

Scanner scanner = new Scanner(System.in);

String name = scanner.nextLine();

int count = books.getUsedbooks();

for (int i = 0; i < count; i++) {

if (books.getbook(i).getName().equals(name)) {

if (books.getbook(i).isIsborrow() == false) {

books.getbook(i).setIsborrow(true);

System.out.println("借閱成功---");

System.out.println(books.getbook(i));

System.out.println();

return;

}else{

System.out.println("這本書已經(jīng)被借出,請等待讀者歸還后再進行借閱---");

System.out.println();

return ;

}

}

}

System.out.println("查找不到你要借閱的書籍,后續(xù)會聯(lián)系管理員盡快上架?。。?);

System.out.println();

}

}

這個時候我們需要在Book類中提供一個方法,返回當(dāng)前書籍是否被借出的狀態(tài),并且還要提供一個方法改變書籍是否被借出的狀態(tài),在Book類中實現(xiàn):

public boolean isIsborrow() {

return isborrow;

}

public void setIsborrow(boolean isborrow) {

this.isborrow = isborrow;

}

?3.7 歸還書籍

在歸還之前我們需要判斷一下這本書是否在書架上存在過,如果存在再進行判斷這本書是否有被借出,如果有被借出則可以歸還

在Returnbook類中實現(xiàn): ?

public class Retuenbook implements Operate{

@Override

public void work(BookList books) {

System.out.println("歸還書籍....");

System.out.print("請輸入你要歸還的圖書:-->");

Scanner scanner = new Scanner(System.in);

String name = scanner.nextLine();

int count = books.getUsedbooks();

for (int i = 0; i < count; i++) {

if (books.getbook(i).getName().equals(name)) {

if (books.getbook(i).isIsborrow() == true) {

books.getbook(i).setIsborrow(false);

System.out.println("歸還成功---歡迎再次借閱");

System.out.println(books.getbook(i));

System.out.println();

return;

}else{

System.out.println("這本書沒有被借出,不需要歸還---");

System.out.println();

return ;

}

}

}

System.out.println("查找不到你要歸還的書籍,你可能是在其他圖書館借閱的書籍---");

System.out.println();

}

}

如果將書籍歸還后我們需要將書籍是否借出的狀態(tài)進行改變,在Book類中實現(xiàn):

public boolean isIsborrow() {

return isborrow;

}

public void setIsborrow(boolean isborrow) {

this.isborrow = isborrow;

}

四. 總代碼

Main類:

import book.BookList;

import user.Administrator;

import user.User;

import user.VipPerson;

import user.Visitor;

import java.util.Scanner;

public class Main {

public static User login(){ //登錄系統(tǒng)過程

Scanner scanner=new Scanner(System.in);

System.out.println("請輸入你的名字:");

String name = scanner.nextLine();

System.out.println("請輸入你要登入的帳號:1.管理員登錄 -----> 2.游客登錄 ----->");

int choice=scanner.nextInt();

if(choice==1){

return new Administrator(name); //如果選擇了1,就創(chuàng)建一個管理員對象,并返回

}else if(choice==2){

return new Visitor(name); //如果選擇了2,就創(chuàng)建一個游客對象,并返回

}else{

return new VipPerson(name);

}

//此時的返回值我們不能確定返回的是管理員對象還是用戶對象,所以這里用向上轉(zhuǎn)型返回User類型的對象

}

public static void main(String[] args) {

BookList bookList=new BookList(); //實例化書架

User user=login(); //進入登錄系統(tǒng)

while(true) {

int chioce = user.menu(); //接收選擇服務(wù)的選項

user.Dooperate(chioce, bookList); //調(diào)用 游客/管理員 提供的服務(wù)

}

}

}

User類:

package user;

import book.BookList;

import operation.Operate;

public abstract class User {

public String name; //用戶名稱

public Operate []operate; //創(chuàng)建服務(wù)數(shù)組,子類通過數(shù)組下標(biāo)調(diào)用 各個服務(wù)

public User(String name) {

this.name = name; //初始化用戶名稱

}

public abstract int menu(); //服務(wù)菜單

public void Dooperate(int choice,BookList books){

this.operate[choice].work(books); //調(diào)用 游客/管理員 所選擇的服務(wù)

}

}

?Administrator類:

package user;

import operation.*;

import java.util.Scanner;

public class Administrator extends User{

public Administrator(String name) {

super(name);//通過父類初始化管理員名稱

this.operate=new Operate[]{ //創(chuàng)建 管理員賬戶提供的服務(wù)

new Exitbook(),

new Findbook(),

new Addbook(),

new Deletebook(),

new Showbook()

};

}

@Override

public int menu() {

System.out.println("歡迎 "+this.name+" 管理員來到圖書管理系統(tǒng)");

System.out.println("<<**************管理員操作菜單******************>>");

System.out.println("1. 查找圖書 ");

System.out.println("2. 新增圖書 ");

System.out.println("3. 刪除圖書 ");

System.out.println("4. 顯示圖書");

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

System.out.println("<<******************************************>>");

//選擇功能

Scanner scanner=new Scanner(System.in);

System.out.println("請選擇您需要的服務(wù):-->>");

int choice=scanner.nextInt();

return choice;

}

}

Visitor類:

package user;

import operation.*;

import java.util.Scanner;

public class Visitor extends User{

public Visitor(String name) {

super(name); //通過父類初始化用戶名稱

this.operate=new Operate[]{ //創(chuàng)建 游客賬戶提供的服務(wù)

new Exitbook(),

new Findbook(),

new Borrowbook(),

new Retuenbook()

};

}

public int menu(){

System.out.println("歡迎 "+this.name+" 讀者來到圖書管理系統(tǒng)");

System.out.println("<<***************游客讀者菜單*************>>");

System.out.println("1. 查找圖書 ");

System.out.println("2. 借閱圖書 ");

System.out.println("3. 歸還圖書 ");

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

System.out.println("<<**************************************>>");

Scanner scanner=new Scanner(System.in);

System.out.println("請選擇您需要的服務(wù):-->>");

int choice=scanner.nextInt();

return choice;

}

}

Book類:

package book;

public class Book { //書的屬性

private String name; //書名

private String author; //作者

private int price; //價格

private String type; //書籍類型

private boolean isborrow; //是否被借出

public Book(String name, String author, int price, String type) {

//初始化書的屬性

this.name = name;

this.author = author;

this.price = price;

this.type = type;

}

public String getName() {

return name;

}

public void setName(String name) {

this.name = name;

}

public String getAuthor() {

return author;

}

public void setAuthor(String author) {

this.author = author;

}

public int getPrice() {

return price;

}

public void setPrice(int price) {

this.price = price;

}

public String getType() {

return type;

}

public void setType(String type) {

this.type = type;

}

public boolean isIsborrow() {

return isborrow;

}

public void setIsborrow(boolean isborrow) {

this.isborrow = isborrow;

}

@Override

public String toString() {

return "Book{" +

"書名='" + name + '\'' +

", 作者='" + author + '\'' +

", 價格=" + price +

", 類型='" + type + '\'' +

(isborrow==true?" ,已經(jīng)借出":" ,未被借出") +

'}';

}

}

Booklist類:

package book;

public class BookList {

private Book [] books;//表示書架可以存放10本書

private int usedbooks;//表示books數(shù)組中存放了幾本書

public BookList() {

this.books = new Book [10]; //默認創(chuàng)建存放10本書大小的數(shù)組

this.books[0]=new Book("三國演義","羅貫中",20,"四大名著");

this.books[1]=new Book("西游記","吳承恩",22,"四大名著");

this.books[2]=new Book("紅樓夢","曹雪芹",24,"四大名著");

this.books[3]=new Book("水滸傳","施耐庵",26,"四大名著");

this.usedbooks=4;//初始化有效書本數(shù)量為4本

}

public int getUsedbooks() {

return usedbooks;//返回有效書本數(shù)量

}

public void setUsedbooks(int usedbooks) {

this.usedbooks = usedbooks;//更改有效書本數(shù)量

}

public Book getbook(int pos){

return this.books[pos]; //返回書架中 第pos本書

}

public void setBooks(int pos,Book book){

this.books[pos]=book; //更改書架中的書

}

}

?那么operation這個包中各個類的代碼都在 實現(xiàn)服務(wù) 那里寫啦,這里就不在重新上傳了~

結(jié)語

以上就是利用我們過去的所學(xué)知識實現(xiàn)的圖書管理系統(tǒng)的基本邏輯構(gòu)造,在此感謝大家的觀看!??!

柚子快報邀請碼778899分享:學(xué)習(xí) Java篇圖書管理系統(tǒng)

http://yzkb.51969.com/

推薦文章

評論可見,查看隱藏內(nèi)容

本文內(nèi)容根據(jù)網(wǎng)絡(luò)資料整理,出于傳遞更多信息之目的,不代表金鑰匙跨境贊同其觀點和立場。

轉(zhuǎn)載請注明,如有侵權(quán),聯(lián)系刪除。

本文鏈接:http://m.gantiao.com.cn/post/19580100.html

發(fā)布評論

您暫未設(shè)置收款碼

請在主題配置——文章設(shè)置里上傳

掃描二維碼手機訪問

文章目錄