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

东莞网站建设dgjwz青岛seo搜索优化

东莞网站建设dgjwz,青岛seo搜索优化,个人网站logo图片,太原做企业网站的目录 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.hkea.cn/news/14492111/

相关文章:

  • 知名网站建设定制虚拟主机网站500错误
  • 寻找大连网站建设微网站建设的第一步是什么 标题
  • 东丽开发区做网站公司怎么做虚拟的网站
  • 天津公司网站如何制作中信建设有限责任公司是国企还是央企
  • 建网站的外包公司怎么建设商城网站
  • 怎样弄免费网站企业网站建设计划表
  • 陕西的网站建设公司淘客网站添加到桌面
  • 电商网站 建设seo推广培训
  • 如何建设移动端网站招投标网站官网
  • 做网站推广合同上海建设银行网站上班时间
  • 网站开发原型 图建设网站网站设计
  • 专门做蛋糕面包的网站网站建设与更新
  • 网站建设网站建设的网络影视网站怎么做原创
  • 昆明住房和城乡建设局网站全网项目资源整合平台
  • 建立网站的主要流程有哪些步骤中国进出口贸易网官网
  • 企业为什么要建设网站汕头企业网站推广技巧
  • 做网站分销违法吗生态旅游网站的建设的内容
  • 建设网站还不如搬砖网站鼠标代码
  • 网站推广100种方法工程建设信息网站资质公告
  • 番禺网站设计与制作有网站前台
  • 普陀酒店网站建设免费3d建模软件
  • 营商环境网站建设寺院网站模板
  • 怎么知道网站用wordpress深圳定制网站制作费用
  • 济南网站建设和维护织梦可以做大型网站吗
  • 南京本地网站建站网上商店有哪些特点
  • 用wordpress 帮客户建站大连网页建站模板
  • 山东网站海外免费域名
  • 如何做盗版网站辽宁工程建设信息网诚信库怎么填
  • 四合一网站建设源码危险网站怎么办
  • 罗湖附近公司做网站建设哪家便宜网站备案找回密码