java控制台输出图书馆管理系统
java控制台输出图书馆管理系统(只用java代码不用数据库和GUI,java入门的新手秒懂)
在个项目中,我只用数组保存数据,和只用for循环和if条件语句来完成,连数组工具类都没用,所以导致要用到很多的条件语句,虽然比较局限,但可以让新手快速体验一下做小项目的乐趣,也可以练练for和if这些语句,练练一下它们之间嵌套的逻辑关系等,因为时间有限所以没有去优化了,主要还是让新手们体验下做java项目的面向对象编程思想(OOP),给新手们体验一下做项目的乐趣,嘿嘿!
话不多说了,直接切入正题。
设计思路如下图:
首先用eclipse建立包和类(为了简单明了我的项目结构设计如下):
//在UserData.java里边输入以下代码
packagecom.jiaxun.library.data;
publicclassUserData{
privateStringusername="小询";//用户名
privateStringpassword="zengjiaxun";//密码
publicStringgetUser(){
returnusername;
}
publicStringgetPassword(){
returnpassword;
}
}
//在BookData.java中输入以下代码
packagecom.jiaxun.library.data;
publicclassBookData{
//书库
publicBookData(){
{
Stringnoreaders="无";
for(inti=0;i
//在Bo.java中输入以下代码
packagecom.jiaxun.library.bo;
importjava.util.Scanner;
importcom.jiaxun.library.data.BookData;
importcom.jiaxun.library.data.UserData;
publicclassBo{
publicstaticBookDatabook=newBookData();
UserDatauser=newUserData();
//管理员登录验证
publicintlogin(Stringusername,Stringpassword){
if(username.equals(user.getUser())){
if(password.equals(user.getPassword())){
return1;//账号和密码验证通过
}else{
return0;//密码错误
}
}else{
return-1;//账号不存在
}
}
/*
*菜单功能展示列表
*
*图书信息展示功能
*/
publicvoidshowBook(){
System.out.println("本图书馆共有"+(book.booknames.length-remainSpace())+"本书");
inta=bookinfo();
if(a==0){
//展示所有图书信息
showAll();
}elseif(a>0&&a<=book.booknames.length){
//展示相关图书信息
showPart(a);
}else{
System.out.println("输入的编号不合法!");
showBook();
}
}
//展示所有图书信息
publicvoidshowAll(){
for(inti=0;i=0,无返-1
inta=selectIndex(bookname);
//馆里有此书
if(a>=0){
if((book.borrowreaders[a].equals("无")||book.borrowreaders[a].equals("")))//无人借此书,""为扫描器的直接回车值
return0;//未借
else
return1;//已借
}else{
return-1;//馆里没有此书
}
}
//将借阅者设置为无或者为空
publicvoidsetBorrowReader(Stringbookname){
inta=selectIndex(bookname);
book.borrowreaders[a]="无";
}
//查询指定书的借阅者
publicStringgetBorrowReader(Stringbookname){
inta=selectIndex(bookname);
returnbook.borrowreaders[a];
}
//书籍借阅功能
publicvoidborrow(Stringbookname,Stringreadername){
inta=selectBook(bookname);
book.borrowreaders[a]=readername;
}
}
//在LibraryUI.java中输入以下代码
packagecom.jiaxun.library.ui;
importjava.util.Scanner;
importcom.jiaxun.library.bo.Bo;
publicclassLibraryUI{
Bobo=newBo();
publicstaticvoidmain(String[]args){
LibraryUIui=newLibraryUI();
ui.welcome();//欢迎界面
}
//欢迎界面
publicvoidwelcome(){
System.out.println("*********************************");
System.out.println("********小☆询图书馆管理系统********");
System.out.println("*********************************");
loginBoundary();//登录界面
}
//管理员登录界面
publicvoidloginBoundary(){
System.out.print("管理员账号:");
Scannerscanner=newScanner(System.in);
Stringusername=scanner.nextLine();
System.out.print("登录密码:");
Scannerscanner1=newScanner(System.in);
Stringpassword=scanner1.nextLine();
intflag=bo.login(username,password);//登录验证
switch(flag){
case0://密码错误
System.out.println("密码错误,请重新输入。");
loginBoundary();
break;
case1://验证通过
System.out.println("登录成功!");
showMenu();//登录成功后跳转至菜单功能管理
break;
case-1://账户不存在
System.out.println("您输入的管理员账号不存在,请确认后再输入。");
loginBoundary();
break;
}
}
//菜单功能展示列表
publicvoidshowMenu(){
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.print("请输入功能编号:");
Scannerscanner=newScanner(System.in);
inta=scanner.nextInt();//
switch(a){
case1://图书信息
showBook();
returnMethod();//返回主菜单
break;
case2://录入新书籍
addBook();
break;
case3://修改书籍基本信息
modBookInfo();
break;
case4://删除书籍
delete();
break;
case5://还书
returnBook();
break;
case6://借阅
borrowBook();
break;
case7://退出登录
welcome();
scanner.close();
break;
}
}
//返回主菜单功能
publicvoidreturnMethod(){
System.out.print("按下ENTER键返回到功能主菜单:");
Scannerscanner=newScanner(System.in);
Stringi=scanner.nextLine();
showMenu();
}
//图书信息展示功能
publicvoidshowBook(){
bo.showBook();
}
//录入新书籍功能
publicvoidaddBook(){
System.out.print("请输入要增加的书籍名称:");//书名
Scannerscanner=newScanner(System.in);
Stringbookname=scanner.nextLine();
System.out.print("请输入"+bookname+"的作者:");//作者
Scannerscanner1=newScanner(System.in);
Stringauthor=scanner1.nextLine();
System.out.print("请输入"+bookname+"的出版日期(格式如2000-01-01):");//出版日期
Scannerscanner2=newScanner(System.in);
Stringpubdate=scanner2.nextLine();
System.out.print("请输入"+bookname+"的总页数(页):");//总页数
Scannerscanner3=newScanner(System.in);
Stringsumpagination=scanner3.nextLine();
intflag=bo.addBook(bookname,author,pubdate,sumpagination);
//1为成功,0为图书馆已经存在该新书,-1为仓库爆满
switch(flag){
case1:
System.out.println("新书籍"+bookname+"添加成功,目前图书馆还有"+bo.remainSpace()+"个位置可以存放新书籍。");
returnMethod();//书籍添加界面中的返回功能,可选择继续添加或者回到主菜单
break;
case0:
System.out.println("添加书籍失败,"+bookname+"已存在该图书馆中!");
returnMethod();//书籍添加界面中的返回功能,可选择继续添加或者回到主菜单
break;
case-1:
System.out.println("添加失败,图书馆已经存储量已经爆满了,请删除部分书籍后再进行添加。");
showMenu();
break;
}
}
//修改书籍信息
publicvoidmodBookInfo(){
System.out.print("请输入您要操作的书名:");
Scannerscanner=newScanner(System.in);
Stringbookname=scanner.nextLine();
//根据书名查找相关的书籍信息
intflag=bo.selectBook(bookname);
switch(flag){
case0:
System.out.print("未找到相关书籍,输入0回车进入该层功能,输入1回车返回到功能主菜单。");
inta=scanner.nextInt();
if(a==0){
modBookInfo();
}elseif(a==1){
showMenu();
}
break;
case-1:
System.out.println("书名为空,输入0回车进入该层功能,输入1回车返回到功能主菜单。");
inta1=scanner.nextInt();
if(a1==0){
modBookInfo();
}else{
showMenu();
}
break;
case1:
System.out.print("以上信息为相关书名查找的结果,其中(数字“1”代表书名,数字“2”代表作者,数字“3”代表出版日期,数字“4”代表总页数,数字“5”代表借阅者)输入相关数字可以修改相关信息:");
inta2=scanner.nextInt();//1书名2作者3出版日期4总页数5借阅者
if(a2>0&&a2<6){
System.out.print("请输入您想修改的"+sortName(a2)+":");
Scannerscanner2=newScanner(System.in);
Stringvalue=scanner2.nextLine();
intindex=bo.selectIndex(bookname);
bo.modinfo(a2,value,index);
System.out.println(bookname+"这本书的相关信息修改成功!");
returnMethod();
}else{
System.out.println("您输入的数字不合法。请重试!");
modBookInfo();
}
break;
}
}
//修改的分类名称
publicStringsortName(intflag){
if(flag==1)
return"书名";
if(flag==2)
return"作者";
if(flag==3)
return"出版日期";
if(flag==4)
return"总页数";
else
return"借阅者";
}
//删除书籍功能
publicvoiddelete(){
System.out.print("请输入要被删除的书名:");
Scannerscanner=newScanner(System.in);
Stringbookname=scanner.nextLine();
intflag=bo.testReader(bookname);
//存在此书并无人借
if(flag==0){
bo.deleteBook(bookname);
System.out.println(bookname+"已从图书馆成功移除!输入0回到主菜单,输入1则继续删除");
delReturn();
}elseif(flag==1){//有人借
System.out.println("此书已借出,请等待归还后再删除。输入0回到主菜单,输入1则继续删除");
delReturn();
}else{//不存在此书
System.out.println("本馆不存在此书,请仔细较对。输入0回到主菜单,输入1则继续删除");
delReturn();
}
}
//删除的返回操作
publicvoiddelReturn(){
Scannerscanner1=newScanner(System.in);
inti=scanner1.nextInt();
if(i==0){
showMenu();
}elseif(i==1){
delete();
}
}
//还书功能
publicvoidreturnBook(){
System.out.print("请输入要还的书籍名称:");
Scannerscanner=newScanner(System.in);
Stringbookname=scanner.nextLine();
intflag=bo.testReader(bookname);
if(flag==0){
System.out.println(bookname+"暂未借出。");
System.out.print("输入0回车返回至主菜单,输入其他键则继续还书");
Stringa=scanner.nextLine();
if(a.equals("0")){
showMenu();
}else{
returnBook();
}
}elseif(flag==-1){
System.out.println(bookname+"不存在该图书馆中。");
System.out.print("输入0回车返回至主菜单,输入其他键则继续还书");
Stringa=scanner.nextLine();
if(a.equals("0")){
showMenu();
}else{
returnBook();
}
}elseif(flag==1){
System.out.println(bo.getBorrowReader(bookname)+"已经还书成功!");
bo.setBorrowReader(bookname);
System.out.print("输入0回车返回至主菜单,输入其他键则继续还书");
Stringa=scanner.nextLine();
if(a.equals("0")){
showMenu();
}else{
returnBook();
}
}
}
//书籍借阅功能
publicvoidborrowBook(){
System.out.print("请输入要借的书名:");
Scannerscanner=newScanner(System.in);
Stringbookname=scanner.nextLine();
intflag=bo.testReader(bookname);
switch(flag){
case0://存在此书并无人借的情况
System.out.println("请输入借阅者的名字:");
Stringreadername=scanner.nextLine();
bo.borrow(bookname,readername);
System.out.println(readername+"从该图书馆里借出了以"+bookname+"为名的书籍。");
System.out.print("输入0回车返回至主菜单,输入1回车则继续借书:");
inta0=scanner.nextInt();
if(a0==0)
showMenu();
if(a0==1)
borrowBook();
break;
case1://存在此书被借的情况
System.out.println("借书失败,"+bookname+"已被借!");
System.out.print("输入0回车返回至主菜单,输入1回车则继续借书:");
inta=scanner.nextInt();
switch(a){
case0:
showMenu();
break;
case1:
borrowBook();
break;
}
case-1://不存在此书的情况
System.out.println("借书失败,"+bookname+"不存在该图书馆中。");
System.out.print("输入0回车返回至主菜单,输入1回车则继续借书:");
inta1=scanner.nextInt();
switch(a1){
case0:
showMenu();
break;
case1:
borrowBook();
break;
}
}
}
}
更多学习资料请关注专题《管理系统开发》。
以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持毛票票。
声明:本文内容来源于网络,版权归原作者所有,内容由互联网用户自发贡献自行上传,本网站不拥有所有权,未作人工编辑处理,也不承担相关法律责任。如果您发现有涉嫌版权的内容,欢迎发送邮件至:czq8825#qq.com(发邮件时,请将#更换为@)进行举报,并提供相关证据,一经查实,本站将立刻删除涉嫌侵权内容。