Java学习记录之简单的图书管理系统(完善中)
电子书管理系统
功能划分
最核心的功能
- 提供图书管理的服务
- 添加图书
- 查询
- 检索所有的图书
- 按已知检索图书信息
- 图书的删除
- 图书信息的更新
用户
- 用户的类型
- 管理员:图书的添加、更新、删除操作
- 普通用户:检索
- 用户的登录
类
设计电子书的类,表示电子图书的信息
- 图书编号:
- 字符串:优点是可以用字母中文表示特殊的内容,缺点是排序效率
- 数字:int 、long
- 图书名称 : String
- 作者:String
- 价格:double
- get/set和打印
package org.demo.Bean;public class Book {private Integer bookId;private String bookName;private String bookAutor;private double price;public Book(){};public Book(Integer bookId, String bookName, String bookAutor, double price) {this.bookId = bookId;this.bookName = bookName;this.bookAutor = bookAutor;this.price = price;}public Integer getBookId() {return bookId;}public void setBookId(Integer bookId) {this.bookId = bookId;}public String getBookName() {return bookName;}public void setBookName(String bookName) {this.bookName = bookName;}public String getBookAutor() {return bookAutor;}public void setBookAutor(String bookAutor) {this.bookAutor = bookAutor;}public double getPrice() {return price;}public void setPrice(double price) {this.price = price;}@Overridepublic String toString() {return "Book{" +"bookId=" + bookId +", bookName='" + bookName + '\'' +", bookAutor='" + bookAutor + '\'' +", price=" + price +'}';}
}
用户类(暂未用到)
package org.demo.Bean;public class User {private Integer userId;private String userName;private String passwd;private String phone;public User(){};public User(Integer userId, String userName, String passwd, String phone) {this.userId = userId;this.userName = userName;this.passwd = passwd;this.phone = phone;}public Integer getUserId() {return userId;}public void setUserId(Integer userId) {this.userId = userId;}public String getUserName() {return userName;}public void setUserName(String userName) {this.userName = userName;}public String getPasswd() {return passwd;}public void setPasswd(String passwd) {this.passwd = passwd;}public String getPhone() {return phone;}public void setPhone(String phone) {this.phone = phone;}@Overridepublic String toString() {return "User{" +"userId=" + userId +", userName='" + userName + '\'' +", passwd='" + passwd + '\'' +", phone='" + phone + '\'' +'}';}
}
对图书操作的图书功能类
package org.demo.Service;import org.demo.Bean.Book;import java.util.ArrayList;
import java.util.List;public class BookService {//存数据private static List<Book> bookList = new ArrayList<>();//预存几个图书对象static {bookList.add( new Book(100,"安徒生童话","安徒生",18));bookList.add( new Book(101,"安列卡列尼娜","列夫托尔斯泰",48));bookList.add( new Book(102,"流浪地球","刘慈欣",50));bookList.add( new Book(103,"三体","刘慈欣",54));bookList.add( new Book(104,"唐诗三百首","唐",24));bookList.add( new Book(105,"唐诗三百首","李白",34));}/*** 添加书籍信息* @param book 图书对象*/public void addBook(Book book){//书籍是否重复标记boolean bol = true;//列表长度即现存几本图书int len = bookList.size();for (int i = 0; i < len; i++) {Book tem = bookList.get(i);if (tem.getBookId().equals(book.getBookId())){bol = false;break;}}if (bol){bookList.add(book);System.out.println("添加成功!");}else{System.err.println("编号已存在,添加失败!");}}/*** 获取所有图书信息* @return*/public List<Book> allBookInfo(){return bookList;}/*** 获取指定编号的图书信息* @param bookId 图书编号* @return*/public Book getBookInfo(Integer bookId){Book book = null;//遍历列表int len = bookList.size();for (int i = 0; i < len; i++) {if (bookList.get(i).getBookId().equals(bookId)){book = bookList.get(i);break;}}return book;}/*** 获取指定书名的图书信息* @param bookAuthor 图书作者* @return*/public List<Book> getBookInfo(String bookAuthor){List<Book> list = new ArrayList<>();//遍历列表int len = bookList.size();for (int i = 0; i < len; i++) {if (bookList.get(i).getBookAutor().equals(bookAuthor)){list.add(bookList.get(i));}}return list;}/*** 获取指定书名的图书信息* @param bookName* @return*/public List<Book> getInfo(String bookName){List<Book> list = new ArrayList<>();//遍历列表int len = bookList.size();for (int i = 0; i < len; i++) {if (bookList.get(i).getBookName().equals(bookName)){list.add(bookList.get(i));}}return list;}/*** 通过图书编号删除对应图书* @param bookId 图书编号*/public void delBook(Integer bookId){Book book = getBookInfo(bookId);if (book != null) {bookList.remove(book);System.out.println("删除成功!");} else {System.out.println("删除失败!");}}
}
菜单类即功能展示和具体操作
package org.demo.Service;import org.demo.Bean.Book;import java.util.List;
import java.util.Scanner;public class MenuService {private BookService bookService = new BookService();private Scanner sc = new Scanner(System.in);//初始菜单public void initMenu(){System.out.println("#########################");System.out.println("####欢迎使用图书管理系统####");System.out.println("#########################");System.out.println("请输入操作序号选择所需操作:");System.out.println("1、添加图书");System.out.println("2、查询图书");System.out.println("3、删除图书");System.out.println("4、退出");menu();}public void menu(){//输入选择int choose = sc.nextInt();switch (choose){case 1:addBook();initMenu();break;case 2:getBookInfo();initMenu();break;case 3:delBook();initMenu();break;case 4:default:System.exit(0);break;}}/*** 添加图书*/private void addBook() {System.out.println("请输入图书编号:");Integer bookId = sc.nextInt();sc.nextLine();System.out.println("请输入图书名称:");String bookName = sc.nextLine();System.out.println("请输入图书作者:");String Author = sc.nextLine();System.out.println("请输入图书价格:");double price = sc.nextDouble();Book book = new Book(bookId ,bookName ,Author ,price);bookService.addBook(book);}/***获取图书信息*/private void getBookInfo() {System.out.println("请选择:\n1、查询所有图书;\n2、按图书编号查询;\n3、按作者查询;\n4、按书名查询。");int choose = sc.nextInt();switch (choose){case 1:List<Book> books = bookService.allBookInfo();for (int i = 0; i < books.size(); i++) {System.out.println( books.get(i));}break;case 2:System.out.println("请输入图书编号:");int bookId = sc.nextInt();Book bookInfo = bookService.getBookInfo(bookId);System.out.println( bookInfo );break;case 3:System.out.println("请输入图书作者:");sc.nextLine();String author = sc.nextLine();List<Book> bookList = bookService.getBookInfo(author);for (int i = 0; i < bookList.size(); i++) {System.out.println( bookList.get(i));}break;case 4:System.out.println("请输入图书名称:");sc.nextLine();String name = sc.nextLine();List<Book> bookNameList = bookService.getInfo(name);for (int i = 0; i < bookNameList.size(); i++) {System.out.println( bookNameList.get(i));}break;default:System.out.println("功能待补充。。。");}}private void delBook() {System.out.println("请输入需要删除的图书编号:");Integer bookId = sc.nextInt();bookService.delBook(bookId);}}
测试类
import org.demo.Service.MenuService;public class Test {public static void main(String[] args) {MenuService menuService = new MenuService();menuService.initMenu();}
}
注:开学之后较忙且懒,之后的学习记录会简写,不会像之前那么详细。
Java学习记录之简单的图书管理系统(完善中)相关推荐
- Java学习:创建简单的名片管理系统
创建简单的名片管理系统 一.创建名片实体类 二.创建名片管理类 1. 创建主菜单 2. 创建登录方法 3. 创建名片管理方法 5. 添加名片方法 6.创建保存名片方法 7.创建读取名片文件方法 8. ...
- Java—简单的图书管理系统
简单的图书管理系统 通过数据源和DAO对象访问数据库.其中JavaBeans实现模型,访问数据库,Servlet实现控制器,JSP页面实现视图. • 模型包括2个JavaBean:BookBean用于 ...
- 【Java简单实现图书管理系统】
文章目录 一.图书管理系统要实现哪些功能 二.怎么去实现这些功能? 三.程序框架图 四.具体实现 1.Book Book BookList 2.User User NormallUser AdminU ...
- javaweb JAVA JSP图书管理图书系统 图书管理系统实现简单的图书管理系统源码
javaweb JAVA JSP图书管理图书系统 图书管理系统实现简单的图书管理系统源码 protected void doGet(HttpServletRequest req, HttpServle ...
- java实现简单的图书管理系统(以及代码中用了特殊注释TODO,XXX,FIXME),compare接口
参考来自 java实现简单的图书管理系统_Jewel's blog-CSDN博客_java图书管理系统一.项目分布Book类: 定义了书的一些属性(书名,作者,价格,分类,状态)并且写了属性的get. ...
- java初级内容结课项目——图书管理系统
在前面的十三课中,笔者已经介绍了有关java的各种语法及其细节.若要融会贯通,则还需大量的练习,而非单纯的依赖于笔记中的内容.毕竟"纸上得来终觉浅,绝知此事要躬行".在java语法 ...
- 简单编写图书管理系统
首先我们先梳理一下图书管理系统的功能 图书管理系统功能梳理 一.系统简介:能够对图书进行增删改查 二.步骤分析:1.写菜单 - 图书系统的所有功能2.实现每一个功能增加学生:a.将图书的信息加到列表里 ...
- Java+JSP+Mysql+Tomcat实现Web图书管理系统
图书管理系统 一.系统介绍 1.软件环境 2.功能模块图 3.系统功能 4.数据库表 5.工程截图 二.系统展示 1.系统注册 2.系统登录 3.找回密码 4.管理员-主页 5.管理员-用户管理主页 ...
- Java+Jsp+Mysql实现简单在线图书推荐系统 个性化图书推荐系 java实现基于用户的协同过滤推荐算法 源代码下载 算法实现 Spring+Struts+Hibernate(SSH)开发框架
Java+Jsp+Mysql实现简单在线图书推荐系统 个性化图书推荐系统(基于用户的协同过滤推荐算法) 一.项目简介 1.开发工具和实现技术 MyEclipse10,jdk1.7,mysql5.5,t ...
最新文章
- [Android] TableLayout
- 伪距定位算法(matlab版)
- pep8 python 编码规范_编码规范的重要性
- 趣拼图最后完成及总结
- 30天敏捷结果(6):周五回顾,找到三件做的好以及三件需要改善的事情
- javascript---DOM---事件
- 购物商城Web开发第十四天
- hdu1501 Zipper--DFS
- c#开发之八---mvc
- 个人发卡系统 - 个人发卡网_忆当站长经历,第三方发卡平台跑路,小淘自建即时到账支付系统...
- 【人工智能系列 - 智能硬件 - 02】演化硬件的研究现状及发展趋势
- 创新产品访谈:Ntalker V2.5
- 智能终端代替传统设备 手机APP离线识别车牌号
- 2020年最全最好用的在线文档盘点,建议收藏
- python 创建高维数组列表
- 如何把阿拉伯数字转换为中文大写?
- vivo手机如何使用非官方手机主题
- matlab中unifrnd函数用法,概率和统计的MATLAB指令
- Docker怎么样拉取镜像?怎样删除镜像?
- 使用Netty实现一个小型服务器(作为数据中转站)