版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
北方工业大学软件工程课程实验实验报告题目:小型图书馆图书信息管理系统专业:班级:组:组长:成员:指引教师:完毕日期:6月5日目录1项目开发筹划书……………………(2)2软件需求规格阐明书………………(7)3设计规格阐明书……………………(14)4源程序清单…………(20)5测试报告……………(35)6顾客手册……………(39)一、项目开发筹划书完毕人:1.引言(Introduction)本需求编写是为了实现读者借还书信息化,并且运用Internet网络实现读者与图书馆之间互动和图书馆人性化管理,提高图书运用率、减少有关人员工作量,使学校图书管理工作真正做到科学、合理规划,系统、高效实行。1.1项目概述(ProjectSummary)本次作业设计题目:“小型图书馆图书信息管理系统”重要目是运用数据库软件编制一种管理软件,用以实现图书、读者以及户(学生)借书、查询图书信息,向流通组预约图书、缺书登记,借书数量、期限限制。还书时流通组依照图书与否超期、损坏等作相应解决。采编部依照缺书登记进行采购以及将旧书裁减、注寻常工作等多项管理。同步对整个系统分析、设计过程给出一种完整论证。详细涉及借还图书。总之,系统规模较小,只涉及图书、读者、借还书管理,有关部门有采编部、流通部、办公室,只是完毕简朴规模图书管理操作。1.2术语定义(TermsGlossary)图书管理系统:是一种由人、计算机等构成能进行管理信息收集、传递、加工、保存、维护和使用系统。采编部:是一种负责图书馆中外文图书资料入库前采访、订购、验收、登记、典藏、调拨,以及书目数据审校并上传至中央数据库等工作部门。需求分析:在建立一种新或变化一种现存电脑系统时描写新系统目、范畴、定义和功能时所要做所有工作。系统设计:设计数据库构造以及设计模块控制流程,明确软件系统"如何做"。需求规格阐明书:经可行性研究后,对规定解问题重新进行描述,使之更能精确地反映实际业务流程,导出并评价可供选取解法,推荐行动方针。系统设计阐明书:阐明对程序系统设计考虑,涉及程序系统基本解决流程、程序系统组织构造、模块划分、功能分派、接口设计、运营设计、数据构造设计和出错解决设计等,为程序详细设计提供基本。1.3有关文档(RelatedDocuments)《需求规格阐明书需求规格阐明书》、《系统设计阐明书》、《测试报告》、《顾客手册》、《源程序清单》。2.软件生存周期(SoftwareLifeCycle)因系统规模较小,采用瀑布模型拟定软件生存周期。(1)项目生存期框图 问题定义问题定义可行性研究可行性研究需求分析需求分析软件设计软件设计项目实行项目实行测试测试维护维护(2)项目生存期阐明问题定义:分析问题,拟定整体项目设计思路与架构,对系统功能有一种初步认定,拟定项目规模与基本实现思路。可行性研究:对项目可行性,涉及技术可行性、经济可行性、社会可行性等进行研究,为下一步工作做准备。需求分析:对项目整体需求做一种整体调研和分析,最后将分析成果归纳总结为清晰、全面、系统、精确需求规格阐明书。项目设计:分块设计项目内容,对各个阶段项目工作有一种整体划分。项目实行:进行代码设计编写,最后完毕项目初步模型。测试:对完毕项目进行测试,找出存在问题和需要优化、改进地方。维护:定期对项目进行测试,查找项目漏洞进行完善解决。3.任务与工作产品(TaskandWorkProducts)项目任务和工作产品,是指依照项目生存期阶段划分任务,和相应阶段工作产品。记录项目生存期各阶段拟定需重点控制阶段任务和工作产品。建议以表格形式,列出生存期各阶段任务和工作产品。项目包括任务,如:(1)需求分析(2)系统设计(3)系统实现(4)测试(5)产品交付项目也许包括产品,如:(1)需求规格阐明书(3)系统设计阐明书(4)源程序(5)测试报告(6)顾客手册4.工作产品、任务规模、工作量预计(EstimatesofWorkProduct,TaskSizeandWorkload)该项目只是完毕简朴图书信息管理,系统规模较小。经分析决定,最后由五人一组小组形式完毕该实验。指定一名组长,负责分工和进度控制等管理工作。其中,开发筹划由组长完毕,其她文档按筹划中任务分工,分别由各负责人完毕。由于项目规模不大,筹划在在20个学时左右完毕整个设计任务。最后分派给每个成员任务量并不大,应当可以按期完毕。5.资源需求筹划(ResourceRequirementPlan)依照项目详细实现功能,为保证项目可以正常流畅运转,最后拟定重要软硬件设备清单列表如下:解决器CPU系列英特尔酷睿i5.4代系列CPU型号英特尔酷睿i54570CPU频率3.2GHz总线DMI5GT/s三级缓存6MB核心代号Haswell核心/线程数四核心/四线程制程工艺22nm存储设备内存容量4GB内存类型DDR31333MHz内存插槽4个DiMM插槽硬盘容量500GB硬盘描述7200转光驱类型DVD刻录机显卡/声卡显卡类型核心显卡显卡芯片InterGMAHD4600显存容量共享内存容量DirectX支持DirectX11音频系统集成声卡网络通信有线网卡1000Mbps以太网卡软件数据库sqlserver运营环境Java运营平台Win76.软件项目进度筹划(SoftwareProjectSchedule)(1)项目阶段划分整体项目划分为四个阶段:1、需求分析阶段依照调研成果,理解顾客需求进而拟定项目整体实现思路,所要完毕基本功能,保证项目全面性,保证明现顾客需要所有功能。该过程是十分重要阶段,能拟定整个项目进行效率和最后效果,因此一定要认真细致贯彻。2、系统设计对需求分析阶段成果进行概要设计和详细设计,画出功能模块图。对系统主界面、图书信息录入界面、学生借书操作界面、学生借书成果查询界面进行设计。进行数据库设计。得到数据库逻辑构造图。3、图书管理系统编程在之前工作基本上,进行实当代码编写,在编写过程中不断完善各项功能,在保证基本功能前提下,尽量做到界面和谐性和可行性。4、图书管理系统测试与维护 对系统进行测试,并解决发现问题,进一步维护完善选课系统。(2)各阶段任务分解需求分析阶段:1、结合实验内容阐明,对既有学生选课系统进行必要调研,理解基本工作流程、软件功能、数据需求和界面风格。2、画系统流程图,反映本系统物理构造。并给出一份系统软硬件配备清单,涉及设备型号、系统软件版本号,报价等信息。3、分析实验内容阐明和调研成果,画出系统数据流程图。4、组内充分讨论,不断细化和完善数据流程图。5、编写系统数据字典。6、用IPO图描述系统解决过程。7、画出系统ER图。系统设计阶段:1、全组走查需求分析文档和其她有关图表和文字阐明。对不清晰内容进行完善和补充。2、组长和小构成员共同协商一份设计规范:设计用图形符号、字体、大小规范,界面设计规范,用语规范等等。3、组内6人分工,并行进行详细设计、界面设计和数据库设计。4、组长检查所有设计规范性和设计质量。编程阶段:选用某一高档编程语言实现本系统,并对编码通过注释进行必要阐明。系统测试与维护阶段:设计测试用例并实现测试与维护。(3)时间和人员安排四个阶段每个阶段分派四个学时,预测共需大概20个学时完毕本次项目设计。人员安排如下:由组长完毕项目筹划书,详细分派任务。各个阶段任务划分如下:(4)阶段工作成果每个阶段都需要完毕相应任务,详细如下:需求分析阶段:1) 系统流程图和软硬件设备清单表。2) 细化数据流程图和图解阐明。3) 系统数据字典和IPO图。4) 系统ER图。5) 需求阐明规格阐明书。系统设计阶段: 1) 设计规格阐明书(涉及概要设计阐明书和详细设计阐明书)。2) 数据库设计(涉及表名、字段名、字段类型、字段大小、字段阐明)。编程阶段:1) 系统重要功能界面。2) 系统重要模块源代码(涉及注释)3) 系统重要模块使用阐明书。测试维护阶段: 1) 系统重要模块测试用例及测试成果2) 系统重要模块边界测试用例及测试成果二、需求规格阐明书完毕人:1.概述(Summary)1.1项目目与目的(PurposeandAimofProject)该项目为简朴管理系统,重要实现图书借还解决,以及图书馆内有关图书管理工作。目的是实现读者借还书信息化,并且运用Internet网络实现读者与图书馆之间互动和图书馆人性化管理,提高图书运用率、减少有关人员工作量,使学校图书管理工作真正做到科学、合理规划,系统、高效实行。1.2术语定义(TermsGlossary)图书管理系统:图书管理系统,是一种由人、计算机等构成能进行管理信息收集、传递、加工、保存、维护和使用系统。运用信息控制公司行为;协助公司实现其规划目的。在当代大中型公司纷纷运用系统。系统设计:设计数据库构造以及设计模块控制流程,明确软件系统"如何做"。为下一步编程阶段做好准备。需求规格阐明书:经可行性研究后,对规定解问题重新进行描述,使之更能精确地反映实际业务流程,导出并评价可供选取解法,推荐行动方针。系统设计阐明书:阐明对程序系统设计考虑,涉及程序系统基本解决流程、程序系统组织构造、模块划分、功能分派、接口设计、运营设计、数据构造设计和出错解决设计等,为程序详细设计提供基本。设计规格阐明书:在进行系统分析后,对整体设计把握体现,涉及各种设计参数定义,以及设计元素、风格确立等。出库表:存储已销售书籍数据。入库表:存储入库书籍数据。购书表:存储提交购书信息。缺书登记表:存储缺少书籍信息。待购教材表:存储待购书籍信息。1.3有关文档(RelatedDocuments)《项目开发筹划书》《需求规格阐明书》《设计规格阐明书》《源程序清单》《测试报告》《顾客手册》2.问题初始分析(EarlyAnalysis)2.1场景描述(SceneDescription)本次项目是以实现图书、读者以及户(学生)借书、查询图书信息为背景,目是为了实现读者借还书信息化,并且运用Internet网络实现读者与图书馆之间互动和图书馆人性化管理,提高图书运用率、减少有关人员工作量,使学校图书管理工作真正做到科学、合理规划,系统、高效实行。2.2初始功能提取(EarlyFunctionDistill)基本实现功能如下:1、向流通组预约图书、缺书登记,借书数量、期限限制。2、还书时流通组依照图书与否超期、损坏等作相应解决。2、采编部依照缺书登记进行采购以及将旧书裁减、注寻常工作等多项管理。3.目的系统功能需求(FunctionofTargetSystem)3.1功能需求分析(FunctionAnalysis)数据流图如下:数据字典:编号:DS1名称:读者信息记录名称键值类型长度值域初值备注读者编号P字符100学生姓名字符100学生班级字符100性别字符10借阅图书数量数字借阅图书信息字符200借出日期日期8应还日期日期8与否有图书超期布尔预定图书信息字符100编号:DS2名称:图书信息记录名称键值类型长度值域初值备注图书编号P字符100书名字符100类型字符100可选取作者字符100图书ISBN字符100出版社字符20出版日期日期8总册数数字核心字字符100当前在库数量数字编号:DS6名称:缺书记录名称键值类型长度值域初值备注图书编号P字符100书名字符100类型字符100可选取作者字符100图书ISBN字符100出版社字符20出版日期日期83.2功能需求点列表(FunctionList)对每个解决用IPO表进行详细阐明,列出功能需求点列表如下:编号:IPO1 名称:读者查询输入解决阐明输出图书信息1.输入图书信息3.如果此书在馆,显示图书信息将DS2中相应图书记录显示出来备注:编号:IPO2 名称:书目编辑输入解决阐明输出图书信息1.输入图书信息2.增添图书记录修改DS2在库图书量插入图书信息到DS2备注:编号:IPO3 名称:图书注销输入解决阐明输出图书信息1.输入图书信息2.删除图书记录修改DS2在库图书量删除DS2中相应图书记录备注:编号:IPO4 名称:缺书登记输入解决阐明输出所缺图书信息1.输入缺书信息2.创立缺书记录,修改缺书登记记录3.告知采购部及时采购图书插入缺书记录到DS6修改DS6缺书记录状态备注:编号:IPO5 名称:图书采购输入解决阐明输出采购图书信息1.输入采购图书信息2.如果此书已经采购,则取消图书缺书记录修改DS6缺书记录状态备注:编号:IPO6 名称:图书预定输入解决阐明输出预定图书信息1.输入图书信息2.创立图书预定记录插入图书预定记录到DS5修改DS5图书预定预订记录状态备注:编号:IPO7 名称:取消预定输入解决阐明输出预定图书信息1.输入图书信息2.删除图书预定记录删除DS5中图书预定记录修改DS5图书预定预订记录状态备注:编号:IPO10 名称:借书解决输入解决阐明输出读者编号图书编号1.输入读者编号和图书编号2.创立借书记录,修改图书在库量3.如果此书曾经预订,则取消图书预订记录修改DS2在库图书量插入借书记录到DS3修改DS5预订记录状态备注:编号:IPO12 名称:还书解决输入解决阐明输出读者编号图书编号1.输入读者编号和图书编号2.创立还书记录,修改图书在库量3.如果此书曾经预订,告知预定读者修改DS2在库图书量插入还书记录到DS2修改DS5预订记录状态备注:4.目的系统性能需求(PerformanceofTargetSystem)4.1时间规定(TimeRequest)鉴于图书信息量较大,同步又考虑到读者对响应时间容忍限度,最后拟定查询最长等待时间为30秒左右,而更新解决时间为40秒左右,远程数据传播时间控制在一分钟以内。尽量保证时间响应控制在合理范畴内。4.2空间规定(SpaceRequest)如由于借还书功能是面向全校师生,因而顾客量较大,必要保证可以支持足够多终端顾客同步借阅查询,最佳同步在线操作人数控制在50人以内,超过次门限值采用等待办法。此外,图书信息量大,因此解决文献和记录数也会相应变得庞大,同步也限制了解决任务数量,为加快数据传播效率,对输入输出数据精度规定和对解决和传播过程中精度规定并不高。4.3性能需求点列表(PerformanceList)依照数据流程图和对需求理解,给出一张功能需求表,涉及需求编号、简朴描述、优先级和验证方式见下表。编号简述使用者优先级验证方式IPO1查询读者1分别对图书/借还书信息有效数据、无效数据、各种组合条件进行查询,显示查询成果(成果是0条、1页、多页状况)IPO2书目编辑采编部1输入完整图书信息,输入不完整图书信息、输入错误图书信息,重复输入IPO3图书注销采购部1注销既有图书、注销不存在图书IPO31新书发布采购部2缺书采购到馆后,告知登记读者IPO4缺书登记读者2对的和完善缺书信息,对的但不完善缺书信息,重复录入缺书信息IPO5图书采购采编部2采购缺书登记图书,重复采购,超量采购IPO6预订读者2对的和完善预订数据,对的但不完善预订数据,无效预订数据,相似预订数据IPO7取消预订读者2取消已经预订图书、取消没有预订图书、重复取消同一条预订记录IPO8更新系统参数系统管理员1在XML文献中定义各种参数值,在DTD文献中定义参数模型,在XLS中定义参数显示格式IPO81更新惩罚规则系统管理员1在XML文献中定义惩罚规则,在DTD文献中定义参数模型,在XLS中定义参数显示格式IPO9惩罚流通部1输入超期惩罚、丢失惩罚和破损惩罚信息,且测试不同日期、不同价格图书、不同页数信息IPO10借书解决流通部1对的和完善借书信息,对的但不完善借书信息,无效借书信息,重复借书信息,超量借书,借预订图书,续借IPO101有效性检查流通部1输入有效/无效读者号,有效/无效图书号,借书已超量,有延期书,0库存书IPO11读者管理办公室1输入对的读者信息、错误读者信息和无效读者信息IPO12还书流通部1还1本书/多本书,还过期书,还书有预订,还无效图书(没有借书记录)IPO121催还告知自动触发3系统参数中设立催还日期,检查系统能否按照设立日期自动发出催还邮件IPO13预订告知自动触发1检查系统自动触发1条/多条预订到书告知,给有效邮箱、无效邮箱分别检查系统5.目的系统界面与接口需求(InterfaceofTargetSystem)5.1界面需求(InterphaseRequirement)界面整体特点以便、简洁、美观、一致等。(1)输入设备:键盘、鼠标、条码扫描器、扫描仪;(2)输出设备:显示屏、打印机;(3)显示风格:蓝色背景为主,界面简约简朴,功能实现突出;(4)显示方式:1024*768;(5)输出格式:列表显示、按序输出。5.2接口需求(InterfaceRequirement)由于本项目只是实现校内图书借阅查询管理功能,因而所需接口仅限于图书馆办公室管理人员控制接口。用于管理人员对整个系统进行必要测试维护,保证整个系统顺利运营。6.目的系统其她需求(OtherRequirementsofTargetSystem)6.1安全性(Security) 由于图书信息和读者信息都是学校内部隐私信息,因而,系统安全性必要得到较好保证。6.2可靠性(Dependability) 图书查询需要最后有明确查询成果,因而查询过程可靠性必不可少。此外,这也是保证系统可以正常运转运营重要前提。6.3灵活性(Agility) 图书信息量较大,因而,查询时必要采用灵活查询办法,如分类、模糊查询等,保证查询效率和灵活性。7.目的系统假设与约束条件(SupposeandRestrictionofTargetSystem)本系统只是内部运营简朴图书管理系统,外部限制几乎可以不必考虑。重要限制在于内部软硬件供应和保证,总体问题不大,相信完毕后可以尽快投入运营。三、设计规格阐明书完毕人:1.引言(Introduction)本章对该文档目、功能范畴、术语、有关文档、参照资料、版本更新进行阐明。1.1目(Purpose)本文档目旨在推动软件工程规范化,使设计人员遵循统一概要设计书写规范,节约制作文档时间,减少图书管理系统实现风险,做到系统设计资料规范性与全面性,以利于系统实现、测试、维护、版本升级等。1.2命名规则(NamingRule)变量对象命名规则:全局变量和局部变量均以能代表变量意义单词表达,为加以区别,其中,全局变量首字母大写、局部变量则全小写。数据库对象命名规则:为以便理解,数据库建立时有关表名命名也采用代表特定意义英文字母表达。表名首字母大写,别的一律大写。1.3术语定义(TermsGlossary)序号术
语
名
称术
语
定
义1总体构造软件系统总体逻辑构造。按照不同设计办法,有不同总体逻辑构造。若采用面向功能或面向数据设计办法,则总体逻辑构造为一树形功能模块构造图。若采用面向对象或面向部件(构件)设计办法,则总体逻辑构造为部件(构件)组装图2外部接口本软件系统与其她软件系统之间接口,接口设施可以是中间件。接口描述涉及:传播方式、带宽、数据构造、传播频率、传播量、传播合同3数据构造数据构造涉及:数据库表构造、其她数据构造等4概念数据模型CDM关系数据库逻辑设计模型,叫做概念数据模型。重要内容涉及一张逻辑E-R图及其相应数据字典5物理数据模型PDM关系数据库物理设计模型,叫做物理数据模型。重要内容涉及一张物理表关系图及其相应数据字典6视图在基表或其她视图之上建立一张虚表,叫做视图,它具备物理表许多性质,在数据解决和授权上很有用7角色数据库中享有某些特权操作顾客,叫做角色。角色权利通过授权来实现8子系统具备相对独立功能小系统叫做子系统。一种大软件系统可以划分为各种子系统,每个子系统可由各种模块或各种部件构成9模块具备功能独立、能被调用信息单元叫做模块。模块是构造化设计中概念10内部接口软件系统内部各子系统之间、各部件之间、各模板之间接口,叫做内部接口。接口描述涉及:调用方式、入口信息、出口信息等11有关文献有关文献是指当本文献内容变更后,也许引起变更其她文献。如需求分析报告、详细设计阐明书、测试筹划、顾客手册12参照资料参照资料是指本文献书写时用到其她资料。如各种关于规范、模板、原则、准则1.4参照资料(References)[1]顾客需求报告[2]数据库设计规范[3]命名规范1.5有关文档(RelatedDocuments)[1]源程序清单[2]测试筹划及报告[3]《顾客使用手册》2.总体设计(DesignofCollective)2.1体系构造设计(DesignofArchitecture)总系统体系构造模型:子系统模型:学生登陆系统——SS1: 流通组系统——SS2:备注:借书系统、还书系统见学生登陆系统。编目人员系统——SS3:采购人员系统——SS4:2.2子系统清单(SubsystemList)子系统编号子系统功能简述子系统之间关系SS1学生可以进行借书、还书操作通过流通组工作人员完毕功能SS2流通组完毕详细借书、还书操作与学生登陆有交集SS3录入图书信息和注销图书与采购人员系统有交集SS4负责采购图书并交予编目人员与编目人员系统有功能交集2.3模块设计(ModuleDesign)借书系统——M1:还书系统——M2:2.4功能模块清单(ModuleList) 模块清单表:模块编号模块功能简述M1实现借书系统中各种功能实现,以及各种借书时状况解决M2实现还书系统中各种功能实现,以及各种还书时状况解决3.数据构造设计(DesignofDataStructure)3.1数据库表名清单(DBTableList)数据库表名清单表:序号中文表名英文表名表功能阐明1学生表Student记录学生基本信息、涉及已借图书信息,在借图书信息等。2图书表Book记录图书馆图书信息,以及图书状态——借出、应还日期等等。3缺书表Qbook记录学生但愿图书馆有书,用于采购人员及时采购图书。3.2数据库表之间关系阐明(RelationofDBTable)E-R图:3.3数据库表详细清单(ParticularListofDBTable)详细清单用列表给出:表名:图书表序号字段中文名字段英文名类型空否默认值主键/外键1书名Book_namefloat否无\2索书号Book_numberfloat否无主键3出版社Pressfloat否无\4出版日期Timedate否无\5图书状态Messagefloat\无\6借出应还日期Borrow_timefloat\无\7类别Book_classfloat\无\8预约人学号Order_numberfloat\无\表名:学生表序号字段中文名字段英文名类型空否默认值主键/外键1学号Numberfloat否无主键2班级Classfloat否无\3姓名Namefloat否无\4性别Sexchar否F\5已借图书数量Countint\无\6在借图书信息Borrowfloat\无\7超期图书信息Extendfloat\无\8预约图书信息Order_bookfloat\无\表名:缺书表序号字段中文名字段英文名类型空否默认值主键/外键1书名Book_namefloat否无主键2登记日期Book_timefloat否无\3出版社Press1float否无\4出版日期Time1date否无\四、源程序清单完毕人:1数据库连接(ModuleName)1.1描述(Description)实现数据库连接。1.2代码(Program)usingSystem;usingSystem.Data;usingSystem.Configuration;usingSystem.Web;usingSystem.Web.Security;usingSystem.Web.UI;usingSystem.Web.UI.WebControls;usingSystem.Web.UI.WebControls.WebParts;usingSystem.Web.UI.HtmlControls;usingSystem.Data.SqlClient;///<summary>///DataBase摘要阐明///</summary>publicclassDataBase:IDisposable{ publicDataBase() { // //TODO:在此处添加构造函数逻辑 // }privateSqlConnectioncon;//创立连接对象#region打开数据库连接///<summary>///打开数据库连接.///</summary>privatevoidOpen(){//打开数据库连接if(con==null){con=newSqlConnection(ConfigurationManager.AppSettings["ConnectionString"]);}if(con.State==System.Data.ConnectionState.Closed)con.Open();}#endregion#region关闭连接///<summary>///关闭数据库连接///</summary>publicvoidClose(){if(con!=null)con.Close();}#endregion#region释放数据库连接资源///<summary>///释放资源///</summary>publicvoidDispose(){//确认连接与否已经关闭if(con!=null){con.Dispose();con=null;}}#endregion#region传入参数并且转换为SqlParameter类型///<summary>///转换参数///</summary>///<paramname="ParamName">存储过程名称或命令文本</param>///<paramname="DbType">参数类型</param></param>///<paramname="Size">参数大小</param>///<paramname="Value">参数值</param>///<returns>新parameter对象</returns>publicSqlParameterMakeInParam(stringParamName,SqlDbTypeDbType,intSize,objectValue){returnMakeParam(ParamName,DbType,Size,ParameterDirection.Input,Value);}///<summary>///初始化参数值///</summary>///<paramname="ParamName">存储过程名称或命令文本</param>///<paramname="DbType">参数类型</param>///<paramname="Size">参数大小</param>///<paramname="Direction">参数方向</param>///<paramname="Value">参数值</param>///<returns>新parameter对象</returns>publicSqlParameterMakeParam(stringParamName,SqlDbTypeDbType,Int32Size,ParameterDirectionDirection,objectValue){SqlParameterparam;if(Size>0)param=newSqlParameter(ParamName,DbType,Size);elseparam=newSqlParameter(ParamName,DbType);param.Direction=Direction;if(!(Direction==ParameterDirection.Output&&Value==null))param.Value=Value;returnparam;}#endregion#region执行参数命令文本(无数据库中数据返回)///<summary>///执行命令///</summary>///<paramname="procName">命令文本</param>///<paramname="prams">参数对象</param>///<returns></returns>publicintRunProc(stringprocName,SqlParameter[]prams){SqlCommandcmd=CreateCommand(procName,prams);cmd.ExecuteNonQuery();this.Close();//得到执行成功返回值return(int)cmd.Parameters["ReturnValue"].Value;}///<summary>///直接执行SQL语句///</summary>///<paramname="procName">命令文本</param>///<returns></returns>publicintRunProc(stringprocName){this.Open();SqlCommandcmd=newSqlCommand(procName,con);cmd.ExecuteNonQuery();this.Close();return1;}#endregion#region执行参数命令文本(有返回值)///<summary>///执行查询命令文本,并且返回DataSet数据集///</summary>///<paramname="procName">命令文本</param>///<paramname="prams">参数对象</param>///<paramname="tbName">数据表名称</param>///<returns></returns>publicDataSetRunProcReturn(stringprocName,SqlParameter[]prams,stringtbName){SqlDataAdapterdap=CreateDataAdaper(procName,prams);DataSetds=newDataSet();dap.Fill(ds,tbName);this.Close();//得到执行成功返回值returnds;}///<summary>///执行命令文本,并且返回DataSet数据集///</summary>///<paramname="procName">命令文本</param>///<paramname="tbName">数据表名称</param>///<returns>DataSet</returns>publicDataSetRunProcReturn(stringprocName,stringtbName){SqlDataAdapterdap=CreateDataAdaper(procName,null);DataSetds=newDataSet();dap.Fill(ds,tbName);this.Close();//得到执行成功返回值returnds;}#endregion#region将命令文本添加到SqlDataAdapter///<summary>///创立一种SqlDataAdapter对象以此来执行命令文本///</summary>///<paramname="procName">命令文本</param>///<paramname="prams">参数对象</param>///<returns></returns>privateSqlDataAdapterCreateDataAdaper(stringprocName,SqlParameter[]prams){this.Open();SqlDataAdapterdap=newSqlDataAdapter(procName,con);dap.SelectCommand.CommandType=CommandType.Text;//执行类型:命令文本if(prams!=null){foreach(SqlParameterparameterinprams)dap.SelectCommand.Parameters.Add(parameter);}//加入返回参数dap.SelectCommand.Parameters.Add(newSqlParameter("ReturnValue",SqlDbType.Int,4,ParameterDirection.ReturnValue,false,0,0,string.Empty,DataRowVersion.Default,null));returndap;}#endregion#region将命令文本添加到SqlCommand///<summary>///创立一种SqlCommand对象以此来执行命令文本///</summary>///<paramname="procName">命令文本</param>///<paramname="prams"命令文本所需参数</param>///<returns>返回SqlCommand对象</returns>privateSqlCommandCreateCommand(stringprocName,SqlParameter[]prams){//确认打开连接this.Open();SqlCommandcmd=newSqlCommand(procName,con);cmd.CommandType=CommandType.Text;//执行类型:命令文本//依次把参数传入命令文本if(prams!=null){foreach(SqlParameterparameterinprams)cmd.Parameters.Add(parameter);}//加入返回参数cmd.Parameters.Add(newSqlParameter("ReturnValue",SqlDbType.Int,4,ParameterDirection.ReturnValue,false,0,0,string.Empty,DataRowVersion.Default,null));returncmd;}#endregion}}2读者信息(ModuleName)2.1描述(Description)读者信息编码实现2.2代码(Program)usingSystem;usingSystem.Data;usingSystem.Configuration;usingSystem.Web;usingSystem.Web.Security;usingSystem.Web.UI;usingSystem.Web.UI.WebControls;usingSystem.Web.UI.WebControls.WebParts;usingSystem.Web.UI.HtmlControls;usingSystem.Data.SqlClient;publicclassReaderManage{DataBasedata=newDataBase();privatestringid;privatestringname;privatestringsex;privatestringtype;privateDateTimebirthday=Convert.ToDateTime(DateTime.Now.ToShortDateString());privatestringpapertype;privatestringpapernum;privatestringtel;privatestringemail;privateDateTimecreatedate=Convert.ToDateTime(DateTime.Now.ToShortDateString());privatestringoperater;privatestringremark;privateintborrownum=0;privateintnum=0; publicReaderManage() { // //TODO:在此处添加构造函数逻辑 // }publicstringID{get{returnid;}set{id=value;}}publicstringName{get{returnname;}set{name=value;}}publicstringSex{get{returnsex;}set{sex=value;}}publicstringType{get{returntype;}set{type=value;}}publicDateTimeBirthday{get{returnbirthday;}set{birthday=value;}}publicstringPaperType{get{returnpapertype;}set{papertype=value;}}publicstringPaperNum{get{returnpapernum;}set{papernum=value;}}publicstringTel{get{returntel;}set{tel=value;}}publicstringEmail{get{returnemail;}set{email=value;}}///<summary>///级别日期///</summary>publicDateTimeCreateDate{get{returncreatedate;}set{createdate=value;}}publicstringOperater{get{returnoperater;}set{operater=value;}}publicstringRemark{get{returnremark;}set{remark=value;}}publicintBorrowNum{get{returnborrownum;}set{borrownum=value;}}publicintNum{get{returnnum;}set{num=value;}}publicstringGetReaderID(){DataSetds=GetAllReader("tb_reader");stringstr="";if(ds.Tables[0].Rows.Count==0)str="D1001";elsestr="D"+(Convert.ToInt32(ds.Tables[0].Rows[ds.Tables[0].Rows.Count-1][0].ToString().Substring(1,4))+1);returnstr;}publicintAddReader(ReaderManagereadermanage){SqlParameter[]prams={ data.MakeInParam("@id",SqlDbType.VarChar,30,readermanage.ID),data.MakeInParam("@name",SqlDbType.VarChar,50,readermanage.Name),data.MakeInParam("@sex",SqlDbType.Char,4,readermanage.Sex),data.MakeInParam("@type",SqlDbType.VarChar,50,readermanage.Type),data.MakeInParam("@birthday",SqlDbType.DateTime,8,readermanage.Birthday),data.MakeInParam("@papertype",SqlDbType.VarChar,20,readermanage.PaperType),data.MakeInParam("@papernum",SqlDbType.VarChar,30,readermanage.PaperNum),data.MakeInParam("@tel",SqlDbType.VarChar,20,readermanage.Tel),data.MakeInParam("@email",SqlDbType.VarChar,50,readermanage.Email),data.MakeInParam("@createdate",SqlDbType.DateTime,8,readermanage.CreateDate),data.MakeInParam("@operater",SqlDbType.VarChar,30,readermanage.Operater),data.MakeInParam("@remark",SqlDbType.VarChar,4000,readermanage.Remark), };return(data.RunProc("INSERTINTOtb_reader(id,name,sex,type,birthday,paperType,paperNum,tel,email,createDate,operater,remark)"+"VALUES(@id,@name,@sex,@type,@birthday,@papertype,@papernum,@tel,@email,@createdate,@operater,@remark)",prams));}publicintUpdateReader(ReaderManagereadermanage){SqlParameter[]prams={ data.MakeInParam("@id",SqlDbType.VarChar,30,readermanage.ID),data.MakeInParam("@name",SqlDbType.VarChar,50,readermanage.Name),data.MakeInParam("@sex",SqlDbType.Char,4,readermanage.Sex),data.MakeInParam("@type",SqlDbType.VarChar,50,readermanage.Type),data.MakeInParam("@birthday",SqlDbType.DateTime,8,readermanage.Birthday),data.MakeInParam("@papertype",SqlDbType.VarChar,20,readermanage.PaperType),data.MakeInParam("@papernum",SqlDbType.VarChar,30,readermanage.PaperNum),data.MakeInParam("@tel",SqlDbType.VarChar,20,readermanage.Tel),data.MakeInParam("@email",SqlDbType.VarChar,50,readermanage.Email),data.MakeInParam("@createdate",SqlDbType.DateTime,8,readermanage.CreateDate),data.MakeInParam("@operater",SqlDbType.VarChar,30,readermanage.Operater),data.MakeInParam("@remark",SqlDbType.VarChar,4000,readermanage.Remark), };return(data.RunProc("updatetb_readersetname=@name,sex=@sex,type=@type,birthday=@birthday,paperType=@papertype,paperNum=@papernum,"+"tel=@tel,email=@email,createDate=@createdate,operater=@operater,remark=@remarkwhereid=@id",prams));}publicintUpdateBorrowNum(ReaderManagereadermanage){SqlParameter[]prams={ data.MakeInParam("@id",SqlDbType.VarChar,30,readermanage.ID),data.MakeInParam("@borrownum",SqlDbType.Int,4,readermanage.BorrowNum),data.MakeInParam("@num",SqlDbType.Int,4,readermanage.Num), };return(data.RunProc("updatetb_readersetborrownum=@borrownum,num=@numwhereid=@id",prams));}publicintDeleteReader(ReaderManagereadermanage){SqlParameter[]prams={ data.MakeInParam("@id",SqlDbType.VarChar,30,readermanage.ID), };return(data.RunProc("deletefromtb_readerwhereid=@id",prams));}publicDataSetQueryReaderByCode(ReaderManagereadermanage,stringname){SqlParameter[]prams={ data.MakeInParam("@id",SqlDbType.VarChar,30,readermanage.ID+"%"), };return(data.RunProcReturn("select*fromtb_readerwhereidlike@id",prams,name));}publicDataSetQueryReaderByName(ReaderManagereadermanage,stringname){SqlParameter[]prams={ data.MakeInParam("@name",SqlDbType.VarChar,50,readermanage.Name+"%"), };return(data.RunProcReturn("select*fromtb_readerwherenamelike@name",prams,name));}publicDataSetQueryReaderByType(ReaderManagereadermanage,stringname){SqlParameter[]prams={ data.MakeInParam("@type",SqlDbType.VarChar,50,readermanage.Type+"%"), };return(data.RunProcReturn("select*fromtb_readerwheretypelike@type",prams,name));}publicDataSetGetAllReader(stringname){return(data.RunProcReturn("select*fromtb_readerORDERBYid",name));}publicDataSetReaderLogin(ReaderManagereadermanage){SqlParameter[]prams={data.MakeInParam("@id",SqlDbType.VarChar,30,readermanage.ID),data.MakeInParam("@name",SqlDbType.VarChar,50,readermanage.Name), };return(data.RunProcReturn("SELECT*FROMtb_readerWHERE(id=@id)AND(name=@name)",prams,"tb_reader"));}}3登陆系统(ModuleName)3.1描述(Description)登陆系统实现编码。3.2代码(Program)usingSystem;usingSystem.Data;usingSystem.Configuration;usingSystem.Web;usingSystem.Web.Security;usingSystem.Web.UI;usingSystem.Web.UI.WebControls;usingSystem.Web.UI.WebControls.WebParts;usingSystem.Web.UI.HtmlControls;usingSystem.Data.SqlClient;publicclassAdminManage{privatestringid;privatestringname;privatestringpwd; publicAdminManage() { // //TODO:在此处添加构造函数逻辑 //}DataBasedata=newDataBase();publicstringID{get{returnid;}set{id=value;}}publicstringName{get{returnname;}set{name=value;}}publicstringPwd{get{returnpwd;}set{pwd=value;}}publicstringGetAdminID(){DataSetds=GetAdmin("tb_admin");stringstr="";if(ds.Tables[0].Rows.Count==0)str="G1001";elsestr="G"+(Convert.ToInt32(ds.Tables[0].Rows[ds.Tables[0].Rows.Count-1][0].ToString().Substring(1,4))+1);returnstr;}publicintAddAdmin(AdminManageadminM){SqlParameter[]prams={ data.MakeInParam("@id",SqlDbType.VarChar,50,adminM.ID),data.MakeInParam("@name",SqlDbType.VarChar,50,adminM.Name),data.MakeInParam("@pwd",SqlDbType.VarChar,30,adminM.Pwd), };return(data.RunProc("INSERTINTOtb_admin(id,name,pwd)VALUES(@id,@name,@pwd)",prams));}publicintUpdateAdmin(AdminManageadminM){SqlParameter[]prams={data.MakeInParam("@name",SqlDbType.VarChar,50,adminM.Name),data.MakeInParam("@pwd",SqlDbType.VarChar,30,adminM.Pwd), };return(data.RunProc("updatetb_adminsetpwd=@pwdwherename=@name",prams));}publicintDeleteAdmin(AdminManageadminM){SqlParameter[]prams={ data.MakeInParam("@name",SqlDbType.VarChar,50,adminM.Name), };return(data.RunProc("deletefromtb_adminwherename=@name",prams));}publicDataSetLogin(AdminManageadminM){SqlParameter[]prams={data.MakeInParam("@name",SqlDbType.VarChar,50,adminM.Name),data.MakeInParam("@pwd",SqlDbType.VarChar,30,adminM.Pwd), };return(data.RunProcReturn("SELECT*FROMtb_adminWHERE(name=@name)AND(pwd=@pwd)",prams,"tb_admin"));}publicDataSetGetAllAdminByName(AdminManageadminM,stringtbName){SqlParameter[]prams={ data.MakeInParam("@name",SqlDbType.VarChar,50,adminM.Name+"%"), };return(data.RunProcReturn("select*fromtb_adminwherenamelike@name",prams,tbName));}publicDataSetGetAdmin(stringtbName){return(data.RunProcReturn("select*fromtb_adminORDERBYid",tbName));}}四、测试报告完毕人:1.概述(Summary)1.1项目简介(ProjectSynopsis)该项目为简朴管理系统,重要实现图书借还解决,以及图书馆内有关图书管理工作。目的是实现读者借还书信息化,并且运用Internet网络实现读者与图书馆之间互动和图书馆人性化管理。1.2术语定义(TermsGlossary)需求分析:在建立一种新或变化一种现存电脑系统时描写新系统目、范畴、定义和功能时所要做所有工作。系统设计:设计数据库构造以及设计模块控制流程,明确软件系统"如何做"。需求规格阐明书:经可行性研究后,对规定解问题重新进行描述,使之更能精确地反映实际业务流程,导出并评价可供选取解法,推荐行动方针。系统设计阐明书:阐明对程序系统设计考虑,涉及程序系统基本解决流程、程序系统组织构造、模块划分、功能分派、接口设计、运营设计、数据构造设计和出错解决设计等,为程序详细设计提供基本。设计规格阐明书:在进行系统分析后,对整体设计把握体现,涉及各种设计参数定义,以及设计元素、风格确立等。出库表:存储已销售书籍数据。入库表:存储入库书籍数据。购书表:存储提交购书信息。缺书登记表:存储缺少书籍信息。1.3参照资料(References)[1]《需求规格阐明书》[2]《设计规格阐明书》[3]《顾客需求报告》[4]《设计命名规范
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 拖拉机购买合同范本
- 购买红旗车合同范本
- 电视购买合同协议书
- 非洲土地购买合同
- 甲方乙方购买合同
- 防爆风扇购买合同
- 剪刀升降车购买合同
- 计量软件购买合同
- 水泥外加剂购买合同
- 小型美甲机购买合同
- 人教版三年级数学下册《周长》教学设计(表格式)
- 2025陕煤电力略阳有限公司高校毕业生招聘10人笔试历年典型考点题库附带答案详解
- 2026年宗教教职人员管理知识试题
- Unit6CoolclothesGetreadyStartup(课件)-外研版英语四年级下册
- 2026中考道法万能答题模版
- 2025年湖南省高中学业水平合格性考试英语卷试题(含答案)
- 医院样本外送检测管理制度
- 2025至2030中国岩土和结构监测仪器行业市场深度研究与战略咨询分析报告
- 院前急救与院内救治应急演练方案(绕急诊)
- “十五五规划纲要”解读:文化产业高质量发展
- 天狗郭沫若赏析课件
评论
0/150
提交评论