java面向对象(图书管理系统03)
2016-11-14 16:59
633 查看
图书管理系统(书,读者,图书馆)
1、注册用户(读者)
2、登陆(查看现在所注册读者都有那些,只有管理员才可以查看所有读者信息,概念自己读者类型)
3、管理员来添加图书(可以查看所添加图书,非管理员也可以查看)
4、修改图书
5、删除图书(管理员)
6、读者借书
a、知道你要借的书是那一本,查找我们借阅的图书。
b、在柜台把你所借阅的图书进行登记。
c、把图书放到自己的书包。
7、还书
a、指定要还书的编号
b、把你的书包中书删除一本。
c、借阅关系中,你所借的书也应该少一本。
d、如果你的书包中,没有书了,那么意味着借阅关系中就没有你了。
8、查看自己所借阅图书
9、查看所有被借阅的图书,以及借阅人
10、查看所有的图书
1、注册用户(读者)
2、登陆(查看现在所注册读者都有那些,只有管理员才可以查看所有读者信息,概念自己读者类型)
3、管理员来添加图书(可以查看所添加图书,非管理员也可以查看)
4、修改图书
5、删除图书(管理员)
6、读者借书
a、知道你要借的书是那一本,查找我们借阅的图书。
b、在柜台把你所借阅的图书进行登记。
c、把图书放到自己的书包。
7、还书
a、指定要还书的编号
b、把你的书包中书删除一本。
c、借阅关系中,你所借的书也应该少一本。
d、如果你的书包中,没有书了,那么意味着借阅关系中就没有你了。
8、查看自己所借阅图书
9、查看所有被借阅的图书,以及借阅人
10、查看所有的图书
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(); loginR.deleteBook(bookId, 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); //根据用户所输入数字 选择不同操作行为 flag3 int 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("欢迎下次光临薪火图书馆...."); } } package com.salmon.test; /** * 是用来描述读者的 * @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]; // 根据图书编号 查找一本图书 public Book findBookById(int bookId,Manager m){ Book bs[] = m.getBs(); Book b = null; for (int i = 0; i < bs.length; i++) { b = bs[i]; if(b != null && b.getId() == bookId){ break; } } return b; } // 借书 public void jieshu(Book book,Manager m){ // 把借阅的图书 放在自己书包中 boolean isok = false; for (int i = 0; i < bs.length; i++) { Book b= bs[i]; if(b == null){ bs[i] = book; isok = true; break; } } if(!isok){ System.out.println("书包已满!不能借书!"); return;// 这个方法代码 到这里就结束了啊! } // 进行登记 Reader rbs []= m.getReaderBooks(); // 判断这个读者有没有借过书 boolean flag = false; for (int i = 0; i < rbs.length; i++) { Reader r = rbs[i]; if(r != null && r.getId() == this.getId()){ flag = true; break; } } // 没借过书 if(!flag){ for (int i = 0; i < rbs.length; i++) { Reader r = rbs[i]; if(r == null){ rbs[i] = this;// 把当前读者 存入这个列表 break; } } } System.out.println("借书成功!"); } // 还书 public void huanshu(int bookId,Manager m){ // 从书包中 一处 指定图书 for (int i = 0; i < bs.length; i++) { Book b = bs[i]; if(b != null && b.getId() == bookId){ bs[i] = null;// 使用控制覆盖原来的图书。 break; } } // 判断 书包还有没有 图书 如果没有了 就把这个读者从 解决关系列表移除 boolean isok = false; for (int i = 0; i < bs.length; i++) { if(bs[i] != null){// 只要有一个图书,这就说明 书包不是空的 isok = true; break; } } // if(!isok){ Reader rbs[]= m.getReaderBooks(); for (int i = 0; i < rbs.length; i++) { Reader r = rbs[i]; if(r!=null && r.getId()==this.getId()){ rbs[i] = null; break; } } } System.out.println("还书成功!"); } // 查看借阅关系(管理员) public void queryAllBooks(Manager m){ if(this.getType() == 0){ Reader rbs []= m.getReaderBooks(); for (int i = 0; i < rbs.length; i++) { Reader rb = rbs[i]; if(rb != null){ System.out.println("读者:"+rb.getName()+":"); // 当前循环读者书包 Book bs[] = rb.getBs(); for (int j = 0; j < bs.length; j++) { Book book = bs[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.length; i++) { Book b = bs[i]; if(b != null){ System.out.println(b.getId()+"---"+b.getName()+"----"+b.getPress()); } } } // 查看所有的读者 管理员才有权利查看 public void queryReaders(Manager m){ // 判断是否有权利 if(this.getType() == 0){ Reader rs [] = m.getRs(); for (int i = 0; i < rs.length; i++) { Reader r = rs[i]; 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){ Reader rs []= m.getRs(); Reader r = null; for (int i = 0; i < rs.length; i++) { r = rs[i]; if(r!= null && r.getId()==id){ break; } } return r; } // 删除图书 public void deleteBook(int bookId,Manager m){ if(this.getType() == 0){ Book bs[] = m.getBs(); for (int i = 0; i < bs.length; i++) { Book book = bs[i]; if(book != null && book.getId() == bookId){ bs[i]= null;// 删除图书就是这本书所在位置 置空 break; } } System.out.println("删除图书成功!"); }else{ System.out.println("没有权限!"); } } // 查看图书 public void queryBook(Manager m){ Book bs [] = m.getBs(); for (int i = 0; i < bs.length; i++) { Book b = bs[i]; if(b != null){ System.out.println(b.getId()+"---"+b.getName()+"---"+b.getPress()); } } } // 添加图书 public void addBook(Book book,Manager m){ if(this.getType() == 0){ Book bs[] = m.getBs(); for (int i = 0; i < bs.length; i++) { Book b = bs[i]; if(b == null){ bs[i] = book; break; } } 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 Book[] getBs() { return bs; } public void setBs(Book[] bs) { this.bs = bs; } public String getPassword() { return password; } public void setPassword(String password) { this.password = password; } } 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; public class Manager { // int i[] = new int[5]; i[0] = 23; // 书架 // bs[0] = new Book(1,"javaweb"); private Book bs[] = new Book[100]; // 登记读者信息地方 private Reader rs[] = new Reader[100]; // 用来登录借阅关系 private Reader readerBooks [] = new Reader[100]; // 无参数构造函数 public Manager(){ // 在建造这个图书馆的时候 要默认给出 初始化管理啊 Reader r = new Reader(101,"admin"); r.setType(0); r.setPassword("admin"); rs[0] = r; } // 读者注册方法 public void register(Reader r){// r = new Reader(id,name); for (int i = 1; i < rs.length; i++) { Reader re = rs[i]; // 如果在遍历的时候 拿到对象 为 null 这就说明 这个数组中 还有 位置 if(re == null){ rs[i] = r; break; } } System.out.println("注册成功!"); } // 登陆 public Reader login(String name,String password){ Reader r = null; for (int i = 0; i < rs.length; i++) { Reader re = rs[i]; // 如果在遍历的时候 找到一个 和 参数 名称密码 相同的读者 if(re.getName().equals(name)&&re.getPassword().equals(password)){ r = re; break; } } return r; } public Book[] getBs() { return bs; } public void setBs(Book[] bs) { this.bs = bs; } public Reader[] getRs() { return rs; } public void setRs(Reader[] rs) { this.rs = rs; } public Reader[] getReaderBooks() { return readerBooks; } public void setReaderBooks(Reader[] readerBooks) { this.readerBooks = readerBooks; } }
相关文章推荐
- java 面向对象(图书管理系统1)
- java面向对象(图书管理系统02)
- 我是个在校生,现在想用java作为前台代码,连接到SQL server数据库上去,项目是;图书管理系统,现在没有好的java源代码,各位大侠能不能帮个忙?
- JAVA 面向对象编程开发--------初学者---------------------彩票系统----图书管理系统
- java-图书管理系统
- Java版本:图书管理系统
- 关于Java小项目——图书管理系统的总结
- [C++] - 面向对象-图书管理系统
- java web 项目 图书管理系统的设计与实现
- Java+MySQL图书管理系统
- 数据结构(JAVA版本)练习之集合 简易图书管理系统
- Java之------单机版书店管理系统(设计思想和设计模式系列四)图书模块
- 图书管理系统的部分操作(java)
- Java大作业----三层的架构图书管理系统
- 图书管理系统(java)
- 图书管理系统基于JAVA
- 黑马程序员 Java面向对象——交通灯管理系统
- Java基础---Java---面试题---交通灯管理系统(面向对象、枚举)
- java系统-图书管理系统
- Java小项目迷你图书管理系统