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

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

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

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

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

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

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

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

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

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

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

图书管理员用例描述:

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

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

最高层用例图中展开系统管理员进行系统维护的用例图如下图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.科学网—什么样的研究型大学图书馆是好的图书馆?中国常见的分类是研究型大学、研究教学型大学、教学研究型大学、教学型大学、应用型大学、高等专科学校等六大类,研究型大学在中国知识创新体系中有着关键性的作用,相应的高质量生源是其重要特征。众说周知,在我国,研究型大学图书馆在引领高校图书馆事业,其所作所为是其他高校图书馆学习与模仿的对象。https://blog.sciencenet.cn/home.php?mod=space&uid=213646&do=blog&id=1463801
2.中图分类号的确定方法与实际应用探讨读者文献图书馆bobo在中国的图书馆系统中,中图分类号(Chinese Library Classification Number, CLCL)是图书和其他文献的重要标识符。它不仅有助于图书馆有效地组织和管理书籍,还为读者提供了查找和检索信息的便利。本文将探讨中图分类号的确定方法,包括其基本原则、分类体系、具体操作步骤以及在实际应用中的注意事项。 https://www.163.com/dy/article/JJIF5B4E0512BOIV.html
3.教材系统腾讯云开发者社区?教材管理系统需求说明书? ?引言? 教材管理仓库在正常运营中面对大量教材书籍、教材信息以及订购信息,学生信息、发放书等信息。现有的人工记录方法既效率低又错误过多,大大影响了教材仓库的正常管理工作。因此需要对教材资源、学生信息、订购信息、发放书等进行管理,及时了解各个环节中信息的变更,有利用管理效率https://cloud.tencent.com/developer/article/2478896
4.需求分析报告(通用12篇)本需求分析报告的目的是规范化本软件的编写,旨在于提高软件开发过程中的能见度,便于对软件开发过程中的控制与管理,同时提出了本学校排课系统的软件开发过程,便于程序员与客户之间的交流、协作,并作为工作成果的原始依据,同时也表明了本软件的共性,以期能够获得更大范围的应用,同时它也是进行项目策划、概要设计和详细设https://www.ruiwen.com/word/xuqiufenxibaogao.html
5.图书管理系统部分管理人员将图书馆管理活动归纳为「针对书籍变动信息的管理」,忽视了人员组成、日常活动在管理工作中的占比,在这种情况下,图书管理工作需要面向多个层面展开,在对职工、管理活动进行干预的情况下,内部管理开支直线上升,管理活动变得更为复杂。建立图书管理信息系统,在帮助图书馆解决管理矛盾的同时,能够同步建立对向管理https://blog.csdn.net/qq_72750227/article/details/129339934
6.内容数据范文12篇(全文)为了规范视听新媒体内容管理系统的建设, 保证系统中编目数据能够有效适应内容检索、节目交换的需要, 迫切需要行业内有相对统一的、适合网络视听新媒体播出的元数据定义和规范。 1网络视听新媒体内容元数据 目前关于元数据的定义很多, 通常认为元数据是关于数据的数据 (Data about Data) 。元数据可以为内容的管理、传输https://www.99xueshu.com/w/ikeye1u5qrlv.html
7.图书馆管理数据架构图图书馆管理系统框架图泛化定义了一般元素和特殊元素之间的分类关系,类之间的这种泛化关系也就是继承关系。泛化关系是“a-kind-of”关系,定义一般元素和特殊元素之间的分类关系。 下图为图书馆管理系统的类图: 顺序图: UML顺序图一般用于:确认和丰富一个使用情境的逻辑。一个使用情境就是系统潜在的使用方式的描述,也就是它的名称所要描述https://blog.51cto.com/u_16099280/7785083
8.图书管理系统需求分析规格说明书图书管理系统需求分析规格说明书 所在学院:信息工程学院 所在班级:数据191 小组成员:徐嘉迪刘军 张权 完成时间:2021年10月25日 第1章 引言 1.1编写目的 随着https://www.jianshu.com/p/10042392e764
9.绿盟考试252、在安全评估过程中,采取()手段,可以模拟黑客入侵过程,检测系统安全脆弱性。() A渗透性测试B漏洞扫描C应急响应 52、下列哪几项属于我司安全技术服务() A应急响应B源代码测试C渗透测试D漏洞扫描 53.安全方针不于哪类文档() A安全管理人员B安全管理机构C安全建设管理D安全管理制度 54、以下哪一项是组织想要访问https://www.wjx.cn/xz/121405634.aspx?ivk_sa=1024320u
10.智慧树知到章节测试答案汇总智慧树知到创新创业基础心理降答案汇总8、以下5项中,哪项是网络营销的特点:(BCE) A、集合性 B、跨时空 C、经济性 D、特殊性 E、交互性 9、互联网营销按照交易对象,可分为 和G2C等:(ABD) A、B2B B、B2C C、G2G D、B2G E、G2E 10、以下5项中,哪项是网络营销的基本职能?(BCE) https://www.qqtn.com/article/article_319268_1.html
11.社会组织调研报告(通用14篇)三、存在问题 1、整体质量不高,作用发挥不到位。从质量上看,目前我市民间组织发展整体结构不够优化,尤其是经济社会发展需要的行业协会、农村经济类协会、公益慈善和基层服务性民间组织发展不足,自主创新和社会服务能力较弱;少数民间组织法制观念淡薄,内部管理制度不完善,自律机制不健全,社会公共责任缺失,社会公信力不高https://mip.oh100.com/a/202304/6554958.html
12.2018级老年服务与管理专业人才培养方案三、招生对象 普通高中毕业生/“三校生”(职高、中专、技校毕业生) 四、学制与学历 三年制专科 五、就业面向 初始岗位群:各级各类养老及涉老机构的养老护理员及基层管理者、社区服务与管理员、老年产品及老年产业营销员、涉老社会组织与机构工作人员、民政事务管理人员等。 https://jwc.wfhlxy.com/info/1023/1358.htm
13.图书馆管理系统er图图书馆管理系统er图 1、要了解ER图的核心要素:实体,属性,关系,实体就是一个个对象,比如猫,属性就是实体所有的某个属性,比如猫的性别,关系就是实体和实体之间或者实体内部之间的关系。 2、要了解ER图中怎么表示1中描述的三个核心要素:在ER图中矩形代表实体,椭圆代表属性,菱形代表关系,各个形状之间用线段连接。 https://www.zboao.com/cgal/9078.html
14.土地利用调查问卷(通用12篇)14.对于承包的土地,您采用下列哪种方式管理() A.自己耕种B.承包给别人C.把土地折成股份,获得分红 D.从别处承包更多土地E.其它 15.您家附近存在大量土地荒废的状况吗() A.有很多B.有,但不多C.没有 16.您是否了解什么是土地流转() A.是B.否 17.您家土地流转的主要对象是() A.本村村民B.村外人员C.https://www.360wenmi.com/f/fileq3iri01b.html
15.图书馆近年来,在国家政策引导和各级政府、组织持续努力下,我国创业生态系统日趋完善,大学生的创业率和创业成功率都有了较大幅度的提高,但是在大学生创业实践中,失败的仍然是大多数,创业失败是很多参与创业实践的学生不得不面对的一个问题。 如何对待创业失败?首先应该正确认识创业失败,将其作为自己前一阶段参与创业实践情况http://www.zdxy.cn/TSG/contents/185/1113.html
16.资产清查工作方案(精选12篇)物资设备管理处负责一般设备、教学设备归口类资产的核查。 后勤管理处负责土地房屋及建筑物、宿舍食堂等公共基建设施方面资产的核查。 图文信息中心负责图书软件归口类资产的核查。 财务处负责审核各类物品的购置价格,负责建立全院固定资产资金总账,并与物资设备管理处的固定资产台账保持一致。 https://m.unjs.com/fanwenku/240135.html
17.江苏自考常见问题解答自考如果查询不到任何内容,表示该主考学校在当年下半年或次年上半年不安排实践、论文的考核,具体情况可以直接跟主考学校电话联系。其中 00052 管理系统中的计算机应用课程及南京艺术学院的实践论文报考情况可查看该页面特殊课程说明文档。 32、实践环节考核如何报名?https://www.educity.cn/zikao/221279.html
18.2023年招聘的工作计划Ⅲ.通讯管理。规范手机公号使用情况,规范合理制定座机费用定额标准,严格按照集团规章制度,有效控制行政类成本。 Ⅳ.物资管理。规范目前物资领用时效,有效利用“里诺仓库管理系统”软件,完善出入库明确化,避免物资积压;按时完成盘点,保持帐物相符。 Ⅴ.食堂管理。进一步规范昆明公司食堂报餐管理制度,不断提升后勤服务质量https://www.yuwenmi.com/fanwen/jihua/4011803.html