图书管理系统使用List 存储数据
来源:互联网 发布:阿里云配置邮件服务器 编辑:程序博客网 时间:2024/05/02 05:02
package com.salmon.test;/** * 是用来描述 图书的 * @author salmon * */public class Book {private int id;private String name;private String press;private String author;private double price;private int number;// 构造函数public Book() {}public Book(int id, String name, String press) {this.id = id;this.name = name;this.press = press;}public Book(int id, String name, String press, String author, double price,int number) {this.id = id;this.name = name;this.press = press;this.author = author;this.price = price;this.number = number;}public int getId() {return id;}public void setId(int id) {this.id = id;}public String getName() {return name;}public void setName(String name) {this.name = name;}public String getPress() {return press;}public void setPress(String press) {this.press = press;}public String getAuthor() {return author;}public void setAuthor(String author) {this.author = author;}public double getPrice() {return price;}public void setPrice(double price) {this.price = price;}public int getNumber() {return number;}public void setNumber(int number) {this.number = number;}}
package com.salmon.test;import java.util.ArrayList;import java.util.List;import java.util.Set;/** * 是用来描述读者的 * @author salmon * */public class Reader {private int id;private String name;private String password="111111";private int type = 1;// 0 管理员 1 普通读者// 书包//private Book bs[] = new Book[2];private List<Book> bs = new ArrayList();// 计数器private int num = 0;// 书包数量private int numall = 2;// 根据图书编号 查找一本图书public Book findBookById(int bookId,Manager m){List<Book> bs = m.getBs();Book b = null;for (int i = 0; i < bs.size(); i++) { b = bs.get(i); if(b != null && b.getId() == bookId){ break; }}return b;}// 借书public void jieshu(Book book,Manager m){// 把借阅的图书 放在自己书包中if(num>=numall){System.out.println("书包已满!不能借书!");return;// 这个方法代码 到这里就结束了啊!}else{// 没满bs.add(book);num++;}// 进行登记Set<Reader> rbs= m.getReaderBooks();// 判断当前登陆人读者有没有借过书boolean flag = rbs.contains(this);// 没借过书if(!flag){rbs.add(this);}System.out.println("借书成功!");}// 还书public void huanshu(int bookId,Manager m){// 从书包中 一处 指定图书for (int i = 0; i < bs.size(); i++) { Book b = bs.get(i); if(b != null && b.getId() == bookId){ bs.remove(i); num--; break; }}// 判断 书包还有没有 图书 如果没有了 就把这个读者从 借阅关系列表移除boolean isok = bs.isEmpty();// if(isok){Set<Reader> rbs= m.getReaderBooks();rbs.remove(this);}System.out.println("还书成功!");}// 查看借阅关系(管理员)public void queryAllBooks(Manager m){if(this.getType() == 0){Set<Reader> rbs= m.getReaderBooks();for (Reader rb:rbs) {if(rb != null){System.out.println("读者:"+rb.getName()+":");// 当前循环读者书包List<Book> bs = rb.getBs();for (int j = 0; j < bs.size(); j++) {Book book = bs.get(j);if(book != null){System.out.println(book.getId()+"---"+book.getName()+"---"+book.getPress());}}}}}else{System.out.println("没有权限!");}}// 查看自己的书包public void queryMyBooks(){for (int i = 0; i < bs.size(); i++) {Book b = bs.get(i);if(b != null){System.out.println(b.getId()+"---"+b.getName()+"----"+b.getPress());}}}// 查看所有的读者 管理员才有权利查看public void queryReaders(Manager m){// 判断是否有权利if(this.getType() == 0){Set<Reader> rs= m.getRs();for (Reader r:rs) {if(r != null){System.out.println(r.getId()+"---"+r.getName()+"----"+r.getType());}}}else{System.out.println("对不起没有权限!");}} // 使用管理员 把普通的读者改为管理员 把你要设定普通读者传递进来 把这个读者设置为管理员public void adminSet(Reader r){if(this.getType() == 0){// 设置为管理员r.setType(0);}else{System.out.println("没有权限!");}}// 根据编号 查找一个读者public Reader findReaderById(int id,Manager m){Set<Reader> rs= m.getRs();Reader r = null;for (Reader r2:rs) {if(r2!= null && r2.getId()==id){r = r2;break;}}return r;}// 删除图书public void deleteBook(Book book,Manager m){ if(this.getType() == 0){List<Book> bs = m.getBs(); if(bs.contains(book)){ m.getBs().remove(book); System.out.println("删除图书成功!"); }else{ System.out.println("没有要删除的图书"); } }else{ System.out.println("没有权限!"); }}// 查看图书public void queryBook(Manager m){List<Book> bs= m.getBs();for (int i = 0; i < bs.size(); i++) {Book b = bs.get(i);if(b != null){System.out.println(b.getId()+"---"+b.getName()+"---"+b.getPress());}}}// 添加图书public void addBook(Book book,Manager m){if(this.getType() == 0){m.getBs().add(book);System.out.println("添加图书成功!");}else{System.out.println("没有权限");}}public Reader() {}public Reader(int id, String name) {this.id = id;this.name = name;}public int getId() {return id;}public void setId(int id) {this.id = id;}public String getName() {return name;}public void setName(String name) {this.name = name;}public int getType() {return type;}public void setType(int type) {this.type = type;}public List<Book> getBs() {return bs;}public void setBs(List<Book> bs) {this.bs = bs;}public String getPassword() {return password;}public void setPassword(String password) {this.password = password;}}
package com.salmon.test;import java.util.ArrayList;import java.util.HashSet;import java.util.List;import java.util.Set;public class Manager {// 书架//private Book bs[] = new Book[100];private List<Book> bs = new ArrayList();// 登记读者信息地方//private Reader rs[] = new Reader[100];private Set<Reader> rs = new HashSet();// 用来登录借阅关系//private Reader readerBooks [] = new Reader[100];private Set<Reader> readerBooks = new HashSet();// 无参数构造函数public Manager(){// 在建造这个图书馆的时候 要默认给出 初始化管理啊Reader r = new Reader(101,"admin");r.setType(0);r.setPassword("admin");rs.add(r);}// 读者注册方法public void register(Reader r){// r = new Reader(id,name);boolean isok = false;for (Reader re:rs) {// 如果在遍历的时候 拿到对象 为 null 这就说明 这个数组中 还有 位置if(r!= null && re.getId()==r.getId()){isok =true;break;}}if(!isok){rs.add(r);System.out.println("注册成功!");}else{System.out.println("用户编码已经被使用!");}}// 登陆public Reader login(String name,String password){ Reader r = null; for (Reader re :rs) {// 如果在遍历的时候 找到一个 和 参数 名称密码 相同的读者 if(re!=null&&re.getName().equals(name)&&re.getPassword().equals(password)){r = re;break;} } return r;}public List<Book> getBs() {return bs;}public void setBs(List<Book> bs) {this.bs = bs;}public Set<Reader> getRs() {return rs;}public void setRs(Set<Reader> rs) {this.rs = rs;}public Set<Reader> getReaderBooks() {return readerBooks;}public void setReaderBooks(Set<Reader> readerBooks) {this.readerBooks = readerBooks;}}
package com.salmon.test;import java.util.Scanner;public class Test {// 图书馆public static Manager m = new Manager();// 控制台输入工具public static Scanner sc = new Scanner(System.in);// 注册 (中转调用)public static void register(){System.out.println("请输入读者信息:");int id = sc.nextInt();String name = sc.next();Reader r = new Reader(id, name);m.register(r);}// 登陆 (中转调用)public static Reader login(){System.out.println("请输入用户名密码:");String name = sc.next();String password = sc.next();// 根据输入用户名和密码 找到一个读者对象Reader loginR = m.login(name, password);return loginR;}// 判断是否是管理员public static void ifAdmin(Reader loginR){if (loginR.getType() == 0) {// 管理员System.out.println("请选择操作类型: 0、设置管理员 1、查询读者 2、添加图书 3、查看图书 4、删除图书 "+ "5、借书 6、查看书包 7、查看借阅关系 8、还书.....");} else {// 普通读者System.out.println("请选择操作类型: 3、查看图书 5、借书 6、查看书包 8、还书.....");}}// 还书(还书的中转调用)public static void huanshu(Reader loginR){System.out.println("请输入要还书的编号:");int bookId = sc.nextInt();loginR.huanshu(bookId, m);}// 借书 public static void jieshu(Reader loginR){System.out.println("请输入你要借书的编号:");int bookId = sc.nextInt();// 根据编号查找一本图书Book book = loginR.findBookById(bookId, m);if (book != null) {// 借书loginR.jieshu(book, m);} else {System.out.println("没有找到你要借的书。");}}// 删除图书()public static void deleteBook(Reader loginR){System.out.println("请输入要删除图书的编号:");int bookId = sc.nextInt();// 先根据编号找到一本书Book book = loginR.findBookById(bookId, m);loginR.deleteBook(book, m);}// 添加图书public static void addBook(Reader loginR){// 添加图书System.out.println("请输入图书信息:");int id = sc.nextInt();sc.nextLine();String bookName = sc.nextLine();String press = sc.next();Book book = new Book(id, bookName, press);//loginR.addBook(book, m);}// 设置管理员public static void setAdmin(Reader loginR){System.out.println("请输入要设置的读者编号:");int id = sc.nextInt();Reader ra = loginR.findReaderById(id, m);loginR.adminSet(ra);}// 登录success (中转调用)public static void loginSuccess(Reader loginR){int isok = 0;do {// 判断是否是管理员ifAdmin(loginR);//根据用户所输入数字 选择不同操作行为 flag3int flag3 = sc.nextInt();if (flag3 == 1) {// 查看所有的读者loginR.queryReaders(m);} else if (flag3 == 7) {// 查看借阅关系loginR.queryAllBooks(m);} else if (flag3 == 8) {// 还书huanshu(loginR);} else if (flag3 == 5) {// 借书jieshu(loginR);} else if (flag3 == 6) {// 查看自己的书包loginR.queryMyBooks();} else if (flag3 == 4) {// 删除图书deleteBook(loginR);} else if (flag3 == 3) {// 查看所有图书loginR.queryBook(m);} else if (flag3 == 2) {// 添加图书addBook(loginR);} else if (flag3 == 0) {// 把指定的读者 设置为 管理员setAdmin(loginR);}System.out.println("是否要退出登陆?1/0");isok = sc.nextInt();} while (isok == 0);}public static void main(String[] args) {// System.out.println("欢迎光临薪火图书馆....");// 通过循环可以实现 同一种行为重复操作!利用标示符 Flag String flag = "Y";do {System.out.println("请选择操作类型: 0、注册 1、登陆");int flag2 = sc.nextInt();if (flag2 == 0) {// 注册register();} else if (flag2 == 1) {// 登陆Reader loginR = login();if (loginR != null) {// 登陆成功loginSuccess(loginR);}else{System.out.println("登陆失败!");}}System.out.println("您是否要继续操作?Y/N");flag = sc.next();} while ("Y".equals(flag));System.out.println("欢迎下次光临薪火图书馆....");}}
1 0
- 图书管理系统使用List 存储数据
- 使用OC实现图书管理系统
- Oracle学习—图书管理系统_存储过程
- 图书管理系统论文
- 图书管理系统(1)
- 图书管理系统(2)
- 图书管理系统(3)
- java-图书管理系统
- 图书管理系统
- 图书管理系统
- 简单图书管理系统
- 图书管理系统
- 图书管理系统
- 图书仓库管理系统
- 《图书管理系统》毕业论文
- 图书管理系统
- 图书管理系统
- 图书管理系统
- 算法与数据结构基础----表,栈和队列(外加map用法)
- 欢迎使用CSDN-markdown编辑器
- Hibernate中用注解配置一对多双向关联和多对一单向关联
- iOS审核这些坑,腾讯游戏也踩过
- Java NIO系列教程(二) Channel
- 图书管理系统使用List 存储数据
- 向量在游戏开发中的作用
- csdn七牛云存储作为网站的图片外链
- 微信小程序的ajax数据请求wx.request
- Xamarin Android教程Android基本知识版本介绍与系统介绍
- mydate97日期控件使用案例
- Android Ormlite数据库框架解析
- javaFX 8 包和类的统计
- 微信公众号摘录