当前位置: 首页 > news >正文

建设银行滇龙行网站网上如何建网站卖量具

建设银行滇龙行网站,网上如何建网站卖量具,wordpress 3.7.1,长沙网站推广 下拉通推广有了前几篇文章关于封装、继承、多态、接口等的介绍,想必各位读者对java面向对象的思想有了一定的认识。接下来这篇文章就让我们趁热打铁,利用所学知识做一个小项目图书管理系统吧 目录 一、图书类 1、book类 2、bookList类 二、功能实现 1、IOpera…

        有了前几篇文章关于封装、继承、多态、接口等的介绍,想必各位读者对java面向对象的思想有了一定的认识。接下来这篇文章就让我们趁热打铁,利用所学知识做一个小项目图书管理系统吧

目录

一、图书类

1、book类

2、bookList类

二、功能实现

1、IOperation接口

2、查找图书

3、借阅图书

4、归还图书

5、新增图书

6、删除图书

7、显示图书

8、退出系统

三、用户类

四、主函数逻辑实现

总结


一、图书类

        图书管理系统,顾名思义,起码要先有书被管理。因此我们应当先定义好于书相关的类。

1、book类

        先定义一下单本书的特性,一本书肯定会包含书名、作者、价格等信息,我们可以建立一个book类来描述每本书的特性:

package book;public class Book {private String name;private String author;private int price;private boolean IsBorrowed;public Book(String name, String author, int price) {this.name = name;this.author = author;this.price = price;}public String getName() {return name;}public boolean isBorrowed() {return IsBorrowed;}public void setBorrowed(boolean borrowed) {this.IsBorrowed = borrowed;}@Overridepublic String toString() {return "name='" + name + '\'' +", author='" + author + '\'' +", price=" + price +(IsBorrowed?", 已借出":", 未借出");}
}

2、bookList类

        既然要做管理系统,那就不可能只处理一本书了,我们需要管理的是许多本特性各异的书。那么如何来存储这些信息呢?我们可以建立一个列表类来记录我们的图书信息:

package book;public class BookList {private Book[] books=new Book[20];private int userSize;public BookList() {books[0]=new Book("海贼王","尾田荣一郎",17);books[1]=new Book("火影忍者","尾田荣一郎",19);books[2]=new Book("红楼梦","曹雪芹",45);books[3]=new Book("西游记","吴承恩",40);books[4]=new Book("三国演义","罗贯中",37);this.userSize=5;}public int getUserSize() {return userSize;}public void setUserSize(int userSize) {this.userSize = userSize;}public boolean isFull(){if(this.userSize==books.length){return true;}else{return false;}}public Book getBook(int pos){return books[pos];}public void setBook(int pos,Book book){books[pos]=book;}
}

二、功能实现

       已经存储好书本信息后, 我们就要明确我们究竟要实现哪些功能?

具体实现就由小编来带大家一一介绍吧

1、IOperation接口

为了功能实现的方便,我们通过接口来实现各个功能,先定义一个接口IOperation:

public interface IOperation {void work(BookList bookList);
}

接着就可以通过重写接口中的work方法来实现各个的功能了,并且由于多态性,我们可以将各种不同功能的接口按顺序放在一个数组里,通过数组访问来实现不同功能,大大提高了效率。

如果你不知道多态是什么的话,可以看看小编之前的文章面向对象三大特性之多态 哦

2、查找图书

public class FindOperatino implements IOperation{@Overridepublic void work(BookList bookList) {System.out.println("查找图书………………");System.out.println("请输入你要查找的书名:");Scanner in =new Scanner(System.in);String bookname=in.nextLine();int Size= bookList.getUserSize();for(int i=0;i<Size;i++){Book book=bookList.getBook(i);if(book.getName().equals(bookname)){System.out.println("找到了这本书:");System.out.println(book);return;}}System.out.println("没有你要找的书!");}
}

3、借阅图书

public class BorrowedOperation implements IOperation{@Overridepublic void work(BookList bookList) {System.out.println("借阅图书………………");System.out.println("请输入你要借阅的书名:");Scanner in =new Scanner(System.in);String bookname=in.nextLine();int Size= bookList.getUserSize();for(int i=0;i<Size;i++){Book book=bookList.getBook(i);if(book.getName().equals(bookname)){System.out.println("借阅成功!");book.setBorrowed(true);//System.out.println(book);return;}}System.out.println("没有你要借阅的书!");}
}

4、归还图书

public class ReturnOperation implements IOperation{@Overridepublic void work(BookList bookList) {System.out.println("归还图书………………");System.out.println("请输入你要归还的图书:");Scanner in =new Scanner(System.in);String bookname=in.nextLine();int Size= bookList.getUserSize();for(int i=0;i<Size;i++){Book book=bookList.getBook(i);if(book.getName().equals(bookname)&&book.isBorrowed()){System.out.println("归还成功!");book.setBorrowed(false);//System.out.println(book);return;}}System.out.println("没有你要归还的书!");}
}

5、新增图书

public class AddOperation implements IOperation{@Overridepublic void work(BookList bookList) {System.out.println("新增图书………………");Scanner in=new Scanner(System.in);if(bookList.isFull()){System.out.println("书架满了,无法新增图书了!");return;}System.out.println("请输入图书的名称:");String name=in.nextLine();System.out.println("请输入图书的作者:");String author=in.nextLine();System.out.println("请输入图书的价格:");int price=in.nextInt();Book book=new Book(name,author,price);int pos= bookList.getUserSize();bookList.setBook(pos,book);bookList.setUserSize(pos+1);}
}

6、删除图书

public class DeleteOperation implements IOperation{@Overridepublic void work(BookList bookList) {System.out.println("删除图书………………");System.out.println("请输入你要删除的图书:");Scanner in =new Scanner(System.in);String bookname=in.nextLine();int Size= bookList.getUserSize();for(int i=0;i<Size;i++){Book book=bookList.getBook(i);if(book.getName().equals(bookname)){for(int j=i;j<Size;j++){Book bookl=bookList.getBook(j+1);bookList.setBook(j,bookl);}bookList.setUserSize(Size-1);System.out.println("删除成功!");//System.out.println(book);return;}}System.out.println("没有你要删除的书!");}
}

7、显示图书

public class ShowOperation implements IOperation{@Overridepublic void work(BookList bookList) {System.out.println("显示图书………………");int Size= bookList.getUserSize();for(int i=0;i<Size;i++){Book book=bookList.getBook(i);System.out.println(book);}}
}

8、退出系统

public class ExitOperation implements IOperation {@Overridepublic void work(Bookshelf bookshelf) {System.out.println("退出图书...");int sz=bookshelf.getBooknum();// 遍历置为 nullfor (int i = 0; i <sz ; i++) {bookshelf.setBooks(i,null);}System.out.println("图书系统正在退出中...");// 系统退出System.exit(-1);}
}


        这时我们就可以用如下方法来整合了:

super(name);this.iOperations=new IOperation[]{new ExitOperation(),new FindOperatino(),new AddOperation(),new DeleteOperation(),new ShowOperation()};

这样就可以通过数组的不同下标来实现功能了,会变得方便许多。

三、用户类

        作为一个图书管理系统,我们应当设置不同的用户特性,如增删书籍应该是管理员才有的权限,借阅书籍是普通用户需要实现的功能,但同时他们又有许多的共性,如姓名等信息,这时我们就可以利用继承的思想先定义一个父类User来记录用户的共性:

abstract public class User {protected String name;protected IOperation[] iOperations;public User(String name) {this.name = name;}public void doIoperation(int choice, BookList bookList){this.iOperations[choice].work(bookList);}public abstract int menu();
}

接着我们就可以写出各个具体的子类用户了

管理员用户:

public class AdminUser extends User {public AdminUser(String name) {super(name);this.iOperations=new IOperation[]{new ExitOperation(),new FindOperatino(),new AddOperation(),new DeleteOperation(),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.退出系统");System.out.println("**************************");System.out.println("请输入你的操作:");Scanner in=new Scanner(System.in);int choice=in.nextInt();return choice;}
}

普通用户:

public class NormalUser extends User{public NormalUser(String name) {super(name);this.iOperations=new IOperation[]{new ExitOperation(),new FindOperatino(),new BorrowedOperation(),new ReturnOperation()};}public int menu(){System.out.println("*********普通用户菜单*******");System.out.println("1.查找图书");System.out.println("2.借阅图书");System.out.println("3.归还图书");System.out.println("0.退出系统");System.out.println("**************************");System.out.println("请输入你的操作:");Scanner in=new Scanner(System.in);int choice=in.nextInt();return choice;}
}

四、主函数逻辑实现

public class Main {public static User login(){Scanner in =new Scanner(System.in);System.out.println("欢迎来到图书管理系统");System.out.println("请输入你的名字:");String name=in.nextLine();System.out.println("请输入你的身份:");String identity=in.nextLine();if(identity.equals("管理员")){AdminUser adminUser=new AdminUser(name);return adminUser;}else{NormalUser normalUser=new NormalUser(name);return normalUser;}}public static void main(String[] args) {BookList bookList=new BookList();User user=login();while(true){int choice=user.menu();user.doIoperation(choice,bookList);}}
}

通过主函数逻辑来整合我们写过的各个模块,从而实现最终功能。


总结

        从这个项目中我们可以看到,在父类User中实例化了iOperations对象,建立了一个以IOperation为元素的数组,接着在子类中按顺序建立创建好的功能接口,从而可以直接用下标来访问相应接口,这利用继承、多态、接口等思想,可谓是对面向对象思想的深度诠释。

那么本篇文章就到此为止了,如果觉得这篇文章对你有帮助的话,可以点一下关注和点赞来支持作者哦。作者还是一个萌新,如果有什么讲的不对的地方欢迎在评论区指出,希望能够和你们一起进步✊

http://www.yayakq.cn/news/44407/

相关文章:

  • 企业建站模板价格网站建设基本流程是什么
  • 深圳市住房和建设局网站公示古蔺中国建设银行网站
  • 网站点内页还是首页垄断了网站建设
  • wordpress 网站同步广东网站开发软件
  • 企业网站建设公司丰台seo优化快排
  • 网站建设实训建议网络营销推广的目标与策略
  • 呼市城乡建设厅网站设计接单赚钱平台
  • 青海wap网站建设公司网页版传奇制作教程
  • 网站建设保教购物网站英语
  • 网站没备案可以做商城吗cms做企业网站
  • 做化妆品网站的原因郑州教育信息网
  • 百度网站排名seo快递公司网站源码
  • 易企秀可以做网站吗国家为什么不禁止外包
  • 深圳定制网站建设新月传媒做网站 怎么样
  • 男女情感类网站网站开发设计技术路线
  • 成都网站推广多少钱如何做下载网站赚钱
  • 怎么帮人做网站福建专业网站建设公司
  • 网站后台编辑器无法显示大学科研项目做网站
  • angularjs 做的网站网站建设好公司
  • 互联网网站样式北仑做网站
  • 如何将微信和企业网站同步装修图纸设计图
  • 专业网站设计制作改版看设计作品的网站软件
  • 制作网站的工具微信开发平台开发
  • 静态网站中怎么做图片切换建设视频网站设计意义
  • 做网站的叫什么思耐wordpress安装后浏览首页错位
  • seo网站推广经理招聘高端汽车网站建设
  • 建设网站的视频好的装修网站
  • 中国网站访问量排行专业定制网站制作公司
  • 平台类网站制作公司给网站网站做推广犯法
  • 网站换模板影响adsence wordpress