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

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

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

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

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

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

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

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

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

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

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

图书管理员用例描述:

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

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

最高层用例图中展开系统管理员进行系统维护的用例图如下图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://lib.svict.com/
2.图书馆我的图书馆文献荐购新书推荐随书光盘座位预约系统空间预约系统移动图书馆论文查引教材管理阅读推广外文期刊最新动态+ more + 图书馆成功举办“典耀中华 听见书香2024-11-18 喜报:我校图书馆位列中国版权所有 常州信息职业技术学院图书馆 Copyright 2021 . All rights reservedhttps://lib.ccit.js.cn/
3.图书馆更多>>本馆新闻 2024-12-09关于试用笔杆论文写作辅导平台的通知 2024-11-11赤胆忠心写忠诚 满腔热血育栋梁 2024-10-29优秀传统文化视频资源库开通试用通知2024-04-29胡昊校长带队到图书馆调研指导工作 更多>>服务指南 图书期刊检索 阅读排行榜 我的图书馆 新书通报 档案管理 光辉校史 https://www.yrcti.edu.cn/tsg/
4.我的数字图书馆国家图书馆第二十届文津图书评选推广活动正式启动2024-12-11 国家图书馆关于执行冬季开放时间的通告2024-10-28 国家图书馆纪念袁同礼先生诞辰130周年征文通知2024-09-20 关于恢复24小时自助还书服务的通告2024-09-11 国家图书馆总馆南区南楼门开放通告2024-09-04 http://read.nlc.cn/news/getList
5.《智慧图书馆技术应用动态》2024年第12期《信息与管理研究》改版及征稿启事 点击标题直接阅读/扫码浏览整期动态 动态简介 《智慧图书馆技术应用动态》由智慧图书馆技术应用联盟(筹)主办,本刊物旨在传播和交流智慧图书馆理念、技术和应用,发布智慧图书馆项目动态与进展,展示国内外智慧图书馆实践案例,与同仁https://mp.weixin.qq.com/s?__biz=MzIyOTExNzgwMA==&mid=2649474087&idx=1&sn=48038820a39d6db6e23ce1ba2e5aab95&chksm=f11c22edc27c968525faa445c4c830615a146c2af786d5d32583a2a45d572d125f6f7e68bb7c&scene=27
6.网络服务器是网络上一种为客户机提供各种服务的高性能的计算机,它能够提供网络管理、运行应用程序、处理各网络工作站成员的信息请示等等服务。 享受服务器所提供的服务的那些计算机,我们称之为工作站。 2、网络软件: 2.1 网络操作系统。常用的网络操作系统有Windows NT、Windows 2000、Novell、Netware、Unix和Linux等 http://www.360doc.com/content/11/0918/14/7506688_149225097.shtml
7.图书管理系统动态设计状态图20230206.ppt前置条件:图书馆工作人员点击“图书归还”基本路径:输入图书登录号点击“查询”显示该书借阅信息(书名,ISBN,借阅时间,应归还时间)点击“归还”提示“归还成功”备选流程:点击重新填写,实现图书登录号重新填写在已有的状态图上加入新的状态和转换阅读“注销”用例描述用例名称:注销用例描述:图书管理员离开系统参与者:图书https://www.renrendoc.com/paper/240687165.html
8.(附源码)springboot大学校园网上图书馆信息管理系统小程序毕业设计091在图书馆的要求下,开发一款整体式结构的大学校园网上图书馆信息管理小程序,将复杂的系统进行拆分,能够实现对需求的变化快速响应、系统稳定性的保障,能保证平台可持续、规模化发展的要求。 本系统的前端界面涉及的技术主要有Java,HTML,jQuery等等,通过这些技术可以实现前端页面的美观和动态效果使之符合广大群众的审美观,https://blog.csdn.net/Weixin_CXSJ881/article/details/128784672
9.高中信息技术课程标准信息技术科目的选修部分包括“选修1:算法与程序设计”“选修2:多媒体技术应用”“选修3:网络技术应用”“选修4:数据管理技术”和“选修5:人工智能初步”五个模块,每个模块2学分。选修部分强调在必修模块的基础上关注技术能力与人文素养的双重建构,是信息素养培养的继续,是支持个性发展的平台。模块内容设计既注重技术深https://www.fqkhzx.cn/index/article/view/id/94.html
10.大学图书情报与档案管理类(广州校区东校园)(包含专业:信息管理根据中山大学2023年招生计划,其图书情报与档案管理类(广州校区东校园)(包含专业:信息管理与信息系统、图书馆学、档案学)在广东的文科本科一批进行招生,招生人数为4,其招生计划中公布的具体情况如下: 小提示:下方表格可左右滑动浏览 中山大学由孙中山先生创办,有着一百多年办学传统。作为中国教育部直属高校,通过部省https://m.027art.com/daxue/dongtai/FU43Tp6360GL79.html