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

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

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

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

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

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

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

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

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

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

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

图书管理员用例描述:

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

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

最高层用例图中展开系统管理员进行系统维护的用例图如下图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.静态图练习:图书管理系统图书管理系统包图1、组合:强聚合。成员生命周期取决于组合对象的生命周期,contain-a。组合方使用空心菱形。 2、聚合:has-a。聚合方使用实心菱形。 关联关系的导航性:1、单向关联:带箭头的实线表示。2、双向关联:一条没箭头的实线表示。 下面给出几个简单的案例: 类图概要: 图书管理系统包图: 图书管理系统类图:https://blog.csdn.net/maxiaoxian_123/article/details/21120829
2.图书馆管理系统类图数据库包图设计20230315.doc图书馆管理系统包图管理员界面读者界面主窗体主窗体登陆窗体逾期处理窗体编辑图书信息窗体借阅信息查询还书窗体借书窗体图书查询顾客界面层管理员界面读者界面主窗体主窗体登陆窗体逾期处理窗体编辑图书信息窗体借阅信息查询还书窗体借书窗体图书查询顾客界面层图书查询目录借书书目还书书目编辑图书信息书目权限管理图书信息处理借阅https://m.renrendoc.com/paper/250334370.html
3.图书管理系统典型用例图.pdf图书管理系统典型用例图.pdf,用例名称 书籍查询 主要业务参与者 图书管理员 其他参与者 其他有兴趣的关联人员 图书采购者 对该书的受欢迎程度了解, 以便对这方面书的采购 描述 该用例描述一个图书管理员在库存书籍的查 询,设置可由图书编号,书名等相关手段进 行查询。选https://max.book118.com/html/2024/0716/6010205000010202.shtm
4.图书管理系统系统总体架构图mob64ca13f587aa的技术博客图书管理系统系统总体架构图 自友图书馆管理系统解决方案适用于中小学、大中专院校以及企事业单位中小型图书馆的自动化管理需求,其功能覆盖了图书馆自动化集成管理业务流程所包括的所有环节。《图书馆管理系统》首先应该按照我国图书馆行业通用CNMARC格式及《中图法第四版》行业标准开发而成,支持CNMARC导入导出,支持Z39.50https://blog.51cto.com/u_16213572/12515031
5.图书管理系统用例图7篇(全文)图书管理系统 UML建模与设计模式 实验报告 计算机与信息工程学院 一、实验目的 在熟悉用例概念与应用的基础上,掌握用例模型的建立,包括: 1.掌握用例图的建立。 2.掌握用例描述文档的编写。3.掌握建模工具的使用。 二、实验内容 根据以下需求设计一个图书馆管理系统的用例图模型,包括:用例图和主要用例的描述文档。 https://www.99xueshu.com/w/filesaiudqen.html
6.浙江树人大学图书编目管理系统的研究与分析明确了系统的功能,给出了系统的总体功能包图和子功能包图,包括图书采访管理、图书标签管理、图书编目制作管理、图书编目查询管理、图书编目统计等子包图;在数据分析中,论文对系统各功能的所需要处理的数据进行了分析,给出了实体类关系图,建立了数据库表结构;论文最后对所做的研究与分析工作进行了总结,并对进一步的https://cdmd.cnki.com.cn/article/cdmd-10673-1016041251.htm
7.图书管理系统活动图流程图模板图书管理系统活动图展示了该系统的主要功能和操作流程。首先,用户通过登录界面输入用户名和密码进行身份验证。验证成功后,用户可以浏览系统中的图书目录,包括书名、作者、出版社等信息。用户可以搜索特定图书,系统会显示匹配的结果。如果用户想借阅某本图书,他们可以将其添加到借阅列表中,并确认借阅操作。系统会更新图书的https://www.processon.com/view/557a4adee4b0b9f0bdb82ebb
8.学生管理系统的用例图类图活动图状态图Uml 用例图 类图 包图 活动图 顺序图 各类UML 建模的图 用例图,顺序图,包图,类图,活动图各类 UML 建模的图 用例图,顺序图,包图,类图,活动图 上传者:wangmingjiu时间:2009-05-22 图书馆管理系统用例图活动图类图时序图.pdf 图书馆管理系统用例图活动图类图时序图.pdf https://www.iteye.com/resource/qq_33506045-9376798
9.系统的分析与设计(精选十篇)将阻尼比ξ的值固定为ξ=0.3, 可采用如下Matlab语句得到在各个自然频率ωn取2, 4, 6, 8, 10, 12时的闭环系统的单位阶跃响应。 4 结束语 图书管理系统的分析与设计 篇2 一、系统的总体功能 图书管理系统的用户是借阅者和图书管理员。借阅者使用系统预订图书。图书管理员使用系统进行图书馆业务的管理工作,包括https://www.360wenmi.com/f/cnkeyf5luq8x.html
10.形考作业3:基于UML的大学图书馆图书信息管理系统设计实验形考作业3:基于UML的大学图书馆图书信息管理系统设计实验 、实验内容说明 对实验2的面向对象分析结果进行系统概要设计和详细设计。 设计系统构架,勾画出整个系统的总体结构,这项工作由全组成员参加,包括主要子系统及其接口,主要的设计类和中间件等系统软件,设计时要考虑系统的可维护性,以简单 https://www.xyzlfx.com/5577.html
11.?化德县七号镇国土空间总体规划(20212035年)说明9.2山水林田湖草沙系统修复 127 第十章规划传导与实施 130 10.1规划传导 130 10.2近期建设与重点建设项目 136 10.3实施保障 140 第一章总则 1.1指导思想 以习近平新时代中国特色社会主义思想为指导,全面贯彻党的十九大、十九届二中、十九届三中全会和习近平总书记重要讲话精神,有机融合上位主体功能区规划、城乡规划、土https://www.huade.gov.cn/tzgg/1572675.html
12.包图简介以创建自治区一流图书馆为目标,将包头市图书馆打造为知识信息集散地、市民终身教育学校(即市民大书房)、包头地方文献宝库、高雅文化休闲场所、全市图书馆中枢(中心图书馆)。新图书馆启用“图创”集群化、自动化图书馆管理系统、“阿法迪”智能借还书系统、“一卡通”管理服务系统等高端智能化的网络设施,将全面实现现代https://www.btslib.cn/lists/cid/47.jsp
13.图书馆志愿活动总结(精选20篇)整理图书虽然很累,但我们也学到了一些图书管理方面的知识,同时自身的素养也得到了提高。而最后我们的工作得到图书馆工作人员们的赞许则是对我们最好的褒奖。看着美丽的图书馆,以及经过我们整理的整齐一致的书架,想着同学们可以拥有一个更好的学习环境时,我们觉得,一切的付出和辛苦都是值得的,特别欣慰我们所做的。 https://www.yjbys.com/zongjie/huodong/1556010.html
14.图书馆志愿者活动总结(精选18篇)在包图的一至五层,你都可以见到生科志愿者的身影。他们或在墨香四溢的书架之间往来穿行,或在计算机前搜索架外图书应处的确切位置,或在电子阅览室管理出入的刷卡登记。我们平时到图书馆都会看到工作人员在做这些事情,可能当时我们会觉得这些工作相当地简单与轻松,而现在我们终于亲身体尝到其中的辛苦滋味了。 https://www.jy135.com/huodongzongjie/1294956.html