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

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

備案號(hào)網(wǎng)站下邊軟文廣告經(jīng)典案例分析

備案號(hào)網(wǎng)站下邊,軟文廣告經(jīng)典案例分析,紅酒企業(yè)網(wǎng)站模板,廣州網(wǎng)站建設(shè)優(yōu)化公司前言:為了鞏固之前學(xué)習(xí)的java知識(shí)點(diǎn),我們用之前學(xué)習(xí)的java知識(shí)點(diǎn)(方法,數(shù)組,類和對(duì)象,封裝,繼承,多態(tài),抽象類,接口)來實(shí)現(xiàn)一個(gè)簡單的圖書管理系統(tǒng)…

前言:為了鞏固之前學(xué)習(xí)的java知識(shí)點(diǎn),我們用之前學(xué)習(xí)的java知識(shí)點(diǎn)(方法,數(shù)組,類和對(duì)象,封裝,繼承,多態(tài),抽象類,接口)來實(shí)現(xiàn)一個(gè)簡單的圖書管理系統(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ǔ)充說明


一. 創(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("請輸入你的操作:");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("三國演義","羅貫中",10,"小說");this.books[1] = new Book("西游記","吳承恩",9,"小說");this.books[2] = new Book("紅樓夢","曹雪芹",19,"小說");this.usedSize = 3;}public int getUsedSize() {return usedSize;}public void setUsedSize(int usedSize) {this.usedSize = usedSize;}// 通過下標(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("請輸入書名:");String name = sc.nextLine();System.out.println("請輸入作者:");String author = sc.nextLine();System.out.println("請輸入類型:");String type = sc.nextLine();System.out.println("請輸入價(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("請輸入你要?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("請輸入你要查找的圖書:");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("請輸入你要借閱的圖書:");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("請輸入你要?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("請輸入你的操作:");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("請輸入你的操作:");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("請輸入你的姓名:");Scanner sc = new Scanner(System.in);String name = sc.nextLine();System.out.println("請輸入你的身份,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 的選擇 來決定調(diào)用的是哪個(gè)方法user.doOperation(choice, bookList);}}
}

三. 操作實(shí)例

1. 管理員

2. 用戶

四. 補(bǔ)充說明

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

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

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

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

相關(guān)文章:

  • 牡丹江市建設(shè)銀行門戶網(wǎng)站百度快照的作用是什么
  • 企業(yè)網(wǎng)站架構(gòu)體驗(yàn)營銷是什么
  • 做網(wǎng)站的怎么辦理營業(yè)執(zhí)照seo輿情優(yōu)化
  • 池州專業(yè)網(wǎng)站建設(shè)怎么樣蘇州seo
  • wordpress ie8優(yōu)化軟件
  • 做h5的網(wǎng)站頁面設(shè)計(jì)廈門人才網(wǎng)個(gè)人會(huì)員
  • 丹陽疫情最新消息今天新增百度seo網(wǎng)站優(yōu)化服務(wù)
  • 網(wǎng)絡(luò)制作軟件seo型網(wǎng)站
  • 做電商網(wǎng)站哪里好優(yōu)化師助理
  • 個(gè)人博客網(wǎng)站模板源碼線上宣傳方式有哪些
  • 百度搜索網(wǎng)站在第一次輸入搜索內(nèi)容后點(diǎn)搜索鍵沒有反應(yīng)智慧軟文發(fā)稿平臺(tái)
  • 深圳網(wǎng)站設(shè)計(jì)公司如何寧波seo網(wǎng)絡(luò)推廣定制多少錢
  • 鼠標(biāo)放到一級(jí)導(dǎo)航時(shí)才顯示網(wǎng)站二級(jí)導(dǎo)航 鼠標(biāo)離開時(shí)不顯示 怎么控制站長統(tǒng)計(jì)app軟件
  • 西安做百度網(wǎng)站的seo優(yōu)化多少錢
  • 網(wǎng)站做優(yōu)化每天一定要更新bing搜索 國內(nèi)版
  • 寧波網(wǎng)站建設(shè)制作哪家好牛排seo
  • 邢臺(tái)做wap網(wǎng)站費(fèi)用網(wǎng)站接廣告平臺(tái)
  • cms建立網(wǎng)站鄭州百度推廣seo
  • 網(wǎng)站開發(fā)要懂英文嗎全國互聯(lián)網(wǎng)營銷大賽官網(wǎng)
  • 微信網(wǎng)站建設(shè)seo項(xiàng)目培訓(xùn)
  • 鄭州建站價(jià)格英文關(guān)鍵詞seo
  • 滄州網(wǎng)站排名優(yōu)化有站點(diǎn)網(wǎng)絡(luò)營銷平臺(tái)
  • 建設(shè)項(xiàng)目環(huán)境登記表遼寧省網(wǎng)站軟文營銷的作用
  • 深圳做律師網(wǎng)站公司搜索引擎優(yōu)化員簡歷
  • 阿里巴巴網(wǎng)站建設(shè)公司南寧今日頭條最新消息
  • 我的世界做壁紙網(wǎng)站seo推廣優(yōu)化培訓(xùn)
  • 網(wǎng)站兩邊的懸浮框怎么做濟(jì)南seo快速霸屏
  • 東莞常平網(wǎng)站建設(shè)引流推廣是什么意思
  • 網(wǎng)站程序調(diào)試模式怎么做sem代運(yùn)營
  • 成都網(wǎng)站建設(shè)前十注冊網(wǎng)站流程