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

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

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

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

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

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

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

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

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

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

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

图书管理员用例描述:

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

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

最高层用例图中展开系统管理员进行系统维护的用例图如下图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.电子科技大学图书馆Scite(Smart Citation)开通试用2024-10-15 AMiner AI科研助手开通试用2024-10-15 2024"天府书展·学府书香"高校分展场即将开启!2024-10-08 “聚焦未来产业·阅启数智新篇”—外文电子书开放阅读活动2024-10-09 图书馆已引进APA PsycArticles心理学期刊数据库-助力师生学术研究!2024-09-20 https://www.lib.uestc.edu.cn/nl?isM=true&type=resource
2.网上免费图书馆管理系统软件有哪些值得推荐?软件技巧下面给大家推荐几款好用的免费的图书馆管理系统软件,有需要的小伙伴们来了解一下。1. 先锋图书馆管理系统 2024 v6.1https://xiazai.zol.com.cn/jiqiao/67545.html
3.十大好用的图书管理系统图书管理软件排行榜图书管理系统app推荐一个好用的图书管理系统平台,可以有效提升书店或图书馆的管理效能。下面MAIGOO小编带大家看看图书管理系统有哪些、图书管理软件哪个好(包括电脑软化和手机App)。例如晴川普菲特图书管理系统、私家书藏、广智书店业务综合管理系统等,都是较具代表性的。https://www.maigoo.com/top/423944.html
4.提升图书馆管理效率的利器:图书馆管理系统在数字化时代,图书馆的管理方式也在不断进化。为了帮助图书馆管理员和用户更高效地管理图书馆的各项事务,我们推出了一个功能齐全的图书馆管理系统。这个系统不仅涵盖了从用户登录到图书借阅的全流程管理,还提供了丰富的功能模块,确保图书馆的日常运营更加顺畅和高效。 https://blog.csdn.net/gitblog_09787/article/details/143074477
5.电子资源查找资料 图书 期刊 新书通报 下载专区 网络导航 参考工具 搜索引擎 考研专题 服务指南 借阅服务 阅览服务 图书荐购指南 WIFI使用指南 借阅证办理 电子资源使用指南 站点地图 讲座/活动 读书月 读者质量服务月 本馆概况 图书馆简介 馆领导简介 机构设置 规章制度 馆藏分布 开放时间 联系我们 我的图书馆https://www.whsw.cn/lib/dzzy.htm
6.图书馆信息管理系统图书馆信息管理系统 图书管理系统的设计与实现!增删改查 预备知识: (1)指针如何变成变量 #include<stdio.h>#include<stdlib.h>voidmain(){int*p=NULL;inta=1;//1.1 用变量的地址p=&a;*p=1001;printf("%d\n",*p);//1.2 动态内存申请p=(int*)malloc(sizeof(int));//malloc()函数需要 stdlib.h头https://www.jianshu.com/p/d78b72a7f915
7.图书馆管理系统因此本人结合开入式图书馆的要求,对MS SQL Server2000数据库管理系统、SQL语言原理、Delphi应用程序设计,Delphi数据库技术进行了较深入的学习和应用,主要完成对图书管理系统的需求分析、功能模块划分、数据库模式分析,并由此设计了数据库结构和应用程序。系统运行结果证明,本文所设计的图书管理系统可以满足借阅者、图书馆https://www.fwsir.com/ligong/html/ligong_20070130182525_25748.html
8.图书管理系统开题报告使无论是管理人员或是普通用户通过登录,都可以进入书库管理系统的网页,通过输入关键词,责任者,题名,分类号等任意一个检索点,快速并准确地查询图书的信息。尤其对于复杂的信息管理,计算机能够充分发挥它的优越性。计算机进行信息管理与信息管理系统的开发密切相关,系统的开发是系统管理的前提。本系统就是为了管理好图书馆https://www.unjs.com/fanwenwang/kaitibaogao/20110821165045_683280.html
9.常见问题4.图书经系统查询“入藏”,即在馆状态,却在书架上找不到,有可能有 如下几种原因: ①同学刚归还,但该书尚未上架。大约一天的工作时间,图书将会由工 作人员上架。 ②同学看完书随手将书插入或放置任一书架中,以至改书未放置于正确 的架位上。必须待图书馆工作人员整理书架至该书架方可将其归位。 https://www.fzfu.com/lib/info/1016/1112.htm
10.图书检索系统体系架构研究图书馆管理系统,又称图书馆自动化管理系统,自国内图书馆开始运用图书馆自动化管理系统,到目前已经将传统的图书馆业务手工操作转变为计算机管理,从简单的单个模块管理提升到功能齐全和强大的集成系统,使图书馆的主要业务,包括采访、编目、流通、连续出版物管理、公共检索等,在一个书目数据库中得以实现。随着计算机和网络技https://www.yjbys.com/edu/jiagoushi/216499.html
11.聊医管理内参试发行版第三期此外,2013年成立的北京儿童医院集团成员已达20家,集团医疗联合体共计覆盖超过1000家基层医疗机构,通过“专家、临床、科研、教育、管理、预防”六个共享,建设远程会诊中心和绿色转诊通道,在提升当地诊疗水平的同时,也为各地患者就近就医提供了便利。(登录上述医院网站或关注其微信公众号可获取北京儿童医院专家赴各医院最新https://lib.lchospital.cn/qitafuwu/liaoyineican-guanlilei/2017nian/2018-07-01/716.html
12.图书管理系统开题报告(精选18篇)图书管理系统开题报告3 近年来,我校图书室工作取得了一些成绩,但还存在建设标准不高、图书质量差、管理手段落后等问题。根据河北省教育厅《关于进一步加强河北省中小学图书馆工作的通知》(冀教备字[2012]8号)和张家口市教育局《关于进一步加强全市中小学图书馆工作的通知》(张教备字[2013]211号) 精神,我校对图书https://www.ruiwen.com/baogao/6474461.html
13.中专中小学图书管理系统当在运行MSSQL数据库系统的服务器上,系统报“数据库的日志文件已满”的错误时,此时数据库系统已经不能再处理数据的更改,原因是MSSQL数据库安装的硬盘已经没有空余空间,此时必须清除数据库系统的日志文件(一般是图书管理系统的日志,其他系统的日志一般不大)。按如下处理(在数据库服务器上处理): http://www.hfjsj.com/server/help/question.asp
14.图书管理系统:使用jsplayuimysql完成的Web端图书管理系统系统管理员 一、项目介绍 项目简介 使用jsp、layui、mysql完成的图书馆系统,包含用户图书借阅、图书管理员、系统管理员界面,功能齐全。 开发工具为eclipse,环境java8,必须tomcat9.0+,mysql为5.7(mysql8也行) 演示地址:http://library.mingyuefusu.top (谢谢手下留情) https://gitee.com/mingyuefusu/tushuguanlixitong/
15.Myworkflow一个文科博士生的资料管理阅读和笔记系统工作流从阅读材料的电子化管理开始,新的材料扫描成电子版后,进入我的个人图书馆管理系统进行 OCR 识别成文字版,进行分类保存。 近期需要读的材料从个人图书馆管理系统取出,暂存入借阅站(这一功能云盘就可以担当,我使用的是 Dropbox),方便在各个平台(ipad,电纸书,电脑)进行阅读。 https://sspai.com/post/64795
16.四川省中小学图书馆(室)管理系统使用手册.docx四川省中小学图书馆(室)管理系统使用手册.docx 27页内容提供方:zhangningclb 大小:2.54 MB 字数:约2.85千字 发布时间:2018-06-06发布于江西 浏览人气:1681 下载次数:仅上传者可见 收藏次数:0 需要金币:*** 金币 (10金币=人民币1元)四川省中小学图书馆(室)管理系统使用手册.docx 关闭预览 想https://max.book118.com/html/2018/0605/170928554.shtm
17.云管书,好用的纸质图书管理系统,职工书屋,幼儿园,中小学图书馆云管书是好用的纸质图书管理系统,广泛应用在党建书屋、职工书屋、幼儿园、中小学图书馆、绘本馆、农家书屋、社区书屋、书店、家庭书房、读书会等,包含图书自动识别、图书查询、在线预借、扫码借还书、图书书目导入导出等功能http://www.ibook.tech/
18.JAVA实战练习之图书管理系统实现流程java在还书时,读者首先将要还的书交给工作人员,工作人员根据图书信息找到相应的书卡和借阅证,并填好相应的还书信息。太过于繁琐了!所以,我们需求设计一个图书管理系统来方便学生的借书和图书馆管理书籍。 项目说明: 本系统功能分为读者信息管理模块、图书信息管理模块、图书借阅管理模块、基础信息维护模块和用户管理模块。https://www.jb51.net/article/225929.htm
19.图书借阅管理系统业务流程5篇在数字化时代,图书馆借阅管理系统已成为现代图书馆不可或缺的一部分。该系统不仅提高了图书借阅的效率,还为用户提供了便捷、快速的借阅体验。那么,图书借阅管理系统的业务流程是如何运作的呢?下面,我们将为您详 创建时间 2024-04-10 10:33:33 Word 文件格式 https://hsy.chanjet.com/wenku/wkc844936cfe5c.html
20.开源小程序:快捷管理个人图书馆的完美解决方案6.部署:将构建好的代码部署到你想要的平台上,例如微信开发者工具中进行调试,或者上传至其他小程序平台进行发布。 通过以上步骤,你将可以轻松地运行和使用 Taro Library 软件,以便管理和浏览个人图书馆。 总共整理CentOS,Ubuntu,Windows,MacOS,Debian,Fedora最流行的50个开源软件的安装手册。加入星球免费更新。https://cloud.tencent.com/developer/article/2333560