课程设计学校教材订购系统34页docWord格式.docx
《课程设计学校教材订购系统34页docWord格式.docx》由会员分享,可在线阅读,更多相关《课程设计学校教材订购系统34页docWord格式.docx(31页珍藏版)》请在冰豆网上搜索。
本项目作为学生课程设计,其所有开销包括软件,设施及开发经费都由学生自理。
学校教材购销系统需求规格说明书
1引言
1.1编写目的
本要求规格说明书对学校教材购销系统进行简单的分析,给出了系统的数据流图。
系统主要用户是学生,教师和教材工作人员,加深与用户间的交流,在功能与系统界面上与用户达成一致的看法,以便于开发出用户满意的系统。
1.2项目背景
随着高校办学规模的扩展,管理方式和管理效率的矛盾日渐突出。
在教材购销方面,手工管理方式和文档系统管理方式在管理质量和管理效率上,从根本上不能适应大规模的管理要求。
而随着计算机科学的发展与进步,计算机科学管理方式,不管在管理效率还是在管理质量上都逐步显示出了它的可靠性和优越性。
而且计算机管理在人力、物力等资源方面都比以前的管理模式要有大的节省。
计算机管理正以它自身的优越性成为管理模式中的主流。
教材购销管理系统采用计算机管理模式的必然性也在与此!
本系统以学校为背景,在认真调研和分析了学校订购教材的现状之后,根据学生,教师和教材工作人员的需求和各个功能的关系,作出了积极的设计方案。
在新的管理资源和管理模式上,一定能使工作质量、工作效率等得到提高,推动学校发展的步伐。
本系统名称为:
安徽工程科技学院教材购销系统。
由安徽工程科技学院教材管理层提出,由修宇老师和我们项目小组成员(华伟,阮运磊,张翔宇,张哲)开发,适合学生,老师和教材工作人员使用,可以在学校的计算机中心开设服务器,在校园网上运行。
1.3软件产品的作用范围
学校教材购销系统是为高等院校开发的,用于日常的教材管理,包括销售与采购。
提供数字化的管理,提高学校教材管理部门的工作效率。
2.一般性描述
2.1本系统可细化为两个子系统:
销售系统和采购系统
首先由教师或学生提交购书单,经教材科发行人员审核是有效购书单后,开发票、登记并返给教师或学生领书单,教师或学生即可去书库领书。
采购系统的主要工作过程为:
若是脱销教材,则登记缺书,发缺书单给 书库采购人员;
一旦新书入库后,即发进书通知。
2.2产品功能
本系统在向学生售书时主要输入学生学号、班级代号、购书数量、购书书名信息,然后打印领书单返回给学生领取书籍。
本系统在查询数据库时主要输入需要查询的相关信息,包括图书编号、图书书名、出版社信息、图书特色等信息方便操作人员把握图书信息。
本系统还兼顾一点财务信息的管理,在发生单人购书时,系统直接向购书者收取现金,内部形成一个小小的财务管理。
本系统还和学校的财务科发生数据交换,发生集体售书时,学校根据数据的有效性,直接向集体售书,形成的财务信息直接和财务科交换,方便结算。
即:
向学生集体售书时不需要直接收取现金,而待教材科结算时向财务科提交数据,由财务科从学生的预交书费里扣除,保证教材科财务信息的完整。
3数据流图与数据字典
3.1系统数据流图(DFD)
教材发行人员
采购人员
教师或学生
购书单
审核信息
进书通知
缺书单
领书单
大学教材订购系统
3.1.1学校教材购销系统DFD
系统数据字典:
名字:
定书表
别名:
订书单
描述:
送给采购员的定书表
定义:
购书单=购书单号+{书名+出版社+价格+数量}+日期+订购
名姓名+订购者职务+购书总数+总额
购书单号=DG+年+月+日+4位整数
订购者职务=学生|教师
价格=整数+4位小数
位置:
输出到打印机
领书表
送给学生或教师的领书报表
领书单=领书单号+订购者姓名+领书日期+购书单号+领书日期+经办人
领书单号=LQ+年+月+日+4位整数
缺书表
送给相关工作人员的表,用来补充书籍
缺书单=缺书单号+{书名+出版社}+总数
缺书单号=QS+年+月+日+4位整数
详细的描述了进书的信息
进书通知=编号+{书名+出版社+价格+数量}+采购人姓名+采购日期+采购总数+采购总额
编号=JS+年+月+日+4位整数
用于审核信息
审核信息=教材发行人员姓名+审核标志+审核日期
审核标志=TURE|FALSE(注:
表示审核是否通过)
3.1.2学校教材购销系统一级数据流图
购书单不合法
领书单
合法库存表
缺书单
进书通知
缺书登记表
一级数据字典:
1库存表=记录ID+图书信息+数量
2缺书表=记录ID+图书信息+缺书日期
3进库表=日期+图书信息+数量+采购员+总额
4图书信息=书名+出版社+价格+作者+ISBN+版次
ISBN=10{数字}10且能被7整除
记录ID=JC+15{数字}15
3.1.3二级数据流图
发票
领书信息领书单
缺书信息
采购信息
图书信息采购信息
登记
购书表
审核
开票
库存表
二级数据字典:
唯一的表述一次够书或者买书凭证
发票=客户名+日期+{书名+价格+数量}+总额+开票人+发票号
出库表
描述出库的一切信息
出库表=日期+图书信息+教材发行人员
描述采购的信息
采购信息=采购员姓名+日期+图书信息+总数+总额
有效订书单
有效的订书单
有效订书单=购书单+教材发行人员姓名
3.2数据存储描述
数据存储名称:
组成:
书号+书名+出版社+缺书数量+出版时间+书籍信息
组织:
备注:
教材库存表
书号+书名+出版社+数量+出版时间+书籍信息+是否特殊用途{教学用、零售}
进库表、出库表、库存表、购书表
书号+书名+出版社+出版时间+单价+数量+总价+书籍信息
售书登记表
学号+姓名+班级+所购书号+书名+单价数量+总价
学号、班级、姓名可为空
补售书表
学号+姓名+班级+所购书号+书名+数量+书籍信息
教学用书表
书名+书号+出版社+出版时间+数量+书籍信息
3.3数据流描述
<
购书单>
:
=(<
教师信息>
|<
学生信息>
)+<
书名>
+<
数量>
出版社>
作者>
购书日期>
=<
学生学号>
学生姓名>
学生性别>
学生班级>
=1|2|…|50
序号>
=1|2|…|50
=1|2|…|10000
年>
月>
日>
缺书单>
入库单>
入库号>
入库时间>
出库单>
出库时间>
购书教材记录>
领书单>
=|<
库存情况>
学校教材订购系统中,其主要的实体分别为用户(教师和学生)、教材管理人员,经分析后,得到主要E-R图,如图所示。
总体设计
1、系统功能模块结构图
根据需求分析,学校教材订购系统功能模块结构图如下:
进一步对学校教材订购系统的销售过程和采购过程进行数据流程分析,本系统应当具有如下的数据项和数据结构:
开发过程中建立了名为book的数据库,下设book07、book08、adminlist等表如图3-1所示:
图3-1book数据库图
表asminlist用于存放系统管理员和老师或学生的登陆用户名和密码,其中帐号为主码,如图3-2adminlist图所示。
图3-2adminlist图
表book07用于存放过去两个学期中计算机系所有已定教材的信息,其中书号为主码,如图3-3表book07图所示。
图3-3表book07图
表book08用于存放本学期需要征订的教材,同样,书号为主码,如图3-4表book08图所示。
图3-4表book08图
详细设计
1.根据功能模块用程序流程图进行详细设计和各模块详细设计说明书如下:
销售子系统模块程序流程图:
提交购书单
审核购书单1
错误显示
开发票
登记购书记录
发领书通知单
修改相应表
审核登记
审核修改
N
Y
开始
采购子系统模块程序流程图:
发缺书单
审核缺书单
登记缺书
修改数据库的表
发进书通知单
接口
各模块过程之间采用函数调用、参数传递、返回值的方式进行消息传递。
具体参数的结构将在下面数据结构设计的内容中说明。
接口传递的信息将是以数据结构封装了的数据,以参数传递或返回值的形式在模块之间传递。
存储分配
为程序当中的数据结构在内存中开辟空间存储,如入到数据库中后在数据库的表中为其开辟存储空间。
限制条件
输入的信息都封装在数据结构当中,不能独立存在,在向数据库中提交数据时必须一起提交而不能逐项提交。
输入数据的类型必须和定义的数据类型相匹配。
界面设计及详细代码
本系统主要有登陆界面load.aspx,显示书目信息及功能模块选择页面book.aspx,添加新记录页面new.aspx,添加历史记录页面history.aspx和history1.aspx,修改记录update.aspx和update1.aspx以及删除记录delete.aspx八个页面组成.其中登陆与用datagrid两大模块的代码编写与设计.具体设计如下:
5.1登陆界面
当单击确定按钮时,连接数据库,确定输入的帐号和密码是否匹配,跳转到书目的页面,若不匹配,则弹出帐号错误或密码错误的提示。
如图5-1所示
图5-1
具体代码如下:
PrivateSubbutton1_Click(ByValsenderAsSystem.Object,ByValeAsSystem.EventArgs)Handlesbutton1.Click
DimstrAsString
DimpassstrAsString
passstr=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)
DimdsAsNewDataSet
da.Fill(ds,"
adminlist"
)
DimdacommAsSqlClient.SqlCommandBuilder=NewSqlClient.SqlCommandBuilder(da)
Ifds.Tables("
).Rows.Count=1Then
’判断帐号密码是否和数据库匹配’
Ifpassstr=Trim(ds.Tables("
).Rows(0)("
密码"
))Then
Response.Redirect("
book.aspx"
Else
Response.Write("
密码错误!
EndIf
用户名不存在!
EndSub
EndClass
5.2用datagrid显示数据
首先建立datagrid,通过连接数据库,将数据显示在datagrid中。
如图5-2所示
图5-2书目页面book.aspx
PrivateSubPage_Load(ByValsenderAsSystem.Object,ByValeAsSystem.EventArgs)HandlesMyBase.Load
binddata()
EndSub
Subbinddata()
DimmyconnectionAsNewSqlConnection("
initialcatalog=book;
pwd="
ConststrsqlAsString="
select*frombook08orderby书号"
DimmycommandAsNewSqlCommand(strsql,myconnection)
DimmydaAsNewSqlDataAdapter
myda.SelectCommand=mycommand
DimmydsAsNewDataSet
myda.Fill(myds)
DataGrid1.DataSource=myds
DataGrid1.DataBind()
5.3添加历史书目
(1)history.aspx在登陆系统并选择插入历史书本后,进入添加历史书目的页面,决定选择哪条记录进行添加。
如图5-3插入历史书目图所示
图5-3插入历史书目图
在单击左侧的选择后,自动跳转到update1.aspx,根据所选择的书目,进行相应的修改后添加到记录中去。
页面登陆事件代码:
PrivateSubPage_Load(ByValsenderAsSystem.Object,ByValeAsSystem.EventArgs)HandlesMyBase.Load
IfNotPage.IsPostBackThen
连接数据库:
Subbinddata()
DimmyconnectionAsNewSqlConnection(“initialcatalog=book;
pwd=“)
ConststrsqlAsString=“select*frombook07orderby书号”
DimmycommandAsNewSqlCommand(strsql,myconnection)
Myda.SelectCommand=mycommand
Myda.Fill(myds)
确定所选择的行的数据,并把该行相应的内容分别通过session变量储存下来。
PrivateSubDataGrid1_ItemCommand(ByValsourceAsObject,ByValeAsSystem.Web.UI.WebControls.DataGridCommandEventArgs)HandlesDataGrid1.ItemCommand
Dimb_noAsTableCell=e.Item.Cells
(1)
Dimb_nameAsTableCell=e.Item.Cells
(2)
Dimb_aAsTableCell=e.Item.Cells(3)
Dimb_bAsTableCell=e.Item.Cells(4)
Dimb_cAsTableCell=e.Item.Cells(5)
Session(“a”)=b_no.Text
Session(“b”)=b_name.Text
Session(“c”)=b_a.Text
Session(“d”)=b_b.Text
Session(“e”)=b_c.Text
Response.Redirect(“history1.aspx”)
Button_click事件,重定向到book.aspx页面
PrivateSubButton1_Click(ByValsenderAsSystem.Object,ByValeAsSystem.EventArgs)HandlesButton1.Click
Response。
Redirect(“book.aspx”)
Endclass
(2)history1.aspx页面:
通过上一个页面的选择后,该页面进行修改并添加的操作。
如图4-4修改添加记录图所示:
图5-4添加记录图
该页面中将征定时间和数量的值用textbox表示,是为了方便在插入历史书目的时候修改它的时间和它的数量。
当管理员修改完成后,则可单击确定添加操作,将数据添加到08年的数据库中。
页面登陆代码:
IfNotIsPostBackThen
str=“'
“&
Label6.Text&
“'
“
DimsqlAsString=“select*frombook07where书号=“&
Trim(Session(“a”))
DimconnstrAsString=“server=localhost;
database=book”
DimdaAsNewSqlClient.SqlDataAdapter(sql,myconn)
Da.Fill(ds,“book07”)
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)(“数量”)
修改后添加到数据库的代码:
DimlitemAsListItem
DimsqlAsString=“select*frombook08where书号=“&
DimmyconnAsNewSqlConnection(connstr)
DimdaAsNewSqlDataAdapter(sql,myconn)
da。
Fill(ds,“book08”)
DimmyrowAsDataRow
Ifds.Tables(“book08”).Rows.Count>