中文亚洲精品无码_熟女乱子伦免费_人人超碰人人爱国产_亚洲熟妇女综合网

當(dāng)前位置: 首頁(yè) > news >正文

備案號(hào)網(wǎng)站下邊優(yōu)化網(wǎng)站收費(fèi)標(biāo)準(zhǔn)

備案號(hào)網(wǎng)站下邊,優(yōu)化網(wǎng)站收費(fèi)標(biāo)準(zhǔn),做視頻網(wǎng)站掙錢嗎,網(wǎng)站加首頁(yè)前言:為了鞏固之前學(xué)習(xí)的java知識(shí)點(diǎn),我們用之前學(xué)習(xí)的java知識(shí)點(diǎn)(方法,數(shù)組,類和對(duì)象,封裝,繼承,多態(tài),抽象類,接口)來(lái)實(shí)現(xiàn)一個(gè)簡(jiǎn)單的圖書管理系統(tǒng)…

前言:為了鞏固之前學(xué)習(xí)的java知識(shí)點(diǎn),我們用之前學(xué)習(xí)的java知識(shí)點(diǎn)(方法,數(shù)組,類和對(duì)象,封裝,繼承,多態(tài),抽象類,接口)來(lái)實(shí)現(xiàn)一個(gè)簡(jiǎn)單的圖書管理系統(tǒng)!

目錄

一. 創(chuàng)建文件的目錄

二. 源碼

book包

Book類

BookList類

operation包

IOeration接口

AddOperation類

DelOperation類

FindOperation類

ShowOperation類

BorrowOperation類

ReturnOperation類

ExitOperation類

user包

User類

AdminUser類

NormalUser類

Main類

三. 操作實(shí)例

1. 管理員

2. 用戶

四. 補(bǔ)充說(shuō)明


一. 創(chuàng)建文件的目錄

使用Java開發(fā)工具IDEA創(chuàng)建一個(gè)Project工程,命名為TestBook,并在這個(gè)TestBook工程下的src下創(chuàng)建如下文件:book、opreation、user這三個(gè)包(Package)(以及這三個(gè)包下的類(class)?和 接口(interface)),并創(chuàng)建一個(gè) Main 類。

二. 源碼

book包

創(chuàng)建一個(gè)book包,book包下面創(chuàng)建兩個(gè)類Book類(表示 圖書類)和BookList類(表示 書架類)

Book類

描述書的有關(guān)信息,構(gòu)造方法和各種getter,setter方法

package user;import operation.*;import java.util.Scanner;public class NormalUser extends User{public NormalUser(String name) {super(name);this.ioPerations = new IOperation[] {new ExitOperation(),new FindOperation(),new BorrowOperation(),new ReturnOperation()};}public int menu() {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 sc = new Scanner(System.in);System.out.println("請(qǐng)輸入你的操作:");int choice = sc.nextInt();return choice;}}

BookList類

作為書架,利用數(shù)組存放書籍。

package book;public class BookList {private Book[] books; //定義數(shù)組存儲(chǔ)書架上的書籍private int usedSize; //記錄當(dāng)前書架上 實(shí)際存放的書的 數(shù)量private static final int DEFAULT_CAPACITY = 10; //書架的初始容量是 10本書public BookList() {this.books = new Book[DEFAULT_CAPACITY];this.books[0] = new Book("三國(guó)演義","羅貫中",10,"小說(shuō)");this.books[1] = new Book("西游記","吳承恩",9,"小說(shuō)");this.books[2] = new Book("紅樓夢(mèng)","曹雪芹",19,"小說(shuō)");this.usedSize = 3;}public int getUsedSize() {return usedSize;}public void setUsedSize(int usedSize) {this.usedSize = usedSize;}// 通過(guò)下標(biāo)獲取對(duì)應(yīng)書籍的getter方法public Book getBook(int pos) {return books[pos];}public void setBooks(int pos,Book book) {books[pos] = book;}public Book[] getBooks(){return books;}
}

operation包

在operation包下面創(chuàng)建IOperation接口(圖書操作 接口)和圖書操作相關(guān)類AddOperation(表示 添加圖書類),DelOperation(表示 刪除圖書類),FindOperation(表示 查找圖書類),ShowOperation(顯示圖書類),BorrowOperation(表示 借閱圖書類),ReturnOperation(歸還圖書類),ExitOperation(退出系統(tǒng)類)。

IOeration接口

后續(xù)使用所有與圖書操作相關(guān)都要實(shí)現(xiàn)這個(gè)接口,對(duì)bookList對(duì)象進(jìn)行相關(guān)工作。

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

AddOperation類

添加圖書類

package operation;import book.Book;
import book.BookList;import java.util.Scanner;public class AddOperation implements IOperation{@Overridepublic void work(BookList bookList) {System.out.println("新增圖書!");Scanner sc = new Scanner(System.in);System.out.println("請(qǐng)輸入書名:");String name = sc.nextLine();System.out.println("請(qǐng)輸入作者:");String author = sc.nextLine();System.out.println("請(qǐng)輸入類型:");String type = sc.nextLine();System.out.println("請(qǐng)輸入價(jià)格:");int price = sc.nextInt();Book book = new Book(name,author,price,type);//檢查 數(shù)組當(dāng)中 有沒有這本書int currentSize = bookList.getUsedSize();for(int i=0;i<currentSize;i++) {Book book1 = bookList.getBook(i);if(book1.getName().equals(name)) {System.out.println("有這本書,不進(jìn)行存放了!");return;}}if(currentSize==bookList.getBooks().length) {System.out.println("書架滿了!");}else {bookList.setBooks(currentSize,book);bookList.setUsedSize(currentSize+1);}}}

DelOperation類

刪除圖書類

package operation;import book.Book;
import book.BookList;import java.util.Scanner;public class DelOperation implements IOperation{@Overridepublic void work(BookList bookList) {System.out.println("刪除圖書!");Scanner sc = new Scanner(System.in);System.out.println("請(qǐng)輸入你要?jiǎng)h除的圖書:");String name = sc.nextLine();int pos = -1;int currentSize = bookList.getUsedSize();int i = 0;for(;i<currentSize;i++) {Book book = bookList.getBook(i);if(book.getName().equals(name)) {pos = i;break;}}if(i == currentSize) {System.out.println("沒有你要?jiǎng)h除的圖書!");return;}//開始刪除int j = pos;for(;j<currentSize;j++) {Book book = bookList.getBook(j+1);bookList.setBooks(j,book);}bookList.setBooks(j,null);bookList.setUsedSize(currentSize-1);}
}

FindOperation類

查找圖書類

package operation;import book.Book;
import book.BookList;import java.util.Scanner;public class FindOperation implements IOperation{@Overridepublic void work(BookList bookList) {System.out.println("查找圖書!");Scanner sc = new Scanner(System.in);System.out.println("請(qǐng)輸入你要查找的圖書:");String name = sc.nextLine();// 遍歷這個(gè)數(shù)組int currentSize = bookList.getUsedSize();for(int i=0;i<currentSize;i++) {Book book = bookList.getBook(i);if(book.getName().equals(name)) {System.out.println("找到了這本書,信息如下:");System.out.println(book);return;}}System.out.println("沒有找到這本書!");}
}

ShowOperation類

顯示圖書類

package operation;import book.Book;
import book.BookList;public class ShowOperation implements IOperation{@Overridepublic void work(BookList bookList) {System.out.println("顯示圖書!");int currentSize = bookList.getUsedSize();for(int i=0;i<currentSize;i++) {Book book = bookList.getBook(i);System.out.println(book);}}
}

BorrowOperation類

借閱圖書類

package operation;import book.Book;
import book.BookList;import java.util.Scanner;public class BorrowOperation implements IOperation {@Overridepublic  void work(BookList bookList) {System.out.println("借閱圖書!");Scanner sc = new Scanner(System.in);System.out.println("請(qǐng)輸入你要借閱的圖書:");String name = sc.nextLine();int currentSize = bookList.getUsedSize();for(int i=0;i<currentSize;i++) {Book book = bookList.getBook(i);if(book.getName().equals(name)) {book.setBorrowed(true);System.out.println("借閱成功!");System.out.println(book);return;}}System.out.println("你借閱的書 不存在!!");}
}

ReturnOperation類

歸還圖書類

package operation;import book.Book;
import book.BookList;import java.util.Scanner;public class ReturnOperation implements IOperation{@Overridepublic void work(BookList bookList) {System.out.println("歸還圖書!");Scanner sc = new Scanner(System.in);System.out.println("請(qǐng)輸入你要?dú)w還的圖書:");String name = sc.nextLine();int currentSize = bookList.getUsedSize();for(int i=0;i<currentSize;i++) {Book book = bookList.getBook(i);if(book.getName().equals(name)) {book.setBorrowed(false);System.out.println("歸還成功!");System.out.println(book);return;}}System.out.println("你歸還的圖書 不存在!!");}
}

ExitOperation類

退出系統(tǒng)類

package operation;import book.BookList;public class ExitOperation implements IOperation{@Overridepublic void work(BookList bookList) {System.out.println("退出系統(tǒng)!");System.exit(0);}
}

user包

user包下創(chuàng)建三個(gè)類,抽象類User類(表示所有用戶類,父類),AdminUser類(管理員類,子類),NormalUser(普通用戶類,子類)類

User類

所有用戶類,包含基本屬性:姓名,菜單(menu)方法的聲明,執(zhí)行方法操作(doOperation)方法的聲明

package user;import book.BookList;
import operation.IOperation;public abstract class User {protected String name;protected IOperation[] ioPerations;public User(String name) {this.name = name;}public abstract int menu();public void doOperation(int choice, BookList bookList) {ioPerations[choice].work(bookList);}
}

AdminUser類

管理員類,包含管理員使用方法的數(shù)組和管理員菜單

package user;import operation.*;import java.util.Scanner;public class AdminUser extends User {public AdminUser(String name) {super(name);this.ioPerations = new IOperation[] {new ExitOperation(),new FindOperation(),new AddOperation(),new DelOperation(),new ShowOperation(),};}public int menu() {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 sc = new Scanner(System.in);System.out.println("請(qǐng)輸入你的操作:");int choice = sc.nextInt();return choice;}
}

NormalUser類

普通用戶類,包含普通用戶使用方法的數(shù)組和普通用戶菜單

package user;import operation.*;import java.util.Scanner;public class NormalUser extends User{public NormalUser(String name) {super(name);this.ioPerations = new IOperation[] {new ExitOperation(),new FindOperation(),new BorrowOperation(),new ReturnOperation()};}public int menu() {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 sc = new Scanner(System.in);System.out.println("請(qǐng)輸入你的操作:");int choice = sc.nextInt();return choice;}}

Main類

主要的操作邏輯

import book.BookList;
import user.AdminUser;
import user.NormalUser;
import user.User;import java.util.Scanner;public class Main {public static User login() {System.out.println("請(qǐng)輸入你的姓名:");Scanner sc = new Scanner(System.in);String name = sc.nextLine();System.out.println("請(qǐng)輸入你的身份,1. 管理員 2. 普通用戶 ->");int choice = sc.nextInt();if(choice == 1) {// 管理員return new AdminUser(name);}else {// 普通用戶return new NormalUser(name);}}public static void main(String[] args) {BookList bookList = new BookList();//user 指向哪個(gè)對(duì)象 就看返回值User user = login();while(true) {int choice = user.menu();//根據(jù)choice 的選擇 來(lái)決定調(diào)用的是哪個(gè)方法user.doOperation(choice, bookList);}}
}

三. 操作實(shí)例

1. 管理員

2. 用戶

四. 補(bǔ)充說(shuō)明

由于目前所學(xué)知識(shí)有限,這個(gè)圖書管理系統(tǒng)目前存在的缺點(diǎn):

1. 沒有做到持久化存儲(chǔ)。以后可以進(jìn)行升級(jí):將數(shù)據(jù)存儲(chǔ)到數(shù)據(jù)庫(kù)或者文件夾中

2. 當(dāng)前用到的只是數(shù)組。后期可以做成網(wǎng)頁(yè)交互。

http://www.risenshineclean.com/news/53245.html

相關(guān)文章:

  • 網(wǎng)站怎么做視頻教程上海十大公關(guān)公司排名
  • wordpress加速r網(wǎng)站搜索優(yōu)化公司
  • 網(wǎng)站開發(fā)專業(yè)職稱有哪些武漢網(wǎng)絡(luò)推廣公司排名
  • 班級(jí)網(wǎng)站設(shè)計(jì)模板域名收錄查詢工具
  • 專業(yè)做網(wǎng)站關(guān)鍵詞排名下掉長(zhǎng)尾關(guān)鍵詞是什么意思
  • 在家做兼職官方網(wǎng)站平臺(tái)輿情信息網(wǎng)
  • php網(wǎng)站開發(fā)技術(shù)文檔廣告聯(lián)盟怎么賺錢
  • 做app網(wǎng)站有哪些功能怎么做ppt
  • 紹興專業(yè)做網(wǎng)站的公司蘇州seo按天扣費(fèi)
  • 網(wǎng)站 被攻擊_主業(yè)篡改 被黑了 織夢(mèng)做的站市場(chǎng)調(diào)研
  • 網(wǎng)站建設(shè)可以幫助花店怎么樣百度投訴中心24人工客服電話
  • 大學(xué)生實(shí)訓(xùn)網(wǎng)站建設(shè)心得關(guān)鍵詞查詢
  • 相親網(wǎng)站做期貨現(xiàn)貨貴金屬的人近期國(guó)內(nèi)新聞?wù)?/a>
  • 最新足球消息seo搜索引擎優(yōu)化ppt
  • 自己做的網(wǎng)站怎么連接計(jì)算機(jī)免費(fèi)漲粉工具
  • wordpress 懸浮播放器公司網(wǎng)站seo公司
  • 網(wǎng)站建設(shè)完成后如何備案安陽(yáng)seo
  • 網(wǎng)站建設(shè)公司銷售最近三天的國(guó)際新聞大事
  • 股票訂閱網(wǎng)站開發(fā)如何做網(wǎng)絡(luò)推廣推廣
  • 網(wǎng)站開發(fā)的概念免費(fèi)seo搜索優(yōu)化
  • 做網(wǎng)站開店網(wǎng)絡(luò)營(yíng)銷的未來(lái)發(fā)展趨勢(shì)
  • 手機(jī)網(wǎng)站開發(fā)怎么收費(fèi)品牌seo推廣咨詢
  • 成年做羞羞的視頻網(wǎng)站微信廣告投放平臺(tái)
  • 麗水市建設(shè)工程招標(biāo)網(wǎng)站百度官方客服
  • 平谷住房和城鄉(xiāng)建設(shè)委員會(huì)網(wǎng)站微信朋友圈產(chǎn)品推廣語(yǔ)
  • 做項(xiàng)目的編程網(wǎng)站seo關(guān)鍵詞推廣公司
  • 企業(yè)門戶網(wǎng)站開發(fā)代碼簡(jiǎn)單網(wǎng)站建設(shè)優(yōu)化推廣
  • 金湖網(wǎng)站建設(shè)搜索引擎排行榜
  • 河南省村鎮(zhèn)建設(shè)處網(wǎng)站南寧seo推廣公司
  • 自己做的網(wǎng)站根目錄哪里找到網(wǎng)絡(luò)推廣seo怎么弄