软件工程系统设计样本_第1页
软件工程系统设计样本_第2页
软件工程系统设计样本_第3页
软件工程系统设计样本_第4页
软件工程系统设计样本_第5页
已阅读5页,还剩47页未读 继续免费阅读

下载本文档

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

文档简介

软件工程系统设计一、实验目掌握软件体系构造模型;掌握使用过程设计工具描述模块数据构造和算法;理解人机界面设计;掌握概要设计阐明书和详细设计阐明书撰写二、实验原理—概要设计⑴软件概要设计基本要点基本目是用比较抽象概括方式拟定系统如何完毕预定任务,拟定系统物理配备方案,拟定系统构造。⑵系统分析与设计关系系统分析基本任务是定义顾客所需要软件任务,也就是回答系统必要“做什么”这个问题。系统设计基本任务是设计实现目的系统详细方案,也就是回答“如何做”这个问题。二、实验原理—详细设计⑴软件详细设计基本要点核心任务是拟定如何详细地实现顾客需要软件系统。除了保证软件可靠性之外,使程序可读性好、容易理解、容易测试、容易修改和维护。构造化程序设计技术是实现上述目的基本保证,是进行详细设计逻辑基本。人机界面设计是接口设计一种重要构成某些。在设计人机界面过程中,必要充分注重并认真解决好系统响应时间、顾客协助设施、出错信息解决和命令交互等4个设计问题。过程设计在数据设计、体系构造设计和接口设计完毕之后进行,任务是设计算法。过程设计工具可分为图形、表格和语言3类,应依照需要选用恰当工具。⑵人机界面设计人机界面设计质量,直接影响顾客对软件产品评价。人机界面设计是接口设计一种重要构成某些。对于交互式系统来说,人机界面设计和数据设计、体系构造设计及过程设计同样重要。使用基于原型系统化设计方略,是成功地设计人机界面核心。顾客界面设计是一种迭代过程,也就是说,普通先创立设计模型,再用原型实现这个设计模型,并由顾客试用和评估,然后依照顾客意见进行修改,直到顾客满意为止。⑶过程设计过程设计任务是要设计出程序“蓝图”,后来程序员将依照这个蓝图写出实际程序代码。过程设计成果基本上决定了最后程序代码质量。衡量程序质量不但要看它逻辑与否对的,性能与否满足规定,更重要是要看它与否容易阅读和理解。过程设计目的不但仅是正的确现每个模块功能,更重要是尽量简要易懂。构造程序设计技术是实现上述目的核心技术。⑷过程设计工具描述程序解决过程工具称为过程设计工具,它们可以分为图形、表格和语言三类。无论是哪类工具,对它们基本规定都是要提供对设计无歧义描述,也就是应当指明控制流程、解决功能、数据组织以及其她方面实现细节,从而在编码阶段能把对设计描述直接翻译成程序代码。此类工具应当尽量直观、易学、易懂。三、实验内容与环节软件体系构造模型模块过程设计与界面设计撰写系统设计阐明书图书馆管理系统C.概要设计阐明书一、引言1.1编写目为完善图书管理系统软件开发途径及应用办法,以提高开发效率,使应用更为以便。依照《需求规格阐明书》,在仔细考虑讨论之后,咱们又进一步对《图书管理系统》软件功能划分、数据构造、软件总体构造有了进一步结识。咱们把讨论成果记录下来,作为概要设计阐明书,并作为进一步详细设计软件基本。1.2背景阐明:待开发软件系统名称:图书管理系统列出此项目任务提出者是本小构成员,开发者也为本小构成员、顾客是学校图书馆。1.3定义开发(develop):除了单纯开发活动外,还涉及维护活动。项目(project):向顾客交付最后所有产品,涉及程序及各种文档,以及开发活动所需资源经费等各种信息。项目开发筹划(projectdevelopmentplan):把项目与过程联系起来筹划方案。产品生命周期(productlifecycle):产品从构思到不可在使用持续时间。1.4参照资料《软件工程导论》——张海藩编著清华大学出版社《数据库系统概论》——萨师煊王珊编著高等教诲出版社《VisualBasic数据库系统开发实例导航(第二版)》——刘韬骆娟何旭洪编著人民邮电出版社《C#程序设计教程》——曾强聪编著中华人民共和国水利水电出版社二总体设计2.1需求规定重要输入输出项目:图书信息:(图书编号、图书名称、图书ISBN号、作者、出版社、类型、价格、库存量、副本总量、图书总数)学生信息:(学生编号、学生姓名、性别、入校时间、毕业时间)借书登记:(借书编号、学生编号、结束时间、归还时间、与否归还)还书登记:(图书编号、图书名称、归还时间、作者、出版社、2.2运营环境硬件环境:PC机配备:奔腾133、内存1GB以上PC机,内存规定不得低于1GB,硬盘不不大于20GPC台式机和便携式电脑;软件环境:Windows\XPSQLServerC#2.3基本设计概念和解决流程该系统主程序流程图如下图所示:2.4功能需求与程序关系本条用一张如下矩阵图阐明各项功能需求实现同各块程序分派关系:创立查找修改删除图书信息管理(管理员)√√√√学生信息管理(管理员)√√√√学生信息查询(学生)√查询图书信息(学生)√归还图书(管理员)√√√√借阅图书(管理员)√√√√2.5人工解决过程管理员登录:图书管理员需要手动输入登录信息验证身份登录系统后方能进行操作。图书入库:对于新购图书,管理员需要手动对其进行分类进行编号,并把图书基本信息录入计算机。修改图书信息:学生借阅图书时,管理员需要对该图书进行登记,记录被借阅图书信息和学生信息。当学生归还图书时,同样需要对图书信息进行修改。三接口设计3.1顾客接口向顾客提供命令软件回答相应信息操作员登记添加顾客学生登记添加学生信息学生查询学生信息查询图书登记管理员登记图书信息借阅登记管理员登记学生借阅信息借阅查询管理员查询学生借阅状况3.2外部接口接口传递信息软件接口:与数据库接口图书信息学生信息3.3内部接口接口传递信息图书信息管理录入图书信息:(图书编号、图书名称、图书ISBN号、作者、出版社、类型、价格、库存量、副本总量、图书总数)图书信息管理修改图书信息:(图书编号、图书名称、图书ISBN号、作者、出版社、类型、价格、库存量、副本总量、图书总数)学生信息管理添加学生信息:(学生编号、学生姓名、性别、入校时间、毕业时间)学生信息管理修改学生信息:(学生编号、学生姓名、性别、入校时间、毕业时间)借书登记登记借阅图书以及学生信息借书登记:(借书编号、学生编号、结束时间、归还时间、与否归还)还书登记修改借书登记信息还书登记:(图书编号、图书名称、归还时间、作者、出版社、)四运营设计4.1运营模块组合对系统施加不同外界运营控制时所引起各种不同运营模块组合,以及每种运营所历经内部模块和支持软件。4.2运营控制运营控制控制办法学生信息管理管理员对学生信心进行管理,涉及增长学生顾客,修改顾客信息,以及删除学生信息学生信息查询顾客可以对学生信息进行查询图书信息登记录入新图书信息,以及对已有图书各项信息进行修改,查询,删除等图书信息查询顾客对所要借阅图书信息进行查询借阅登记管理员登记学生所借图书以及学生本人信息借阅查询管理员对学生或者所相应图书信息进行查询4.3运营时间检索任务所需时间:<3秒执行任务所需时间:<3秒五系统数据构造设计5.1逻辑构造设计要点1.图书信息表(tBook),其字段列表如表5-1-1所示。表5-1-1图书信息表构造序号字段名称字段阐明类型位数属性备注1cBooksID图书编号文本7必要非空2cBooksName图书名称文本20必要非空3cBooksISBN图书ISBN号文本15可为空4cBooksAuthor图书作者文本10可为空5cBooksPublisher图书出版社文本20可为空6cBooksType图书类型文本16可为空7smBooksPrice图书价格货币可为空8iBooksStoreQuan图书库存量整数可为空9iBooksLeftQuant图书副本数量整数可为空10iBooksTotalQuan图书总数整数可为空2.图书借阅登记表(tBorrow),其字段列表如表5-1-2所示。表5-1-2图书借阅登记表构造序号字段名称字段阐明类型位数属性备注1cBorrowID借书编号文本6必要非空2cVipID学生编号文本6必要非空3cBooksID图书编号文本7必要非空4cBorrwTime借书时间时间日期可为空5cReturnTime还书时间时间日期可为空6cReturn与否归还文本1可为空3.图书归还登记表(tReturn),其字段列表如表5-1-3所示。表5-1-3图书归还登记表构造序号字段名称字段阐明类型位数属性备注1cBorrowID借书编号文本6必要非空2cVipID学生编号文本6必要非空3cBooksID图书编号文本7必要非空4cBorrwTime借书时间时间日期可为空5cReturnTime还书时间时间日期必要非空6cReturn与否归还文本1必要非空7cNoReturn归还异常文本8可为空4.学生信息表(tVip),其字段列表如表5-1-4所示。表5-1-4学生信息表构造序号字段名称字段阐明类型位数属性备注1cVipID学生编号文本6必要非空2cVipName学生姓名文本10必要非空4cVipSex学生性别文本1可为空5vipAddTime学生入学时间时间日期必要非空6vipEndTime学生毕业时间时间日期必要非空5.管理员信息表(tOperators),其字段列表如表5-1-5所示。表5-1-5管理员信息表构造序号字段名称字段阐明类型位数属性备注1cOperatorID管理员编号文本5必要非空2cOperatorName管理员姓名文本10必要非空3cOperatorPassword密码文本6必要非空4cOperatorAddTime管理员加入时间时间日期10必要非空5.2数据构造与程序关系主模块:连接数据库学生管理模块:学生信息管理模块:管理员输入帐号密码进入系统后可以对学生信息进行管理,涉及修改,插入,删除等。学生信息查询模块:管理员可以对学生信息进行查询,学生输入学生账号密码后,成功登陆后,学生可以对其信息进行查询,输入学生编号后,相应输出学生姓名,性别,入校时间,毕业时间等。图书管理模块:图书信息登记模块:管理员对图书信息进行登记,输入相应图书信息,如图书书名,作者,出版社。单价等信息。图书信息查询模块:学生和管理员都可以进行此操作,通过查询数据库,匹配要查找图书信息,涉及读入图书号,图书作者,图书出版社,图书单价等基本信息。借阅管理模块:借阅登记模块:管理员对图书借阅状况进行登记,记录借书者学生编号,学生姓名等学生信息以及图书编号,图书名称,作者,出版社等图书信息,并修改图书状态。借阅查询模块:管理员和学生都可以对图书借阅状况进行查询,输入读者号,相应输出学生姓名,性别,入校时间,毕业时间。输入图书号,相应输出图书书名,图书作者,图书出版社,图书单价,图书状态。归还管理模块:读入图书编号,相应输出借书登记表中学生编号,借书时间,应归还时间等,修改图书状态,删除借书登记表中学生编号,图书编号,借书时间等信息。六系统出错解决设计6.1出错信息出错位置出错因素提示信息顾客名输入数据库中不存在顾客名Youareanotsystemuser顾客名密码输入密码不对的Passworderoor,pleasecheckyourpasswprd添加顾客输入已存在顾客信息顾客已存在添加信息添加信息必填信息不完整信息必要完整普通顾客操作权限使用管理员你没有该权限出错信息解决:学生或管理人员输入帐号和密码不匹配或输入不存在帐号,系统应和谐进行提示,如提示"您输入帐号或密码错误,请重新输入!"6.2补救办法故障浮现后也许采用变通办法,涉及:后备技术阐明准备采用后备技术,当原始系统数据万一丢失时启用副本建立和启动技术,例如周期性地把磁盘信息记录到磁带上去就是对于磁盘媒体一种后备技术;降效技术阐明准备采用后备技术,使用另一种效率稍低系统或办法来求得所需成果某些某些,例如一种自动系统降效技术可以是手工操作和数据人工记录;恢复及再启动技术阐明将使用恢复再启动技术,使软件从故障点恢复执行或使软件从头开始重新运营办法。图书管理系统D.详细设计阐明1.1编写目图书管理系统详细设计是设计第三个阶段,这个阶段重要任务是在图书管理系统概要设计书基本上,对概要设计中产生功能模块进行过程描述,设计功能模块内部细节,涉及算法和详细数据构造,为编写源代码提供必要阐明。概要设计解决了软件系统总体构造设计问题,涉及整个软件系统构造、模块划分、模块功能和模块间联系等。详细设计则要解决如何实现各个模块内部功能,即模块设计。详细说,模块设计就是要为已经产生图书管理各子系统设计详细算法。但这并不等同于系统实现阶段用品体语言编码,它只是对实现细节作精准描述,这样编码阶段就可以将详细设计中对功能实现描述,直接翻译、转化为用某种程序设计语言书写程序。1.2项目背景为提高图书信息管理,借阅管理,查询管理,记录及工作效率,予以顾客规定开发《图书管理系统》1.3定义SQL:数据库C#:开发工具2总体设计2.1需求概述按照需求分析文档中规格规定,使用给定图书编号添加进书、借书、还书等等,使得信息传递精确、流畅。同步,系统最大限度地实现易安装,易维护性,易操作性,运营稳定,安全可靠。2.2软件构造模块(软件总体构造细化)3程序界面和代码描述3.1.1登录模块设计登陆界面是图书管理管理系统运营后一方面打开界面。在这个界面,顾客必要输入预先设定好顾客名以及密码才干进入,这样有助于防止她人在没有授权状况下进入系统。1功能阐明:顾客输入登录帐号和密码,连接数据库进入到操作界面。2流程图:需要问题阐明:录入密码和顾客名不能为空;录入数据后依照顾客编号判断授权。登录界面如图所示:问题阐明:本窗体有两个文本框textBoxIP,textBoxpassword是用作顾客输入顾客名和密码。查询该顾客与否为合法顾客,并判断顾客类别和权限。合法顾客进入系统操作界面区。pub.dataSql()为连接数据库办法函数,后来就不在解说sqlselsect="select*fromMain_viewwhere登陆编号='";sqlcon=newSqlConnection(pub.dataSql());//连接数据库sqlcon.Open();logincon=newSqlCommand(sqlselsect+textBoxIP.Text.Trim()+"'",sqlcon);loginer=logincon.ExecuteReader();while(loginer.HasRows){loginer.Read();if((textBoxpassword.Text).Equals(loginer.GetString(1).Trim())){guanliindexguan=newguanliindex();guan.Show();return;}else{MessageBox.Show("密码错误!");textBoxpassword.Text="";textBoxpassword.Focus();return;}}sqlcon.Close();MessageBox.Show("无此顾客名,请注册后再登陆");当顾客没有无填写textBoxIP,textBoxpassword两个文本框时而点击登录按钮将不做任何操作。图书管理系统模块(系统主操作界面)管理系统模块是顾客成功进入系统操作界面:该界面涉及了读者下拉菜单、管理员下拉菜单和一种工具栏。该窗体使用是MDI容器,在这里不在阐明怎么调用各个窗体。MDI容器防止相似子窗体重复浮现解决办法是:构造一种checkChildFrmExist函数:privateboolcheckChildFrmExist(stringchildFrmName){for(inti=0;i<this.MdiChildren.Length;i++){if(this.MdiChildren[i].Text==childFrmName){this.MdiChildren[i].Activate();returntrue;}}returnfalse;}这个函数会把显示每个子窗体名字存储在一种数组里面,在连接一种新子窗体时先判断该窗体与否以显示(MdiChildren[i]里与否存在这个窗体名字),如果该窗体已经显示就不用再弹出该窗体否则就弹出该子窗体。最后依照顾客权限显示相应下拉列名。权限是依照顾客登录时从数据库里面读取数据和顾客登录编号等数据传入到系统操作界面当中,进行相应解决。依照传入数据显示相应下拉列表:if(public_Class.NU=="1"){this.toolStrip_Xiaoxi.Text="读者编号:"+public_Class.NumID.ToString();this.menuStrip2.Visible=true;//读者下拉菜单this.menuStrip1.Visible=false;}elseif(public_Class.NU=="2"){this.toolStrip_Xiaoxi.Text="操作员编号:"+public_Class.NumID.ToString();this.menuStrip1.Visible=true;//操作员下来菜单this.menuStrip2.Visible=false;}图书编目模块(书籍信息管理)该模块是给管理员或者操作员用。功能是管理员用作添加、修改、删除有关信息模块。实现该模块一方面是要把要维护图书存储表查询出来。然后给据文本框一一相应相应添加。本窗体共有7个文本框1个下拉框和两个时间框,她们分别和(图书表)各个列相相应。功能流程图如下所示:需要问题阐明:操作员填写有关信息必要符合规定。可以一次性添加多条图书信息。点击工具栏上面添加按钮,并没有把顾客所输入数据添加到数据库里,只是把它放在内存里面。最后要点击保存按钮。只要没有弹出“添加成功”信息提示框,表白没有添加成功。功能描述:功能类型:添加数据,功能概述:添加图书有关信息,操作简朴。操作权限:图书管理人员。前提业务:管理模块后继业务:无界面设计描述:1动作阐明:添加:是文本框内容添加到内存表里面。取消操作:放弃添加内容保存:把一添加内容保存到熟数据库里退出:点击按钮,退出该窗体2界面展示如下图:连接数据库,查询图书表中信息,把查询成果放在DataSet()里面,并取名映射表白为(Table0)。添加图书代码:DataRowdata=Dataset.Tables["Table0"].NewRow();//添加一种新行data["图书编号"]=AddBookID.Text;data["图书名"]=AddBookName.Text;data["作者"]=AddBookZuozhe.Text;data["出版社"]=AddBookShe.Text;data["类编号"]=Btun;data["出版日期"]=dateTimePicker1.Text;data["上架时间"]=dateTime.Text;data["价格"]=AddBookjiage.Text;data["上架编号"]=AddBookjiaNum.Text;data["与否借出"]=AddBookYesNo.Text;data["备注"]=AddBookbeizhu.Text;Dataset.Tables["Table0"].Rows.Add(data);这段代码是把文本框内容添加到Table0表里面还没有保存到数据库里面。ddlStoreName下拉框是为吧图书类别类别添加到下拉列表中:SqlConnectioncon=newSqlConnection();con.Open();SqlCommandcmd=newSqlCommand("select类名称fromBookship",con);SqlDataReadersdr=cmd.ExecuteReader();while(sdr.Read()){ddlStoreName.Items.Add(sdr.GetString(0));}sdr.Close();con.Close();维护图书办法与上面有相似一处,进行数据网格绑定。在这里不一一简介。最后保存添加以上内容,填写信息必要符合有关规定如果浮现填写错误:就提示一下信息如果是保存到数据库成功就提示成功操作。(注意:添加读者信息功能相似)读者编目模块(读者信息管理维护)该模块功能就是添加顾客,修护读者信息;该模块功能与上面模块功能代码相识。在这里解说读者信息维护功能实现:该窗体具有一种toolStrip工具栏(定位,修改,删除等按钮)流程图:改流程图与图书编目模块相识。需要问题阐明:(1)操作员填写读者有关信息必要符合规定。(2)可以一次性修改多条图书信息。(3)点击工具栏上面修改按钮,并没有把顾客所修改数据添加到数据库里,只是把它放在内存里面。最后要点击保存按钮。(4)只要没有弹出“修改成功”信息提示框,表白没有修改该数据。功能描述:功能类型:修改数据和查询数据功能概述:修改文本框里内容,更新读者信息表文献信息前提业务:管理模块后续业务:无权限操作:图书管理人员界面设计描述:1操作阐明(1)定位按钮:4个定位按钮可以迅速定位到操作员所要维护人员(2)文本框:录入读者编号吧相应读者信息定位显示出来(3)修改:点击按钮式把修改后数据添加到内存表里面(4)删除:点击按钮把当前读者从内存表里删除(5)取消操作:放弃对该读者信息修改(6)保存:把修改后数据保存到数据库里面(7)退出:点击按钮,退出该窗体2界面展示如下图所示:思想:先要把被修改读者所有信息提取出来,方放进相应为本框中,在选定文本框,修改文本框里内容。///数据绑定网格功能text_ID.DataBindings.Add("Text",Dataset,"Table.读者编号");text_name.DataBindings.Add("Text",Dataset,"Table.姓名");text_sex.DataBindings.Add("Text",Dataset,"Table.性别");text_phone.DataBindings.Add("Text",Dataset,"Table.联系电话");text_work.DataBindings.Add("Text",Dataset,"Table.工作单位");text_home.DataBindings.Add("Text",Dataset,"Table.住址");text_number.DataBindings.Add("Text",Dataset,"Table.证件号码");text_time.DataBindings.Add("Text",Dataset,"Table.登记日期");text_ZT.DataBindings.Add("Text",Dataset,"Table.读者状态");bangD=this.BindingContext[Dataset,"Table"];///修改功能bangD.EndCurrentEdit();///删除功能bangD.RemoveAt(bangD.Position);//取消操作Dataset.RejectChanges();同样:这段代码是把文本框内容添加到Table0表里面还没有保存到数据库里面。最后调用SqlDa.Update(Dataset,"Table");办法图书借阅模块这个模块功能就是读者借书。借书规定就是1每个读者按照自己级别查询出最多借书数量,如果有超期没有归还图书,则不能借书;如果超过借书数量则不能借,如果图书已经被借出则不能借阅。该模块具有两个文本框textbookID,textReadID用来写入读者编号和图书编号和一种拟定借书按钮,dataGridView用来显示读者要借书籍,操作员只需要有鼠标点击dataGridView上面网格就为读者借阅图书。为了代码精简,本系统采用借书存储过程(数据构造设计背面将详细解说)流程图:需要问题阐明:(1)在读者进行借阅图书时,先依照读者编号查询该读者借阅状况;如果该读者借书数量已满则不能再借,如果具有过期图书未归还则回绝借阅。(2)如果该图书已经被借出,弹出相应提示。(3)可以一次性借阅多本图书,接过出书做好标记。功能描述:功能类型:修改数据、查询数据、添加数据功能描述:更新学生借阅文献(表),图书信息文献(表)前提业务:管理模块后续业务:无操作权限:图书管理人员界面设计描述:操作阐明:管理员依照读者编号和图书编号查询有关信息。读者借阅数量,与否有借书未归还历史。图书与否借出。拟定借书按钮:点击此按钮并提示:借阅与否成功推出按钮:退出当前窗体界面展示如下图:借书功能精简代码如下:sqlcommand=newSqlCommand();sqlcommand.CommandType=CommandType.StoredProcedure;sqlcommand.Connection=sqlcon;sqlcommand.CommandText="qq11";//储存过程SqlParameterbookID=newSqlParameter("@BookID",Convert.ToInt32(textbookID.Text));SqlParameterreadID=newSqlParameter("@ReaderID",Convert.ToInt32(textReadID.Text));SqlParameterBookxix=newSqlParameter("@Bookxinxi",SqlDbType.VarChar,100);Bookxix.Direction=ParameterDirection.Output;sqlcommand.Parameters.Add(bookID);sqlcommand.Parameters.Add(readID);sqlcommand.Parameters.Add(Bookxix);sqlcon.Open();sqlcommand.ExecuteNonQuery();sqlcon.Close();MessageBox.Show(Bookxix.Value.ToString());该代码为借书功能代码,并尚有输出参数。如果借书没有成功因素弹出如下图所示提示:如果有过期未还图书,借书不成功,弹出如下信息如下图所示:如果借书数量已满或者借书成功也会弹出相应提示框。(流程图见概要设计)图书归还模块该模块是为读者归还图书。归还图书思想:归还读书前要查询该顾客与否借阅超期,如果已经超期就要依照读者类型查询出罚金公式和计算出超期天数及罚金总金额;并把罚金有关信息存储起来;如果没有超期就正常归还。该模块具有两个文本框textbookID,textReadID用来写入读者编号和图书编号和一种拟定归还按钮,dataGridView用来显示读者已经借书籍,操作员只需要有鼠标点击dataGridView上面网格就为读者要归还阅图书。textBox1_newmoney为本框时输入读者罚金金额。流程图如下:需要问题阐明:依照该读者归还图书编号查询该读者与否借阅超期,如果超期结算处超期金额。依照读者编号,查询读者所借阅图书信息,并显示在dataGridView表格里。用鼠标点击归还图书。更新历史借书表功能描述:功能类型:修改数据,添加数据信息功能概述:完毕读者还书业务并计算出超期天数和罚金金额,如果没有超期,就不用计算。前提业务:管理模块后继业务:无操作权限:图书管理人员界面设计描述:操作阐明:输入读者编号查询该读者当前借阅历史,动鼠标点击读者要归还图书。系统自动计算借阅与否超期和罚金金额。读者借阅超期,借提示下面消息框如有罚金,并输入罚金金额和备注信息拟定归还:归还图书按钮推出按钮:推出该窗体界面展示如下图所示:超期罚金提示框如下图所示计算超期罚金代码函数:privatedecimalcalPenalty(DateTimerTime,doublemoney){//计算过期天数intoverDays=365*(System.DateTime.Now.Year-rTime.Year)+System.DateTime.Now.DayOfYear-rTime.DayOfYear;//依照过期天数计算罚金decimalfee=(decimal)money*overDays;return(fee);}归还图书也是采用存储过程下面数据设计将详细简介。图书查询模块该模块给管理员和读者都能使用模块。可以迅速查询到每本书有关信息(与否被借阅、简介)等等。多功能查询,可以依照图书编号查询、依照作者查询、依照图书名查询、依照出版社查询等等。图书查询流程图为

需要问题阐明:查询:可以查询所有图书和未借阅图书范畴精准查询:可以按照图书编号、图书名称、作者、出版社查询图书。查询成果集放在dataGridView输入信息对的进行是模糊精准匹配(读者)可以查询自己借书历史、热门图书查询、新书查询(管理员)可以查询所有顾客借书历史、热门图书、新书查询。功能描述:功能类型:查询数据功能概述:显示查询成果集前提业务:无后继业务:无操作权限:面向所有顾客界面设计描述:操作阐明:单选按钮:顾客选取查询图书范畴(分为所有图书和未接图书,默以为所有图书)下拉列表:顾客选取查询图书方式(图书编号、图书名称、出版社、作者)下拉列表:顾客选取图书类型录入文本框:顾客查询录入有关信息界面展示如下图所示:查询如下:一方面是把所有图书查询出来放入到内存中再依照内存中表查询出来放入到dataGridView中。SqlDa=newSqlDataAdapter(sql,sqlcon);SqlCommandBuilderScomdB=newSqlCommandBuilder(SqlDa);Dataset=newDataSet();SqlDa.Fill(Dataset,"Table");DataViewdv_book=Dataset.Tables["Table"].DefaultView;switch(comboBox2.SelectedItem.ToString()){case"图书编号":dv_book.RowFilter="图书编号like'"+textBox1.Text+"%'";break;case"图书名":dv_book.RowFilter="图书名like'"+textBox1.Text+"%'";break;case"作者":dv_book.RowFilter="作者like'"+textBox1.Text+"%'";break;case"出版社":dv_book.RowFilter="出版社like'"+textBox1.Text+"%'";break;default:dv_book.RowFilter="";break;}管理员进行读者查询模块管理员可以查询该模块查询读者有关信息(除读者密码),例如(联系方式)。该模块于图书查询模块基本相识流程图如下需要问题阐明:条件是按顾客编号进行查询。本窗体采用是网格布局dataGridView;管理员依照顾客编号查询读者有关信息和预览所有读者信息。采用是分页操作不可显示顾客密码。功能阐明描述:功能类型:查询数据功能概述:显示查询数据构造前提业务:管理模块后继业务:无操作权限:图书管理人员界面设计描述:操作阐明:文本框:录入查询信息规定,条件是安读者编号进行查询拟定按钮:保存录入读者信息推出按钮:退出操作界面有关代码在这里不在做有关简介简介。读者自己信息维护模块这个模块是只是针对读者用用来是读者修改自己密码信息;在顾客修改自己密码需要2次输入新密码,判断与否输入始终,否则修改不成功。需要阐明:修改密码时要两次输入新密码和旧密码两次输入密码必要一致密码长度必要不不大于6位功能描述:功能类型:修改数据功能概述:修改顾客或者管理员密码前提业务:管理系统后继业务:无操作权限:面向所有顾客(只能修改自己密码)界面设计描述:操作阐明:为本框:录入密码信息拟定修改按钮:信息保存到数据库。窗体界面如下图所示:修改基本操作代码如下:if((textBox2.Text.Trim())!=(textBox3.Text.Trim())){MessageBox.Show("你密码输入不一致");return;}if(textBox3.Text.Length<6){MessageBox.Show("密码过短,请输入不不大于6位数字密码");return;}try{sqlcon.Open();SqlCommandscd=newSqlCommand("updateReadPassword_viewset密码='"+textBox2.Text.Trim()+"'where读者编号='"+public_Class.NumID+"'",sqlcon);intres=scd.ExecuteNonQuery();strings=res>0?"操作成功!":"找不到该顾客";MessageBox.Show(s);}catch(Exceptionex){MessageBox.Show("操作失败,请检查网络连接与否正常!");}finally{if(sqlcon.State==ConnectionState.Open)sqlcon.Close();}如果顾客输入密码2次不一致或者密码输入过简朴,这不容许该顾客修改并弹出一下信息提示:如果操作成功也弹出修改成功提示:密码修改成功。(管理员密码修改于读者始终后来不在阐明)读书类型和读书类型设立模块模读者类型和图书分类操作功能是:修改、添加、删除读者分类或者图书分类设立,分别是放在两个窗体当中。流程图和代码编写与读者编目有许多相识之处,因此不在解说。记录模块该模块作用是分别记录,记录出本年借阅信息、热门图书信息,历史支出与收支金额信息。A本年度借阅信息设计:需要阐明:1这个记录功能是依照借阅历史表和图书信息表里有关信息记录出来,条件是今年以内。2记录出信息有:今年购书图书总数、外借图书总数、购买图书总支出、预测罚款总收入、实际罚款总收入、超期归还总数、超期未归还总数。3记录思想:采用数据库存储过程记录(Stat_nowyear)。功能描述:1功能类型:查询数据2功能概述:记录显示有关信息3操作权限:图书管理员界面设计描述:1操作阐明:2界面展示如下图所示:B热门图书记录设计(具有打印功能):需要阐明:1这个子模块功能是记录今年最佳最热门图书所有信息。条件是今年。2记录出信息有:图书所有信息。3记录思想:采用数据库试图,依照每本书被借次数安降序排列。4记录出来信息放入到dataGridView里面;并却可以支持打印出表格数据。功能阐明描述:1功能类型:查询数据2功能概述:记录显示有关信息3操作权限:面向所有顾客打印功能接口:publicstaticvoidExportData(DataGridViewsrcDgv,stringfileName)//导出数据,传入一种datagridview和一种文献途径{Excel.Applicationexcel=newExcel.Application();excel.Application.Workbooks.Add(true);excel.Visible=true;for(inti=0;i<srcDgv.ColumnCount;i++){excel.Cells[1,i+1]=srcDgv.Columns[i].HeaderText;}for(inti=0;i<srcDgv.RowCount-1;i++){for(intj=0;j<srcDgv.ColumnCount;j++){excel.Cells[i+2,j+1]=srcDgv[j,i].Value.ToString();}}}C历史借阅记录:需要阐明:1该功能采用是dataGridView网格布局。2采用分页显示。3记录有:记录当前外借出书,超期未归还图书。4记录思想:采用数据库试图。功能描述:1功能类型:查询数据2功能概述:记录显示有关信息3操作权限:图书管理员记录(柱状图生成)模块该模块是依照历史借阅信息、购书信息等等信息按年记录出购买图书总数、外借图书总数、外借操起总数;并用柱状图形式体现出来。1功能思想:记录数据直接用数据库存储过程记录,程序直接调用。绘画一数据大小决定柱状图高度。需要阐明:该窗体采用画布功能记录:年度购书数量,年度借书数量,年度超期归还数量柱状图动态生成功能描述:功能类型:查询数据、绘画制图功能概述:记录显示生成柱状图操作权限:图书管理员界面绘画图描述:1操作阐明:2记录绘画展示图如下:有关绘画代码如下:A绘画XY轴:Penpen=newPen(Color.Black,1);pen.StartCap=LineCap.ArrowAnchor;pen.EndCap=LineCap.DiamondAnchor;e.Graphics.DrawLine(pen,x,y,x,y+imgheight);pen.StartCap=LineCap.NoAnchor;pen.EndCap=LineCap.ArrowAnchor;e.Graphics.DrawLine(pen,x,y+imgheight,x+imgwidth,y+imgheight);B绘画X坐标值代码如下:drawFont=newFont("Arial",10);for(inti=0;i<5;i++){inttime=DateTime.Now.Year;drawPoint=newPointF(x+10*8*i,y+imgheight+10);e.Graphics.DrawString((time-i).ToString()+"年",drawFont,drawBrush,drawPoint);}C绘画Y坐标值代码如下:for(inti=0;i<8;i++){inta=3500;drawPoint=newPointF(imgwidth+x+10,y+45*i);e.Graphics.DrawString((a-500*i).ToString(),drawFont,drawBrush,drawPoint);}D绘画一种柱状图代码如下:Zheight=Convert.ToInt32(Dataset.Tables["Table"].Rows[0][2]);Zx1+=20;Zy1=imgheight-Zheight+y;blueBrush=newSolidBrush(Color.FromArgb(181,125,0));e.Graphics.FillRectangle(blueBrush,Zx1+offsetx,Zy1-offsety,Zwidth+2,Zheight);//阴影e.Graphics.DrawRectangle(blackPen,Zx1+offsetx,Zy1-offsety,Zwidth+2,Zheight);//轮廓//显示柱状图大小及为记录大小drawString=(Zheight/10).ToString()+"%";drawFont=newFont("Arial",10);drawBrush=newSolidBrush(Color.Black);drawPoint=newPointF(Zx1,Zy1-20);e.Graphics.DrawString(drawString,drawFont,drawBrush,drawPoint);point1=newPointF(Zx1,Zy1);point2=newPointF(Zx1+offsetx,Zy1-offsety);point3=newPointF(Zx1+Zwidth+offsetx,Zy1-offsety);point4=newPointF(Zx1+Zwidth,Zy1);PointF[]curvePoints6={point1,point2,point3,point4};e.Graphics.FillPolygon(blueBrush,curvePoints6,FillMode.Winding);e.Graphics.DrawPolygon(blackPen,curvePoints6);point1=newPointF(Zx1,Zy1+Zheight);point2=newPointF(Zx1+offsetx,Zy1+Zheight-offsety);point3=newPointF(Zx1+Zwidth+offsetx,Zy1+Zheight-offsety);point4=newPointF(Zx1+Zwidth,Zy1+Zheight);PointF[]curvePoints7={point1,point2,point3,point4};e.Graphics.FillPolygon(blueBrush,curvePoints7,FillMode.Winding);e.Graphics.DrawLine(blackPen,point4,point3);e.Graphics.FillRectangle(blueBrush,Zx1,Zy1,Zwidth,Zheight);//前景e.Graphics.DrawRectangle(blackPen,Zx1,Zy1,Zwidth,Zheight);//轮廓环境变量设立模块该模块设用于环境配备:用于连接数据库时输入IP地址,连接数据库密码,数据库名称。把输入数据保存到score.txt文本当中。本模块会有到文献读写。界面展示如下图:该窗体可以修改连接数据库文献信息也可以读取新信息。文献读简介代码如下:FileStreamfile=newFileStream("score.txt",FileMode.OpenOrCreate);StreamReaderreader=newStreamReader(file);if((ID=reader.ReadLine())!=null){Name=reader.ReadLine();Password=reader.ReadLine();}reader.Close();file.Close();使读入数据放入到文本框去。4接口(类)设计查询数据库库公共接口该办法是带有两个参数,参数是两个字符串,一种参数是是执行SQL查询语句,一种是参数定义内存表名。办法返回值是安规定查询DataSet表(数据集)。publicDataSetDataSetT(stringstrselect,stringTableName){DataAdapter=newSqlDataAdapter(strselect,Conn);SqlCommandBuilderScomdB=newSqlCommandBuilder(DataAdapter);dataSet=newDataSet();try{DataAdapter.Fill(dataSet);}catch{returnnull;}returndataSet;}}查询数据库库公共接口2该办法是带有两个参数,参数是两个字符串,一种参数是是执行SQL查询语句,一种是参数定义内存表名。办法返回值是安规定查询表。publicDataTabledataTable(stringstrSelect,stringTableName){DataAdapter=newSqlDataAdapter(strSelect,Conn);SqlCommandBuildersqlcommndbuider=newSqlCommandBuilder(DataAdapter);dataSet=newDataSet();try{DataAdapter.Fill(dataSet,TableName);}catch{returnnull;}returndataSet.Tables[0];}5数据构造设立描述SQL语言描述试图构造:/*===========================================/*view:Fa_ReadBookNoMoney_view(罚金记录)/*============================================CREATEVIEWdbo.Fa_ReadBookNoMoney_viewASSELECTTOP100PERCENTdbo.Read_Borrow_Book_view.图书编号,dbo.Read_Borrow_Book_view.图书名,dbo.Read_Borrow_Book_view.读者编号,dbo.Read_Borrow_Book_view.联系电话,dbo.Read_Borrow_Book_view.借阅日期,dbo.Read_Borrow_Book_view.应还日期,DATEDIFF(d,dbo.Read_Borrow_Book_view.应还日期,CONVERT(varchar(100),GETDATE(),23))AS超期天数,DATEDIFF(d,dbo.Read_Borrow_Book_view.应还日期,CONVERT(varchar(100),GETDATE(),23))*dbo.Raed_readsgip_view.罚金公式AS应罚金FROMdbo.Read_Borrow_Book_viewLEFTOUTERJOINdbo.Raed_readsgip_viewONdbo.Read_Borrow_Book_view.读者编号=dbo.Raed_readsgip_view.读者编号WHERE(DATEDIFF(d,dbo.Read_Borrow_Book_view.应还日期,CONVERT(varchar(100),GETDATE(),23))>0)ORDERBYDATEDIFF(d,dbo.Read_Borrow_Book_view.应还日期,CONVERT(varchar(100),GETDATE(),23))DESCSQL语言描述试图构造:/*===========================================/*view:My_History_view(读者借书历史)/*============================================CREATEVIEWdbo.My_History_viewASSELECTdbo.BorrowHistory.图书编号,dbo.Books.图书名,dbo.BorrowHistory.借阅日期,dbo.BorrowHistory.应还时间,dbo.BorrowHistory.读者编号,dbo.BorrowHistory.还书时间,dbo.BorrowHistory.支付罚金FROMdbo.BorrowHistoryINNERJOINdbo.BooksONdbo.BorrowHistory.图书编号=dbo.Books.图书编号SQL语言描述试图构造:/*===========================================/*view:My_History_view(读者借书历史)/*============================================CREATEVIEWdbo.GoodBook_viewASSELECTTOP100PERCENTdbo.BorrowHistory.图书编号,dbo.Books.图书名,dbo.Books.作者,dbo.Books.出版社,dbo.Books.价格,COUNT(dbo.BorrowHistory.图书编号)AS阅读次数FROMdbo.BorrowHistoryINNERJOINdbo.BooksONdbo.BorrowHistory.图书编号=dbo.Books.图书编号GROUPBYdbo.BorrowHistory.图书编号,dbo.Books.图书名,dbo.Books.作者,dbo.Books.出版社,dbo.Books.价格ORDERBY阅读次数DESCSQL语言描述存储过程构造:/*===========================================/*存储过程:qq11(图书借阅)/*============================================CREATEPROCqq11@BookIDint,@ReaderIDint,@Bookxinxivarchar(100)outputASDECLARE@BorrowNumint,@BorrowDureNumint,@BorrowDureDaysint--依照读者编号,查出该读者当前借书数量SELECT@BorrowNum=COUNT(*)FROMBorrowWHERE读者编号=@ReaderID--依照读者编号,得到该读者能借图书数量和借书期限SELECT@BorrowDureNum=借书数量,@BorrowDureDays=借书期限FROMReadership,ReadersWHEREReadership.种类编号=Readers.种类编号ANDReaders.读者编号=@ReaderID--若书已借出,不能借IF((SELECT与否借出FROMBooksWHERE图书编号=@BookID)=1)BEGINset@Bookxinxi='图书借出,不能借'RETURN1END--若超过借书数量,不能借IF@BorrowNum>=@BorrowDureN

温馨提示

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

最新文档

评论

0/150

提交评论