软件工程实验样本_第1页
软件工程实验样本_第2页
软件工程实验样本_第3页
软件工程实验样本_第4页
软件工程实验样本_第5页
已阅读5页,还剩61页未读 继续免费阅读

下载本文档

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

文档简介

资料内容仅供您学习参考,如有不当或者侵权,请联系改正或者删除。北方工业大学软件工程课程实验实验报告题目:小型图书馆图书信息管理系统专业:班级:组:组长:成员:指导教师:完成日期: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

温馨提示

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

评论

0/150

提交评论