《管理信息系统》课程设计 指导书   课程代码:16020223   英文名称:Management Information System,MIS   适用对象:信息管理与信息系统本科专业、工商管理类本科专业 学时学分:2周,上机不少于40机时,3学分。 一、课程设计目的 管理信息系统课程设计作为独立的教学环节,是信息管理与信息系统专业集中实践性环节系列之一,是学习完《管理信息系统》课程并进行完专业实习后进行的一次全面的综合练习。其目的在于加深对管理信息系统基础理论和基本知识的理解,掌握使用信息系统分析、设计的基本方法,提高解决实际管理问题、开发信息系统的实践能力。同时课程设计应充分体现“教师指导下的以学生为中心”的教学模式,以学生为认知主体,充分调动学生的积极性和能动性,重视学生自学能力的培养。 二、课程设计内容及要求 用信息系统开发工具(例如PowerBuilder、Delphi等)开发一个实用的中小型管理信息系统。 1、根据课程设计时间选择适当规模大小的设计课题。采用专业实习的调研内容作为课程设计选题。 2、根据合理的进度安排,按照系统开发的流程及方法,踏实地开展课程设计活动。 3、课程设计过程中,根据选题的具体需求,在开发各环节中撰写相关的技术文档,最后要求提交详细的课程设计报告。 4、开发出可以运行的管理信息系统,通过上机检查。 三、课程设计时间 课程设计时间为两周。 四、课程设计的考查 由指导教师根据学生完成课程设计任务的情况(包括管理信息系统软件的开发情况40%、课程设计报告的质量30%和课程设计过程中的工作态度30%)综合打分。成绩评定实行优秀、良好、中等、及格和不及格五个等级。优秀者人数一般不得超过总人数的20%。 五、课程设计报告撰写要求 课程设计报告撰写的基本要求是报告原则上不少于4000字,需在封面注明设计选题、班级、姓名、学号及课程设计日期、地点,其正文至少包括如下几个方面的内容: (1)可行性分析 (2)系统分析部分 1)业务流程图 2)数据流程图 3)功能分析图 4)数据字典 5)数据加工处理的描述 6)管理信息系统流程设想图(新系统模型) (3)系统设计部分 1)功能结构图设计 2)新系统信息处理流程设计 3)输出设计(主要指打印输出设计) 4)存储文件格式设计(数据库结构设计) 5)输入设计(主要指数据录入卡设计) 6)代码设计(职工证号和部门代号等) 7)程序设计说明书 (4)系统实施部分 1)程序框图 2)源程序 3)模拟运行数据 4)打印报表 5)系统使用说明书 (5)附录或参考资料 六、参考范例 库存管理信息系统的分析、设计和实施(见附件)。 附件: 库存管理信息系统的分析、设计和实施 说明:本例时间较早,开发工具选用FoxPro2.5。在学习过程中,可以现有的硬件和软件环境进行系统再开发实现,学习重点放在在系统分析、系统设计实际过程、方法及内容。 这里给出一个库存管理信息系统开发的实例,目的是使大家进一步深入了解开发任何一个管理信息系统必须经历的主要过程,以及在开发过程的各个阶段上开发者应当完成的各项工作内容和应当提交的书面成果。 一、 某厂产品库存管理系统简介 某厂是我国东北地区一家生产照明灯的老企业,每年工业产值在四千万元左右。该厂目前生产的产品如表l所示。 表1 某厂产品品种规格、单价及定额储备 产品名称 单位 规格 不变价(元) 现行价(元) 最高储备额 最低储备额 备注  灯泡 只 220V—15W 0.80 1.00 60000 600   灯泡 只 220V—45W 1.00 1.20 60000 600   灯泡 只 220V—60W 1.20 1.40 60000 600   灯泡 只 220V—100W 1.50 1.80 40000 500   灯泡 只 220V—150W 1.80 2.00 40000 400   灯泡 只 220V—200W 2.00 2.20 30000 300   灯泡 只 220V—300W 2.80 3.00 20000 200   节能灯 只 220V—4W 6.00 8.00 10000 1000   节能灯 只 220V—8W 8.00 10.00 10000 1000   节能灯 只 220V—16W 12.00 15.00 10000 1000   日光灯 只 220V—8W 6.00 7.00 10000 1000   日光灯 只 220V—20W 7.00 8.00 10000 1000   日光灯 只 220V—30W 8.00 9.00 10000 1000   日光灯 只 220V—40W 10.00 11.00 10000 1000    工厂的产品仓库管理组隶属于销售科领导,由七名职工组成,主要负责产品的出入库管理、库存帐务管理和统计报表,并且应当随时向上级部门和领导提供库存查询信息。为了防止超储造成产品库存积压,同时也为了避免产品库存数量不足而影响市场需求,库存管理组还应该经常提供库存报警数据(与储备定额相比较的超储数量或不足数量)。 产品入库管理的过程是,各生产车间随时将制造出来的产品连同填写好的入库单(入库小票)一起送至仓库。仓库人员首先进行检验,一是抽检产品的质量是否合格,二是核对产品的实物数量和规格等是否与入库单上的数据相符,当然还要校核入库单上的产品代码。检验合格的产品立即进行产品入库处理,同时登记产品入库流水帐。检验不合格的产品要及时退回车间。 产品出库管理的过程是,仓库保管员根据销售科开出的有效产品出库单(出库小票)及时付货,并判明是零售出库还是成批销售出库,以便及时登记相应的产品出库流水帐。 平均看来,仓库每天要核收三十笔入库处理,而各种出库处理约五十笔。每天出入库处理结束后,记帐员就根据入库流水帐和出库流水帐按产品及规格分别进行累计,以便将本日内发生的累计数填入库存台帐。 产品入库单如表2所示,出库单如表3所示,入库流水帐如表4所示,出库流水帐如表5和表6所示,而库存台帐帐页如表7所示。 产品库存的收发存月报表是根据库存台帐制作出来的。产品库存查询是通过翻阅几本帐之后实现的。目前库存报警功能尚未实现。 表2 产品入库单 第 册 号 日期 产品代码 产品名称 单位 规格 入库数量 备注          生产车间 填制人   表3产品出库单 第 册 号 日期 产品名称 规格 入库数量 备注      批发[ ] 零售[ ]  填制人   注:批发出库时在备注栏的批发[ ]处划“√”,否则在零售[ ]处划“√” 表4 产品入库流水帐 页 日期 产品代码 产品名称 单位 规格 入库数量 备注                   表5产品零售出库流水帐 页 日期 产品代码 产品名称 单位 规格 零售出库数量 备注                   表6产品批发出库流水帐 页 日期 产品代码 产品名称 单位 规格 批发出库数量 备注                   表7某厂产品库存台帐(当日合计数) No. 产品代码: 规格: 不变价(元):  产品名称: 单位: 现行价(元):  日期 入库数量 零售出库量 批发出库量 结余               二、系统分析 根据收集到的各种系统输入单、帐页和输出报表等凭证,又通过亲身实践以及向有关业务管理人员的访问调查,系统分析结果如下: l.组织机构 该厂产品库存管理的组织机构如图l所示。 图l 组织机构设置图 2.管理职能分析 库长——全面负责仓库的行政与业务管理; 出入库管理组——负责产品的入库检验、产品的出入库管理、登记出入库帐; 统计分析组——每天根据出入库管理组的出入库帐,统计出各种规格产品当日出入库累计数字,然后登库存台帐。此外,负责生成产品收发存月报表,经库长签字后呈上级主管部门。有时还要尽量满足各方面的各种查询要求。 图2 管理职能 3.业务流程分析 现行产品库存管理系统的业务流程图如图3所示。 图3 业务流程图 4.数据流程分析   1)现行系统的顶层数据流程图如图4所示。对顶层图中的数据流“l,2,3,4”说明如下: 图4 顶层DFD “1”:车间产品入库单。 “2”:销售科开出的有效零售产品出库单。 “3”:销售科开出的有效批发产品出库单。 “4”:仓库制作的产品库存收发存月报表。 2)第一层数据流程图如图5所示。   图5中的数据流“1,2,3,4”与图4中的数据流“1,2,3,4”相同。 图5 第一层DFD 3)第二层数据流程图如图6所示。  图6 第二层DFD 现对图6中的数据流说明如下:   “l,2,3,4”:其意义与图4中的相同。   “5”:产品入库单上的数据。   “6”:零售出库单上的数据。   “7”:批发出库单上的数据。   “8”:入库流水帐上的当日按产品名称、规格分别累计的数据。   “9”:零售出库流水帐上的当日按产品名称、规格分别累计的数据。   “10”:批发出库流水帐上的当日按产品名称、规格分别累计的数据。   “11”:获得的“8,9,10”数据。   “12”:库存台帐上的当月按产品名称、规格分别累计的数据和其它加工处理后的数据。 5.数据字典 (1)数据流字典 ① 数据流名称:产品入库单 标识符:F1 数据结构: 01产品入库单 02日期(RQ) PIC X(8) 02产品代码(CPDM) PIC X(3) 02产品名称(CPMC) PIC X(18) 02单位代码(DWDM) PIC X 02单位(DW) PIC X(4) 02规格代码(GGDM) PIC XX 02规格(GG) PIC X(10) 02入库数量(RKSL) PIC 9(6) 排列方式:按(入库日期+产品代码)升序排列 流量:最大 50张/日 平均30张/日 来源:生产车间 去向:产品入库处理 ② 数据流名称:产品出库单 标识符:F2 数据结构: 01产品出库单 02日期(RQ) PIC X(8) 02产品代码(CPDM) PIC X(3) 02产品名称(CPMC) PIC X(18) 02单位代码(DWDM) PIC X. 02单位(DW) PIC X(4) 02规格代码(GGDM) PIC XX 02规格(GG) PIC X(10) 02备注 03零售出库数量(LSSL) PIC 9(6) 03批发出库数量(PFSL) PIC 9(6) 排列方式:按(日期十产品代码)升序排列 流量:最大:70张/日 平均:50张/日 来源:销售科 去向:产品出库处理 ③ 数据流名称:仓库产品收发存月报表标 标识符:F3 数据结构: 01收发存月报表 02日期(BBRQ) PIC X(8) 02产品代码(CPDM) PIC X(3) 02产品名称(CPMC) PIC X(18) 02单位(DW) P1CX(4) 02本月累计入库数量(RKSL) PIC 9(8) 02本月累计零售数量(LSSL) PIC 9(8) 02本月累计批发数量(PFSL) PIC 9(8) 02库存数量(KCSL) PIC 9(8) 排列方式:按日期排列 流量:最大:1份/月 平均:1份/月 来源:仓库统计分析 去向:主管部门 其它中间过程的数据流描述省略。 (2)数据存储字典 ① 存储文件名:产品入库流水帐 标识符:D1 数据结构: 01本品入库帐 02日期(RQ) PIC X(8) 02产品代码(CPDM) PIC X(3) 02产品名称(CPMC) PIC X(18) 02单位(DW) PIC X(4) 02规格(GG) PIC X(10) 02入库数量(RKSL) PIC 9(6) 流入的数据流:产品入库单(F1) 流出的数据流; 涉及的处理名:入库处理、记库存台帐 排列方式:按入库日期计序 ② 存储文件名:库存台帐 标识符:D4 数据结构: 01库存台帐 02日期(KCRQ) PIC X(8) 02产品代码(CPDM) PIC X(3) 02产品名称(CPMC) PIC X(18) 02本日累计入库量(RKSL) PIC 9(8) 02本日累计零售出库量(LSSL) PIC 9(8) 02本日累计批发出库量(PFSL) PIC 9(8) 流入的数据流:11 流出的数据流:收发存月报表 涉及的处理名:登记库存台帐、制月报表 排列方式:按(日期+产品代码)升序排列 其它存储文件的描述省略。 6.处理描述 ① 处理名:登记入库帐 标识符:P1 输入:数据流F1 输出:数据流 F5 处理定义: 当一张入库单上的数据检验合格,并且产品实物入库后,立即将这张入库单上的数据登入产品入库流水帐。 激发条件:产品入库发生 ② 处理名:登记库存台帐 标识符:P4 输入:出入库流水帐上的当日数据 输出:登记入库存台帐上的数据 处理定义: 对出入库流水帐上当日发生的数据,按产品代码分别进行入库累计、零售出库累计和批发出库累计计算。然后将当天的日期、产品代码和累计结果等填入库存台帐的相应栏内。 激发条件:每日过帐处理 ③ 处理名:制作收发存月报表 标识符:P5 输入:取自库存台帐的数据 输出:填入输出报表中的统计数据 处理定义: 对库存台帐本月发生的出入库数据,分别按产品代码进行累计,一种代码代表的产 品累计值即为输出报表中的一行。 计算公式: 工业产值(不变价)=∑Si*Ji 工业产值(现行价)= ∑Si*Ji1 其中:Si——产品代码为i的产品本月入库量计量 Ji——产品代码为i的产品不变价 Ji1——产品代码为i的产品现行价 激发条件:每月制作库存报表 系统中的另外几个加工处理描述省略。 7.现行系统评价 通过对现行系统的需求分析,本系统数据流向是合理的,但为了便于计算机化管理,也为了使系统能够提供更多的辅助决策信息,本系统应做如下改进设想: 1)将各种帐本暂合为一本库存帐考虑。 2)增加库存报警功能。 3)增强各种灵活的查询分析功能。 8.新系统逻辑模型的提出 根据前面的分析与评价结果,提出的新系统逻辑模型如图7和图8所示。 图7 系统逻辑模型I 图8 系统逻辑模型 II 9.系统边界和处理方式 (l)系统边界 输入边界——产品出入库单、查询条件。 输出边界——各种报表和查询响应输出。 (2)处理方式 新系统采用实时处理方式。 三 系统设计 1.系统目标设计 1)方便的数据输入性能,良好的人机界面,尽量避免汉字和长字符串的人工重复输入(采用代码词组)。 2)灵活地查询性能,能快速实现多项产品输入数据和库存数据的查询。 3)考虑到工厂生产的发展,对新产品数据也能给予处理。 4)把目前基本上是“静态”库存管理变为“动态”管理,能随时提供库存现状信息(包括库存报警信息)。 2.新系统功能结构图 综合考虑改进后的系统逻辑模型(见图7)和设计的新系统目标的要求。设计新系统功能结构如图9所示。 图9 系统功能结构图 3. 新系统计算机信息系统流程设计 计算机化的信息系统流程如图10所示。图10中的处理框内标出了相应的程序名,其功能说明见程序模块设计说明书。 图10 新系统信息处理系统流程图 4.代码设计 (1)产品规格代码设计 由于该厂在未来的几年内生产的产品品种不会超过十种,并且每种产品的规格也不会超过十种,因此,产品规格代码采用层次码,并用两位整数表示,设计方案如图11所示,全部规格编码列于表8中。 图11 代码设计方案 表8 规格代码 规格代码 规格  01 220V—15W  02 220V—45W  03 220V—60W  04 220V—100W  05 220V—150W  06 220V—200W  07 220V—300W  11 220V—4W  12 220V—8W  13 220V—16W  21 220V—8W  22 220V—20W  23 220V—30W  24 220V—40W  (2)产品代码设计 产品代码用三位整数表示,设计方案如图12所示。表9列出了全部产品的代码。 图11 代码设计方案 表9 产品代码表 产品代码 产品名称 规格代码 规格  012 灯泡 01 220V—15W  024 灯泡 02 220V—45W  036 灯泡 03 220V—60W  048 灯泡 04 220V—100W  050 灯泡 05 220V—150W  061 灯泡 06 220V—200W  073 灯泡 07 220V—300W  115 节能灯 11 220V—4W  127 节能灯 12 220V—8W  139 节能灯 13 220V—16W  218 日光灯 21 220V—8W  220 日光灯 22 220V—20W  231 日光灯 23 220V—30W  243 日光灯 24 220V—40W  产品代码中的校验位a3值的确定方法如下: a3=取[(3a1+2a2)/11]的余数 例如: a1 a2 a3 2 4 3 X) 3 2 6+ 8=14 则a3=(14/11)的余数=3 当余数为10时,则按a3=0处理。 5.系统物理配置方案设计 本系统采用单机单用户操作方式,基本配置如下; 机型: COMPAQ486/40 软驱:双软驱动器 硬盘:540MB 内存:8MB 显示器:VGA 打印机:Star CR3240 软件:Foxpro 2.5 for Windows 3.1(汉化)。 机器安装在仓库办公室。 6.输出设计 本系统的报表输出格式设计成表10~表12的形式(表中的数据为试运行结果数据) 表10 产品名称 单位 规格 上月结存 本月入库 本月出库 本月结存  不变价金额(元)   214700.00 64400.00 150300.00 现行价金额(元) 250400.00 75160.00 175240.00 数量合计 44500 19300 25200  灯泡 只 220V—15w  2000 1000 1000  灯泡 只 220V—45w  1500 1000 500  灯泡 只 220V—60w  3000  3000  灯泡 只 220V—200w  12000 11800 200  节能灯 只 220V—4w  3000 2500 500  节能灯 只 220V—8w  3000  3000  日光灯 只 220V—8w  2000  2000  日光灯 只 220V—20w  14000  14000  日光灯 只 220V—30w  4000 3000 1000   表11 超储产品 产品代码 产品名称 库存量 最高储备 超储量  220 日光灯 14000 10000 4000   表12 不足产品 产品代码 产品名称 库存量 最低储备 不足储备  024 灯泡 500 600 100  048 灯泡 0 400 400  050 灯泡 0 400 400  061 灯泡 200 300 100  073 灯泡 500 1000 500  115 节能灯 500 1000 500  139 节能灯 0 1000 1000  24 日光灯 0 1000 1000   7.存储文件(数据库)结构设计 由于本系统的应用程序全部用Foxpro2.5编写,因此,存储文件的结构设计就是指 .DBF文件的结构设计。 (1)设计规范 库文件名称和库字段变量名称规范分别如表13和表14所示。 表13 库文件名称 序号 文件名称 标识符 备注  1 产品目录库文件 CPDM.DBF   2 产品单位及规格代码表 CPDZB. DBF 事先建好  3 出入库数据输入暂存文件 CPSJSR.DBF   4 各种产品每日库存累计文件 CPKC.DBF   5 各种产品每日每笔人享文件 CPRK.DBF   6 各种产品每日每笔出库文件 CPXS.DBF   7 各种产品每日入出存累计文件 CPRDATA.DBF   8 报表计算辅助文件 CPBBJS.DBF   9 备品报表文件 CPBB.DBF   10 库存报表数据文件 KCJC.DBF    表14 库文件字段变量名规范 序号 字述名义 标识符 备注  1 产品不变价格 BBJ   2 日期 BBRQ   3 产品代码 CPDM   4 产品名称 CPMC   5 代码为ijk的产品库存量 CPIJK i=0,1,2,3,4,5,6,7,8,9 j=0,1,2,3,4,5,6,7,8,9 k=0,1,2,3,4,5,6,7,8,9  6 产品单位代码 DWDM   7 产品组位 DW   8 产品规格代码 GGDM   9 产品规格 GG   10 产品库存超储或不足 JC 取值“超储”或“不足”  11 产品库存数量 KCSL   12 日期 KCRQ   13 累计入库量 LJRK   14 累计总出库量 LJXS   15 产品零售数量 LSSL   16 产品批发出库数量 PFSL   17 产品入库数量 RKSL   18 日期 RQ   19 产品现行价格 XXJ   20 产品最大储备量 ZGCB   21 产品最小储备量 ZDCB    (2)各个库文件结构设计 本系统中建立的10个数据库(.DBF)文件结构如表15~24所示。 表15 产品单位及规格代码库(CPDZB.DBF)结构 序号 字段名称 字段类型 长度 备注  1 DWDM Character 1   2 DW Character 4   3 GCDM Character 2   4 GG Character 10    表16 产品目录库(CPDM.DBF)结构 序号 字段名称 字段类型 长度 备注  1 CPDM Character 3   2 CPMC Character 18   3 DWDM Character 1   4 DW Character 4   5 GGDM Character 2   6 GG Character 10   7 BBJ Numeric 7   8 XXJ Numeric 7   9 ZGCB Numeric 7   10 ZDCB Numeric 4    表17 产品出入库数据暂存文件(CPSJSR.DBF)结构 序号 字段名称 字段类型 长度 备注  1 RQ Date 8   2 CPDM Character 3   3 RKSL Numeric 6   4 LSSL Numeric 6   5 PFSL Numeric 6    表18 各种产品每日入库累计文件(CPRK.DBF)结构 序号 字段名称 字段类型 长度 备注  1 RQ Date 8   2 CPDM Character 3   3 RKSL Numeric 6    表19 各种产品每日销售出库累计文件(CPXS.DBF)结构 序号 字段名称 字段类型 长度 备注  1 RQ Date 8   2 CPDM Character 3   3 LSSL Numeric 6   4 PFSL Numeric 6    表20 各种产品每日库存量累计文件(CPKC.DBF) 序号 字段名称 字段类型 长度 备注  1 KCRQ Date 8   2 CP012 Numeric 8   3 CP024 Numeric 8   4 CP036 Numeric 8   5 CP048 Numeric 8   6 CP050 Numeric 8   7 CP061 Numeric 8   8 CP073 Numeric 8   9 CP115 Numeric 8   10 CP127 Numeric 8   11 CP139 Numeric 8   12 CP218 Numeric 8   13 CP220 Numeric 8   14 CP231 Numeric 8   15 CP243 Numeric 8    表21 各种产品每日出入存累计文件(CPRDATA.DBF)结构 序号 字段名称 字段类型 长度 备注  1 RQ Date 8   2 CPDM Character 3   3 CPMC Numeric 6   4 DW Numeric 6   5 PFSL Numeric 6   6 KCSL Numeric 6    表22 报表计算辅助文件(CPBBJS.DBF)结构 序号 字段名称 字段类型 长度 备注  1 BBRQ Date 8   2 CPDM Character 3   3 CPMC Character 18   4 DW Character 4   5 RKSL Numeric 8   6 LSSL Numeric 8   7 PFSL Numeric 8   8 KCSL Numeric 8   9 LJRK Numeric 8   10 LJXS Numeric 8    表23 各月收发存报表文件(CPBB.DBF)结构 序号 字段名称 字段类型 长度 备注  1 BBRQ Date 8   2 CPDM Character 3   3 CPMC Character 18   4 DW Character 4   5 RKSL Numeric 8   6 LSSL Numeric 8   7 PFSL Numeric 8   8 KCSL Numeric 8   9 LJRK Numeric 8   10 LJXS Numeric 8    表24 库存报警数据文件(KCJC.DBF)结构 序号 字段名称 字段类型 长度 备注  1 CPDM Character 3   2 JC Character 4    8.输入设计 (1)出入库数据录入卡设计 本系统中的产品出入库数据录入卡沿用现行系统的产品出入库单格式,参见表2和表3。 (2)输入屏幕格式设计 基础(原始)数据分为产品入库数据和产品出库数据两大类,因此输入屏幕分开设计。 产品代码 产品名称 入库数量               图13 产品入库数据输入屏幕格式 l)图13是产品入库数据输入时的屏幕格式。当输入入库日期之后,便在屏幕上出现此画面。数据录入方式有两种: ·光标在右边的提示窗口内上下移动,选择正确的入库产品代码后,则产品代码、名称等信息自动进入左边窗口当前显示行的相应栏目内。然后;光标停在“入库数量”栏上,打入入库数量即可。如此重复即可将本日内各张入库单上的数据输入机内暂存文件内。然后,选择提示“存盘”、“放弃”或“继续”。 ·调整光标至左边窗口的“代码”栏,接着打入要入库的产品代码,此时对应的产品名称便由系统自动填入,然后打入入库数量即可,最后选择“存盘”、“放弃”或“继续”。 2)产品出库数据输入的屏幕格式设计与产品入库数据输入的屏幕格式基本相同,只是将图13中的“入库数量”栏辟为“零售数量”和“批发数量”两栏。 9.程序模块设计说明 (1)总控模块 1)程序名:CPMAIN.PRG。 2)功能 ·定义本系统的数据录入、数据查询等功能菜单及各项功能的下拉式菜单。 ·选取功能菜单及其下拉菜单中的操作项,进入相应的操作。 3)实现 ·调用程序CP11.PRG实现产品出入库数据的录入。 ·调用过程MPROC2实现数据查询功能。 ·调用过程MPROC3实现统计报表功能。 ·调用过程MPRCO4实现产品目录维护功能。 ·调用过程MPRCO5实现本系统运行结束退出功能。 4)程序、过程、自定义函数间的关系见图14。 图14 程序、过程、函数间关系 (2)产品出入库数据录入模块 1)程序名: CP11.PRG 2)功能:实现每笔产品出入库数据的录入。 3)处理流程(见图15)。 图15 处理流程 4)实现 ·打开CPDM.DBF并索引之。 ·打开CPRDATA.DBF及其索引。 ·打开 CPRK.DBF。 ·若录入入库数据,则打开CPKC.DBF;若录入出库数据,则打开CPXS.DBF。 ·输入日期。 ·打开CPSJSR.DBF,并与CPDM.DBF建立关联,然后清空CIJSJSR.DBF。 ·用BROW将出入库数据录入 CPPJSR.DBF中。 ·若数据不保存,则退出返回;若数据保存,则首先将CPSJSR.DBF的RQ字段值全部用输入日期替代,然后通过调用过程CP11X把CPSJSR.DBF中的数据转录到CPRK.DBF(入库)或 CPXS.DBF(出库数据)中,并更新CPKC.DBF和CPRDATD.DBF。 (3)每笔出入库数据查询模块 1)程序名:CP 21.PRG 2)功能:实现对三个月以内的任何一天的每笔入库数据查询显示。 3)处理流程(见图16)。 图16 处理流程 4)实现 ·打开 CPDM.DBF。 ·若查询任何一天的每笔入库数据,则打开CPRK.DBF。 ·若查询任何一天的每笔出库数据,则打开CPXS.DBF。 ·依据字段CPDM建立与CPDM.DBF的关联。 ·输入要查询的日期。 从CPRK或CPXS库中定位满足查询日期的首记录。若无数据可查到,则显示“无数据”,否则用“过滤器技术”和BROW命令显示查询结果。 (4)每日、月、截止期出入库数据查询模块 1)程序名:CP23.PRG 2)功能:实现对下述查询条件的查询显示功能 ·查询三个月以内任何一天的各种产品全天累计出入库数据。 ·查询两年内任何一个月份的各种产品全月累计出入库数据。 ·查询从年初至某个截止日期的各种产品累计出入库数据。 3)处理流程(见图17)。 图17 处理流程 4)实现 分三种情况讨论: 第一种情况(按天查询) ·打开 CPRDATA.DBF和 CPDM.DBF。 ·输入查询日期。 ·按输入的日期从CPRDATA库中过滤出与输入日期匹配的记录。 ·显示结果。 第二种情况(按月查询) ·打开 CPRDATA.DBF和CPDM.DBF。 ·输入查询月份。 ·对与输入月份匹配的该月内各产品出入库数据分别累计。 ·将该月累计值为零的产品过滤掉。 ·显示结果。 第三种情况(查询从年初至截止日期备产品累计出入库数) ·打开 CPRDATA.DBF和CPDM.DBF。 ·输入截止日期。 ·对截止日期之前的各产品出入库数据分别累加。 ·显示结果。 (5)某日实际库存数据查询模块 1)程序名:CP24.PRG。 2)功能:实现查询某一天各种产品的实际库存数量。 3)处理流程(见图18)。 4)实现 ·打开 CPKC.DBF与 CPDM.DBF。 ·输入查询日期。 ·在CPKC.DBF中定位满足查询条件的第一条记录,若没有则显示“无数据可查”,否则显示查询结果。 (6)新增产品代码(目录)模块 1)程序名:CP41.PRG。 2)功能:将新产品的目录数据增加到CPDM.DBF中,并在CPKC.DBF中增加相应的字段。 3)处理流程(见图19)。 图19 处理流程 4)实现 ·在命令执行方式下,将新产品的单位、单位代码、规格、规格代码录入CPDZB.DBF中。 ·打开CPDZB.DBF、CPDM.DBF和CPKC.DBF。 ·录入新产品的产品代码,并校验。 ·再录入该新产品的其它目录数据。 ·修改CPKC.DBF的库结构(增加新产品的字段)。 (7)修改产品的价格、储备定额模块 1)程序名:CP42.PRG。 2)功能:修改产品的价格和储备足额。 3)处理流程(见图20)。 图20 处理流程 4)实现 ·打开CPDM.DBF。 ·用BROW命令进行修改(注意只允许修改产品的不变价、现行价、最高储备和最低储备)。 (8)报表计算模块 1)程序名:CP31.PRG。 2)功能:根据本月实际发生的数据,计算出统计报表(产品收发存报表)中的数据,并将计算结果存入CPBB.DBF中供打印用。 3、)处理流程(见图21)。 图21 处理流程 4)实现 ·输入报表月份。 ·打开 CPRDATA.DBF。 ·在CPRDATA库中定位满足报表日期的第一条记录。若无数据,即eof()为真,则显示“本月无数据”,并返回。 ·在本月范围内,按产品代码分别求出各产品本月出入库累计值。 ·打开CPKC.DBF,定位到报表生成那天的各产品实际库存数记录行。 ·打开CPBBJS.DBF,并物理清空。 ·把已计算出的报表月份各产品累计出入库量及尚有的实际库存数量填入CPBBJS.DBF中。 ·打开CPBB.DBF,将CPBBJS.DBF中的数据复制到CPBB.DBF中。 (9)打印《产品收发存月汇总表》模块 1)程序名:CP32.PRG。 2)功能:实现《产品收发存月汇总表》的打印输出。打印机型号为:STAR CR3240型。 3)处理流程(见图22)。 图22 处理流程 4)实现 ·输入年份和月份。 ·打开CPDM.DBF,并索引。 ·打开CPBB.DBF,并过滤出符合报表月份的数据记录。 ·使CPBB.DBF与CPDM.DBF建立关联。 ·若CPBB.DBF中无本月数据,则显示“本月报表未形成”,并返回,否则如下: ·打印表头。 ·从CPBB.DBF中输出打印该月份汇总数据。 (10)打印《产品库存报警表》模块 1)程序名:CP33.PRG。 2)功能:随时打印出低于最小储备定额和高于最高储备定额的产品库存数据。 3)处理流程(见图23)。 图23 处理流程 4)实现 ·打开CPKC.DBF,并将记录指针指向最后一行记录。 ·打开CPDM.DBF并索引。 ·按CPDM.DBF中的记录顺序,逐行去检查CPKC.DBF的最后一行记录中各产品库存量是否超储或不足。若不足时,在KCJC.DBF的CPDM字段填上该产品代码,在JC字段填“不足”;若超储,则在JC字段填“超储”。 ·打印表头。 ·打印报表内容。 四 系统实施 1、程序框图设计 (略) 2、程序清单 (略) 3、试运行及结果分析 (1)试验数据的准备(见表1和表25) 表25 系统试运行原始模拟输入数据 日期 产品代码 入库数量 零售数量 批发数量  2000.10.01 012 2000  1000  2000.10.01 115 3000    2000.10.01 231 4000    2000.10.12 024 1500  500  2000.10.12 115  1000   2000.10.13 218 2000    2000.10.14 036 3000    2000.10.15 231   3000  2000.10.16 061 12000    2000.10.17 061   10000  2000.10.17 024  500   2000.10.18 127 3000    2000.10.18 220 4000    2000.10.19 115  500   2000.10.19 115   1000  2000.10.19 061   1800  2000.10.20 220 10000     (2)运行结果及分析 1)打印的报表如表10-12所示,与设计的格式一致,输出数据与手工计算结果一致。 2)查询显示结果正确。 3)其它各项功能运行正常。 技术说明书、使用说明书和维护说明书(略)。 「小结」 本文提供了系统分析、系统设计和编写程序的实际过程,熟练掌握这些内容,将为课程设计做好充分准备。