Java快速实现图书管理基本功能_第1页
Java快速实现图书管理基本功能_第2页
Java快速实现图书管理基本功能_第3页
Java快速实现图书管理基本功能_第4页
Java快速实现图书管理基本功能_第5页
已阅读5页,还剩7页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

第Java快速实现图书管理基本功能目录前言主函数书的创建对用户的操作对书的操作

前言

今天的内容主要是利用前面所学的知识点:类,抽象类,封装,继承,多态,接口等进行的一个简单的代码练习。

主要要求:

1、用户登录

2、管理端

查找图书新增图书删减图书显示图书列表退出系统

3、用户端

查找图书借阅图书归还图书退出系统

我们可以将以上内容分为对书的创建初始化,对用户的操作,对书的操作。

主函数

Main:(对所有流程进行整合)

importbook.BookList;

importUser.NormalUser;

importUser.AdminUser;

importUser.user;

importjava.util.Scanner;

publicclassMain{

publicstaticuserlogin(){

System.out.print("请输入你的姓名:");

Scannerscanner=newScanner(System.in);

Stringname=scanner.nextLine();

System.out.println("请选择你的身份:1-管理员0-普通用户");

intchoice=scanner.nextInt();

if(choice==1){

returnnewAdminUser(name);

}else{

returnnewNormalUser(name);

publicstaticvoidmain(String[]args){

BookListbookList=newBookList();

userus=login();//向上转型

while(true){

intchoice=us.menu();//多态绑定

us.doWork(choice,bookList);

}

书的创建

Book:

packagebook;

//创建图书

publicclassBook{

privateStringname;//书名

privateStringauthor;//书的作者

privateStringtype;//书的类型

privateintprice;//书的价格

booleanisBorrowed;//书是否被借出

//在这里我们就不对isBorrowed进行构造,在最后打印的时候对他进行判断就好

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;

//创建书架

publicclassBookList{

privateBook[]books=newBook[10];//创建一个数组当书架放书,假设一共可以放10本

publicintusedSize;//书架上有效放书数

publicBookList(){//假设一开始书架上就放了三本书

books[0]=newBook("红楼梦","曹雪芹","文学",55);

books[1]=newBook("西游记","吴承恩","文学",65);

books[2]=newBook("水浒传","施耐庵","文学",23);

usedSize=3;

publicintgetUsedSize(){

returnusedSize;

publicvoidsetUsedSize(intusedSize){

this.usedSize=usedSize;

//获取一本书的位置

publicBookgetpos(intpos){

returnthis.books[pos];

//在下标为pos的位置上放一本书(添加)

publicvoidsetBook(intpos,Bookbook){

this.books[pos]=book;

}

对用户的操作

创建用户user类:

packageUser;

importbook.BookList;

importoperation.IOperation;

publicabstractclassuser{

protectedStringname;

protectedIOperation[]iOperations;//创建操作类数组,通过返回的数字用于对书的操作

publicuser(Stringname){

=name;

publicabstractintmenu();//用于动态绑定

publicvoiddoWork(intchoice,BookListbookList){

iOperations[choice].work(bookList);

}

创建管理员用户类AdminUser,是user的子类.

packageUser;

importoperation.*;

importjava.util.Scanner;

publicclassAdminUserextendsuser{

publicAdminUser(Stringname){

super(name);

this.iOperations=newIOperation[]{//初始化数组,将菜单上的数字与对应的操作放好

newExitOperation(),

newFindOperation(),

newAddOperation(),

newDelOperation(),

newDisplayOperation()

publicintmenu(){

System.out.println("========管理员的菜单========");

System.out.println("欢迎"++"来到图书馆");

System.out.println("1.查找图书");

System.out.println("2.新增图书");

System.out.println("3.删减图书");

System.out.println("4.显示图书");

System.out.println("0.查退出系统");

System.out.println("===========================");

System.out.print("请选择你要的操作:");

Scannerscanner=newScanner(System.in);

intchoice=scanner.nextInt();

returnchoice;//返回选择的数字

}

创建普通用户类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("欢迎"++"来到图书馆");

System.out.println("1.查找图书");

System.out.println("2.借阅图书");

System.out.println("3.归还图书");

System.out.println("0.退出系统");

System.out.println("============================");

System.out.print("请选择你要的操作:");

Scannerscanner=newScanner(System.in);

intchoice=scanner.nextInt();

returnchoice;

}

对书的操作

创建接口IOperation:

packageoperation;

importbook.BookList;

importjava.util.Scanner;

publicinterfaceIOperation{

Scannerscanner=newScanner(System.in);

voidwork(BookListbookList);

}

创建增加图书类AddOperation,继承接口IOperation

packageoperation;

importbook.Book;

importbook.BookList;

importjava.util.Scanner;

publicclassAddOperationimplementsIOperation{

publicvoidwork(BookListbookList){

System.out.println("新增图书!");

System.out.println("请输入图书的名字1请输入图书的作者2请输入图书的类型3请输入图书的价格4新增图书成功");

}

创建删减图书类DelOperation,继承接口IOperation

packageoperation;

importbook.Book;

importbook.BookList;

publicclassDelOperationimplementsIOperation{

publicvoidwork(BookListbookList){

System.out.println("删减图书");

System.out.println("请输入要删减图书的名字:");

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("没有你要删除的图书");

//删除就是要将j+1下标的信息放进j下标里面信息去,这样子j里面的信息就被删除了

for(intj=index;jsize-1;j++){

Bookbook=bookList.getpos(j+1);//获取j+1下标放的书的信息给j下标

bookList.setBook(j,book);

bookList.setBook(size,null);//删除之后,把最后一个下标信息置为null

bookList.setUsedSize(size-1);//下标减1

System.out.println("删除成功");

}

创建查找图书类FindOperation,继承接口IOperation

packageoperation;

importbook.BookList;

importbook.Book;

publicclassFindOperationimplementsIOperation{

publicvoidwork(BookListbookList){

System.out.println("查找图书!");

System.out.println("请输入要查找书的名字");

Stringname=scanner.nextLine();

intsize=bookList.getUsedSize();

for(inti=0;isize;i++){

Bookbook=bookList.getpos(i);//找到这本书的信息

if(name.equals(book.getName())){//比较名字是否相同

System.out.println("找到了这本书,信息如下:");

System.out.println(book);

return;

System.out.println("没有找到这本书!");

}

创建显示图书列表类DisplayOperation,继承接口IOperation

packageoperation;

importbook.Book;

importbook.BookList;

publicclassDisplayOperationimplementsIOperation{

publicvoidwork(BookListbookList){

System.out.println("显示图书");

for(inti=0;ibookList.usedSize;i++){

Bookbook=bookList.getpos(i);

System.out.println(book);

}

创建借阅图书列表类BorrowOperation,继承接口IOperation

packageoperation;

importbook.Book;

importbook.BookList;

publicclassBorrowOperationimplementsIOperation{

publicvoidwork(BookListbookList){

System.out.println("借阅图书");

System.out.println("请输入你要借阅的图书的名字");

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. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论