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

24小时24元网站建设嘉兴做微网站的公司

24小时24元网站建设,嘉兴做微网站的公司,手机网站跳转,三门峡高端网站建设目录 1.前言 2.正文 2.1思路 2.2Book包 2.3people包 2.4operation包 2.5主函数 3.小结 1.前言 哈喽大家好吖#xff0c;今天来给前面Java基础的学习来一个基础的实战#xff0c;做一个简单的图书管理系统#xff0c;这里边综合利用了我们之前学习到的类和对象…  目录 1.前言 2.正文 2.1思路 2.2Book包 2.3people包 2.4operation包 2.5主函数 3.小结 1.前言 哈喽大家好吖今天来给前面Java基础的学习来一个基础的实战做一个简单的图书管理系统这里边综合利用了我们之前学习到的类和对象继承与多态以及抽象类和接口等许多重要的概念以及知识事不宜迟让我们开始吧。 2.正文 2.1思路 在正式开始图书管理系统的代码完成前我们需要先对一系列所需要创建的对象各个对象之间的关系如何实现这种关系都要有一个提前的规划下面我通过PlantUML生成了图书管理系统的基础框架我据图一一解释。 在图书管理系统里面会参与各种行为的对象都有哪些呢有书本借阅者管理员具体的借阅功能等所以我们一共有四个包分别为 Book包   operation包 people 主函数所在包 我们把各个模块把它分成各个包来进行封装是代码的条理性更好。 2.2Book包 在Book包中我们创建了俩个对象一个是book对象另一个书用于存放书的bookshelf对象具体实现如下 package Book;public class Book {private String bookName;private String writer;private String classification;private Boolean borrow;public Book(String bookName, String writer, String classification, Boolean borrow) {this.bookName bookName;this.writer writer;this.classification classification;this.borrow borrow;}public String getBookName() {return bookName;}public void setBookName(String bookName) {this.bookName bookName;}public String getWriter() {return writer;}public void setWriter(String writer) {this.writer writer;}public String getClassification() {return classification;}public void setClassification(String classification) {this.classification classification;}public Boolean getBorrow() {return borrow;}public void setBorrow(Boolean borrow) {this.borrow borrow;} } 因为成员的访问权限我们设置为private所以我们需要各种getter和setter方法来调用成员变量其中getter和setter方法是可以通过系统快速生成的即按住altinsert可以快速实现该方法。 下面是Bookshelf对象 package Book;public class bookShelf {private Book[] books new Book[10];private int bookNum 0;public bookShelf() {this.books[0] new Book(三国演义,罗贯中,历史演义,null);this.books[1] new Book(三体,刘慈欣,科幻小说,null);this.books[2] new Book(西游记,吴承恩,小说,null);this.bookNum 3;}public Book getBooks(int pos) {return books[pos];}public void setBooks(Book book,int pos) {this.books[pos] book;}public int getBookNum() {return bookNum;}public void setBookNum(int bookNum) {this.bookNum bookNum;} } 我们在bookshelf的构造方法中提前初始化里三个对象即可以理解为图书馆中原本就存放的书。创建一个bookNum变量用于记录当前所存放的图书数量。 2.3people包 在people包中我们通过继承来实现首先创建了一个person抽象类用于抽取管理员和借阅者的共同属性以及方法再分别实现子类Admin与normalUser。 person类 package People;import operation.*; import Book.*;public abstract class Person {public String name;public Operation[] iOperations;public Person(String name) {this.name name;}public abstract int menu();public void finishOPerations(int choice,bookShelf bookShelf) {iOperations[choice].work(bookShelf);} } 共同属性姓名不必多说还额外创建了一个功能数组另外创建一个菜单方法用于打印各自的菜单最后还有finishOPeration方法通过这个功能数组即可实现输入菜单对应选项进入对应功能的操作。 Admin类 package People;import operation.*;import java.util.Scanner;public class Admin extends Person {public Admin(String name) {super(name);this.iOperations new Operation[]{new edit(),new showBook(),new findBook(),new addBook(),new delBook()};}Overridepublic int menu() {System.out.println(*******************);System.out.println(**欢迎来到管理员菜单**);System.out.println(******0.退出系统*****);System.out.println(******1.显示图书*****);System.out.println(******2.寻找图书*****);System.out.println(******3.增加图书*****);System.out.println(******4.减少图书*****);System.out.println(*******************);Scanner scanner new Scanner(System.in);int choice scanner.nextInt();return choice;}} 在这个构造方法中需要对功能数组中添加功能方法下文同样。 normalUser类 package People;import operation.*;import java.util.Scanner;public class normalUser extends Person {Overridepublic int menu() {System.out.println(*******************);System.out.println(***欢迎来到用户菜单***);System.out.println(******0.退出系统*****);System.out.println(******1.显示图书*****);System.out.println(******2.寻找图书*****);System.out.println(******3.借阅图书*****);System.out.println(******4.归还图书*****);System.out.println(*******************);Scanner scanner new Scanner(System.in);int choice scanner.nextInt();return choice;}public normalUser(String name) {super(name);this.iOperations new Operation[]{new edit(),new showBook(),new findBook(),new borrowBook(),new returnBook()};}} 2.4operation包 在这个包里面我们尝试把各种人物的行为全都各个创建成对象来进行分别实现这里我们采用了接口即在这个包里接了这个接口的其他对象都需要将接口中的方法重写来达到方法都得到实现的目的。 首先是接口 package operation;import Book.bookShelf;public interface Operation {public void work(bookShelf bookShelf); }接口中的方法不需要具体实现。 接下来就是各种需要实现的对象与对象之间的逻辑了如借阅图书归还图书查询图书退出系统等我一一进行讲解 findBook类 package operation;import Book.Book; import Book.bookShelf; import java.util.Scanner;//找书先要判断是否有书若有则借若无则直接返回 public class findBook implements Operation{public void work(bookShelf bookShelf){Scanner scanner new Scanner(System.in);System.out.println(查找图书);String name scanner.nextLine();for(int i 0;i bookShelf.getBookNum();i){if(name.equals(bookShelf.getBooks(i).getBookName())){System.out.println(找到了《 name 》书);return;}}System.out.println(未找到 《 name 》);} }通过遍历来实现若遍历到有此书则打印找到了并返回若能走完遍历则未找到。 showBook类 package operation;import Book.bookShelf;public class showBook implements Operation{public void work(bookShelf bookShelf) {System.out.println(显示图书);//遍历书架for (int i 0; i bookShelf.getBookNum(); i) {System.out.println(bookShelf.getBooks(i));}}} 这个遍历打印即可没什么特殊。 addBook类 //新增图书先判断该书是否存在,再实例化一个书对象添加进bookshelf并将bookNum增加package operation;import Book.Book; import Book.bookShelf; import java.util.Scanner;public class addBook implements Operation {Overridepublic void work(bookShelf bookShelf) {Scanner scanner new Scanner(System.in);System.out.println(请输入添加的图书名字);String name scanner.nextLine();System.out.println(请输入添加的图书作者名字);String writer scanner.nextLine();System.out.println(请输入添加的图书分类);String classfication scanner.nextLine();//遍历判断是否有相同书for(int i 0;i bookShelf.getBookNum();i){if(name.equals(bookShelf.getBooks(i).getBookName())){System.out.println(书库里已有该书);return;}}//新增图书bookShelf.setBooks(new Book(name,writer,classfication,false), bookShelf.getBookNum());bookShelf.setBookNum(bookShelf.getBookNum() 1);//新增图书加1System.out.println(书《 name 》已添加成功);} } 新增图书是属于Admin对象的类方法先输入要添加的书的各个成员变量的信息再遍历寻找有无相同书若没有则添加。 delBook类 //删除一本书现需要查找是否有该书删书即使后一个覆盖前一个即可package operation;import Book.Book; import Book.bookShelf; import java.util.Scanner;public class delBook implements Operation{Overridepublic void work(bookShelf bookShelf) {Scanner scanner new Scanner(System.in);System.out.println(请输入你需要删除的书);String name scanner.nextLine();for(int i 0;i bookShelf.getBookNum();i){if(name.equals(bookShelf.getBooks(i).getBookName())){for(int j i;j bookShelf.getBookNum() - 1;j){bookShelf.setBooks(bookShelf.getBooks(j 1),j);}bookShelf.setBookNum(bookShelf.getBookNum() - 1);System.out.println(该书已删除完毕);return;}}System.out.println(不存在该书);} } 也是遍历寻找输入的书若找到删除的书则将后面的书一一往前覆盖即可实现删除功能最后不要忘了bookNum要进行减一操作。 borrowBook类 package operation;import Book.Book; import Book.bookShelf; import java.util.Scanner;public class borrowBook implements Operation{Overridepublic void work(bookShelf bookShelf) {Scanner scanner new Scanner(System.in);System.out.println(请输入要借阅书的名字);String name scanner.nextLine();for(int i 0;i bookShelf.getBookNum();i){if(name.equals(bookShelf.getBooks(i).getBookName())){bookShelf.getBooks(i).setBorrow(true);//设置借阅状态System.out.println(书《 name 》借阅成功);return;}}System.out.println(不存在该书借阅失败);} } 还是先遍历找书若有则改变图书的借阅状态若无则借阅失败。 returnBook类 package operation;import Book.bookShelf;import java.util.Scanner;public class returnBook implements Operation{Overridepublic void work(bookShelf bookShelf) {Scanner scanner new Scanner(System.in);System.out.println(请输入要归还书的名字);String name scanner.nextLine();for(int i 0;i bookShelf.getBookNum();i){if(name.equals(bookShelf.getBooks(i).getBookName())){bookShelf.getBooks(i).setBorrow(false);//设置借阅状态System.out.println(书《 name 》归还成功);return;}}System.out.println(不存在该书归还失败);} }和借书操作如出一辙唯一的区别就是状态改变的true与false不同。 edit类 package operation;import Book.bookShelf;public class edit implements Operation{Overridepublic void work(bookShelf bookShelf) {for(int i 0;i bookShelf.getBookNum();i){bookShelf.setBooks(null,i);}bookShelf.setBookNum(0);System.exit(0);} } 实现退出功能先将储存的图书删除将bookNum清零最后退出系统。 2.5主函数 在主函数中同样我们把登陆即选择自己是管理员还是借阅者身份的选择的login功能也通过单独的类方法来进行实现。 Login类 package System;import People.Admin; import People.Person; import People.normalUser;import java.util.Scanner;public class Login{public Person loginIn(){System.out.println(*欢迎来到图书管理系统**);Scanner scanner new Scanner(System.in);System.out.println(请输入你的名字);String name scanner.nextLine();System.out.println(*******************);System.out.println(******1.管理员******);System.out.println(******2.普通用户****);System.out.println(请输入你的身份);if(scanner.nextInt() 1){return new Admin(name);}else{return new normalUser(name);}} } 最后就是主函数这个时候主函数就会比较整洁明了记得要分别实例化书架bookShelf对象以及Login登陆对象了。 package System;import Book.*; import People.*;public class system {public static void main(String[] args) {bookShelf bookShelf new bookShelf();Login login new Login();Person person login.loginIn();while(true){int choice person.menu();person.finishOPerations(choice,bookShelf);}}} 这样我们图书管理系统就完成了  3.小结 今天的图书管理系统的分享到这里就结束了喜欢的小伙伴不要忘了点一手关注再走哦欢迎大家在评论区多多交流哦。
http://www.w-s-a.com/news/122594/

相关文章:

  • 中国中小企业网站官网网页制作工具按其制作方式分 可以分为
  • 做资源下载网站违法吗河南企业做网站
  • 网站开发总体功能设计网站建设 北京昌平
  • 辽宁省高等级公路建设局网站书画院网站建设方案
  • 本地生活网站 源码重庆本地网站有哪些
  • 企业网站域名服务器国外html响应式网站
  • 东莞网站建设策划企业网站推广策划方法
  • 网站的图片怎么制作WordPress交互式网站
  • pc网站增加手机站什么专业学网页设计制作
  • 婚庆公司网站模板wordpress用什么框架
  • 高校网站建设的时效性长沙市网站建设
  • 合肥网站建设市场四川建设网官网住房和城乡厅官网官方
  • 天行健君子以自强不息网站建设江西网站做的好的企业文化
  • 建网站内容谷歌搜索引擎优化
  • 网站建设与管理案例教程第三版答案网站建设策划书范文六篇精选
  • 建设工程项目在哪个网站查询实时网站推广的最终目的是
  • 个人网站可以做淘客网站设置的参数
  • 自适应网站制作公司做室内设计通常上的网站
  • 网站建设项目采购公告建设网站公司建网页
  • 自己做网站怎么推广网站建设应该考虑哪些方面
  • 我做的网站手机上不了wordpress插件整站搬家
  • 河南省和建设厅网站首页西安找建网站公司
  • 网页设计基础代码网站进出成都最新通知
  • 如何创建网站乐清网络科技有限公司
  • 沈阳市网站制作艺术字体logo设计生成器
  • 网站设计常用软件都有哪些中国建设银行官方招聘网站
  • 证券投资网站建设视频直播怎么赚钱的
  • 建设酒店网站ppt模板下载郑州小程序设计外包
  • 网站建设自我总结google推广公司
  • 安全网站建设情况wordpress 评论表单