软件工程课程项目设计

1、系统设计
系统可分为5个子系统:书籍信息录入系统、读者信息录入系统、借阅情况录入系统、计算扣款金额系统、人员及图书信息查询系统

1)书籍信息录入系统:图书管理员录入书籍的书号、名称,修改录入,形成图书表。

2)读者信息录入系统:系统管理员录入读者的个人信息,修改录入,形成读者表。

3)借阅情况录入系统:图书管理员在读者借阅图书时录入信息,修改录入,形成借阅表。

4)计算扣款金额系统:图书管理员按读者借书时间、还书时间和借阅时长判断读者是否需要扣费,然后生成信息到历史借阅表中。

5)人员及图书信息查询系统:读者可以根据自己的读者号查询自己的个人信息;图书管理员可以根据自己的管理员号查询自己的个人信息;所有人都可以登录之后查询图书的信息。


2、对象设计
本系统中一共有三个参与者:

其中读者的主要用例包括查询读者账户:查询自己的个人信息以及查询自己的账户和借阅情况、借书、还书和查询图书信息。

图书管理员的主要用例是查看读者的账户,包括读者的个人信息以及读者的账户和借阅情况。在对书籍的信息进行管理的时候能够查看并添加添加图书的各种信息,修改图书的信息,以及删除图书的信息。在对借书记录和还书记录进行管理时图书管理员可以判断读者的借书情况是否超期,根据超期的情况决定是否需要罚款。

系统管理员有五个用例,管理借阅者信息,包括添加新生信息和删除毕业生信息。在对图书的信息进行管理的时候,也能够添加新书的信息和删除已损坏图书的信息。同时,系统管理员也可以查询现有所有图书的信息,来决定是否需要引进新书。系统管理员也可以管理借书记录和还书记录,主要是当图书管理员遇到问题时,系统管理员也可以实现借还书的功能。

图书管理员和系统管理员都继承于图书馆内部人员这个父类。

本系统一共设计了七个类:

读者类:
属性:(1)读者证号 (2)密码 (3)最大借书数量

方法:(1)借书 (2)还书 (3)查看用户账户 (4)查看借书数量 (5)登录系统
(6)查询图书信息 (7)交罚款

图书管理员类:
属性:(1)管理员帐号 (2)密码

方法:(1)查询图书信息(2)修改图书信息

书架类:
属性:(1)书架号 (2)类型(3)位置(4)存放数量

方法 :(1) 存放图书

图书类:
属性:(1)书号(2)书名(3)数量(4)价格(5)出版社
(6)馆藏册数(7)在馆册数

系统管理员类:
属性: 值班时间

方法:(1)查看用户个人信息(2)修改用户个人信息

后台系统类:
属性:(1)级别(2)配置

方法:(1)存储用户个人信息(2)存储图书信息(3)存储借阅信息

事物(Item)类:
属性: id

方法:(1)创建(2)销毁(3)更新(4)显示图书信息(5)显示借阅次数

图书管理员类和系统管理员类是工作人员类的子类,图书管理员在继承了其父类的属性和操作以外还自己添加了管理员帐号和密码这两个属性,添加了查询图书信息和修改图书信息这两个操作。系统管理员在继承了父类的基础以外还添加了值班时间这个属性,以及查看用户个人信息和修改用户个人信息这两个操作。

读者类和工作人员类是人员类的子类,读者在继承了其父类的属性和操作以外还自己添加了读者证号、密码和最大借书数量这几个属性,添加了借书、还书、查看用户账户、查看借书数量、登录系统、查询图书信息和交罚款这些操作。工作人员在继承了其父类的属性和操作以外还自己添加了工资和管理范围这两个属性,添加了登录账户、查询用户借阅信息、管理借书记录、管理还书记录、查看用户账户这些操作。

人员类是读者类和工作人员类的父类,它包含了所有人都有的三个属性:姓名、性别和年龄。读者类和工作人员类继承于人员类。

图书管理员能够为读者提供服务,因此,二者之间应该是服务与被服务的关系。另外,图书管理员能够管理书架和图书,而且书架与图书之间是存放与被存放的关系,所有的图书都被存放于图书馆的书架中。最后,图书管理员还能够查看事物类,事物类有点类似于超市中在购物后产生的小票,当读者在完成整个借阅的操作之后,后台系统会自动生成一个事物。

系统管理员可负责通过从后台系统中的添加、修改或者删除来管理图书,而不是像图书管理员一样去管理实体的图书。系统管理员可以管理后台系统,控制后台系统中所存储的信息以及当后台系统在发生一些故障时,系统管理员能够提供及时的维修。

3、动态模型设计

借书过程的时序图:

上图表示了读者在进行借阅操作时的一系列变化,读者在进行借书操作之前,首先需要输入自己的信息包括帐号和密码,显示器将这些信息发送给数据库,在数据库中将读者的帐号和密码进行比对,进行身份验证,并将验证的结果返回给读者。如果身份验证成功则用户登录成功,反之读者登录失败。

读者可以向图书管理员发送借阅请求,图书管理员在收到消息后可以向后台系统输入借阅信息,后台系统查看对应图书的馆藏册数,并根据馆藏信息,返回该图书是否可借阅。若可借阅,则图书管理员可在此时修改后台系统的借阅信息,将需要借阅图书的读者信息添加到后台数据库的借阅表中,并且后台系统自动计算当前对应的借阅时间。

此时,后台系统调用其事物类功能,当图书管理员修改完借阅表之后,后台系统生成一张纸质书单,即类似于超市购物时的小票,图书管理员得到小票确认无误后将纸质小票返回给借阅者,借阅者可以得到实体的图书,整个借阅过程结束。

还书过程的时序图:

用户在还书的时候也需要登录,在登录的时候,首先需要输入自己的信息包括帐号和密码,显示器讲这些信息发送给数据库,在数据库中将用户的帐号和密码进行比对,进行身份验证,并将验证的结果返回给用户。如果身份验证成功则用户登录成功,反之用户登录失败。

借阅者在登录成功之后,可以向图书管理员发送还书请求,图书管理员在接收到还书请求之后,需要进入后台系统查看该借阅者是否超期借阅,后台系统返回超期的信息,若借阅者还书的时间超过了应还的时间,后台系统则自动生成一张扣款账单,由图书管理员返回给借阅者。

之后借阅者需要支付扣款的金额,支付完毕后,图书管理员需要修改借阅信息,即进入后台数据库的借阅表删除这条借阅信息,后台系统自动将删除的借阅信息添加到后台数据库的历史借阅表中。另外,后台系统还需要修改图书的馆藏册数,将所还图书的馆藏册数加一,并返回馆藏信息。

最后,借阅者可以归还实体的图书,图书管理员将会请求生成一张还书书单,后台系统启用其事物类功能生成一张还书书单并返回给读者,整个还书操作结束。

进行借书操作时的活动图:

读者在进行借书操作时,可以向图书管理员发送借阅请求,图书管理员在收到消息后可以向后台系统输入借阅信息,并查看对应图书的馆藏信息,并根据馆藏信息,产生一个分支判断。若馆藏册数为0,则不可借阅,返回错误信息并拒绝读者的借阅,之后结束整个借书操作。若馆藏册数不为0,则可借阅,后台系统返回可借阅信息。

图书管理员在后台系统返回可借阅信息之后修改后台系统的借阅信息,将需要借阅图书的读者信息添加到后台数据库的借阅表中,并且后台系统自动计算当前对应的借阅时间,与此同时,后台系统调用其Item功能,当图书管理员修改完借阅信息之后,后台系统生成一张纸质书单。

完成这两个操作之后,借阅者可以得到实体的图书,整个借阅过程结束。

读者从未登记到还书成功时的状态图:

读者在进行借书与还书操作之前首先需要通过注册来验证身份,学校中的图书馆借阅者以学生为主,学生在登记学生信息之后一直处于未注册的状态。通过图书馆管理员对其进行注册操作,读者的状态才由未注册转向已注册。另外,读者在已注册的状态下也可以修改个人信息,此时借阅者的状态不变。

注册完之后的读者在身份验证成功之后就可以进入到系统,进行图书信息和自己个人信息的查询。已注册的读者此时处于可借阅的状态,若读者借书数量小于等于规定数量时,在办理借阅手续之后就可以对图书馆中的图书进行借阅。在取完实体书之后,借阅者便进入一个未还书的状态。

若借阅者处于未还书状态超过规定时间,则借阅者进入欠款状态,若借阅者处于未还书状态不超过2个月,则借阅者依旧处于未欠款状态。当借阅者在欠款状态时,需要进行还款,还款之后返回到未欠款状态。通过还书,借阅者进入已还书的状态。

此时可选择继续借阅或者是直接结束,若是通过继续借阅返回,则需要进行判断,当读者借书数量小于等于规定数量时,才可以继续借阅,若是读者借书数量大于规定数量本,则直接结束,无法再借。

由此,整个图书借阅系统设计完成。

在本次课程项目设计中,让我更加了解到了流程关于程序设计的流程情况,同时也让我更好的复习了面向对象分析的内容。对于动态模型,也从本次项目设计当中有了更加深入的了解,能够更好的对其进行掌握。
在通过参考书籍流程情况,我们简单的设计的这个图书管理系统,虽然我们的课程设计还有许多不足的地方,我们在后续的实现中会更加注重功能和系统的实现,更好的完善整个系统。

软件工程课程项目设计 图书管理系统相关推荐

  1. 软件工程案例学习-图书管理系统

    软件工程案例学习-图书管理系统 文档编号:LMS_1                                                                           ...

  2. oracle课程设计图书销售系统,oracle课程设计图书管理系统

    oracle课程设计图书管理系统 数据库课程设计 设计名称:图书管理系统 组员:尚靖伟(122068) 张红凯(122072) 班级:计 G121 班信息工程学院计算机系 2013 年 6 月 27 ...

  3. c语言课程设计图书管理系统

    数据结构c语言课程设计 图书管理系统 我做的是百度文库的第28题,目前没有报错,正常运行,但是还有一点小bug.代码很多地方写的不是很好,请多多包涵. 账号1,密码1,为管理员账号:其他账号2,3,4 ...

  4. C#课程设计-图书管理系统

    C#课程设计-图书管理系统 前言 一.课设任务是什么? 二.使用工具及软件环境 三.系统功能介绍及部分代码展示 3.1 登陆界面及主要代码 3.2 图书管理 3.3 修改书籍页面视图及主要代码 四.使 ...

  5. RFID课程设计-图书管理系统用户端设计

    RFID课程设计-图书管理系统用户端设计课程设计题目课程设计任务内容题目设计基本原理NFC开发概述标签调度系统如何将 NFC 标签映射到 MIME 类型和 URI如何将 NFC 标签分发到应用在 An ...

  6. 软件工程课程设计“作业管理系统”的总结和期望

    目录 一.软件工程课程设计"作业管理系统"的总结和期望 该系统研究的意义 功能概述 web网上作业管理系统的实现 注册与登录功能的实现 作业提交功能实现 教师批改作业的功能实现 总 ...

  7. Python课程设计-图书管理系统

    Python课程设计-图书管理系统 摘要 第一章 绪论 1.1 开发环境及技术 1.2 系统实现功能描述 第二章 功能详细设计与实现 2.1 系统框架各层次实现 2.1.1 可视页面设计 2 数据库设 ...

  8. C语言课程设计-图书管理系统

    实训项目名称:图书管理系统的设计与实现 1.实训目的 开发一个小型的图书管理应用软件,使用该软件可以实现图书信息的登记.浏览.借书.还书.删除和更新等操作.通过该系统的实现可以了解C++连接数据库的原 ...

  9. C语言课程设计—图书管理系统

    这是本人大一第二学期初C语言课程设计的作品,嘿嘿,本来以为已经找不到原稿了,今天无意中居然在QQ网络硬盘中找到了当初的teta版,公布于此,以作纪念. C源码例如以下: #include<std ...

  10. 图书管理系统C语言程序设计课程,vs c语言图书管理平台课程设计_图书管理平台c语言程序设计_c语言课程设计 图书管理系统...

    #include #include #include #include //#include #define MAX 100 struct Student { int num;/*书代号*/ char ...

最新文章

  1. TensorFlow中的对象检测教程:实时对象检测
  2. 636 起投资事件,吸金 574 亿
  3. 修改生产订单的BAPI!
  4. JavaFX弹出窗口和消息对话框代码示例
  5. java有没有回调函数_Java中的回调函数 - wangjianme的个人空间 - OSCHINA - 中文开源技术交流社区...
  6. c# 运算符 ? ??
  7. 处理对象的多种状态及其相互转换——状态模式
  8. 淘宝评价网----类反淘宝联盟上线
  9. 没有bug队——加贝——Python 49,50
  10. 自制割接(平滑过滤)实验大全
  11. 最长路径算法 c语言_「算法」求二叉树的最长同值路径
  12. CCNA基础(一):交换机和路由器基础配置
  13. python 调用sqldr_SQLLDR用武之地
  14. 1.thrift概述
  15. 【地理信息系统GIS】教案(七章全)第五章:空间数据查询与空间分析
  16. JAVA版opencv透明,opencv 替换纯色背景为透明背景
  17. 数值计算·第八集:二阶锥规划(CVXPY版)
  18. 浙大计算机学院郭庆,团队介绍
  19. linux环境下ps命令行,Linux系统ps命令详解:查看正在运行的进程
  20. TiDB 在 2021 易车 818 汽车狂欢节的应用

热门文章

  1. 在r中弄方差分析表_使用R语言进行单因素方差分析
  2. 概率论与数理统计期末复习(仅供参考)
  3. ping网络诊断常见故障
  4. 导出java applet_Java Applet基础——输出HelloWorld
  5. Oracle数据库恢复删除数据的方法
  6. 用友U8来料检验单参照不到报检单
  7. 用c语言编写屏幕保护程序,用C语言编写屏幕保护程序.doc
  8. android listview删除刷新,如何刷新Android ListView?
  9. vue引入iconfont阿里巴巴矢量图标库官网,自定义图标
  10. 巧用DOS命令修复U盘文件错误