软件工程-学校教材订购系统

更新时间:2023-11-22 21:42:01 阅读量: 教育文库 文档下载

说明:文章内容仅供预览,部分内容可能不全。下载后的文档,内容与下面显示的完全一致。下载之前请确认下面内容是否您想要的,是否完整无缺。

学校教材订购系统

1. 引言 1.1 编写目的

在前一阶段(学校教材订购系统需求分析说明书)中已解决了实现该系统需求的程序模块设计问题。包括如何把该系统化分成若干个模块、决定各模块之间的的接口、模块之间传递的信息,以及数据结构、模块结构的设计等。在以下的详细设计报告中间将对在本阶段中对系统所做的所有详细设计进行说明。

在本阶段中,确定如何具体的实现所要求的系统,从而在编码阶段可以把这个描述直接翻译成具体的程序语言书写的程序。主要工作有:根据《学校教材订购系统需求分析说明书》所描述的数据、功能性能需求、处理流程、总体结构和模块设计,涉及软件系统的结构设计、逐个模块的程序描述。 1.2 项目背景

“学校教材订购系统”有两部分组成:销售系统和采购系统。 销售系统的工作过程为:首先由教师或学生提交购书单,经教材发行人员审核是有效购书单后,开发票、登记并返给教师或学生领书单,教师或学生即可去书库领书。

采购系统的主要工作过程为:若是脱销教材,则登记缺书,发缺书单给书库采购人员;一旦新书入库后,即发进书通知给教材发行人员。 1.3 定义

1.3.1专门术语 库存表:存放库中存在得书籍数据。

出库表:存放已销售的书籍的数据。 入库表:存放入库书籍的数据。 购书表:存放提交的购书信息。

缺书登记表:存放缺少的书籍的信息。 待购教材表:存放待购书籍信息。

1.3.2 缩写

系统:若未特别指出,系统指本“学校教材订购系统”。 Access。

1.4 参考资料

1) 《学校教材订购系统需求分析说明书》 软件开发小组 2) 张海藩 《软件工程导论》 清华大学出版社 3) 萨师煊、王珊 《数据库系统概论》 高等教育出版社 2. 总体设计 2.1 需求概述

为方便教师、学生领书,教材发行人员处理各种单据,以及采购人员采购需开发一个“学校教材订购系统”。教师或学生提交购书单,经教材发行人员审核是有效购书单后,开发票、登记并返给教师或学生领书单,教师或学生即可去书库领书。若是脱销教材,则登记缺 书,发缺书单给书库采购人员;一旦新书入库后,即发进书通知给教材发行人员。

要求系统能有效、快速、安全、可靠和无误的完成上述操作。并要求界面简单明了,易于操作,数据库利于维护。 2.2 软件结构 1. 销售子系统

销售子系统

提交购书单 审核购书单 开发票 登记购书纪录 返回领书单 领书修改库存纪录 维护相应的数据表

2. 采购子系统 采购子系统

发登发修维

缺记进改护

书缺书相数

单 书通应据

库 纪知的

录 单 表

3. 程序描述 3.1 功能

销售子系统模块:提交购书单、审核购书单、开发票、登记购书纪录、返回领书单、修改和维护数据库中相应的表。

采购子系统模块:发缺书单、登记缺书纪录、拟订待购书信息、发进书通知单、修改和维护数据库中相应的表。 3.2 性能

① 精度:购书是由需求决定的,只要有缺书现象则会体现出来,但也因为这样,如果需要提前多购相关书籍的话,则需要管理人员的参 与。

② 时间特性要求:定购需要提前若干天。

③ 可靠性:较高

④ 灵活性:在购书单未审核时,可以撤消订购或修改,一旦审核,则不能再修改。 3.3 输入项目

销售子系统模块:需要输入购书单中要求的信息(提交人姓名、书名、书号、数量、身份识别码)。

采购子系统模块:需要输入缺书单中要求的信息(书名、书号、数量)。 3.4 输出项目

销售子系统模块:需要打印领书单(书名、书号、数量、领书人姓名),发票(书名、书号、开票人姓名、交易金额、交易日期)。

采购子系统模块:需要打印进书通知单(书号、书名、进书日期)。 3.5 算法

3.5.1.销售子系统模块:

1. 提交购书单过程(HandBuyBookBill): 在提交购书单界面中输入购书单中的各信息: 提交人姓名(Name) String 购书的名称(BookName) String 购书的书号(ISBN) String 数量(No) String 身份识别码(ID) String 2. 审核购书单过程(CheckBuyBookBill): 对过程1 提交购书单输入的部分信息进行审核: Check(购书名称(BookName)) Check(购书书号(ISBN)) Check(数量(No))

Check(身份识别码(ID)) 如果有一个或多个错误则不提交购书单上的数据,转入过程3购书单错误信息显示过程。如果审核通过转入过程4 开发票。

3. 购书单错误信息显示过程(BuyBookBillError): 用来显示购书单中出现的错误: If(购书名称!=True) 库中没有这类书,请重新输入 If(购书书号!=True) 书号错误,请重新输入 If(数量!=True) 数量越界,请重新输入 If(身份识别码!=True) 身份不对,请确认后重新输入 4. 开发票过程(PrintBill): Print(书名(BookName),书号(ISBN),开票人姓名(Name),交易金额(Money),交易日期(Date))。

5. 登记购书记录过程(DBRegistBuyBook): 将提交的信息存入到数据库的购书表中: DB BookName=”书名” DB ISBN=”书号”

DB No=”数量”

6. 审核登记过程(CheckDBRegistBuyBook):

若在存取过程中出现错误则转到过程7登记购书记录错误信息显示过程,若没有错误,返回成功登记信息,转到过程8发领书单/打印过程 Check(存取)。

7. 登记购书记录错误信息显示过程(DBRegistBuyBookError):

显示在数据库操作中出现的错误,并RoolBack回滚转入过程5重新登记购书记录 Display(错误的类型,相应提示)。 RoolBack

8. 发领书单/打印过程(PrintBookBill): Print(领书的名称(BookName)、领书的书号(ISBN)、领书的数量(No)、领书人姓名(Nmae))。 9. 修改库存表、出库表过程(DBUpdateTable): 修改出库表和库存表相应的记录 库存表:书名、书号、数量

出库表:书名、书号、数量、出库时间 10. 审核修改表过程(CheckDBUpdateTable): 如在对数据库操作过程中出现错误,则转入过程11修改表错误信息显示过程,如果没错误,返回成功信息,继续进行下一步操作。 Check(数据库操作)。 11. 修改表错误信息显示过程(DBUpdateTableError):

显示在数据库操作中出现的错误,并RoolBack回滚转到过程9重新修改库存表、出库表过程。

Display(错误的类型,相应提示)。 RoolBack

3.5.2 采购子系统模块:

1. 发缺书单过程(HandLackBookBill): 在发缺书单的界面中,输入缺书的信息 书名 BookName 书号ISBN 数量No String String int 2. 审核缺书单过程(CheckLackBookBill): 对过程1中输入的信息核对 Check(书名、书号、数量)

如正确就转入过程4登记缺书记录;如果错误转入过程3缺书单错误信息显示过程。 3. 缺书单错误信息显示过程(LackBillError): If(书名!=True) 书名错误,请重新输入; If(书号!=True) 书号错误,请重新输入; If(数量!=True) 数量越界,请重新输入;

4. 登记缺书记录过程(DBRegistLackBook): 将缺书信息登入到缺书表中 DB BookName=”书名” DB ISBN=”书号”

DB No=数量

5. 审核登记过程(CheckDBRegistLackBook): 对数据库操作的审核 Check(登记过程)

如有错转入过程6登记错误信息显示过程,如果没错误转入过程7修改数据库中的表过程。 6. 登记错误信息显示过程(DBRegistLackBookError):

对登记中出现的错误显示,并转入过程4登记缺书记录,重新登记。 Display(错误的类型,相应提示) RoolBack

7. 修改数据库中的表过程(DBUpdateTable):

对新进的新书,修改数据库中入库表和库存表的记录: 入库表:

DB BookName=”书名” DB ISBN=”书号” DB No=”数量”

DB In_Date=”入库日期” 库存表:

DB BookName=”书名” DB ISBN=”书号” DB No=”数量”

8. 审核修改过程(CheckDBUpdateTable): 对数据库中入库表、库存表的修改审核 Check(修改过程)

如果有错转入过程9修改错误信息显示过程;如无错,转入过程10发进书通知单过程。 9. 修改错误信息显示过程(DBUpdateTableError):

对修改中出现的错误显示,并转入过程7修改数据库中的表,重新修改。 10. 发进书通知单过程(PrintBookNotice): Print(书名、书号、进书日期); 3.6 程序逻辑

销售子系统模块程序流程图:

开始 提交购书单 1

N

错误显示 3 审核购书单2

Y

开发票 4 登记购书记录 5

本文来源:https://www.bwwdw.com/article/imgv.html

Top