1、图书管理系统课程设计软件工程课程设计1 图书管理系统可行性研究报告 11.1 引言 11.1.1 编写目的 11.1.2 项目背景 21.1.3 参考资料 21.2 可行性研究的前提 21.2.1 要求 21.2.2 目标 31.2.3 评价尺度 32 系统需求分析 32.1 系统的目的 32.2 系统的要求 32.3 系统的数据要求 32.4 数据字典 42.5 实体集及属性 43 系统概要设计 73.1 需求概述 73.1.1 目标 73.1.2 功能需求 73.1.3 性能需求 73.2 概要设计 83.2.1 系统功能模块 83.2.2 功能模块说明 84 系统详细设计 95 编码与测
2、试 136 心得与体会 161 图书管理系统可行性研究报告1.1 引言1.1.1 编写目的 可行性分析报告是为“图书管理系统”开发的可能性、可行性、必要性提供论据,为开发人员进行系统总体规划设计及具体实施开发工程提供必要的参考资料,在系统开发完成后期为系统的测试、验收提供帮助。1.1.2 项目背景 a所建议开发软件的名称:图书管理系统b项目的任务提出者:图书馆c开发者:xxxd用户:图书馆e实现软件的单位:信息科学与工程学院f项目与其他软件或其他系统的关系:图书馆了系统是一功能比较完善的数据管理软件,具有暑假操作方便高效迅速等优点。该软件采用功能强大的数据库软件开发工具SQL Server进行
3、开发,具有很好的可移植性,可在应用范围较广的Windows操作系统上使用。1.1.3 参考资料(1)软件工程导论 张海藩 清华大学出版社(2)实用软件工程 郑人杰、殷人昆、陶永雷著 清华大学出版社1.2 可行性研究的前提1.2.1 要求a功能:图书管理系统最主要功能是图书信息管理、读者信息管理、图书借阅管理、用户管理等功能。b性能:图书管理系统的使用者是图书管理员和读者。对于图书管理员的管理工作需要方便图书入库等操作。对于读者一般有预定、借阅、返还等功能。c输出:(1)图书库存情况 (2)读者图书预定需求 (3)学生图书借阅情况d输入:(1)新输入库 (2)读者图书借阅 (3)用户数据添加e可
4、靠性和安全性需求:由于图书管理系统的图书量会非常大,所以在对这些图书导入和查询时要保证速度,在图书借阅过程中又要保证事务的完整性。对于整个系统,需要完整的权限控制,防止记录被修改,同时对数据定时备份,防止系统数据丢失。1.2.2 目标系统应达到以下目标:(1)充分了解用户需求及当前形式,能完成主业务处理(2)要有详细的设计说明书(3)每一模块的流程图要很清晰(4)系统能够正常的运行,能较好的完成预订的功能(5)系统要有完整的帮助文件,供操作员方便的操作1.2.3 评价尺度本系统进行评价时的主要尺度有:费用的多少,开发时间的长短以及使用的难易程度等。2 系统需求分析2.1 系统的目的当今计算机及
5、网络技术飞速发展,社会也正快速向信息化社会前进,信息系统的作用也越来越大。图书管理信息化是信息发展的必然趋势,建立一套有效的图书信息管理系统,可以减少工作量,将管理工作科学化、规范化、系统化、自动化,提高图书管理的工作质量和工作效率,最大限度地为老师和学生提供方便和提供管理效率。2.2 系统的要求(1)统一处理的准确性和及时性(2)系统的开放性和可扩充性(3)系统的易用性和以维护性2.3 系统的数据要求(1)数据录入和处理的准确性和实时性。(2)数据的一致性与完整性。(3)数据的共享与独立性。(4)读者登陆系统的用户名即是读者的借书证号,初始密码亦为该读者的借书证号,可以修改。2.4 数据字典
6、数据项名数据类型约束图书号intPrimary key图书种类char书名char作者char借书证号intPrimary key姓名char年级int借出日期date归还日期date2.5 实体集及属性(1)图书:图书号、图书种类、书名、作者 图书的E-R图(2)读者:借书证号、姓名、年级 读者的E-R图(3)借书:图书号、借书证号、借出日期、归还日期 借书的E-R图由于本系统较简单,故其总体E-R图如下:3 系统概要设计3.1 需求概述3.1.1 目标系统面向中小型图书馆,用户群体为图书管理员和读者。(1)能够输入图书的综合情况和新书入库、现有图书信息修改及删除(2)能够实现对读者信息的查
7、询和编辑管理(3)能够进行罚款功能(4)能够进行借阅历史的查询功能3.1.2 功能需求(1)密码设置:不同的用户有不同的权限,管理员和读者有自己的密码,登陆系统后分别进入自己权限内的操作,可以防止越权操作。(2)资料维护:为了存放图书、读者的全部数据,本系统将每一本图书和每位读者的信息进行管理。系统维护包括对各种记录的修改、删除、添加等操作。(3)系统查询:可以按图书编号、借阅证编号等相关信息进行查询。(4)系统管理:进行读者管理、数据备份等。(5)报表统计:包括统计图书信息、读者信息、借阅信息和罚款信息等。3.1.3 性能需求(1)系统安全、可靠(2)功能齐全(3)操作方便、界面友好(4)易
8、于维护和扩充3.2 概要设计3.2.1 系统功能模块3.2.2 功能模块说明(1)储存模块:在主菜单按1进入储存模块,在提示中选1进入储存图书模块,按2进入储存借书证模块。按提示以此输入储存。(2)删除模块:在主菜单按2进入删除模块,按提示进入删除图书或删除借书证模块,输入要删除的编号对其进行删除。(3)修改模块:在主菜单按3进入修改模块,在提示中进入修改图书或修改借书证模块。在修改模块按对应的数字键并照提示输入修改后的数据按回车修改完成。(4)借书模块:进入借书模块后按提示以此输入要借的图书序号和借书证号完成借阅。(5)还书模块:进入还书模块后按提示以此输入要还的图书序号和借书证号完成还书。
9、(6)查询模块:进入查询模块后按照提示进入图书查询或借书证查询模块。在图书查询中选择你要查询的种类。在借书证查询中输入借书证编号便会显示此借书证当前的信息。(7)统计模块:进入统计模块选择统计的方式系统便会显示出您需要的结果。(8)排序模块:进入排序模块选择排序的方式便会得到输出结果。(9)添加模块:进入添加模块后,根据要求添加您想添加的信息。4 系统详细设计以查询模块为例:void choice_message() int flag,k,i2,i; do int b; printf(n查询图书请按1 查询借书证请按2: n); scanf(%d,&b); if(b=1) int choice
10、; sum=read_message(); /读取信息 printf(n*查询图书信息*n); printf( 1.按图书种类查询 n); printf( 2.按图书名称查询n); printf( 3.按作者查询nn); printf( 0.返回主菜单nn); printf( 请选择(0-3):); scanf( %d,&choice); switch(choice) case 1: inquire_kind();break; case 2: inquire_bname();break; case 3: inquire_writer();break; case 0: break; else s
11、um2=read_message2(); printf(nn请输入您要查询的卡号nn); scanf( %d,&k); for(i2=0;i2sum2;i2+) if(cardi2.lnum=k) printf(借书证编号-学生姓名-学生可借书的数量-学生年级n); printf(%d%14s%6d%14d,cardi2.lnum,cardi2.lname,cardi2.lout,cardi2.grade; printf(nn是否还继续查询?是请按1 否请按0: nn); scanf( %d,&flag); while(flag=1);进入主界面后出现图书管理系统的主菜单:选择查询图书功能后出
12、现查询图书请按1 查询借书证请按2:根据你的需要选择,输入1或者2。如果选择了1则进入查询图书功能,此功能分四块:1.按图书种类查询 2.按图书名称查询 3 .按作者查询 0.返回主菜单请从03中选择你所需要的功能进行操作,若选择1则调用按书种类查询函数若选择2则调用按书名查询函数若选择3则调用按作者查询函数若选择0则返回主菜单重新进行选择。如果选择了2则进入对借书证的查询输入您要查询的卡号,如果您输入的卡号与借书证的编号相符,则输出借书证的编号、学生姓名、学生可借书的数量、学生年级这些信息。完成操作后,系统提示您是否还要继续查询?是请按1 否请按0 如果选择1则继续上述操作,否则返回主菜单,
13、重新选择您所需要的操作。5 编码与测试void input_message() int a,b,i=0,j=0; do printf(图书请按1 借书卡请按2: ); scanf(%d,&a); if(a=1) sum=read_message(); printf(n请输入图书相关信息:n); printf(n书号 图书种类 书名 作者 现有量 总有量n); scanf(%d %s %s %s %d %d,&booki.num,&booki.kind,&booki.bname,&booki.writer,&booki.havenum,&booki.allnum) i+; /转换到数组的下一个
14、save_message(sum); else sum2=read_message2(); printf(n请输入图书证相关信息:n); printf(n借书证号 借书人姓名 可借书量 年级n );scanf(%d%s%d%d,&cardj.lnum,&cardj.lname,&cardj.lout,&cardj.grade); j+; save_message2(sum2); printf(n是否还要继续输入? 是按1 否按 0 : );/*是否需要继续输入*/ scanf(%d,&b); while(b=1); printf( -%d 种书你已经输入 !-n,i); /*显示已输到的图书数
15、*/ printf( -%d 个学生你已经输入!-n,j); /*显示已输到的学生证件数数*/ sum=j; printf(n press anykey back !);执行结果如下图: 6 心得与体会通过本次课程设计,我更深入的了解了软件工程设计的基本步骤。首先要进行可行性研究分析,再写出需求写出它的需求分析,然后进行概要设计与详细设计,完成这些任务后进入编码与测试阶段。此次课程设计增进了我们对软件工程应用的理解。完成这项课程设计是一个繁杂而且繁重的任务,这就需要我们认真细致的工作,完成自己的任务。在做课程设计的过程中,通过不断发现问题并解决问题来提升我处理难题的灵活性和承担压力的忍耐性,为我今后的学习和生活都走着积极的促进作用。
copyright@ 2008-2023 冰点文库 网站版权所有
经营许可证编号:鄂ICP备19020893号-2