收藏 分销(赏)

教材订购系统-销售系统分解.doc

上传人:快乐****生活 文档编号:4757386 上传时间:2024-10-12 格式:DOC 页数:20 大小:369.01KB 下载积分:10 金币
下载 相关 举报
教材订购系统-销售系统分解.doc_第1页
第1页 / 共20页
教材订购系统-销售系统分解.doc_第2页
第2页 / 共20页


点击查看更多>>
资源描述
软件工程实验设计报告 课 题: 教材订购系统-销售系统 姓 名: 学 号: 专业班级: 计算机科学与技术 指导教师: 周学清 设计时间: 2012年下学期 评阅意见: 评定成绩: 指导老师签名: 年 月 日 目录 第一章需求分析 1 (一)需求收集整理 1 (二)需求分析建模 2 1.功能模型DFD 2 2. 数据模型ER图 3 3.行为模型图 4 4.数据字典 5 第二章概要设计 7 (一) 软件结构图 7 (二)各个功能模块说明和接口描述 7 1. 发票验证模块 7 2.接口描述 8 (三)数据库设计 9 1.逻辑结构设计 9 2.数据库表的详细清单 9 第三章详细设计 12 (一)各个功能模块的模块流程图或伪码 12 1.验证模块的模块流程图 12 2.销售模块的模块流程图 12 第四章 编码 14 第五章实验小结 18 参考文献 18 第一章需求分析 (一)需求收集整理 随着市场经济的不断发展,一方面,市场由卖方市场转变成买方市场,企业有权挑选客户,另一方面,竞争的激烈要求企业要尽可能的降低成本。所以,购销系统应运而生。  教材购销管理系统: 教材购销管理系统是帮助管理人员、教材销售和库存的管理软件。该教材购销管理系统软件目前已有比较完善的管理与使用功能,该项目的用户是学校,开发本系统是为了教材购销管理系统更完善,为了教材购销对商品库存和销售的管理更方便,为了减轻工作人员的工作负担,以现代化的创新思维模式去工作。 系统的功能要求: 销售系统: (1)审查有效性 教师或学生提交购书单,教材发行人员审核是有效购书单后,开发票、登记并返给教师或学生领书单,教师或学生即可去书库领书。 (2)开发票 如果允许学生买书,教材科会计将按购书单查阅教材存量表,如果有书且数量够,则开交款发票,否则,将购书单中无法购买的书的信息写入缺书登记表,以备以后补售教材。 (3)登记并开领书单 教材科出纳员根据发票上的总金额收取现金,并进行售书登记,同时开领书单,学生将领书单交给保管员,领书。 (4)补售教材 采购部门进书后,教材科秘书根据进书通知和缺书登记表给没买到教材的学生发补售通知单。 (二)需求分析建模 1.功能模型DFD (1)学校教材订购系统顶层DFD图用来显示整个系统的DFD,如图1.1所示: 教材购销系 统 学生或 教 师 教材工作人 员 购书单 缺书单 领书单 进书通知 图1.1 学校教材购销系统顶层DFD 下面把系统分为销售和采购两个模块进行进一步分解,如图1.2。显然外部项学生或教师应与销售子系统联系,教材工作人员与采购子系统联系。两个子系统之间也存在联系:其一是缺书登记表,又销售子系统把脱销书籍传给采购子系统;其二是进书通知,直接由采购子系统将教材入库信息通知销售系统。 库存表 1 销 售 系 统 教材工作人 员 2 采 购 系 统 学生或 教 师 购书单 进书通知 缺书单 领书单 缺书登记表 图1.2 学校教材购销系统第二层DFD 继续分解,得到第三层数据流程图,其中图1.3由身份验证子系统扩展而成, 图1.4由销售子系统扩展而成。 学生或 教 师 1.1 审查有效 性 教材工作人 员 学生信息表 库存表 售书登记表 1.2登记和打印发票 购书申请 购书 购书单 图1.3 第三层DFD-销售 2.1 登记售书和打印领书单 学生或 教 师 购书单 领书单 售书登记表 出库表 库存表 2.2 产 生 补 售 书 单 采购 领书单 进书通知 图1.4第三层DFD-----销售子系统 图1.4中,销售子系统被分解为3个子加工,编号从2.1.到2.3,登记售书和打印领书单时,学生或教师持购书单申请购书,所购书存在就发给领书单到仓库领取所购书籍。若所购书籍暂时没有就登记缺书登记表,打印缺书登记单通知采购子系统购书,并产生补售书单,待书籍到库时通知学生或教师领书。 关于销售子系统的特殊说明,在售书过程中产生的补售书单只针对教师或者行政班级,对个人购书情况不做处理,也就是说个人所购之书有就代理,没有就不单独采购。 2. 数据模型ER图 E-R图是分为两部分实体和属性,每个实体可以有多个属性,这些属性用来表示实体的性质。不同实体之间可以用关系进行连接,表明各个实体之间的内在联系。实体和实体之间的关系有一对一的关系(1:1),一对多的关系(1:N)和多对多的关系(N:M)。 本系统中涉及的实体主要有“学生”、“教师”、“教材” 各实体及其属性如图1.5、图1.6、图1.7所示。 图1.5学生实体及属性联系图 图1.6教师实体及属性联系图 图1.7教材实体及属性联系图 3.行为模型图 行为模型图主要用来描述用户在采购过程中的动作,以便于我们编程实现各个系统的功能。其主要行为模型图如图1.8所示: 学生 教材保管员 购买 教材秘书 采购员 领书单,发票 查阅数量 教材出纳员 检查是否允许购买 否 写购书单 交购书单 是 够 不够 图1.8 行为模型图 4.数据字典 本系统的部分数据字典如下: 名字:订购单 别名:订书单 描述:送给采购员的定书表 定义:订购单=购书单号+书号+购书日期+订购者编号+订购者姓名+数量+总额 购书单号=以1开头的1--50位数字 书号=50位以数字开头的数字与字母的组合 购书日期=购书当天的时间 格式为:*年*月*日 订购者编号=教师工号|学生学号 订购者姓名=教师姓名|学生姓名 数量=1|2|3|4……|10000000 总额=1|2|3|4……|10000000 位置:输出到打印机 名字:进书单 别名:进书信息 描述:详细的描述了进书的信息 定义:进书单=进书单号+书号+采购人姓名+采购日期+采购总数+采购总额 进书单号=以2开头的1--50位数字 书号=50位以数字开头的数字与字母的组合 采购者姓名=教师姓名 采购日期=购书当天的时间 格式为:*年*月*日 采购总数=1|2|3|4……|10000000 采购总额=1|2|3|4……|10000000 名字:领书单 别名:领书表 描述:送给学生或教师的领书报表 定义:领书单=领书单号,订购者编号,领书日期,购书单号,购书日期,经办人 领书单号=以3开头的1--50位数字 订购者编号=教师工号|学生学号 领书日期=领书当天的时间格式为:*年*月*日 购书单号=以1开头的1--50位数字 购书日期=购书当天的时间格式为:*年*月*日 经办人=教师姓名 位置:输出到打印机 名字:缺书单 别名:缺书表 描述:送给相关工作人员的表,用来补充书籍 定义:缺书单=缺书单号+书号+总数 缺书单号=以4开头的1--50位数字 书号=50位以数字开头的数字与字母的组合 总数=1|2|3|4……|10000000 位置:输出到打印机 名字:入库单 别名:入库表 定义:入库单=入库号+书号+数量+入库时间 入库号=以5开头的1--50位数字 书号=50位以数字开头的数字与字母的组合 数量=1|2|3|4……|10000000 入库时间=入库当天的时间 格式为:*年*月*日 名字:出库表 定义:出库表=出库号+书号+数量+出库时间 出库号=以6头的1--50位数字 书号=50位以数字开头的数字与字母的组合 数量=1|2|3|4……|10000000 出库时间=出库当天的时间 格式为:*年*月*日 名字:库存表 定义:库存表=记录号+书号+数量 记录号=以7头的1--50位数字 书号=50位以数字开头的数字与字母的组合 数量=1|2|3|4……|10000000 名字:教材信息 定义:教材信息=书号+书名+编者+出版社+单价 书号=50位以数字开头的数字与字母的组合 书名=教材的名称 编者=教材的作者 出版社=出版教材的出版社 单价=出售教材的价格 格式为:1|2|3|4……|10000000 名字:学生信息 定义:学生信息=学生学号+学生姓名+学生性别+学生班级+电话 学生学号=以数字11开头的10为数字 学生姓名=订购学生的姓名 学生性别=男|女 学生年级=大一|大二|大三|大四 电话=1|2|3|4……|50 名字:教师信息 定义:教师信息=教师工号+教师姓名+教师性别+教师部门+电话 教师学号=以数字22开头的10为数字 教师生姓名=订购教师的姓名 教师性别=男|女 教师部门=机械|电气|生化|数学|人文|计算机|其他 电话=1|2|3|4……|50 第二章概要设计 (一) 软件结构图 根据前面总体的DFD模型图可以画出软件的基本结构图,如图2.1所示: 教材采购系统 销售系统 打印发票 出库信息 补售书单 登记售书 验证发票 图2.1 软件结构图 (二)各个功能模块说明和接口描述 1. 发票验证模块 (1)模块DFD图返回提示 学生或 教 师 1.1 审查有效 性 1.2登记和打印发票 教材工作人 员 售书登记表 不合法 学生证 学生证 购书单 图2.2 模块DFD图 本程序将常驻内存,与其它模块可同时运行。教材发行人员通过本程序对学生或教师的购书申请进行审核,验证订书单的合法性。对于合法的信息查看是否有库存,如无库存,则返回提示。如有则生成领书单。 不合法的订书单则生成不合法订书单通知书以便学生或教师及时修改。 (2) 模块功能 A 审核学生或教师的订书信息是否有效 B 生成领书单 C返回购书单。 2.接口描述 本模块由系统教材管理人员进行审核的相关操作,根据学生用表和教材信息表审核是否发领书单或者是返回购书单。 2.1用户接口 本系统采用典型的Windows风格作为人机接口,如使用窗口、菜单、对话框等。 1)订购书籍:教师或学生将要进行订购的书籍资料输入,系统将这些资料保存在文件中。 2)查询订购单:显示使用者已经保存的订购单信息。 3)删除订购书籍:使用者将要删除的书籍信息输入,系统根据操作删除修改文件处理,最后修改后的文件显示出来。 4)查询领书单:通过发行人员模块处理过后,将其信息转化成领书单显示出来。 5)查询缺书单:该功能要通过发行人员模块处理过后,将其信息转化缺书单显示出来。 6)输入进书单:需要采购人员将新到的书籍信息输入,通过系统将库存信息更新处理。 7)处理订购单:发行人员可读取用户信息,读取订购单,通过比较库存,处理信息后,返回领书单。 8)查询进书单:发行人员可对采购人员的进书单进行读取,将其信息显示出来。 9)输入初始库存:该功能可实现发行人员对学校原本拥有的书籍资料输入保存到库存中。 10)查询库存:将库存中的信息显示出来。 2.2外部接口 硬件接口:Pentium Ⅲ CPU及以上,内存在256MB以上的计算机。 软件件接口:支持本系统的软件包括:Windows95 、Windows98 、Windows2000、 Windows Me Windows XP 。 2.3内部接口 查询模块:由相应消息驱动,完成对信息进行查看功能。 删除模块:具有此权限的用户完成对信息删除功能。 打印模块:实现用户从系统打印功能。 退出模块:实现用户从系统退出功能 (三)数据库设计 1.逻辑结构设计 (1)订购单 属性名:{书号,书名,购书日期,订购者编号,订购者姓名,数量,总额} 书号 书名 购书日期 订购者编号 订购者姓名 数量 价格 总额 说明: 此为订购单实体对应的关系模式,其中书号、订购者编号是外码,其他一些冗余信息删除。 (2)领书单 属性名:{领书单号,订购者编号,领书日期,购书单号,购书日期,经办人} 领书单号 订购者编号 领书日期 购书单号 购书日期 经办人 说明:此为领书单实体对应的关系模式,其中订购者编号、订购单号是外码,其他一些冗余信息删除。 (3)出库单 属性名:{书号,书名,价格,数量,书籍信息} 书号 书名 价格 数量 书籍信息 说明: 此为入库单实体对应的关系模式,其中书号是外码,其他一些冗余信息删除。 (4)教材信息 属性名:{书号,书名,编者,出版社,单价} 书号 书名 作者 出版社 单价 说明:此为教材实体对应的关系模式。 (5)库存表 属性名:{书号,书名,数量,书籍信息} 书号 书名 数量 书籍信息 说明:此为库存表实体对应的关系模式 2.数据库表的详细清单 1)进书单 数据项名 别名 数据类型 长度 备注 进书编号 JSnumber char 50 书号 ISBN char 50 采购人姓名 CGname char 50 采购日期 CGdate char 50 采购数量 CGnumber int 8 采购总额 CGprice int 8 2)订购单 数据项名 别名 数据类型 长度 备注 书号 ISBN char 50 书名 Name char 50 价格 Price int 8 数量 Number int 8 订购日期 DGDate char 50 订购者编号 DGZnumber char 50 订购者姓名 DGname char 50 购书总数 DGALLnumber int 8 总额 DGALLprice int 8 联系方式 TEL char 50 电话、手机等 3)领书单 属性名:{领书单号,订购者编号,领书日期,购书单号,购书日期,经办人} 数据项名 别名 数据类型 长度 备注 领书单号 LSnumber char 50 订购者编号 DGZnumber char 50 领书日期 LSdate char 50 购书单号 DGnumber char 50 购书日期 DGdate char 50 经办人 LSname char 50 4)缺书单 数据项名 别名 数据类型 长度 备注 缺书单号 QSnumber char 50 书号 ISBN char 50 总数 QSALLnumber int 8 5)入库单 属性名:{入库号,书号,数量,入库时间} 数据项名 别名 数据类型 长度 备注 入库号 RKnumber char 50 书号 ISBN char 50 数量 RKnumber int 8 入库时间 RKdate char 50 6)出库单 属性名:{出库号,书号,数量,出库时间} 数据项名 别名 数据类型 长度 备注 出库号 CKnumber char 50 书号 ISBN char 50 数量 CKnumber int 8 出库时间 CKdate char 50 7)教材信息 属性名:{书号,书名,编者,出版社,版次,单价} 数据项名 别名 数据类型 长度 备注 书号 ISBN char 50 书名 bookname char 50 编者 writer char 50 出版社 publish char 50 单价 price int 8 8)学生信息 属性名 :{学生学号,学生姓名,学生性别,学生年级,电话} 数据项名 别名 数据类型 长度 备注 学生学号 Snumber char 50 学生姓名 Sname char 50 学生性别 Ssex char 50 学生年级 Sclass char 50 电话 TEL char 50 9)教师信息 属性名 :{教师工号,教师姓名,教师性别,教师部门,电话} 数据项名 别名 数据类型 长度 备注 教师工号 Tnumber char 50 教师姓名 Tname char 50 教师性别 Tsex char 50 男或女 教师部门 Tclass char 50 机械|电气|生化|数学|人文|计算机|其他 电话 TEL char 50 10)库存表 属性名:{记录号 ,书号,数量} 数据项名 别名 数据类型 长度 备注 记录号 ID char 50 书号 ISBN char 50 数量 number int 8 第三章详细设计 (一)各个功能模块的模块流程图或伪码 1.验证模块的模块流程图 由概要设计中的DFD图和验证模块的功能可设计出如图3.1.1的流程图: 开始 从购书表中读取订书单 审核 从库存表中读取书籍信息 生成不合法订书单通知 结束 领书单 提示缺书 图3.1.1 验证模块的模块流程图 2.销售模块的模块流程图 由概要设计中分模块的DFD图经过分析销售过程可得到如图3.1.2所示的销售模块流程图: 开始 提交购书单 N 审核购书单 1 错误显示 Y 开发票 登记购书记录 N 错误显示 审核登记 Y 发领书通知单 修改相应表 N 审核修改 错误显示 Y 结束 图3.1.2 销售模块的模块流程图 第四章 编码 其相关代码如下所示: 当点击“删除”按钮时,将弹出对话框询问是否删除。核心代码: Private Sub cmddel_Click() Dim answer As String On Error GoTo delerror answer = MsgBox("确定要删除吗?", vbYesNo, "") If answer = vbYes Then Adodc1.Recordset.Delete DataGrid1.Refresh MsgBox "成功删除!", vbOKOnly + vbExclamation, "" Else Exit Sub End If delerror: If Err.Number <> 0 Then MsgBox Err.Description End If End Sub 当按下“订购查询”按钮,弹出订购查询界面,输入要查询的信息,点击查询按钮即可查询   订购查询核心代码: Private Sub Command1_Click() Dim rs_findreader As New ADODB.Recordset Dim sql As String If Check1.Value = vbChecked Then sql = "教材编号='" & Trim(Text1.Text & " ") & "'" End If If Check2.Value = vbChecked Then If Trim(sql) = "" Then sql = "教材名称='" & Trim(Text2.Text & " ") & "'" Else sql = sql & "and教材名称='" & Trim(Text2.Text & " ") & "'" End If End If If Check3.Value = vbChecked Then If Trim(sql) = "" Then sql = "作者='" & Trim(Combo1.Text & " ") & "'" Else sql = sql & "and 作者='" & Trim(Combo1.Text & " ") & "'" End If End If If Trim(sql) = "" Then MsgBox "请选择查询方式!", vbOKOnly + vbExclamation Exit Sub End If Adodc1.RecordSource = "select * from 书籍信息 where " & sql Adodc1.Refresh DataGrid1.ReBind DataGrid1.AllowAddNew = False DataGrid1.AllowDelete = False DataGrid1.AllowUpdate = False End Sub 订单管理界面如下图: 其相关代码如下: Private Sub Command1_Click() Dim sql As String Dim con As New ADODB.Connection '定义连接对象和记录集对象 Dim rs As New ADODB.Recordset con.connectionstring = Adodc1.connectionstring con.Open rs.ActiveConnection = con sql = "select * from 待购教材表" rs.Open sql, con, adOpenKeyset, adLockPessimistic If Text1.Text <> "" And Text2.Text <> "" And Text3.Text <> "" And Text4.Text <> "" Then rs.AddNew rs.MoveLast rs.Fields(0) = Text1.Text rs.Fields(1) = Text2.Text rs.Fields(2) = Text3.Text rs.Fields(3) = Text4.Text rs.Fields(4) = Text5.Text rs.Fields(5) = Text6.Text rs.Fields(6) = Text7.Text rs.Fields(7) = Text8.Text rs.Fields(8) = Text9.Text rs.Fields(9) = Text10.Text MsgBox "添加成功。", 64 + 0, "提示信息" rs.Update Text1.Text = "" Text2.Text = "" Text3.Text = "" Text4.Text = "" Text5.Text = "" Text6.Text = "" Text7.Text = "" Text8.Text = "" Text9.Text = "" Text10.Text = "" Text1.SetFocus Else MsgBox "请输入完整信息", 64 + 0, "提示信息" Text1.SetFocus End If End Sub 第五章实验小结 通过对“学校教材订购系统-销售系统”的设计,我更清楚的了解一个软件项目开发的整体过程,有需求分析,概要设计,详细设计,编码实现,以及测试、维护等几个步骤。需求分析在系统开发中是最重要的部分,在此部分我们需要收集相关信息以及分析用户的需要,整理出具有实际可行性的软件需求报告,分析出整个系统的功能需求、性能需求等各方面的需求。需求分析的目的就是要使你开发的软件能尽可能满足顾客提出的要求。先对系统的总体结构进行设计,然后根据系统模块的划分,完成其顶级数据流图,并对其细化,完成一级、二级数据流图的分解,并完成数据库的设计。另外概要设计、系统设计也很关键,它给出了系统的主要框架。这次主要的是学到了软件开发的基本思想跟方法,收获颇多。 参考文献 【1】《实用软件工程》,郑人杰等著,清华大学出版社。 【2】《软件工程》第二版,李代平等著,清华大学出版社。 【3】《软件工程》第六版,Roger S.Pressman著,机械工业出版社。 【4】《软件工程课程实验指导书》,湖南文理学院计算机学院 18
展开阅读全文

开通  VIP会员、SVIP会员  优惠大
下载10份以上建议开通VIP会员
下载20份以上建议开通SVIP会员


开通VIP      成为共赢上传

当前位置:首页 > 包罗万象 > 大杂烩

移动网页_全站_页脚广告1

关于我们      便捷服务       自信AI       AI导航        抽奖活动

©2010-2026 宁波自信网络信息技术有限公司  版权所有

客服电话:0574-28810668  投诉电话:18658249818

gongan.png浙公网安备33021202000488号   

icp.png浙ICP备2021020529号-1  |  浙B2-20240490  

关注我们 :微信公众号    抖音    微博    LOFTER 

客服