




版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
精品 精品 --精品--精品学校教材订购系统定义基本要求项目目标通过本系统完成为学校教材的购销工作,包括销售和采购两个部分。系统简介以上的功能要求在计算机上实现。技术要求和限制条件当书库中的各种书籍数量发生变化(包括领书和进书时关的书库记录,如库存表或进/出库表。在实现上述销售和采购的工作过程时,需考虑有关单据的合法性验证系统的外部项至少包含三个:教师、学生和教材工作人员。系统的相关数据存储至少包含6待购教材表、进/出库表。系统界面学生/教师登陆界面、书刊查询界面、书刊信息界面、领书单界面、新书入库界面、退出界面等。开发概要系统调研、具体开发、测试、维护资源人员本小组成员(华伟,阮运磊,张翔宇,张哲)在老师的辅导下开发完成。硬件内存:2GM;CPU:Intel Core2 1.80GHz软件MyEclipse5.5集成开发工具,MySQL5.0.22数据库和windowvisio2003画图工具以及windowsword文档工具。进度安排随课程进度同步完成系统的开发及文档编写工作。预算本项目作为学生课程设计,其所有开销包括软件,设施及开发经费都由学生自理。学校教材购销系统需求规格说明书引言编写目的本要求规格说明书对学校教材购销系统进行简单的分析,给出了系统的数据流图。系统主要用户是学生,教师和教材工作人员,加深与用户间的交流,在功能与系统界面上与用户达成一致的看法,以便于开发出用户满意的系统。项目背景算机管理模式的必然性也在与此!软件产品的作用范围学校教材购销系统是为高等院校开发的,用于日常的教材管理,包括销售与采购。提供数字化的管理,提高学校教材管理部门的工作效率。一般性描述本系统可细化为两个子系统:销售系统和采购系统去书库领书。库采购人员;一旦新书入库后,即发进书通知。产品功能本系统在向学生售书时主要输入学生学号、班级代号、购书数量、购书书名信息,然后打印领书单返回给学生领取书籍。书名、出版社信息、图书特色等信息方便操作人员把握图书信息。收取现金,内部形成一个小小的财务管理。本系统还和学校的财务科发生数据交换,发生集体售书时,学校根据数据的有效性,直接向集体售书,形成的财务信息直接和财务科交换,方便结算。即:向学生集体售书时不需要直接收取现金,而待教材科结算时向财务科提交数据,由财务科从学生的预交书费里扣除,保证教材科财务信息的完整。数据流图与数据字典系统数据流图(DFD)教教师或学生购书单审核信息大学教材订购系统领书单 进书通知教材发行人员缺书单进书通知采购人员学校教材购销系统系统数据字典:名字:定书表别名:订书单名字:定书表别名:订书单描述:送给采购员的定书表定义:购书单=购书单号+{书名+出版社+价格+数量}+日期+订购名姓名+订购者职务+购书总数+总额购书单号=DG+年+月+日+4位整数订购者职务=学生|教师价格=整数+4位小数位置:输出到打印机名字:领书表别名:领书单名字:领书表别名:领书单描述:送给学生或教师的领书报表定义:领书单=领书单号+订购者姓名+领书日期+购书单号+领书日期+经办人领书单号=LQ+年+月+日+4位整数位置:输出到打印机名字:缺书表别名:缺书单描述:送给相关工作人员的表,用来补充书籍定义:缺书单=缺书单号+{书名+出版社}+总数缺书单号=QS+年+月+日+4位整数名字:缺书表别名:缺书单描述:送给相关工作人员的表,用来补充书籍定义:缺书单=缺书单号+{书名+出版社}+总数缺书单号=QS+年+月+日+4位整数位置:输出到打印机名字:进书通知描述:详细的描述了进书的信息定义:进书通知=编号+{书名+出版社+价格+数量}+采购人姓名+采购日期+采购总数+采购总额编号=JS+年+月+日+4位整数位置:名字:审核信息描述:用于审核信息定义:审核信息=教材发行人员姓名+审核标志+审核日期审核标志=TURE|FALSE(注:表示审核是否通过)位置:学校教材购销系统一级数据流图学生或教师学生或教师购书单不合法身验份证领书单合法库存表缺书单教材工作进书通知采系购统人员销系售统缺书登记表一级数据字典:1库存表=记录ID+图书信息+数量缺书表=记录ID+图书信息+缺书日期进库表=精品 精品 图书信息=书名+出版社+价格+作者+ISBNISBN=10{数字}10且能被7整除记录ID=JC+15{数字}15二级数据流图购书单购书单信息登记审核库存表领书单开票发票领书登记领书信息领书单缺书表缺书单出库表缺书单缺书信息精品 精品 --精品--精品缺书表缺书表缺书登记图书入库库存表进库表二级数据字典:名字:发票别名:描述:唯一的表述一次够书或者买书凭证定义:发票=客户名+日期+{书名+价格+数量}+总额+开票人+发票号名字:发票别名:描述:唯一的表述一次够书或者买书凭证定义:发票=客户名+日期+{书名+价格+数量}+总额+开票人+发票号位置:名字:出库表别名:描述:描述出库的一切信息定义:出库表=日期+图书信息+教材发行人员位置:输出到打印机名字:采购信息别名:描述:描述采购的信息定义:采购信息=采购员姓名+日期+图书信息+总数+总额位置:名字:有效订书单别名:名字:有效订书单别名:描述:有效的订书单定义:有效订书单=位置:输出到打印机数据存储描述数据存储名称:缺书登记表组织:备注:数据存储名称:教材库存表组成:书号+书名+出版社+数量+出版时间+书籍信息+是否特殊用途{教学用、零售}组织:备注:数据存储名称:进库表、出库表、库存表、购书表组织:备注:数据存储名称:售书登记表组成:学号+姓名+班级+所购书号+书名+单价数量+总价组织:备注:学号、班级、姓名可为空数据存储名称:补售书表组织:备注:数据存储名称:教学用书表组织:备注:数据流描述<购书单>:=(<教师信息>|<学生信息>)+<书名>+<数量>+<出版社>+<作者>+<购书日期><学生信息>:=<学生学号>+<学生姓名>+<学生性别>+<学生班级><学生学号>:=1|2|…|50<序号>:=1|2|…|50<数量>:=1|2|…|10000<购书日期>:=<年>+<月>+<日><缺书单>:=<序号>+<书名>+<数量>+<出版社>+<作者><入库单>:=<入库号>+<书名>+<数量>+<出版社>+<作者>+<入库时间><出库单>:=<学生信息>+<书名>+<数量>+<出库时间><购书教材记录>:=<书名>+<数量><领书单>:=|<学生信息>+<书名>+<出版社>+<作者>+<数量><库存情况>:=<序号>+<书名>+<出版社>+<作者>+<数量>学校教材订购系统中,其主要的实体分别为用户(教师和学生分析后,得到主要E-R图,如图所示。书籍价格书籍价格库存量出版社编号书籍名工作人员职位性别备注电话姓名工号教师或学生教师或学生性别编号姓名总体设计1、系统功能模块结构图大学大学销售子系统采购子系统提审开登返领书维护发登发修维交核发记回修改相应缺记进改护购购票购书领库存的数书缺书相数书书记书记录据表单书通知应的据单单录单记录单表库进一步对学校教材订购系统的销售过程和采购过程进行数据流程分析bookbook07book08adminlist3-1图3-1 book数据库图表asminlist用于存放系统管理员和老师或学生的登陆用户名和密码,其中帐号为主码,如图3-2adminlist图所示。图3-2 adminlist图表book07用于存放过去两个学期中计算机系所有已定教材的信息,其中书号为主码,如图3-3表book07图所示。图3-3 表book07图表book08用于存放本学期需要征订的教材,同样,书号为主码,如图3-4表book08图所示。图3-4 表book08图详细设计销售子系统模块程序流程图:开始开始提交购书单N错误显示Y开发票登记购书记录N审核登记错误显示Y发领书通知单修改相应表N审核修改错误显示Y结束采购子系统模块程序流程图:开始开始发缺书单审核缺书单错误显示登记缺书审核登记错误显示修改数据库的表审核修改错误显示发进书通知单结束接口各模块过程之间采用函数调用、参数传递、返回值的方式进行消息传递。具体参数的结构将在下面数据结构设计的内容中说明。接口传递的信息将是以数据结构封装了的数据,以参数传递或返回值的形式在模块之间传递。存储分配为程序当中的数据结构在内存中开辟空间存储,如入到数据库中后在数据库的表中为其开辟存储空间。限制条件输入的信息都封装在数据结构当中,不能独立存在,在向数据库中提交数据时必须一起提交而不能逐项提交。输入数据的类型必须和定义的数据类型相匹配。界面设计及详细代码本系统主要有登陆界面load.aspx,显示书目信息及功能模块选择页面book.aspx,添加新记录页面new.aspx,添加历史记录页面history.aspx和history1.aspx,修改记录update.aspx和update1.aspx以及删除记录delete.aspx八个页面组成.其中登陆与用datagrid两大模块的代码编写与设计.具体设计如下:登陆界面当单击确定按钮时,连接数据库,确定输入的帐号和密码是否匹配,跳转到书目的页面,若不匹配,则弹出帐号错误或密码错误的提示。如图5-1所示图5-1具体代码如下:PrivateSubbutton1_Click(ByValsenderAsSystem.Object,ByValeAsSystem.EventArgs)Handlesbutton1.ClickDimstrAsStringDimpassstrAspassstr=Trim(CStr(TextBox2.Text))str="'"&TextBox1.Text&"'"DimsqlAsString="select*fromadminlistwhere帐号="&Trim(str)‘在数据库中搜索帐号为textbox1.text的数据’DimconnstrAsString="server=localhost;uid=sa;pwd=;database=book"DimmyconnAsNewSqlClient.SqlConnection(connstr)DimdaAsNewSqlClient.SqlDataAdapter(sql,myconn)DimdsAsNewDataSetda.Fill(ds,"adminlist")Dim dacomm As SqlClient.SqlCommandBuilder = SqlClient.SqlCommandBuilder(da)Ifds.Tables("adminlist").Rows.Count=1Then’判断帐号密码是否和数据库匹配’Ifpassstr=Trim(ds.Tables("adminlist").Rows(0)("密码"))ThenResponse.Redirect("book.aspx")ElseElse
Response.Write("密码错误!")EndIfResponse.Write("用户名不存在!")EndIfEndSubEndClass用datagrid首先建立datagrid,通过连接数据库,将数据显示在datagrid中。如图5-2所示图5-2书目页面book.aspx具体代码如下:PrivateSubPage_Load(ByValsenderAsSystem.Object,ByValeAsSystem.EventArgs)HandlesMyBase.Loadbinddata()EndSubSubbinddata()DimmyconnectionAsNewSqlConnection("initialcatalog=book;uid=sa;pwd=")ConststrsqlAsString="select*frombook08orderby书号"DimmycommandAsNewSqlCommand(strsql,myconnection)DimmydaAsNewSqlDataAdaptermyda.SelectCommand=mycommandDimmydsAsNewDataSetmyda.Fill(myds)DataGrid1.DataSource=mydsDataGrid1.DataBind()EndSub添加历史书目history.aspx5-3插入历史书目图所示图5-3 插入历史书目图到记录中去。具体代码如下:页面登陆事件代码:PrivateSubPage_Load(ByValsenderAsSystem.Object,ByValeAsSystem.EventArgs)HandlesMyBase.LoadIfNotPage.IsPostBackThenbinddata()EndIfEndSub连接数据库:Subbinddata()DimmyconnectionAsNewSqlConnection(“initialcatalog=book;uid=sa;pwd=“)ConststrsqlAsString=“select*frombook07orderby书号”DimmycommandAsNewSqlCommand(strsql,myconnection)DimmydaAsNewSqlDataAdapterMyda.SelectCommand=mycommandDimmydsAsNewDataSetMyda.Fill(myds)DataGrid1.DataSource=mydsDataGrid1.DataBind()EndSub确定所选择的行的数据,并把该行相应的内容分别通过session变量储存下来。PrivateSubDataGrid1_ItemCommand(ByValsourceAsObject,ByValeAsSystem.Web.UI.WebControls.DataGridCommandEventArgs)HandlesDataGrid1.ItemCommandDimb_noAsTableCell=e.Item.Cells(1)Dimb_nameAsTableCell=Dimb_aAsTableCell=e.Item.Cells(3)Dimb_bAsTableCell=e.Item.Cells(4)Dimb_cAsTableCell=e.Item.Cells(5)Session(“a”)=b_no.TextSession(“b”)=b_name.TextSession(“c”)=b_a.TextSession(“d”)=b_b.TextSession(“e”)=b_c.TextResponse.Redirect(“history1.aspx”)EndSubButton_click事件,重定向到book.aspx页面PrivateSubButton1_Click(ByValsenderAsSystem.Object,ByValeAsSystem.EventArgs)HandlesButton1.ClickResponse。Redirect(“book.aspx”)EndSubEndclasshistory1.aspx页面:通过上一个页面的选择后,该页面进行修改并添加的操作。如图修改添加记录图所示:图5-4添加记录图该页面中将征定时间和数量的值用textbox表示,是为了方便在插入历史书目的时候修改它的时间和它的数量。当管理员修改完成后,则可单击确定添加操作,将数据添加到08年的数据库中。具体代码如下:页面登陆代码:PrivateSubPage_Load(ByValsenderAsSystem.Object,ByValeAsSystem.EventArgs)HandlesMyBase.LoadIfNotIsPostBackThenDimstrAsStringstr=“'“&Label6.Text&“'“(“a”))
DimsqlAsString=“select*frombook07where书号=“&Trim(SessionDimconnstrAsString=“server=localhost;uid=sa;pwd=;database=book”DimmyconnAsNewSqlClient.SqlConnection(connstr)DimdaAsNewSqlClient.SqlDataAdapter(sql,myconn)DimdsAsNewDataSetDa.Fill(ds,“book07”)DimdacommAsSqlClient.SqlCommandBuilder=NewSqlClient.SqlCommandBuilder(da)Label6.Text=ds.Tables(“book07”).Rows(0)(“书号”)Label7.Text=ds.Tables(“book07”).Rows(0)(“书名”)Label8.Text=ds.Tables(“book07”).Rows(0)(“作者”)TextBox1.Text=ds.Tables(“book07”).Rows(0)(“征定时间”)TextBox2.Text=ds.Tables(“book07”).Rows(0)(“数量”)EndIfEndSub修改后添加到数据库的代码:PrivateSubButton1_Click(ByValsenderAsSystem.Object,ByValeAsSystem.EventArgs)HandlesButton1.ClickDimstrAsStringDimlitemAsListItemstr=“'“&Label6.Text&“'“DimsqlAsString=“select*frombook08where书号=“&Trim(str)DimconnstrAsString=“server=localhost;uid=sa;pwd=;database=book”DimmyconnAsNewSqlConnection(connstr)DimdaAsNewSqlDataAdapter(sql,myconn)DimdsAsNewDataSetda。Fill(ds,“book08”)DimmyrowAsDataRow(da)
DimdacommAsSqlClient.SqlCommandBuilder=NewSqlClient.SqlCommandBuilderIfds.Tables(“book08”).Rows.Count>=1ThenResponse.Write(“此书已存在”)EndIfmyrow=ds.Tables(“book08”).NewRowmyrow(“书号”)=Trim(Label6.Text)myrow(“书名”)=Trim(Label7.Text)myrow(“作者”)=Trim(Label8.Text)myrow(“征定时间”)=Trim(TextBox1.Text)myrow(“数量”)=Trim(TextBox2.Text)ds.Tables(“book08”).Rows.Add(myrow)da.UpdateCommand=dacomm.GetUpdateCommandda.Update(ds,“book08”)Response.Redirect(“book.aspx”)EndSub单击返回按钮后,重定向到history.aspx的代码:PrivateSubButton2_Click(ByValsenderAsSystem.Object,ByValeAsSystem.EventArgs)HandlesButton2.ClickResponse.Redirect(“history.aspx”)EndSubEndClass删除记录在登陆系统后点击修改按钮进入修改页面delete.aspx,通过复选框的选择,删除数据。如下图5-5删除页面所示:图5-5 删除页面具体代码如下:页面登陆代码:PrivateSubPage_Load(ByValsenderAsSystem.Object,ByValeAsSystem.EventArgs)HandlesMyBase.LoadIfNotPage.IsPostBackThen‘用来确认页面是否第一次登陆’binddata()EndIfEndSubSubbinddata()‘连接到数据库’DimmyconnectionAsNewSqlConnection(“initialcatalog=book;uid=sa;pwd=“)ConststrsqlAsString=“select*frombook08orderby书号”DimmycommandAsNewSqlCommand(strsql,myconnection)DimmydaAsNewSqlDataAdapterMyda.SelectCommand=mycommandDimmydsAsNewDataSetMyda.Fill(myds)DataGrid1.DataSource=mydsDataGrid1.DataBind()'myda.Update(myds,“book08”)EndSubButton_click事件:PrivateSubButton1_Click(ByValsenderAsSystem.Object,ByValeAsSystem.EventArgs)HandlesButton1.ClickDimiAsIntegerDimxAsStringDimitemAsDataGridItemFori=0ToDataGrid1.Items.Count–1item=DataGrid1.Items(i)DimbookcheckboxAsCheckBox=Ifbookcheckbox.CheckedThenx=item.Cells(1).Text‘x为datagrid第二列的数据的内容’deletedataset(x)EndIfNextbinddata()Response.Write(“删除成功!”)EndSubSubdeletedataset(ByValyAsString)DimconAsNewSqlConnection(“initialcatalog=book;uid=sa;pwd=“)DimcmdAsSqlCommandDimqryAsStringCon.Open()qry=“deletebook08where书号='“&y&“'“cmd=NewSqlClient.SqlCommand(qry,con)cmd.ExecuteNonQuery()con.Close()EndSubButton_click的重定向事件PrivateSubButton2_Click(ByValsenderAsSystem。Object,ByValeAsSystem.EventArgs)HandlesButton2.ClickResponse.Redirect(“book.aspx”)EndsubEndclass添加新教材和修改记录两大模块共三个页面的代码编写与设计。具体设计如图5-6所示:图5-6 添记录页面new.Aspx添加新教材。在登陆系统并选择录入新书后,进入添加新教材页面。如3-6图所示:对textbox1到textbox5添加RequiredFiledValidatortextbox中的文本不能为空。对 textbox1 添加 RegularExpressionValidator控件,设置 ValidationExpression属为\d[4”ErrorMessage为”书号的格式为000。对textbox1添加RangeValidator控件,设置MinimunValue为”0001”,MaxmumValue为”9999”。使书号的取值范围为0001——9999。对 textbox4 添加 RegularExpressionValidator控件,设置 ValidationExpression属为\d{4}-\d{,2,使时间格式为2008-。对textbox5添加RangeValidatorMinimunValueMaxmumValue为1-99该页面程序代码如下:PageLoad事件代码PrivateSubPage_Load(ByValsenderAsSystem.Object,ByValeAsSystem.EventArgs)HandlesMyBase.LoadEndSubButtonClick事件代码PrivateSubButton1_Click(ByValsenderAsSystem.Object,ByValeAsSystem.EventArgs)HandlesButton1.ClickDimstrAsStringDimlitemAsListItemstr="'"&TextBox1。Text&"'"DimsqlAsString="select*frombook08where&Trim(str)DimconnstrAsString="server=localhost;uid=sa;pwd=;database=book"DimmyconnAsNewSqlConnection(connstr)DimdaAsNewSqlDataAdapter(sql,myconn)DimdsAsNewDataSetdaFill(ds,"book08")DimmyrowAsDimdacommAsSqlClient.SqlCommandBuilder=NewSqlClient.SqlCommandBuilder(da)Ifds.Tables("book08").Rows.Count>=1ThenResponse.Redirect("new.aspx")Response.Write("书号重复,请重新输入")EndIfmyrow=ds.Tables("book08").NewRowmyrow("书号")=Trim(TextBox1.Text)myrow("书名")=Trim(TextBox2.Text)myrow("作者")=Trim(TextBox3.Text)myrow("征定时间")=Trim(TextBox4.Text)myrow("数量")=Trim(TextBox5.Text)ds.Tables("book08").Rows.Add(myrow)da.UpdateCommand=dacomm.GetUpdateCommandda.Update(ds,"book08")Response.Redirect("book.aspx")EndSub修改记录。在登陆系统后点击修改按钮进入修改页面update.aspx。如图5-7所示:图5-7 修改页面update.Aspx在该页面设计中添加SqlDataAdapter控件和DataSetADONET数据库访问的相关操作。该页中的数据通过DataGrid控件显示,设置相应属性,将其绑定到表book08,使其显示book08中的数据。在DataGrid控件中添加一个按钮列,列名为选择。当用户点击该列的按钮时自动获取该行的相关值,将其赋值给Session变量并跳转到update1aspx。update1。aspx5-8图5-8 修改选择后的记录update1.aspx页面中textbox的文本来自与update.aspx中定义并赋值的Session变量。用户通过修改其中的文本值并单击确定完成修改。修改部分代码如下:update.aspx中的PageLoad事件PrivateSubPage_Load(ByValsenderAsSystem.Object,ByValeAsSystem.EventArgs)HandlesMyBase.LoadIfNotPage.IsPostBackThenbinddata()EndIfEndSub用于加载页面及确认是否第一次访问。Update.aspx中的binddata事件privateSubbinddata()DimmyconnectionAsNewSqlConnection("initialcatalog=book;uid=sa;pwd=")ConststrsqlAsString="select*frombook08orderby书号"DimmycommandAsNewSqlCommand(strsql,myconnection)DimmydaAsNewSqlDataAdapterMyda.SelectCommand=mycommandDimmydsAsNewDataSetMyda.Fill(myds)DataGrid1.DataSource=mydsDataGrid1.DataBind()EndSub用于连接数据库并定义相关操作。Update.aspx中设置DataGrid
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 二零二五工伤私了赔偿协议范本深度修订
- 2025年度物业赔偿业主公共区域设施损坏协议书
- 二零二五年度自媒体平台内容创作者扶持计划合作协议
- 2025年度汽车抵押贷款利息调整合同
- 二零二五年度诊所合伙人投资合作与权益保障协议
- 二零二五年度餐饮店面租赁合同含节假日特色活动策划
- 鼎捷E10-6.0培训教材-质量管理
- 《物流系统分析》课件 项目二任务三 了解物流需求预测
- 2025年蚌埠道路客货运输从业资格证模拟考试下载
- 2025年济南货运从业资格证考试题答案
- 幼儿园大班音乐教案《我们多快乐》
- 《草船借箭》课本剧剧本-4篇
- 2024年山东服装职业学院高职单招(英语/数学/语文)笔试历年参考题库含答案解析
- 团播主持人协议
- 《工伤预防知识教育》课件
- 电梯维保经营计划书
- 苏教版二年级科学下册第7课《栽小葱》课件PPT
- 《活着》读后感-课件
- 市政道路工程质量保证措施
- 网店运营管理(第二版)课件全套 段文忠 第1-9章 网店运营基本原理- 战略化运营 动态竞争
- 煤矿机电事故及其防治措施
评论
0/150
提交评论