图书馆管理系统软件工程实验报告书.doc_第1页
图书馆管理系统软件工程实验报告书.doc_第2页
图书馆管理系统软件工程实验报告书.doc_第3页
图书馆管理系统软件工程实验报告书.doc_第4页
图书馆管理系统软件工程实验报告书.doc_第5页
已阅读5页,还剩26页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

电子信息学院实验报告书课程名:软件工程实验 题 目: 软件工程实验报告 实验类别 【综合】 班 级: BX0903 学 号: 31 姓 名: 乐传阳 评语:实验态度:认真( ) 一般( ) 差( )实验结果:正确( ) 部分正确( ) 错( )实验理论:掌握( ) 熟悉( ) 了解( )操作技能:强( ) 一般( ) 差( )实验报告:好( ) 一般( ) 差( )成绩: 指导教师: 曾宪文 批阅时间: 年 月 日1、实验目的与要求软件工程是一门实用性强的课程,实验部分主要配合课程的教学,围绕“图书馆管理系统”软件需求分析、设计、实现、测试、维护等过程进行。通过这些实验,使学生更深入的理解软件工程的基本原理、概念和技术方法,掌握软件可行性研究、需求分析、总体设计、详细设计、编码、测试和维护的基本技术和方法,了解软件项目管理、过程模型和团队模型。实验以团队方式组织,每个团队3-9人,每人的任务不同,相互合作完成一个项目。开发过程中设置里程碑,每个里程碑进行评审。人人参与评审并被评审。2、 实验步骤 实验步骤及相关文档 第一章可行性分析报告1 引言为了方便管理者和与读者、便于图书更好的管理。1.1 编写目的:从现在应用的技术方面和用户的操作方式方面研究图书馆管理管理系统的可行性和必要性。1. 2 项目背景:图书馆每天的图书进出量很大,需要一个管理系统用来统一管理,记录图书的进出信息。开发者:乐传阳用户:图书馆管理员及读者1.3 参考资料:软件工程技术及应用 数据结构 软件工程实践教程软件工程概论2 可行性研究的前提2.1 要求:功能:系统要做到能准确的记录不同图书的借出还入时间,判断是否超时,以及计算超时应该罚款的多少,还要记录各本书借出对应的学号。系统在稳定性方面也要做到遇到断电、系统崩溃等情况保存数据不能缺失。.性能:稳定快速,实时控制输入/输出:条形码英文和汉字或者扫描仪器输入,英文和汉字输出。安全与保密要求:不能轻易被破坏,不能让管理人员以外的人删改图书信息。2. 2 可行性研究方法:通过调查分析开发图书馆管理所具备的能力及实现的方法。确定总体结构,利用SQL Server数据库所具有的能力,以最简洁最容易的方法,使用VC+使其成为一个初级的系统软件。2. 3 决定可行性的主要因素:图书馆规模、设备状况、操作人员技术3 所建议系统技术可行性分析 3.1 对系统的简要描述 系统能做到能准确的记录不同图书的借出还入时间,判断是否超时,以及计算超时应该罚款的多少,还要记录各本书借出对应的学号。 (1).设备:采用系统后,系统的性能设备要求较高,建议系统使用了最先进的技术使设备也必须跟着升级。(2)软件采用了先进的数据库技术以及一系列高技术含量软件,使得原来系统上的一些软件无法继续使用,不过在新系统开发过程中将尽量考虑到,对现有软件的兼容性。3.2 技术可行性评价 就目前使用的开发技术来说软件的功能目标应该能够达到;利用现有的技术在规定的期限内开发工作基本能够完成。 4软件经济可行性分析4.1软件不需太多的硬件设施,所以在购买和安装硬件及有关设备上不会有太多费用支出。.4.2软件并不是太大的系统软件,系统开发费用很低,并没有一次性的巨大投资和日常研究的耗费。4.3软件安装和运行维护可能会有一定支出。4.4软件操作简单,界面合理,人员不需复杂的培训。5 社会因素分析该项目为独立开发,在技术上没有使用任何现有的软件与方法。所以在法律方面不会存在侵犯专利权、侵犯版权等问题,完全按照合同规定的责任履行。 软件对用户要求不高,不会导致用户不会用的情况。7.其他可供选择的方案 由于软件比较简单,所以没有提供其他的方案,只有一种开发方案。8 结论意见经过一系列的各个不同方面的可行性分析,分析员和用户及使用部门的负责人对需要解决的问题取得基本的一致看法,开发方案得到批准,可以进行开发。 第二章需求分析及需求规格说明书1 概述1 1用户简介本系统要面向图书馆的广大读者,以及图书馆的管理人员。广大读者借书具有时间和数量的无规律性,而图书馆管理人员要准确的记录图书的进出量以及图书的借出还入时间等等。1 2项目的目的与目标图书馆具有大量的图书进出信息,为了准确的记录图书的信息,避免图书的缺失。也为了及时反馈图书是否被借出的信息,方便广大读者借阅。系统要做到能准确的记录不同图书的借出还入时间,判断是否超时,以及计算超时应该罚款的多少,还要记录各本书借出对应的学号。系统在稳定性方面也要做到遇到断电、系统崩溃等情况保存数据不能缺失。1 3参考资料软件工程技术及其应用实用软件工程软件工程实践教程1 4相关文档a 可行性分析报告b 概要设计说明书c 详细设计说明书2 目标系统描述21组织结构与职责3标系统功能需求31 功能需求分析1日常工作管理:包括借书管理、还书管理。(1) 借书管理:主要功能是记录借阅证编号和图书编号,进行借书过程。在数据库中插入一条借书记录,该记录包括读者编号、图书编号、借出日期、还书期限、 操作员编号。(2) 还书管理:主要功能是输入借阅证编号、图书编号,在借阅登记表中找到相应的记录,将该记录的相应数据插入到还书记录中,同时将借书记录删除,并保存 在借阅历史记录表中。2基本资料维护管理:包括图书资料维护、读者资料维护(1) 图书资料维护:包括新书的入库,以及现有书籍资料的修改和删除。(2) 读者资料维护:包括新读者的资料入库,以及现有读者资料的修改和删除3查询管理:包括图书资料查询、读者资料查询。(1) 图书资料查询:根据相应的图书信息对所有书籍进行所需查询。此查询包括:图书分类、图书编号、图书名称、作者、出版社。(2) 读者资料查询:根据相应的读者资料进行所需查询。 读者编号、读者姓名、读者种类。4系统管理:系统的登录、标准数据管理(1)系统的登录:管理员的登录。(2)标准数据管理:用于常用数据的系统维护。32功能需求点列表编号名称使用者功能输入输出1借书读者借出书籍书籍编号以及学号书籍是否存在2还书读者还入书籍书籍编号以及学号书籍数量3查询读者以及管理员查询书籍数量书籍编号或名称书籍剩余数量4系统管理管理员常用数据的系统维护管理员验证号系统情况 4目标系统的性能需求41时间要求1响应时间不能太长,要求系统能快速给出应答。2能更新处理时间。3远程数据传输时间不能太长,要及时准确。42空间需求A支持的并行操作的使用者数要达到一定要求,要能支持多个用户同时操作。B要能处理大量文件并记录各种数据。C在一定时间内处理的数据总数要尽可能的大。D输入输出数据要完全符合要求,避免图书信息重复。5.目标系统界面与接口需求51界面需求界面要求方便、简介、美观、一致等。A输入设备:键盘、鼠标、条形码扫描器和扫描仪等。B输出设备:显示器、打印机等。C显示风格:图形和字符界面。D显示方式:1024x768或640x480。52接口需求点1软件接口:可能会需要与一些办公软件相联结。2硬件接口:可能会与一些磁盘机光盘刻录机等连接以便保存数据6目标系统其他需求61安全性1要求查询返回数据不能出错。2对于权限控制要合理。为防止非法利用管理员账户登录进行破坏的行为,系统应有相应的检测模块检测到后应冻结账户。3要有数据库定时备份功能。62可靠性系统应具有数据的及时准确的处理功能,保证数据的可靠性。63灵活性系统应具有一定的灵活处理的能力,比如书籍的编号和名称都可以查询书籍。可键盘输入学号也可扫描学生卡等7目标系统假设与约束条件可利用的资源有学校的机房和自己的电脑,系统投入使用的最晚时间是2011-6-2。第三章软件设计及设计说明书1、 导言(1) 目的使软件工程规范化,使设计人员遵循统一的概要设计进行编写,降低系统实现的风险,做到系统设计资料规范性与全面性,以利于系统的实现、测试、维护和版本升级等。(2) 范围软件系统总体结构设计、全局数据库和数据结构设计、外部接口设计、主要部件功能分配设计和部件之间接口设计等。(3) 命名规则 变量命名规则:声明全局变量、局部变量对象的命名规则。数据库对象命名规则:声明数据库表名、字段名、索引名和视图名等对象的命名规则。(4) 术语定义术语定义和解释表序号术语名称术语定义1总体设计软件系统的总体逻辑结构,按照不同的设计方法有不同的结构2外部接口本软件和其他软件之间的接口,接口设施可以是中间件3数据结构包括数据库表的结构和其他数据的结构4视图在基表和其他视图之上建立的一张虚表,具有很多物理表的性质5子系统具有相对独立功能的小系统6模块具有功能独立能被调用的信息单元7角色数据库中享有某些特权操作的用户8内部接口软件内部的各子系统、模块、部件等之间的接口(5) 参考资料1) 用户需求报告。2) 软件开发合同。3) 数据库设计规范。4) 命名规范。(6) 相关文档1) 详细设计说明书。2) 源程序清单。3) 测试计划及报告。4) 用户使用手册。(7) 版本更新记录由于是最新版本,无更新记录。2、 总体设计(1) 总体结构图书馆管理系统读者子系统管理子系统基础信息图书借阅书目检索图书归还读者开户帐户续费更新图书书目检索读者检索读者管理图书预约管理员管理(2) 运行环境设计硬件平台:条形码扫描仪学生卡读卡机(3) 子系统清单子系统编号子系统名称子系统功能1读者子系统供读者借书、还书、查阅图书等2管理子系统供管理员管理 读者开户 续借 查阅图书数量、种类等3基础信息管理管理读者和管理员的基础信息(4) 功能模块清单模块编号模块名称模块功能1图书借阅记录借出图书的编号以及对应的学号借出时间等2图书归还记录归还图书的编号以及时间,计算是否超时,以及超时罚款等3图书查找查找该图书是否还有没有借出以及书名剩余量等信息4读者开户为新的读者注册一个账号一般用其学号,记录下他的信息5更新书库对于借出和还入的书或者新加或丢失的图书及时记录,更新图书信息3、 模块功能分配该系统,可以分为两大模块,一个小模块:分别为管理子系统,读者子系统两大模块;基础信息管理小模块;在管理子系统中:1):新书购入处理模块只要是针对采购员在根据计划在外采购新书之后的处理,所以当采购员采购到新书后,系统根据原先计划采购的新书进行核查,如果符合计划预定,则将新书入库;否则退货;该模块主要是处理购入的新书是否符合要求;2):处理学生借书模块:该模块主要是处理学生借书业务,在图书馆管理人员输入学生信息的时候,系统会根据学生文件对该学生进行查询,看看是否存在该学生,如果不存在,则系统给出警告信息:该学生不存在;如果存在该学生,则系统根据罚款单对该学生的欠款情况进行查询,如果欠款超过一定金额,则借书失败,否则接受借书,更新借书文件,在显示器上面显示借书成功;3):处理学生还书模块:该模块主要是处理学生还书业务,在图书馆管理人员输入要还的图书字段时,系统会在借书文件中查找该图书信息,之后对借书文件,学生文件中的该学生已借书数,图书目录文件进行更新;然后在借书文件中提取学生数据,根据图书的还书日期和借出日期对学生的欠款金额进行计算之后将结果显示出来;在查询子系统中:有两个查询内容:1) 学生信息查询:学生信息查询子模块主要是对学生信息的查询;2) 图书信息查询:图书信息查询子模块主要是对图书信息的查询;这些模块,是针对学生或者图书馆管理人员这两个不同的对象,查询子系统主要是让用户了解信息,所以不需要进行用户密码登陆,直接可以进行查询,而管理模块是涉及到图书馆内部的重要信息管理方面,所以必须要设置用户密码登陆和权限等等,以保数据的安全性和系统的安全性;4、 数据结构设计(1)数据库表名清单序号表名功能概述1学生文件表记录学生的信息,方便学生借书还书注册等2图书目录文件记录图书库里的总图书量及其信息3借书文件表方便查看哪些书籍被借出 还入及其时间4入库单表记录新入库的图书信息5管理员表管理员的id等 方便管理员的身份注册及验证登陆(2) 数据库表的详细清单A:学生文件表:1学生编号Int41自动编号2姓名nvarchar103性别nvarchar24证件号码nvarchar255联系电话nvarchar406登记日期datetime87有效期至datetime88已借书数smallint29是否挂失nvarchar2B:图书目录文件序号字段名类型长度精度小数位数默认值允许空主键说明1图书编号Int41自动编号2条形码nvarchar203书名nvarchar2004图书类型Nvarchar505作者Nvarchar206译者Nvarchar207ISBNNvarchar208出版社Nvarchar309价格Money810书架名称Nvarchar2011现存量Smallint212库存总量Smallint2C:借书文件表序号字段名类型长度精度小数位数默认值允许空主键外键说明1借阅编号Int41自动编号2图书编号Int43学生编号Int44借阅时间Datatime85应还时间Datatime86续借次数Smallint2D:入库单表序号字段名类型长度精度小数位数默认值允许空主键外键说明1书号Nvarchar301自动编号2条形码Nvarchar203书名Nvarchar2004作者Nvarchar205出版社Nvarchar306版次Nvarchar507图书类别Nvarchar208存放位置Nvarchar209单价Money810入库数量Smallint211金额Money812经手人Nvarchar1013票号Nvarchar3014操作员Nvarchar1015日期datatime8E:管理员表序号字段名类型长度精度小数位数默认值允许空主键说明1管理员IDint42管理员密码char153权限nvarchar165、 接口设计5.1外部接口用户接口:采用窗口化,菜单式进行设计,在操作时响应热键。硬件接口:一卡通,扫描仪器5.2软件接口通过JDBC对SQL Server2000数据库的连接内部接口通过面向对象语言设计类,在public类中实现调用;类间实现严格封装第四章编码及测试一 源代码#include#include#include#include#include#include#define STACK_INIT_SIZE 10#define OK 1#define TRUE 1#define FALSE 0#define ERROR 0struct student /*学生 的 卡号 已借的书 */int carnum;char lendbook10;student1000;struct book /*书的编号 书名 状态 */int booknum;char bookname10;int turefalse; book1000;struct card /*卡的编号 对应的学生名字 班级*/int cardnum;char studentname10;card100; book_add();book_search(); int panduan(); book_change();book_delect();card_add();book_lend();book_history() ;system_about();system_edition();window_display();book_manage();book_lend_return();system_help();window_choice();system_exit();book_return();/* 主函数 */void main() window_display();window_choice();/* 主界面 显示子函数*/window_display()printf(n);printf( 图书管理系统n); printf(n);printf(n);printf( 1: 图书管理n); printf( 2:图书借还 n); printf( 3: 系统帮助 n); printf( 4: 退出系统 n); printf(n); printf(n);printf(n); printf(n);printf(n); printf(n);printf( 请选择进入的板块n);/* 主界面 选项子函数 */ window_choice()char choice1;scanf(%s,&choice1);switch(choice1)case 1:book_manage();break;case 2:book_lend_return();break;case 3:system_help();break;case 4:system_exit();break; book_manage()char manage_choice;system(cls);printf(n);printf( 这里是图书管理板块 n);printf(n);printf(n); printf(n);printf(n);printf(n);printf( 1 加书 2改书 3 删书 4 查书 0返回 n);printf(n);printf(n); printf(n); printf(n);printf(n);printf( 请您选择 n);scanf(%s,&manage_choice);switch(manage_choice)case 1:book_add();break;case 2:book_change();break;case 3:book_delect();break;case 4:book_search();break;case 0: system(cls);window_display();window_choice();break;book_lend_return()char choic; system(cls);printf( 这里是图书借还板块 n);printf(n);printf(n); printf(n);printf(n);printf(n);printf( 1 办卡 2借书 3 还书 4 历史 0返回 n);printf(n);printf(n); printf(n); printf(n);printf(n);printf( 请您选择 n);scanf(%s,&choic);switch(choic)case 1:card_add();break;case 2:book_lend();break;case 3:book_return();break;case 4:book_history();break; case 0: system(cls);window_display();window_choice();break;system_help()char choice_help;system(cls); printf( n);printf( 这里是系统帮助板块 n);printf(n);printf(n); printf(n);printf(n);printf(n);printf( 1 关于系统 2 版本信息 0 返回 n);printf(n);printf(n); printf(n); printf(n);printf(n);printf( 请您选择 n);scanf(%s,&choice_help);switch(choice_help)case 1:system_about();break;case 2:system_edition();break; case 0: system(cls);window_display();window_choice();break;/* 加书 */int panduan() int bookmum,i=0;FILE *fp=fopen(C:book.txt,a+); scanf(%d,&bookmum); for(i=0;fread(&booki,sizeof(struct book),1,fp)!=0;i+) if(bookmum=booki.booknum) printf(您输入的编号重复 请重新输入n); panduan(); return bookmum;book_add() FILE *fp;int bookmum=0; int i=0,j=0; system(cls); printf( n); printf( 请您输入这本书的编号n); bookmum=panduan();booki.booknum=bookmum;printf( 请您输入这本书的书名n); scanf(%s,&booki.bookname);printf( 请您设置书的状态 1表示没有人借 0表示已经借出n); scanf(%d,&booki.turefalse); fp=fopen(C:book.txt,a+);fwrite(&booki,sizeof(struct book),1,fp); fclose(fp);/* 一(2) 查书 */book_search() FILE *fp;char bookname10;int i; system(cls);fp=fopen(C:book.txt,r); printf(n); printf( 请输入你要查找的书名n); scanf(%s,bookname);for(i=0;fread(&booki,sizeof(struct book),1,fp)!=0;i+)if(strcmp(bookname,booki.bookname)=0)if(booki.turefalse=1)printf(这本书还在n); else printf(这本书被借了n);fclose(fp); fclose(fp); return 0; printf(没有这本书n); fclose(fp);return 0;/* 一(3) 改书 */book_change() FILE *fp,*fp2;char bookname10,choice;int i;fp=fopen(C:book.txt,r);fp2=fopen(C:bookl.txt,w); system(cls); printf( n);printf( 您要改那本书n); scanf(%s,bookname);for(i=0;fread(&booki,sizeof(struct book),1,fp)!=0;i+)if(strcmp(booki.bookname,bookname)=0)printf( 请选择要修改的内容n); printf( 编号:%d 书名:%s n,booki.booknum,booki.bookname);printf( 1:修改书的编号n); printf( 2:修改书名n); scanf(%s,&choice);switch(choice)case 1:printf(输入新编号n); scanf(%d,&booki.booknum);fwrite(&booki,sizeof(struct book),1,fp2);break;case 2:printf(新书名:n); scanf(%s,booki.bookname);fwrite(&booki,sizeof(struct book),1,fp2);break;continue;fwrite(&booki,sizeof(struct book),1,fp2);fclose(fp);fclose(fp2);fp=fopen(C:book.txt,w);fp2=fopen(C:bookl.txt,r);for(i=0;fread(&booki,sizeof(struct book),1,fp2)!=0;i+)fwrite(&booki,sizeof(struct book),1,fp);fclose(fp);fclose(fp2);fp2=fopen(C:bookl.txt,w);fclose(fp2);printf(没有这本书 n);/* 一 (4) 删书 */book_delect() FILE *fp,*fp2;int i;char bookname10,choice;fp=fopen(C:book.txt,r);fp2=fopen(C:bookl.txt,w); /打开书文件 临时文件 system(cls); printf( n);printf( 输入要删除的书名n);scanf(%s,bookname);for(i=0;fread(&booki,sizeof(struct book),1,fp)!=0;i+) /把书文件的书本一一加到内存中if(strcmp(bookname,booki.bookname)!=0)/把要删除的与刚刚输入到内存中的书进行比较fwrite(&booki,sizeof(struct book),1,fp2);/如果有这本书 把它存到临时文件中fclose(fp);fclose(fp2);printf(您整的要删除吗 删除请按 yn); /再次确认 scanf(%s,&choice);/if(choice=y|choice=Y)fp=fopen(C:book.txt,w);fp2=fopen(C:bookl.txt,r);/打开书文件 和刚才那个临时文件 for(i=0;fread(&booki,sizeof(struct book),1,fp2)!=0;i+) /把临时文件中的书本一本一本读到内存中fwrite(&booki,sizeof(struct book),1,fp);/如果读入成功 就把它写到书文件中fclose(fp);fclose(fp2);fp2=fopen(C:bookl.txt,w);/以只写方式建立并打开文本文件 已存在的文件将被覆盖fclose(fp2);return 0;elseprintf(按任意键退出n);return 0; /* 二 (1)办卡 */card_add() FILE *fp;int i=0;fp=fopen(C:card.txt,a+); system(cls); printf( n);printf( 请输入卡号n); scanf(%d,&cardi.cardnum);printf( 申请人姓名n); scanf(%s,cardi.studentname);fwrite(&cardi,sizeof(struct card),1,fp);fclose(fp); printf( n);( 卡办好了n); /* 二(2) 借书 */book_lend() FILE *fp,*fp2;int i,n;int cardnum;system(cls);printf(n);printf( 您的卡号是:n); scanf(%d,&cardnum);fp=fopen(C:card.txt,r);for(i=0;fread(&cardi,sizeof(struct card),1,fp)!=0;i+)if(cardi.cardnum=cardnum)n=i;fclose(fp);printf(您要借那本书:n); scanf(%s,studentn.lendbook); fp=fopen(C:book.txt,r); for(i=0;fread(&booki,sizeof(struct book),1,fp)!=0;i+)if(strcmp(booki.bookname,studentn.lendbook)=0)if(booki.turefalse=0) printf(这本书被借了!n);fclose(fp);getch(); else fclose(fp);fp=fopen(C:record.txt,a+);studentn.carnum=cardnum;fwrite(&studentn,sizeof(struct student),1,fp);fclose(fp);fp=fopen(C:book.txt,r);fp2=fopen(C:bookl.txt,w);for(i=0;fread(&booki,sizeof(struct book),1,fp)!=0;i+)if(strcmp(booki.bookname,studentn.lendbook)=0)booki.turefalse=0;fwrite(&booki,sizeof(struct book),1,fp2);cont

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论