C课程设计图书管理系0.docx
- 文档编号:24029720
- 上传时间:2023-05-23
- 格式:DOCX
- 页数:111
- 大小:645.42KB
C课程设计图书管理系0.docx
《C课程设计图书管理系0.docx》由会员分享,可在线阅读,更多相关《C课程设计图书管理系0.docx(111页珍藏版)》请在冰豆网上搜索。
C课程设计图书管理系0
课程设计报告
课程名称:
面向对象程序设计C++
设计题目:
图书管理系统
专业:
计算机科学与技术
姓名:
学号:
指导教师:
李晓虹
2015年1月10日
一、系统需求分析
1.1系统介绍
图书馆管理系统对加强图书馆管理有着极其重要的作用。
随着图书的日益增多,传统的手工图书馆管理不仅工作量大,而且容易出现问题。
图书馆管理设计的内容非常复杂而且繁多,比如拥有图书信息录入管理、读者信息管理管理、图书借阅和归还管理,图书的查询和修改等。
经过对我校详细调查,并多次与负责图书管理的老师进行研讨后,加深了对现行图书管理业务的深刻了解,与此同时,将整个图书管理的业务流程抽象描述如下:
v新的图书购进后,分门别类地进行归并并汇总,加以编号。
v新书编号后,上到书架以备学生借阅。
v如某学生需要借阅图书,则在其本人的借阅登记表上进行登记,记录相关借阅信息与借阅日期,同时相应图书应减少所借出的数目,尽管该书只剩下零本,也能查询到该书的信息。
v学生借阅图书后,应及时归还图书,并在本人的借阅登记表上注明还书日期和时间。
根据以上调查分析,可以给出其现行业务流程图如图所
1.2系统面向的用户群体
本图书管理系统面向的用户群体为本校的师生全体。
系统能帮助图书馆管理工作者进行大量业务处理工作用计算机进行简单操作以实现全面现代化管理。
且该系统对用户来说操作简单,并且容易学习和掌握。
1.3系统的功能性需求
1.3.1系统功能需求分析
图书馆管理系统对加强图书馆管理有着极其重要的作用。
随着图书的日益增多,传统的手工图书馆管理不仅工作量大,而且容易出现问题。
图书馆管理设计的内容非常复杂而且繁多,比如拥有图书信息录入管理、读者信息管理管理、图书借阅和归还管理,图书的查询和修改等。
由于系统主要是为方便管理定制开发的,因此针对图书馆管理的实际工作而言,经过了反复地论证,最终确定了图书馆管理系统的设计方案,图书馆管理系统的主要功能为:
1.图书管理:
包括图书类别管理和图书信息管理两部分。
其中,图书类别管理包括添加图书类别、修改图书类别等;图书信息管理包括图书信息的添加、图书信息的修改,图书信息的查询、图书信息的删除等。
2.读者管理:
包括读者类别管理和读者信息管理两部分。
其中,读者类别管理包括添加读者类别、修改读者类别等;读者信息管理包括添加读者信息、修改读者信息、读者信息、查询读者信息等。
3.借阅管理:
包括借书信息管理和还书信息管理两部分。
其中,借书信息管理包括借书信息的添加、借书信息的修改、借书信息的查询等;还书信息管理部分包括还书的添加、还书信息的修改、还书信息的查询等。
4. 系统管理:
包括修改系统用户密码、增加新用户以及退出系统等。
1.3.2系统的功能模块划分
(1)系统管理模块:
设置系统管理人员。
系统初始设置一个用户名和密码,操作人员可利用这个用户名和密码登录后,设置其他的管理员用户名。
(2)图书管理模块
a)图书信息编辑子模块
图书信息编辑子模块主要完成对图书馆内的所有图书信息进行图书分类,添加图书,修改图书信息,删除图书信息等。
当图书馆购进新书后需要对数据库中的图书表进行维护添加。
当图书馆内的现有图书数量等发生了变化时需要对现有图书数据库中的信息进行修改和删除一些记录。
对图书数据库进行维护的字段包括图书编号、书名、作者、类别、出版社、价格、总库存量、剩余量、入库日期等。
b)图书基本信息的查询子模块
图书馆中的书数以万计,想了解图书藏在哪里,馆内现在书的状态包括库存量和剩余量,图书的作者,出版社等信息是我们在借书时经常想知道的,传统的手工方法显然无法快速准确的获得这些信息,而通过计算机管理优势就十分明显,可以通过图书编号,书名,作者,出版社,类别等快速获得我们想了解的信息。
比如,通过图书编号就可以知道该书大致藏在哪里。
在不知道图书编号的时候可以通过书名或者作者,或者出版社,类别等快速查询出我们需要的图书相关的编号等信息。
系统的查询包括单项查询和多项查询,查询的字段包括:
图书编号、书名、作者、出版社、类别等。
(3)读者管理模块
a)读者信息编辑子模块
读者信息编辑子模块主要完成对在图书馆内的所有读者信息进行添加读者信息,修改读者信息,删除读者信息等。
当新的读者时需要对数据库中的读者表进行维护添加。
当现有读者基本信息比如联系方式等发生了变化时需要对现有读者数据库中的信息进行修改和删除一些记录。
对读者数据库进行维护的字段包括读者编号、性别、姓名、类别、身份证号、办证日期、证有效期、工作单位、E-mail、联系电话等。
b)读者基本信息的查询子模块
由于图书借出后有的图书经常超期,及时通知读者了解读者信息。
读者借书时是严格对读者和借书的图书作了登记的,所以当出现借出的书超期没有归还时可以通过超期的借书证号来进入本子模块就可以快速查询读者的联系方式等信息。
系统的查询包括单项查询和多项查询,查询的字段包括:
编号、姓名、类别等。
(4)图书借出信息模块
a)图书借出信息编辑子模块
图书被读者借出时系统都对图书编辑记录书的信息,便于对整个馆内的图书有一个详尽的了解和信息的备份以及以后的该书整个外借的情况。
记录借书的信息包括图书编号,借书证号,借出日期,应归还日期,借出状态。
其中除图书编号和借书证号外其它的信息不需管理员输入,计算机自动完成,借书日期记录当前日期,应归还的日期记录在当前日期情况下加上设定的最多外借时间比如30天后的日期。
当然该子模块也可以完成对这些信息的修改和删除,来达到可以对数据库信息进行有效性的维护。
比如输入的借书证号粗心输入错误就可以来通过该模块来修改该记录信息。
b)图书借出信息查询模块
由于图书借出后有的图书经常超期以及需要了解图书借出的其它信息。
所以就需要对图书的借书信息进行查询,系统的查询包括单项查询和多项查询,查询的字段包括:
读者编号、读者姓名、图书编号、图书类别等。
(5)图书归还管理信息模块:
图书归还时,管理员需要了解书是否出现借书时间超期。
想了解这些信息首先需要对图书借出数据库进行查找定位图书编号的记录来获得图书的相关借书信息。
获得这些信息后,就可以将信息添加到图书归还管理数据库表中。
当出现超期图书管理员还需根据规定收起对学生的罚金。
添加的信息包括:
归还的图书编号、读者的编号、罚款金额、罚款日期、管理员姓名等。
2、总体设计
硬件环境:
个人PC
软件环境:
1)WindowsXP或Windows7及以上的操作系统;
2)首先本系统采用的是C/S开发模式。
因此,MicrosoftVisualC++6.0,这是本系统所采用的编译器,是一款很实用的C++编译软件,图书馆管理系统数据库采用的是SQLServer2008数据库,这是一款微软提供的功能比较全的数据库,visualc++连接SQLServer2008数据库之后便可以实现数据的交互。
C++开发方式为c++中MFC连接SQLServer2008方式,所以对用户的友好度那是相当的高。
三、详细设计
3.1用户界面需求设计
图书馆管理系统提供简单、层次关系明了、清晰的操作界面,使用户一目了然。
尽可能的为用户的录入、查询等功能操作提供方便。
快捷按钮的创建也是非常需要的,以方便用户操作。
该系统的界面有:
(1)用户登陆界面
(2)学生界面(3)注册介面(4)管理员界面(5)图书借阅界面等。
3.2数据需求设计
图书信息(book_info):
图书编号+书名+书号+图书类别+作者+出版社+出版时间+单价+入库时间+图书状态
读者信息(reader_info):
用户Id+姓名+性别+读者类别+院系班级+已借书目信息+借书数
已借书目信息(borrowed_book):
图书编号+书名+书号+图书类别+作者+出版社+出版时间+单价
3.3系统的性能需求设计
为了保证系统能够长期、安全、稳定、可靠、高效的运行,图书管理系统应该满足以下的性能需求:
1.系统处理的准确性和及时性
系统处理的准确性和及时性是系统的必要性能。
在系统设计和开发过程中,要充分考虑系统当前和将来可能承受的工作量,使系统的处理能力和响应时间能够满足对信息处理的需求。
2.系统的开放性和系统的可扩充性
图书馆管理系统在开发过程中,应该充分考虑以后的可扩充性。
例如用户查询的需求也会不断的更新和完善。
所有这些,都要求系统提供足够的手段进行功能的调整和扩充。
而要实现这一点,应通过系统的开放性来完成,既系统应是一个开放系统,只要符合一定的规范,可以简单的加入和减少系统的模块,配置系统的硬件。
通过软件的修补、替换完成系统的升级和更新换代。
3.系统的易用性和易维护性
图书馆管理系统是直接面对使用人员的,而使用人员往往对计算机并不时非常熟悉。
这就要求系统能够提供良好的用户接口,易用的人机交互界面。
要实现这一点,就要求系统应该尽量使用用户熟悉的术语和中文信息的界面;针对用户可能出现的使用问题,要提供足够的在线帮助,缩短用户对系统熟悉的过程。
4.系统的标准性
系统在设计开发使用过程中都要涉及到很多计算机硬件、软件。
所有这些都要符合主流国际、国家和行业标准。
5.系统的先进性
目前计算系统的技术发展相当快,做为图书馆管理系统工程,在系统的生命周期尽量做到系统的先进,充分完成企业信息处理的要求而不至于落后。
这一方面通过系统的开放性和可扩充性,不断改善系统的功能完成。
另一方面,在系统设计和开发的过程中,应在考虑成本的基础上尽量采用当前主流并先进且有良好发展前途的产品。
6.系统的响应速度
图书馆管理系统系统在日常处理中的响应速度为秒级,达到实时要求,以及时反馈信息。
在进行统计分析时,根据所需数据量的不同而从秒级到分钟级,原则是保证操作人员不会因为速度问题而影响工作效率。
3.4安全保密要求设计
用户进入自己系统要进行注册和登录,并有用户名和密码。
对用
户的个人信息进行保护,其中用户可以自行修改自己的密码等。
用户只能自己修改密码或者其他信息,其他人则不能修改。
安全性要求:
系统应设置访问用户的标识以鉴别是否是合法用户,并要求合法用户设置其密码,保证用户身份不被盗用;系统应对不同的数据设置不同的访问级别,限制访问用户可查询和处理数据的类别和内容;系统应对不同用户设置不同的权限,区分不同的用户,如区分普通用户(学生),管理员。
完整性要求:
各种信息记录的完整性,信息记录内容不能为空;各种数据间相互的联系的正确性;相同的数据在不同记录中的一致性。
3.5资源分析设计
本系统的开发是学生的课程设计作业,所用到的资源较为简单,可以再自己的个人电脑上完成开发,用到的开发软件是VisualC++6.0,用到的数据库是SQLSserver2008,基于这些资源本系统的开发可以顺利完成。
3.6结构化分析与设计
3.6.1.结构化分析方法
结构化方法总的指导思想是自顶向下,逐步求精,其基本原则是抽象与分解。
结构化方法是分析,设计到实现都使用结构化思想的软件开发方法,实际上由三部分组成:
结构化分析,结构化设计和结构化程序设计。
任何程序都由程序结构,选择结构和循环结构三种基本结构组成。
结构化方法具有以下特点:
(1)开发方法使用最早,使用时间最长。
(2)应用最广泛,特别适用于自动控制及程序控制等数据处理方面。
(3)相应的支持工具多,发展较为成熟,快速,自然和方便。
结构化分析步骤:
(1)构建原系统物理模型。
(2)抽象原系统逻辑模型。
(3)建立新系统逻辑模型。
(4)进一步补充和优化。
v优缺点:
优点是简单实用成熟,适合于瀑布模型,易于开发者掌握,成功率较高,仅次于面向对象的方法。
缺点是不太适应规模大的复杂项目,难以解决软件重用问题,较难适应需求变化,难以彻底解决维护问题。
3.6.2相关的图的设计
3.3数据字典
数据字典是关于数据库中数据的描述,即元数据,而不是数据本身。
数据本身将存放在物理数据库中,由数据库管理系统管理。
数据字典有助于这些数据的进一步管理和控制,为设计人员和数据库管理员在数据库设计、实现和运行阶段控制有关数据提供依据。
数据项名
图书库
别名
Book
描述
记录所有图书的基本信息
定义
图书信息=图书编号+图书名称+ISBN号+类别+作者+出版社
+出版时间+价格+图书总数+库存量+借出量+入库时间
输入数据
图书编号、图书名称
输出数据
图书信息
名称
借书登记表
别名
Borrow
描述
记录所有借出图书的借阅情况
定义
借书信息=读者编号+读者类别+图书编号+图书类别+图书名称+作者
+出版社+借出日期+应还日期
输入数据
读者编号、图书编号
输出数据
借书信息
名称
归还图书登记表
别名
Return
描述
记录所有已归还图书的归还情况
定义
归还信息=读者编号+读者类别+图书编号+图书类别+图书名称+作者+出版社+借出日期+应还日期+实还日期+罚款
输入数据
读者编号、图书编号
输出数据
归还信息
名称
管理员信息表
别名
Administrator
描述
记录管理员信息
定义
管理员信息=管理员ID+管理员名称+管理员密码
输入数据
管理员ID
输出数据
管理员信息
名称
读者信息表
别名
Reader
描述
记录所有读者的基本情况
定义
读者信息=读者编号+姓名+性别+类别+联系方式
输入数据
读者编号
输出数据
读者信息
3.4结构图设计
结构化设计方法中用结构图(structurechart)来描述软件系统的体系结构,指出一个软件系统由哪些模块组成,以及模块之间的调用关系。
本图书管理系统的模块结构图如下图所示:
3.5E-R图设计
1.读者E-R图
3.5.1图读者E-R图
2.图书库E-R图
3.5.2图书库E-R图
3.管理员E-R图
3.5.3管理员E-R图
4.总体E-R图
图3.5.4总体E-R图
4、测试
4.1测试范围与主要内容
测试范围
主要内容
概要说明
系统登录验证
验证用户身份以及确定用户权限,测试数据以及代码的正确性
功能性测试
添加图书信息功能测试
测试添加图书进入数据库的准确性
功能性测试
查询图书信息功能测试
测试用户对图书查找的准确性
功能性测试
修改图书信息功能测试
测试管理员对图书信息修改的准确性
功能性测试
添加读者信息功能测试
测试管理员添加读者入库的准确性
功能性测试
查询读者信息功能测试
测试管理员对读者查找的准确性
功能性测试
修改读者信息功能测试
测试管理员对读者信息修改的准确性
功能性测试
借阅图书功能测试
测试图书借阅登记的准确性
功能性测试
借阅信息查询功能测试
测试图书借阅信息查询的准确性
功能性测试
归还图书功能测试
测试图书归还登记的准确性
功能性测试
归还信息查询功能测试
测试图书归还信息查询的准确性
功能性测试
4.2测试用例
4.2.1用例一
项目
图书管理系统
功能模块名
管理员登录模块
功能特性
管理员身份验证
测试目的
验证是否输入合法的信息,允许合法登录,阻止非法登录
测试数据
用户名=admin密码=1身份=管理员
操作步骤
操作描述
数据
期望结果
实际结果
测试状态
1
输入用户名和密码,并选择登录的身份
输入用户名和密码用户名=admin密码=1选择管理员登录。
显示进入后的页面
同期望结果
正常
2
输入用户名和密码,并选择登录的身份
输入用户名和密码用户名=admin1密码=1选择管理员登录。
显示警告信息“用户名输入有误,请重新输入!
”
同期望结果
正常
3
输入用户名和密码,并选择登录的身份
输入用户名和密码用户名=admin1密码=123选择管理员登录。
显示警告信息“密码输入有误,请重新输入!
”
同期望结果
正常
4.2.2、用例二
项目
图书管理系统
功能模块名
用户查询图书信息模块
功能特性
用户可以查询所需图书的全部信息
测试目的
验证是否输入正确的图书信息,如果正确,则显示图书情况;如果不正确,则显示错误信息
测试数据
书名=B22304561书名=软件工程类别=计算机作者=钱乐秋出版社=清华大学出版社
操作步骤
操作描述
数据
期望结果
实际结果
测试状态
1
输入书号,按“查询”按钮
书号=B22304561
显示图书信息
同期望结果
正常
2
输入书号,按“查询”按钮
书号=Q22304561
查询结果为空
同期望结果
正常
3
输入书名,按“查询”按钮
书名=软件工程
显示图书信息
同期望结果
正常
4
输入书名,按“查询”按钮
书名=数学
查询结果为空
同期望结果
正常
5
输入类别,按“查询”按钮
类别=计算机
显示图书信息
同期望结果
正常
6
输入类别,按“查询”按钮
类别=外语
查询结果为空
同期望结果
正常
7
输入作者,按“查询”按钮
作者=钱乐秋
显示图书信息
同期望结果
正常
8
输入作者,按“查询”按钮
作者=张三
查询结果为空
同期望结果
正常
9
输入出版社,按“查询”按钮
出版社=清华大学出版社
显示图书信息
同期望结果
正常
10
输入出版社,按“查询”按钮
出版社=工业出版社机械
查询结果为空
同期望结果
正常
4.2.3、用例三
项目
图书管理系统
功能模块名
添加读者信息模块
功能特性
管理员可以添加读者信息
测试目的
验证是否输入正确的读者信息,如果正确,则添加读者信息;如果不正确,则显示错误信息
测试数据
读者编号=123姓名=a性别=女类别=学生联系方式=188********(已有信息)
读者编号=124姓名=b性别=男类别=老师联系方式=188********(未有信息)
操作步骤
操作描述
数据
期望结果
实际结果
测试状态
1
输入新的读者信息
读者编号=123姓名=a性别=女类别=学生联系方式-18883398888
显示警告信息“读者编号已存在,添加失败!
”
同期望结果
正常
2
输入新的读者信息
读者编号=124姓名=b性别=男类别=教职工联系方式-188********
显示信息“成功添加一条记录!
”
同期望结果
正常
4.2.3、用例四
项目
图书管理系统
功能模块名
修改读者信息模块
功能特性
管理员可以修改读者信息
测试目的
验证读者信息是否有效,如果有效,则更新读者信息;如果不正确,则显示错误信息
测试数据
读者编号=123姓名=a性别=女类别=学生联系方式=18883398888
操作步骤
操作描述
数据
期望结果
实际结果
测试状态
1
输入读者编号,按“查询”按钮
读者编号=124
显示警告信息“读者编号有误或不存在!
”
同期望结果
正常
2
输入读者编号,按“查询”按钮
读者编号=123
显示读者信息
同期望结果
正常
3
查询操作之后,修改姓名,按“确认”按钮
姓名=空
显示警告信息“请输入完整的读者信息!
”
同期望结果
正常
4
查询操作之后,修改姓名,按“确认”按钮
姓名=c
更新读者信息成功
同期望结果
正常
4.2.4、用例五
功能特性
读者借书
测试目的
验证是否输入有效的读者编号和图书编号,如果有效且图书余数不为0,则办理借书;如果无效,则显示错误信息
测试数据
读者编号=123图书编号=B21338745
操作步骤
操作描述
数据
期望结果
实际结果
测试状态
1
输入图书编号与读者编号,按“确定”按钮
图书编号=Q12345678读者编号=123
显示警告信息“图书编号有误或不存在!
”
同期望结果
正常
2
输入图书编号与读者编号,按“确定”按钮
图书编号=B21338745读者编号124
显示警告信息“读者编号有误或不存在!
”
同期望结果
正常
3
输入图书编号与读者编号,按“确定”按钮
图书编号=B21338745读者编号=123
显示信息正确
同期望结果
正常
4
输入图书编号与读者编号,按“确定”按钮
图书编号=Q12345678读者编号=124
显示警告信息“读者编号与图书编号有误或不存在!
”
同期望结果
正常
5
读者编号与图书编号都存在时按“借阅”按钮,若图书余数!
=0
图书编号=B21338745读者编号=123
显示借阅成功
同期望结果
正常
6
读者编号与图书编号都存在时按“借阅”按钮,若图书余量=0
图书编号=B21338745读者编号=123
显示警告信息“该图书已被借完”
同期望结果
正常
4.3、运行截图
1.登录界面
2首页
3.用户管理界面
4.图书类型设置界面
5.读者类型设置
6.借书界面
7.还书查询
8.新书登记
9.图书信息查询
5、主要源代码:
//BookInfoSet.cpp:
implementationfile
//
#include"stdafx.h"
#include"Library.h"
#include"BookInfoSet.h"
#ifdef_DEBUG
#definenewDEBUG_NEW
#undefTHIS_FILE
staticcharTHIS_FILE[]=__FILE__;
#endif
/////////////////////////////////////////////////////////////////////////////
//CBookInfoSet
IMPLEMENT_DYNAMIC(CBookInfoSet,CRecordset)
CBookInfoSet:
:
CBookInfoSet(CDatabase*pdb)
:
CRecordset(pdb)
{
//{{AFX_FIELD_INIT(CBookInfoSet)
m_code=_T("");
m_name=_T("");
m_type=_T("");
m_press=_T("");
m_writer=_T("");
m_price=_T("");
m_isBorrow=FALSE;
m_reader_code=_T("");
m_brief=_T("");
m_nFields=10;
//}}AFX_FIELD_INIT
m_nDefaultType=snapshot;
}
CStringCBookInfoSet:
:
GetDefaultConnect()
{
re
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 课程设计图书管理系0 课程设计 图书 管理