您的位置:首页 > 编程语言 > Java开发

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、查看所有的图书
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;
}

}
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息