自写的极其简陋的图书管理系统,代码不太规范,在学习中慢慢改
现在还存在两个问题:
1.还书还的是null
2.借书传的不是书的编号
在周末之前解决
如有疑问或建议欢迎留言
简书的代码排版实在有问题,如果有需要,可通过我的博客园的代码进行使用:
LibMain.java
import java.util.Scanner;/* * * 图书管理系统
* 1.登录和注册
* 2.登录成功后
* a.显示所有图书列表 添加 查询 修 删除
* b.借阅图书 需要绑定借阅人账号
* c.查看已借阅图书列表 归还图书
* 3.退出当前登录的账号
*/publicclass LibMain {
publicstaticvoid main(String[] args) {
/* * 预定义
*/ Libmanage lib =new Libmanage();
Scanner sc =new Scanner(System.in);
//将会接收op1方法的返回值,是否进行下一阶段intOp1=0;
//用于第一个while循环————登录注册操作intflag1=1;
//用于第二个while循环————是否对图书进行操作intflag2=1;
//将用于接收对图书的操作intOp2=0;
/* * 开始进入图书馆
*/ System.out.println("欢迎来到网络图书馆!");
while(flag1==1){
System.out.println("请输入需要的操作:1.登录2.注册0.退出系统");
Op1 = lib.op1();//在op1方法中登录成功,就会返回1,进入图书操作界面if(Op1==1){
while(flag2==1){
lib.show();//显示操作菜单Op2=sc.nextInt();
switch(Op2){
case1:
lib.addBook();
break;
case2:
lib.delBook();
break;
case3:
lib.modBook();
break;
case4:
lib.selBook();
break;
case5:
lib.showAllBook();
break;
case6:
lib.borBook();
break;
case7:
lib.showBorBook();
break;
case8:
lib.huanBook();
break;
case0:
flag2=0;
break;
default:
break;
}
}//第二个while的大括号 }
}//第一个while循环的大括号 }
}
Library.java
/** * 图书信息
* @author y
*
*/publicclass Library {
//书名private String bookName;
//作者private String bookAuther;
//价格privatedouble bookPrice;
/* * set&get
*/public String getBookName() {
return bookName;
}
publicvoid setBookName(String bookName) {
this.bookName = bookName;
}
publicdouble getBookPrice() {
return bookPrice;
}
publicvoidsetBookPrice(double bookPrice) {
this.bookPrice = bookPrice;
}
public String getBookAuther() {
return bookAuther;
}
publicvoid setBookAuther(String bookAuther) {
this.bookAuther = bookAuther;
}
/* * 构造方法
*/public Library() {
super();
// TODO Auto-generated constructor stub }
publicLibrary(String bookName, String bookAuther,double bookPrice) {
super();
this.bookName = bookName;
this.bookAuther = bookAuther;
this.bookPrice = bookPrice;
}
@Override
public String toString() {
return"书名:" + bookName + ",作者: " + bookAuther + ", 价格:" + bookPrice;
}
}
Libmanage.java
package com.inclass.test;/** * 图书和用户的操作
* @author y
*
*/import java.util.Scanner;import java.util.TreeMap;publicclass Libmanage {
Scanner sc =new Scanner(System.in);
//将会接收登录注册指令intop1=0;
//成员变量————用户TreeMap userMap =newTreeMap<>();
//成员变量————图书TreeMap bookMap =newTreeMap<>();
//图书编号intbno=0;
//成员变量————用户和借书的关系TreeMap borBook =newTreeMap<>();//将会被借出去的书存在这个treemap里,然后再与用户关联TreeMap huanBook =newTreeMap<>();//要还的书的中介TreeMap userBook =newTreeMap<>();
//用于注册或登录的用户名和密码String name=null,password=null;
//用于图书操作的属性定义String bname,bauther;//书名,书作者doublebprice;//书价格/* * 登录注册选择
*/publicint op1(){
intfh=0;
try{
op1 = sc.nextInt();//接收登录注册指令if(op1==1){
inti=1;
System.out.println("请输入用户名:");
name = sc.next();
for (String str : userMap.keySet()) {
if(str.equals(name)){
fh=login(str);//登录————登录成功会返回1,失败返回0i=0;//如果没有该用户,那就会进行注册,有,置为0,不注册break;
}
}
if(i==1){
System.out.println("没有"+name+"用户,请进行注册!");
register();//跳到注册界面 }
}elseif(op1==2){
register();//注册}elseif(op1==0){
System.out.println("退出系统!...");
System.exit(0);
}else{
System.out.println("输入有误请重新输入");
}
}catch(Exception e){
System.out.println("输入有误请重新输入");
sc.next();//出现异常后,就不断进行死循环的解决办法(可想想别的解决办法) }
return fh;
}
/* * 用户注册
* ->对密码没有要求
*/publicint register(){
System.out.println("请输入用户名:");
name = sc.next();
System.out.println("请输入密码:");
password = sc.next();
for (String str : userMap.keySet()) {
if(str.equals(name)){
System.out.println("已经存在该用户!请重新注册!");
return0;
}
}
userMap.put(name, password);
System.out.println("注册成功!");
return1;
}
/* * 用户登录
* ->先判断用户名是否相同,然后再判断密码是否相同。没有符合条件的就返回false,否则返回true
*/publicint login(String name){
System.out.println("请输入密码:");
password = sc.next();
if(password.equals(userMap.get(name))){
System.out.println("登陆成功!");
return1;
}
System.out.println("用户名或密码错误!");
return0;
}
/* *1.增加图书
*/publicvoid addBook(){
try {
intx=0;
System.out.println("请输入图书编号:");
bno = sc.nextInt();
for(int i : bookMap.keySet()) {
if(i==bno){
x=1;//如果已有图书,置为1,告诉用户不能添加 }
}
if(x==0){
System.out.println("请输入书名:");
bname = sc.next();
System.out.println("请输入作者:");
bauther = sc.next();
System.out.println("请输入价格:");
bprice = sc.nextDouble();
bookMap.put(bno, new Library(bname,bauther,bprice));
System.out.println("增加成功!新添图书的信息为:");
System.out.println("编号:"+bno + " " + bookMap.get(bno));
}elseif(x==1){
System.out.println("已经存在编号为"+bno+"的书,请重新输入");
}
} catch (Exception e) {
System.out.println("输入有误请重新输入!");
}
bno=0;//预防性措施 }
/* * 2.删除图书
*/publicvoid delBook(){
System.out.println("请输入图书编号:");
try {
intx=0;
bno=sc.nextInt();
for(int i : bookMap.keySet()) {
if(bno==i){
x=1;
}
}
if(x==1){
bookMap.remove(bno);
System.out.println("删除成功!");
}else{
System.out.println("没有编号为"+bno+"的书");
}
} catch (Exception e) {
System.out.println("输入有误请重新输入!");
}
bno=0;//预防性措施 }
/* * 3.修改图书信息
*/publicvoid modBook(){
try {
intx=0;
System.out.println("请输入需要修改的图书编号:");
bno = sc.nextInt();
for(int i : bookMap.keySet()) {
if(bno==i){
x=1;
}
}
if(x==1){
System.out.println("请输入修改后的书名:");
bname = sc.next();
System.out.println("请输入修改后的作者:");
bauther = sc.next();
System.out.println("请输入修改后的价格:");
bprice = sc.nextDouble();
bookMap.put(bno, new Library(bname,bauther,bprice));
System.out.println("修改成功!修改后图书的信息为:");
System.out.println("编号:"+bno + " " + bookMap.get(bno));
}else{
System.out.println("没有编号为"+bno+"的书");
}
} catch (Exception e) {
System.out.println("输入有误请重新输入!");
}
bno=0;//预防性措施 }
/* * 4.查询图书
*/publicvoid selBook(){
intx=0;
try {
System.out.println("请输入需要查询的图书编号:");
bno=sc.nextInt();
for(int i : bookMap.keySet()) {
if(i==bno){
System.out.println(bookMap.get(i));
x=1;
break;
}
}
if(x==0){
System.out.println("没有编号为"+bno+"的书");
}
} catch (Exception e) {
System.out.println("输入有误请重新输入!");
}
bno=0;//预防性措施 }
/* * 5.显示所有可借阅的书
*/publicvoid showAllBook(){
for(int i : bookMap.keySet()) {
System.out.println(i +" "+ bookMap.get(i));
}
}
/* * 6.借书
*/publicvoid borBook(){
try {
intx=0;
System.out.println("请输入需要借阅图书的编号:");
bno=sc.nextInt();
for(int i : bookMap.keySet()) {
if(bno==i){
x=1;
}
}
if(x==1){
borBook.put(bno, bookMap.get(bno));//中介userBook.put(name, bookMap);//用户和借出去的书相关联bookMap.remove(bno);//把这本书从图书馆移除borBook.clear();//清除缓存,便于多用户借书}else{
System.out.println("不存在"+bno+"的书,请重新输入");
}
} catch (Exception e) {
System.out.println("输入有误请重新输入!");
}
bno=0;//预防性措施 }
/* * 7.查看已经借出去的书
*/publicvoid showBorBook(){
for (String str : userBook.keySet()) {
System.out.println(str);
System.out.println(" " + userBook.get(str));
}
}
/* * 8.还书
*/publicvoid huanBook(){
try {
System.out.println("请输入需要归还图书的编号:");
bno=sc.nextInt();
huanBook.put(bno, (Library) userBook.get(name).get(bno));//中介bookMap.put(bno, huanBook.get(bno));//向图书馆存书userBook.remove(name, userBook.get(name).get(bno));//将对应关系中的书删除huanBook.clear();//清除缓存}catch (Exception e) {
System.out.println("输入有误请重新输入!");
}
bno=0;//预防性措施 }
/* * 显示操作菜单
*/publicvoid show(){
System.out.println("请输入需要进行的操作:");
System.out.println("1.增加图书");
System.out.println("2.删除图书");
System.out.println("3.修改图书");
System.out.println("4.查询图书信息");
System.out.println("5.显示可借阅图书");
System.out.println("6.借阅图书");
System.out.println("7.查看已经借阅的图书");
System.out.println("8.归还图书");
System.out.println("0.返回上一级");
}
{//事先存几本书和一名用户bookMap.put(001,newLibrary("书1","作者1",12));
bookMap.put(002,newLibrary("书2","作者2",15));
bookMap.put(003,newLibrary("书3","作者3",17));
bookMap.put(004,newLibrary("书4","作者4",19));
userMap.put("aaa", "123");
}
}