1、本项目作为学生课程设计,其所有开销 包括软件,设施及开发经费都由学生自理。学校教材购销系统需求规格说明书1引言1.1 编写目的本要求规格说明书对学校教材购销系统进行简单的分析,给出了系统的数据流图。系统主要用户是学生,教师和教材工作人员,加深与用户间的交流,在功能与系统界面上与用户达成一致的看法,以便于开发出用户满意的系统。1.2项目背景随着高校办学规模的扩展,管理方式和管理效率的矛盾日渐突出。在教材购销方面,手工管理方式和文档系统管理方式在管理质量和管理效率上,从根本上不能适应大规模的管理要求。而随着计算机科学的发展与进步,计算机科学管理方式,不管在管理效率还是在管理质量上都逐步显示出了它的
2、可靠性和优越性。而且计算机管理在人力、物力等资源方面都比以前的管理模式要有大的节省。计算机管理正以它自身的优越性成为管理模式中的主流。教材购销管理系统采用计算机管理模式的必然性也在与此!本系统以学校为背景,在认真调研和分析了学校订购教材的现状之后,根据学生,教师和教材工作人员的需求和各个功能的关系,作出了积极的设计方案。在新的管理资源和管理模式上,一定能使工作质量、工作效率等得到提高,推动学校发展的步伐。本系统名称为:安徽工程科技学院教材购销系统。由安徽工程科技学院教材管理层提出,由修宇老师和我们项目小组成员(华伟,阮运磊,张翔宇,张哲)开发,适合学生,老师和教材工作人员使用,可以在学校的计算
3、机中心开设服务器,在校园网上运行。1.3 软件产品的作用范围学校教材购销系统是为高等院校开发的,用于日常的教材管理,包括销售与采购。提供数字化的管理,提高学校教材管理部门的工作效率。2一般性描述2.1本系统可细化为两个子系统:销售系统和采购系统首先由教师或学生提交购书单,经教材科发行人员审核是有效购书单后,开发票、登记并返给教师或学生领书单,教师或学生即可去书库领书。 采购系统的主要工作过程为:若是脱销教材,则登记缺书,发缺书单给书库采购人员;一旦新书入库后,即发进书通知。2.2产品功能本系统在向学生售书时主要输入学生学号、班级代号、购书数量、购书书名信息,然后打印领书单返回给学生领取书籍。本
4、系统在查询数据库时主要输入需要查询的相关信息,包括图书编号、图书书名、出版社信息、图书特色等信息方便操作人员把握图书信息。本系统还兼顾一点财务信息的管理,在发生单人购书时,系统直接向购书者收取现金,内部形成一个小小的财务管理。本系统还和学校的财务科发生数据交换,发生集体售书时,学校根据数据的有效性,直接向集体售书,形成的财务信息直接和财务科交换,方便结算。即:向学生集体售书时不需要直接收取现金,而待教材科结算时向财务科提交数据,由财务科从学生的预交书费里扣除,保证教材科财务信息的完整。3数据流图与数据字典 3.1系统数据流图(DFD)教材发行人员采购人员教师或学生购书单审核信息进书通知缺书单领
5、书单大学教材订购系统3.1.1 学校教材购销系统DFD系统数据字典: 名字:定书表别名:订书单描述:送给采购员的定书表定义:购书单购书单号+书名+出版社+价格数量+日期+订购名姓名+订购者职务购书总数+总额 购书单号DG+年+月+日+4位整数 订购者职务学生教师 价格整数+4位小数位置:输出到打印机领书表送给学生或教师的领书报表领书单领书单号+订购者姓名+领书日期+购书单号+领书日期经办人 领书单号LQ+年+月+日+4位整数缺书表送给相关工作人员的表,用来补充书籍缺书单缺书单号书名+出版社总数 缺书单号QS+年+月+日+4位整数详细的描述了进书的信息进书通知编号+书名+出版社+价格数量采购人姓
6、名采购日期+采购总数+采购总额 编号JS+年+月+日+4位整数用于审核信息审核信息教材发行人员姓名+审核标志+审核日期 审核标志TURE|FALSE(注:表示审核是否通过)3.1.2 学校教材购销系统一级数据流图 购书单 不合法 领书单 合法 库存表 缺书单 进书通知缺书登记表一级数据字典:1 库存表记录ID +图书信息 +数量 2 缺书表记录ID +图书信息+缺书日期 3 进库表日期+图书信息+数量+采购员+总额 4图书信息书名+出版社+价格作者+ISBN+版次 ISBN=10数字10 且能被7整除 记录IDJC15数字15 3.1.3 二级数据流图发票领书信息 领书单缺书信息采购信息图书信
7、息 采购信息登记购书表审 核开 票库存表二级数据字典:唯一的表述一次够书或者买书凭证发票客户名+日期+书名价格+数量+总额+开票人+发票号出库表描述出库的一切信息出库表日期图书信息+教材发行人员描述采购的信息采购信息采购员姓名+日期+图书信息+总数+总额有效订书单有效的订书单有效订书单购书单+教材发行人员姓名3.2 数据存储描述数据存储名称:组成:书号+书名+出版社+缺书数量+出版时间+书籍信息组织:备注:教材库存表书号+书名+出版社+数量+出版时间+书籍信息+是否特殊用途教学用、零售进库表、出库表、库存表、购书表书号+书名+出版社+出版时间+单价+数量+总价+书籍信息售书登记表学号+姓名+班
8、级+所购书号+书名+单价数量+总价学号、班级、姓名可为空补售书表学号+姓名+班级+所购书号+书名+数量+书籍信息教学用书表书名+书号+出版社+出版时间+数量+书籍信息3.3数据流描述:=(|)+出版社作者购书日期=学生姓名学生性别学生班级=1| 2|50序号= 1| 2|50= 1| 2|10000年月日缺书单入库单入库号入库时间出库单出库时间购书教材记录领书单=|学校教材订购系统中,其主要的实体分别为用户(教师和学生)、教材管理人员,经分析后,得到主要E-R图,如图所示。总体设计 1、系统功能模块结构图根据需求分析,学校教材订购系统功能模块结构图如下:进一步对学校教材订购系统的销售过程和采购
9、过程进行数据流程分析,本系统应当具有如下的数据项和数据结构:开发过程中建立了名为book的数据库,下设book07、book08、adminlist等表如图3-1所示:图3-1 book数据库图表asminlist用于存放系统管理员和老师或学生的登陆用户名和密码,其中帐号为主码,如图3-2 adminlist图所示。 图3-2 adminlist图表book07用于存放过去两个学期中计算机系所有已定教材的信息,其中书号为主码,如图3-3表book07图所示。 图3-3 表book07图表book08用于存放本学期需要征订的教材,同样,书号为主码,如图3-4表book08图所示。 图3-4 表b
10、ook08图详细设计1.根据功能模块用程序流程图进行详细设计和各模块详细设计说明书如下:销售子系统模块程序流程图:提交购书单 审核购书单 1错误显示 开发票 登记购书记录 发领书通知单 修改相应表 审核登记 审核修改 NY开始采购子系统模块程序流程图:发缺书单 审核缺书单 登记缺书 修改数据库的表 发进书通知单 接口 各模块过程之间采用函数调用、参数传递、返回值的方式进行消息传递。具体参数的结构将在下面数据结构设计的内容中说明。接口传递的信息将是以数据结构封装了的数据,以参数传递或返回值的形式在模块之间传递。存储分配 为程序当中的数据结构在内存中开辟空间存储,如入到数据库中后在数据库的表中为其
11、开辟存储空间。限制条件 输入的信息都封装在数据结构当中,不能独立存在,在向数据库中提交数据时必须一起提交而不能逐项提交。输入数据的类型必须和定义的数据类型相匹配。 界面设计及详细代码本系统主要有登陆界面load.aspx,显示书目信息及功能模块选择页面book.aspx,添加新记录页面new.aspx,添加历史记录页面history.aspx和history1.aspx,修改记录update.aspx和update1.aspx以及删除记录delete.aspx八个页面组成.其中登陆与用datagrid两大模块的代码编写与设计.具体设计如下:5.1 登陆界面 当单击确定按钮时,连接数据库,确定输
12、入的帐号和密码是否匹配,跳转到书目的页面,若不匹配,则弹出帐号错误或密码错误的提示。如图5-1所示 图5-1具体代码如下:Private Sub button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles button1.Click Dim str As String Dim passstr As String passstr = Trim(CStr(TextBox2.Text) str = & TextBox1.Text & Dim sql As String = select * fro
13、m adminlist where 帐号= Trim(str) 在数据库中搜索帐号为textbox1.text的数据 Dim connstr As String = server=localhost;uid=sa;pwd=;database=book Dim myconn As New SqlClient.SqlConnection(connstr) Dim da As New SqlClient.SqlDataAdapter(sql, myconn) Dim ds As New DataSet da.Fill(ds, adminlist) Dim dacomm As SqlClient.Sq
14、lCommandBuilder = New SqlClient.SqlCommandBuilder(da) If ds.Tables().Rows.Count = 1 Then判断帐号密码是否和数据库匹配 If passstr = Trim(ds.Tables().Rows(0)(密码) Then Response.Redirect(book.aspx Else Response.Write(密码错误! End If用户名不存在! End SubEnd Class5.2用datagrid显示数据首先建立datagrid,通过连接数据库,将数据显示在datagrid中。如图5-2所示图 5-2
15、书目页面book.aspxPrivate Sub Page_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load binddata()End SubSub binddata() Dim myconnection As New SqlConnection(initial catalog=book;pwd= Const strsql As String = select * from book08 order by 书号 Dim mycommand As New SqlCommand
16、(strsql, myconnection) Dim myda As New SqlDataAdapter myda.SelectCommand = mycommand Dim myds As New DataSet myda.Fill(myds) DataGrid1.DataSource = myds DataGrid1.DataBind()5.3 添加历史书目 (1)history.aspx在登陆系统并选择插入历史书本后,进入添加历史书目的页面,决定选择哪条记录进行添加。如图5-3插入历史书目图所示图5-3 插入历史书目图在单击左侧的选择后,自动跳转到update1.aspx,根据所选择的
17、书目,进行相应的修改后添加到记录中去。页面登陆事件代码:Private Sub Page_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load If Not Page.IsPostBack Then连接数据库: Sub binddata() Dim myconnection As New SqlConnection(“initial catalog=book;pwd=“) Const strsql As String = “select * from book07 order b
18、y 书号” Dim mycommand As New SqlCommand(strsql, myconnection) Myda.SelectCommand = mycommand Myda.Fill(myds)确定所选择的行的数据,并把该行相应的内容分别通过session变量储存下来。Private Sub DataGrid1_ItemCommand(ByVal source As Object, ByVal e As System.Web.UI.WebControls.DataGridCommandEventArgs) Handles DataGrid1.ItemCommand Dim b
19、_no As TableCell = e.Item.Cells(1) Dim b_name As TableCell = e.Item.Cells(2) Dim b_a As TableCell = e.Item.Cells(3) Dim b_b As TableCell = e.Item.Cells(4) Dim b_c As TableCell = e.Item.Cells(5) Session(“a”) = b_no.Text Session(“b”) = b_name.Text Session(“c”) = b_a.Text Session(“d”) = b_b.Text Sessio
20、n(“e”) = b_c.Text Response.Redirect(“history1.aspx”)Button_click事件,重定向到book.aspx页面 Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.Click Response。Redirect(“book.aspx”)End class(2)history1.aspx页面:通过上一个页面的选择后,该页面进行修改并添加的操作。如图4-4修改添加记录图所示:图5-4 添加记录图
21、该页面中将征定时间和数量的值用textbox表示,是为了方便在插入历史书目的时候修改它的时间和它的数量。当管理员修改完成后,则可单击确定添加操作,将数据添加到08年的数据库中。页面登陆代码: If Not IsPostBack Then str = “ & Label6.Text & “ Dim sql As String = “select * from book07 where 书号 =“ & Trim(Session(“a”) Dim connstr As String = “server=localhost;database=book” Dim da As New SqlClient.
22、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)(“数量”)修改后添加到数据库的代码: Dim litem As ListItem Dim sql As String = “select * from book08 where 书号=“ & Dim myconn As New SqlConnection(connstr) Dim da As New SqlDataAdapter(sql, myconn) da。Fill(ds, “book08”) Dim myrow As DataRow If ds.Tables(“book08”).Rows.Count
copyright@ 2008-2022 冰豆网网站版权所有
经营许可证编号:鄂ICP备2022015515号-1