面向对象设计图书管理系统徐晓萌

图书馆管理系统是图书馆管理工作中不可缺少的部分,对于图书馆的管理者和使用者来说都非常重要了,故相对于传统的手工方式或性能较低的图书馆管理系统管理图书馆的日常事务相比,设计一个能提供快速的图书信息检索功能、快捷的图书借阅、归还流程,为管理者与读者提供充足的信息和快捷的数据处理手段的系统,能更好的对图书进行管理。所以从读者与图书管理员的角度出发,本着以读者借书、还书快捷、方便的原则,要求本系统应具有以下特点:

√具有良好的系统性能,友好的用户界面。

√较高的处理效率,便于使用和维护。

√采用成熟技术开发,使系统具有较高的技术水平和较长的生命周期。

√系统尽可能简化图书馆管理员的重复工作,提高工作效率。

√简化数据查询、统计难度。

最高层用例图中展开读者借书的用例图如下图所示:

读者借助此图书管理系统子系统,可以进行一下操作:

读者进行还书操作时,必须保证图书完整;

最高层用例图中展开图书馆管理员处理借书、还书等的用例图如下图所示:

图书管理员用例描述:

图书管理员使用系统进行的操作主要有:

其中在处理还书时,要查看图书的完整性;处理读者借书时,要检查读者信息;

最高层用例图中展开系统管理员进行系统维护的用例图如下图2-4所示:

系统管理员使用系统进行的操作主要有:

2.图书管理系统对象模型

根据需求描述,提取出管理员,借阅者,图书等几个对象.

3.1对象模型描述

下面对这个几个对象进行详细描述并建模:

3.1.1.读者Borrower类:

读者在系统注册的信息包括一下几点:

姓名(name),

住址(address),

城市(city),

省/州(state),

邮政编码(zip),

可借数的最大数目(maxbook),

借书期限(maxday),

读者编号(userid),

借书证号码(borrow_number);

读者使用系统可进行的操作有:

查询-------find(),

借书------borrow(),

还书-------return_back();

3.1.2.系统管理员Administrator类:

3.1.3.图书管理员Librarian类:

图书管理员也要在系统内注册,注册信息如下:

省(state);

系统为每个管理员分配一个唯一编号workID.

更新借书还书信息------update();

增加预留----------------create();

删除预留信息----------destroy();

3.1.4.书目Title类:

书目类代表图书,在系统中要保存每一本图书的资料,这些信息包括:

书名(name),

作者(author),

书号(isbn),

库存数量(total_number),

借阅号(borrowed_number),

是否可以借出(is_allowedForBorrow);

在书类的操作有一些:

查找书目-------------------find();

增加书目----------------create();

删除书目----------------destroy();

借书----------------------borrow();

还书----------------------return_back();

预留图书--------------reserve()

3.1.5.其他类:

Item类:此类代表一个书目的一份拷贝

Loan类:代表对超过还书期限的读书进行罚金的类

Reserve类:预留图书类

3.2类代码如下:

Reader类:

/**

*读者对象

*@authorcz

*

*/

publicclassReaderextendsUser{

privateStringsex;//性别

privateinttake;//借出

privateintrevert;//归还

publicStringgetSex(){

returnsex;

}

publicvoidsetSex(Stringsex){

this.sex=sex;

publicintgetTake(){

returntake;

publicvoidsetTake(inttake){

this.take=take;

publicintgetRevert(){

returnrevert;

publicvoidsetRevert(intrevert){

this.revert=revert;

Student类:

publicclassStudentextendsReader{

publicStringsclass;//学生的班级

publicStringgetSclass(){

returnsclass;

publicvoidsetSclass(Stringsclass){

this.sclass=sclass;

publicStringtoString(){

return"您好,尊敬的学生用户"+getName()+"\n你的班级:"+getClass()+"\n你的性别"+getSex()

+"\n你已借了:"+getTake()+"\n你已还:"+getRevert()

+"\n你的用户id:"+getId();

Teacher类:

publicclassTeacherextendsReader{

privateStringlevel;//级别:讲师/教授/助教

publicStringgetLevel(){

returnlevel;

publicvoidsetLevel(Stringlevel){

this.level=level;

@Override

return"您好,尊敬的老师\n你的级别处于:"+getLevel()+"\n你的性别"+getSex()

+"\n你的用户id:"+getId()+"\n你的名字:"+getName()

+"\n你的年龄:"+"]";

Test类:

importjava.io.BufferedReader;

importjava.io.File;

importjava.io.FileNotFoundException;

importjava.io.FileReader;

importjava.io.IOException;

importjava.util.ArrayList;

importjava.util.List;

importjava.util.Scanner;

publicclassTest{

staticintcount=0;

staticListlist=newArrayList();

staticBufferedReaderbr;

publicstaticvoidmain(String[]args){

menu();

init();

//System.out.println(list);

System.out.println("请选择功能");

Scannerinput=newScanner(System.in);

intselect=input.nextInt();

switch(select){

case0:

userDenglu();break;

case1:

System.out.println("抱歉,该功能还没有开发");break;

case2:

case3:

System.exit(0);

System.out.println("您已成功退出");

publicstaticvoidmenu(){

System.out.println("--------------------欢迎使用图书管理系统-------------");

System.out

.println("|【1】用户注册|");

.println("|【2】信息查询|");

.println("|【3】退出系统|");

.println("----------------------------------------------------");

privatestaticvoidinit(){

try{

br=newBufferedReader(

newFileReader(newFile("txt/denglu.txt")));

Stringstr=null;

while((str=br.readLine())!=null){

list.add(str);

br.close();

}catch(FileNotFoundExceptione){

//TODOAuto-&-generatedcatchblock

e.printStackTrace();

}catch(IOExceptione){

publicstaticbooleanlogin(Stringname,Stringpw){

booleanflag=false;

for(inti=0;i

if(list.get(i).contains(name+"&-&"+pw)){

count=i;

flag=true;

break;

returnflag;

publicstaticvoiduserDenglu(){

System.out.println("请输入用户名:");

Stringname=input.nextLine();

System.out.println("请输入密码");

Stringpassword=input.nextLine();

if(login(name,password)){

System.out.println("登陆成功");

Stringstr=list.get(count);

//System.out.println(count);

if(str.split("&-&")[2].equals("s")){

System.out.println("你是学生");

Students=newStudent();

s.setName(name);

System.out.println("你的名字为:"+s.getName());

}elseif(str.split("&-&")[2].equals("t")){

System.out.println("你是老师");

Teachert=newTeacher();

t.setName(name);

System.out.println("你的名字为:"+t.getName());

}else{

userDenglu();

User类:

*用户对象

publicclassUser{

privateintid;

privateStringname;

privateintpassWord;

publicintgetId(){

returnid;

publicvoidsetId(intid){

this.id=id;

publicStringgetName(){

returnname;

publicvoidsetName(Stringname){

this.name=name;

publicintgetPassWord(){

returnpassWord;

publicvoidsetPassWord(intpassWord){

this.passWord=passWord;

Book类:

packagebean;

publicclassbook{

privateStringbookName;

privateStringauthor;//作者

privateStringtype;

privateintnumber;

publicStringgetAuthor(){

returnauthor;

publicvoidsetAuthor(Stringauthor){

this.author=author;

publicStringgetBookName(){

returnbookName;

publicvoidsetBookName(StringbookName){

this.bookName=bookName;

publicintgetNumber(){

returnnumber;

publicvoidsetNumber(intnumber){

this.number=number;

publicStringgetType(){

returntype;

publicvoidsetType(Stringtype){

this.type=type;

Borrow类:

publicclassborrow{

privateStringuserName;

privateStringtime;

privateStringbookStatic;//借阅状态(借阅中,已归还)

publicStringgetBookStatic(){

returnbookStatic;

publicvoidsetBookStatic(StringbookStatic){

this.bookStatic=bookStatic;

publicStringgetTime(){

returntime;

publicvoidsetTime(Stringtime){

this.time=time;

publicStringgetUserName(){

returnuserName;

publicvoidsetUserName(StringuserName){

this.userName=userName;

book-main类:

packagemain;

importbean.book;

publicclassbookmain{

publicvoidsetbook(ArrayListbolist){

System.out.println("请依次填写所要添加书籍的编号书名作者类型数量");

Scannersc=newScanner(System.in);

bookbo=newbook();

bo.setId(sc.nextInt());

bo.setBookName(sc.next());

bo.setAuthor(sc.next());

bo.setType(sc.next());

bo.setNumber(sc.nextInt());

bolist.add(bo);

System.out.println("添加成功");

publicvoidfindbook(ArrayListbolist){

System.out.println("请输入要查询的书名");

System.out.println("书籍编号名称作者类型数量");

StringbookName=sc.next();

for(inti=0;i

bookbo=(book)bolist.get(i);

if(bo.getBookName().equals(sc.next())){

System.out.println(bo.getId()+""+bo.getBookName()+""+

bo.getAuthor()+""+bo.getType()+""+

bo.getNumber());

publicvoidshow(ArrayListbolist){

bookManagermain类:

publicclassbookManagermain{

System.out.println("》》》》》》欢迎来到图书管理系统《《《《《《");

ArrayListbolist=newArrayList();

ArrayListowlist=newArrayList();

while(true){

System.out.println("请选择您将要进行的操作");

System.out.println("1,添加书籍2,搜索书籍3,查看图书");

System.out.println("4,借阅书籍5,归还书籍6,查看借阅信息7,退出");

inta=sc.nextInt();

if(a==1){

bookmainbm=newbookmain();

bm.setbook(bolist);

}elseif(a==2){

bm.findbook(bolist);

}elseif(a==3){

bm.show(bolist);

}elseif(a==4){

borrowmainbm=newborrowmain();

bm.add(owlist,bolist);

}elseif(a==5){

bm.Return(owlist,bolist);

}elseif(a==6){

bm.show(owlist);

Borrow-main类:

importbean.borrow;

publicclassborrowmain{

publicvoidadd(ArrayListowlist,ArrayListbolist){

borrowbo=newborrow();

bo.setUserName(sc.next());

bo.setTime(sc.next());

owlist.add(bo);

bo.setBookStatic("借阅中");

bookboo=(book)bolist.get(i);

if(boo.getBookName().equals(sc.next())){

boo.setNumber(boo.getNumber()-1);

System.out.println("借阅成功");

publicvoidshow(ArrayListowlist){

for(inti=0;i

borrowbo=(borrow)owlist.get(i);

System.out.println(bo.getId()+""+bo.getBookName()+""+bo.getUserName()+""+bo.getTime()+""+bo.getBookStatic());

publicvoidReturn(ArrayListowlist,ArrayListbolist){

System.out.println("请输入书名");

bo.setNumber(bo.getNumber()+1);

System.out.println("归还成功");

总体设计

“图书管理系统”系统设计用包图描述,如图所示。

图书管理系统动态模型如下图所示:

图书管理系统动态模型

系列图

数据需求:要查询的图书名称

图书管理员处理书籍借阅的时序图如下图5-3所示:

系统管理员删除书目的时序图如下图所示:

数据需求:

书目信息

主流程:

a)系统管理员向系统提交要删除的书目

b)系统查找此书目

c)系统查找此书目下的所有拷贝

d)系统删除此书目的所有拷贝

e)系统删除此书目

系统管理员添加借阅者帐户的时序图如下图所示:

a)系统管理员填写新读者的信息

b)2.提交信息,创建读者信息保存到数据文件

系统管理员添加书籍的时序图如下图所示:

每本书的拷贝的详细资料

主流程描述:

a)系统管理员向系统提交新书资料(additem());

c)系统返回查询结果;

d)查到书目,则提交,添加此书目的拷贝。

图书管理系统活动图

借阅者的活动图如下图所示:

图书管理员的活动图如下图所示:

b)在处理还书时,系统会计算读者的还书期限是否过期,如果过期,则要交一定的罚金,并且更新借阅信息;

c)处理借书时,系统会验证此读者借书的数量是否超过了限制,如果超过最大可借书的数目时,拒绝继续借书。

系统管理员维护借阅者帐户的活动图如下图所示:

b)通过系统验证后,进入管理主界面,可以对借阅者进行管理;

d)可以为读者注册资料,使其能通过系统借书,更新读者的资料。

系统管理员进行书目信息维护的活动图如下图所示

b)通过验证后,系统管理员可以对书目进行管理,购买了新书后,需要向系统增加新的书目信息;

THE END
1.图书管理系统需求分析报告经管文库(原现金交易报告名称:图书管理系统需求分析报告 专业班级 :计1503 学生姓名 :温宇恒学 号:150210329 指导教师 :https://bbs.pinggu.org/thread-13240057-1-1.html
2.图书馆进化论:智能设备系统如何打造智慧图书馆新纪元传统的图书馆借阅方式需要读者在书海中寻找所需的书籍,然后再到服务台进行借阅登记。这个过程既耗时又容易让读者感到疲惫。因此近年来,越来越多的图书馆开始引进智能设备,以改善读者的阅读体验和提高图书馆的管理效率。 一、提高阅读体验 智能检索系统: 图书馆通过安装智能检索系统,读者可以快速、准确地找到所需书籍或资https://www.bilibili.com/read/cv36020975
3.图书管理系统系统需求分析图书管理系统需求分析因为图书馆管理系统的使用者大多都是普通的用户,并不具备非常专业的计算机类知识,过于复杂的系统将会使系统操作人员不方便使用,因此,简单实用的系统成为了系统意向非常重要的指标,能够适用于任何人群,不需要太多的计算机类知识,仅仅只要求使用的工作人员具有最基本的计算机知识,即可用系统完成图书馆中的基本业务处理,而且https://blog.csdn.net/qq_61141142/article/details/139538712
4.图书馆管理系统需求分析报告20220504070336.pdf信息管理图书馆管理系统需求分析报告.pdf 18页内容提供方:plxm 大小:583.57 KB 字数:约1.14万字 发布时间:2022-05-05发布于山西 浏览人气:30 下载次数:仅上传者可见 收藏次数:0 需要金币:*** 金币 (10金币=人民币1元)图书馆管理系统需求分析报告.pdf 关闭预览 想预览更多内容,点击免费在线预览全文https://max.book118.com/html/2022/0504/7030156141004116.shtm
5.图书馆管理信息系统可行性分析报告14篇(全文)可行性分析报告 一.引言编写目的基于提高图书馆管理员对用户和图书的管理的效率,把管理员从繁重的工作中解脱出来,同时也让图书馆能够更好的为大众服务.背景 21世纪是一个信息时代,我们一直在获取并应用信息中进步.图书馆是我们获取信息的重要渠道之一,管理系统不完善、开发一套高效的图书馆管理系统是非常必要而且必须https://www.99xueshu.com/w/filelo0qzcmn.html
6.IC学习空间管理系统杭州联创信息技术有限公司IC学习空间管理系统 一、背景分析 信息共享空间(Information Commons , 简称IC) 是在共享式学习和开放存取运动背景下兴起的一个经过特别设计的一站式服务中心和协同学习环境。早的IC 是1992年8月在美国爱阿华大学图书馆开放的“信息拱廊”。近年来,国外学者关于IC 的一些理论研究成果已经得到了应用和实施。国内学者http://unifound.net/319
7.图书管理系统分析(精选十篇)图书管理系统分析(精选十篇) 图书馆不仅需要管理成千上万的图书, 还要对频繁更替的借还书信息和纷繁复杂的读者信息等进行正确梳理。随着网络技术的普及, 可以实现一种自动化控制的信息管理系统, 它具有智能化、信息化和系统化的特点, 不仅降低图书管理成本, 而且能使管理https://www.360wenmi.com/f/cnkeyrc64zlp.html
8.图书管理系统可行性研究报告(精选6篇)(1)经济可行性分析 图书管理系统的投入,能够提高工作效率,减少工作人员,从而减少人力资本的投入,根据核算,系统投入三个月后,就能够基本收回开发系统的投资,同时,本系统对开发环境没有太高的要求适用于各种操作系统,普通的电脑就可以满足开发需求,因此本次开发在经济上具有一定的可行性。 https://m.ruiwen.com/baogao/6424056.html
9.图书管理系统的设计与实现:从数据库到用户界面图书管理系统是一种用于图书馆或书店管理图书信息的软件应用,它通常包括图书入库、借阅、归还、查询等功能。 系统需求分析 在设计图书管理系统之前,需要明确系统的基本需求,包括用户角色、功能模块、数据存储等。 数据库设计 数据库是图书管理系统的核心,用于存储图书信息、用户信息、借阅记录等数据。 https://www.ctyun.cn/zhishi/p-423659
10.网络设计方案系列(3)图书馆子网:图书馆从应用来说是一个相对独立的系统,因此设计时在图书馆设图书馆网络分中心,配置了一台Cisco6006中心交换机、海量存储器、所需的服务器以及若干查询终端。这个系统主要用于教师及学生对图书及目录的查找以及图书管理。图书馆的服务器和交换机通过1000M交换口连入校园网,图书管理员办公计算机和各个查https://www.liuxue86.com/a/5094606.html
11.某高校图书馆欲建设一个图书馆管理系统,目前已经完成了需求分析【答案解析】阅读下列说明和图,回答问题1至问题3,将解答填入答题纸的对应栏内。【说明】某高校图书馆欲建设一个图书馆管理系统,目前已经完成了需求分析阶段的工作。功能需求均使用用例进行描述,其中用例“借书(CheckOutBooks)”的详细描述如下。参与者:读者(Patronhttps://www.cnitpm.com/st/381417404.html
12.关于图书管理员心得体会(精选13篇)师生是学校图书馆的主要服务对象,在服务过程中,通过图书馆提供的书刊对学生进行思想品德教育,拓宽学生的知识面,培养学生的创新精神和实践能力,在图书馆工作实践中,作为图书馆的管理员,努力为师生营造一个文明、整洁、清新的馆容馆貌,学生阅览室为学生开拓视野、增长知识、培养学生个性和创造性造就良好的阅读场所。https://www.fwsir.com/xinde/html/xinde_20230507125650_2804722.html
13.基于Python的高校电子文档管理系统摘要:随着高校采购任务的剧增, 采购业务积累了大量的电子文档资料, 原一站式采购管理平台的文档管理功能已经无法满足现有的工作需要. 综合分析现有文件和资料管理的需求, 并根据文档实际生命周期的业务流程, 确定了系统功能模块的划分. 利用模型驱动工程思想建立系统的对象模型, 使用Rational建模工具建立系统类图和时序图https://c-s-a.org.cn/html/2021/4/7843.html
14.医院一卡通系统医院智能管理系统解决方案医院就餐卡医院食堂平台预留的扩展接口实现与数字化医院 建设中的其他MIS系统、OA系统,医院的HIS系统的融合。实现与人事管理系统的对接,实现医务员工按入职离职的方式管理,实现共享资源、生活设施的使用控制;实现与现有图书馆管理系统、电子阅览室等其它第三方子系统的对接连通,做到系统间无缝的紧耦合连接。 https://www.hbjingjiu.cn/doc_10614263.html