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

菏泽市建设局网站wordpress 发布网站

菏泽市建设局网站,wordpress 发布网站,网站建设提供书面资料清单,外贸黄页前言:为了巩固之前学习的java知识点,我们用之前学习的java知识点(方法,数组,类和对象,封装,继承,多态,抽象类,接口)来实现一个简单的图书管理系统…

前言:为了巩固之前学习的java知识点,我们用之前学习的java知识点(方法,数组,类和对象,封装,继承,多态,抽象类,接口)来实现一个简单的图书管理系统!

目录

一. 创建文件的目录

二. 源码

book包

Book类

BookList类

operation包

IOeration接口

AddOperation类

DelOperation类

FindOperation类

ShowOperation类

BorrowOperation类

ReturnOperation类

ExitOperation类

user包

User类

AdminUser类

NormalUser类

Main类

三. 操作实例

1. 管理员

2. 用户

四. 补充说明


一. 创建文件的目录

使用Java开发工具IDEA创建一个Project工程,命名为TestBook,并在这个TestBook工程下的src下创建如下文件:book、opreation、user这三个包(Package)(以及这三个包下的类(class) 和 接口(interface)),并创建一个 Main 类。

二. 源码

book包

创建一个book包,book包下面创建两个类Book类(表示 图书类)和BookList类(表示 书架类)

Book类

描述书的有关信息,构造方法和各种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. 退出系统");System.out.println("**********************");Scanner sc = new Scanner(System.in);System.out.println("请输入你的操作:");int choice = sc.nextInt();return choice;}}

BookList类

作为书架,利用数组存放书籍。

package book;public class BookList {private Book[] books; //定义数组存储书架上的书籍private int usedSize; //记录当前书架上 实际存放的书的 数量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;}// 通过下标获取对应书籍的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包下面创建IOperation接口(图书操作 接口)和图书操作相关类AddOperation(表示 添加图书类),DelOperation(表示 删除图书类),FindOperation(表示 查找图书类),ShowOperation(显示图书类),BorrowOperation(表示 借阅图书类),ReturnOperation(归还图书类),ExitOperation(退出系统类)。

IOeration接口

后续使用所有与图书操作相关都要实现这个接口,对bookList对象进行相关工作。

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("请输入价格:");int price = sc.nextInt();Book book = new Book(name,author,price,type);//检查 数组当中 有没有这本书int currentSize = bookList.getUsedSize();for(int i=0;i<currentSize;i++) {Book book1 = bookList.getBook(i);if(book1.getName().equals(name)) {System.out.println("有这本书,不进行存放了!");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("请输入你要删除的图书:");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("没有你要删除的图书!");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();// 遍历这个数组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("请输入你要归还的图书:");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类

退出系统类

package operation;import book.BookList;public class ExitOperation implements IOperation{@Overridepublic void work(BookList bookList) {System.out.println("退出系统!");System.exit(0);}
}

user包

user包下创建三个类,抽象类User类(表示所有用户类,父类),AdminUser类(管理员类,子类),NormalUser(普通用户类,子类)类

User类

所有用户类,包含基本属性:姓名,菜单(menu)方法的声明,执行方法操作(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类

管理员类,包含管理员使用方法的数组和管理员菜单

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. 退出系统");System.out.println("**********************");Scanner sc = new Scanner(System.in);System.out.println("请输入你的操作:");int choice = sc.nextInt();return choice;}
}

NormalUser类

普通用户类,包含普通用户使用方法的数组和普通用户菜单

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. 退出系统");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 指向哪个对象 就看返回值User user = login();while(true) {int choice = user.menu();//根据choice 的选择 来决定调用的是哪个方法user.doOperation(choice, bookList);}}
}

三. 操作实例

1. 管理员

2. 用户

四. 补充说明

由于目前所学知识有限,这个图书管理系统目前存在的缺点:

1. 没有做到持久化存储。以后可以进行升级:将数据存储到数据库或者文件夹中

2. 当前用到的只是数组。后期可以做成网页交互。

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

相关文章:

  • 惠州网站建设企业贵阳网站建设服务公司
  • 山东华邦建设集团网站饶阳营销型网站建设费用
  • 建网站开发语言对比上海网优化seo公司
  • 阀门公司网站建设成都做网站的公司哪家好
  • 网站版块策划嘉兴制作网站企业
  • 阿里云可以放几个网站网站是哪家公司做的
  • 台州宇洋台州网站建设公司国产卡一卡二乱码新区
  • 多个网站给一个网站推广wordpress用什么主机好
  • 后期网站家乡网页设计作品欣赏
  • 网站建设步骤互联网家装
  • 东莞废水处理 东莞网站建设pr
  • 站长统计app镇江个人网站制作
  • 分类信息多城市网站企业中征码查询入口
  • 网站建设优化西安内蒙古住房和城乡建设厅网站
  • 网站建设工作经历3g门户 手机上网第一门户
  • 商城网站建设找谁做东莞理工学院教务处
  • php网站开发课程福州搜索优化实力
  • 使用top域名做网站万盛网站建设公司
  • 如何做网页网站优化描述设置
  • 网站做百度竞价引流费用多少钱失业保险网站
  • 苏州高端网站建设设计公司哪家好项目网站
  • 一个网站如何做seo优化个人信息网站模板
  • 网站管理机制建设情况电商怎么做推广
  • 网站设计实验惠阳网络推广公司
  • 常德网站开发服务python网站开发详细步骤
  • 邢台专业做网站费用信息系统开发计划
  • 看外国网站怎么改dns成功的网站不仅仅是优化排
  • 傻瓜式网页制作网站高端互联网推广
  • 门户网站建设的公司电子商务网站建设的具体内容
  • 用app怎么样建网站宁波门户网站建设