1、2019/10/17,1,第九章,开发应用程序,2,本讲主要内容,小型管理信息系统开发基本步骤系统主程序设计连编应用程序应用程序开发实例学生成绩管理系统,2019/10/17,3,9.1 开发应用程序综述,管理信息系统MIS:Management Information Systems应用数据库技术和计算机网络,收集和存储企业的管理信息,并进行系统的处理,为各级管理人员提供业务信息和决策信息的系统从软件工程的角度,软件生存周期由软件定义、软件开发和软件维护三个时期组成。本章讨论的是小型管理信息系统的软件开发过程的基本步骤,2019/10/17,4,9.1.1 系统开发基本步骤,在进行需求分析和
2、系统总体设计之后,有了系统的功能定义和解决方案,从此出发到设计出完整的程序,一般有以下步骤: 数据库设计 创建表结构和索引 类的设计 表单设计,报表设计 菜单设计 程序调试 连编应用程序,2019/10/17,5,9.1.2 设计主程序,主程序是系统的入口,即运行应用系统中首先被执行的程序,在VFP中,程序文件、菜单、查询或表单都可作为应用程序的主程序,但建议使用程序。主程序要完成的功能一般为: 指定程序运行的路径,并将它设置为默认目录。 设置VFP的桌面环境,如窗口的标题,系统菜单和工具栏的显示或隐藏等。 执行第一个用户界面或主菜单。 执行应用系统结束时还原系统的配置环境。,2019/10/
3、17,6,9.1.2 设计主程序,一般情况下“项目管理器”会自动判断哪一个是主程序,主程序的文件名以黑体显示,该主程序在已编译的应用程序中将被首先执行。,2019/10/17,7,9.1.3 连编应用程序,连编应用程序就是将所有的资源文件,如数据库、视图、查询、表单、报表、菜单、类等包含在项目文件中的信息结合在一起,形成可以执行的应用程序(EXE文件)连编应用程序要用使用项目管理器,在连编之前应该确定系统的所有资源都包含在项目中,将一些无用的文件清理出项目,并设计一个主程序作为应用程序的入口,将它设置为主文件。,连编后的应用程序可脱离VFP环境,直接在操作系统环境下执行,2019/10/17,
4、8,9.2 应用程序开发实例 学生成绩管理系统,系统功能对学生档案基本信息和在校期间各学期的成绩进行管理,包括输入、修改、删除、查询、浏览等功能,还能对学生的成绩进行管理及统计分析。,2019/10/17,9,9.2.1 系统功能,录入学生基本信息,提供对学生基本信息的查询、修改、删除功能。录入学生成绩信息,并提供修改、删除、查询功能;能将考试成绩和平时成绩按一定百分比计算该科目的总评成绩。查询浏览:能按姓名查询某学生各学期的成绩,能按班级浏览学生基本数据和成绩数据。 成绩分析:对于某一考试科目能按班级统计平均分。报表打印:每学期末,按班级按科目输出学生成绩登记表;针对学生输出学生成绩通知单。
5、,2019/10/17,10,9.2.2 系统总体设计,本系统在Visual FoxPro 8.0环境下设计,设计了若干个表单、程序、报表和一个主菜单,由项目管理器统一管理。从主程序调用主菜单,通过主菜单调用各项功能的表单,利用表单中的按钮完成一部分功能。,系统功能模块图,2019/10/17,11,9.2.2 系统总体设计,系统设计步骤:建立项目管理器,设计表单,设计查询,设计报表,设计菜单,数据库设计建立数据表关联数据表,设计主程序,连编应用程序,2019/10/17,12,9.2.4 数据库设计,数据库设计: 设计一个数据库cjgl.dbc,其中包含3个表:学生基本情况表记录学生基本情况
6、数据 学生成绩表存储学生每学期各考试科目成绩专业情况表存储各专业的名称等,主要为了便于录入和维护 关联表:在数据库设计器中完成表的关联,本系统中建立学生基本情况表和学生成绩表中的一对多关系,关联关键字段为“学号”。,字段定义见教材,2019/10/17,13,9.2.5 表单设计,本系统的表单设计主要是数据输入输出处理表单。 学生基本情况编辑表单dalr.scx此表单用于对学生基本情况进行编辑,可实现对学生基本情况记录的增删、浏览和查询,采用的设计方法是利用表单向导完成初步设计,然后在表单设计器中进行修改。,2019/10/17,14,9.2.5 表单设计, 学生成绩编辑表单cjlr.scx
7、此表单用来对学生成绩表进行编辑,可实现对学生成绩记录的增删、浏览和查询。,2019/10/17,15,9.2.5 表单设计, 专业信息输入表单 zylr.scx 这个表单用于输入专业信息,用表单向导生成。,2019/10/17,16,9.2.5 表单设计, 按班级浏览界面bjll.scx 这个界面用作输入浏览条件的窗口,新建一个表单,向其中加入需要的对象。,2019/10/17,17,9.2.5 表单设计, 查询学生成绩界面cjcx.scx 这个表单用于按姓名查询某同学各学期中各科目的成绩。,2019/10/17,18,9.2.6 统计功能设计,设计一个查询cjtj.qpr来完成统计班级平均分
8、的功能,将“分组依据”选项卡中的分组字段设置为: xscj.考试科目;xscj.学期;xsda班级名称。运行这个查询后可以按班级、按学期、按考试科目统计学生成绩,并在浏览窗口中显示。,2019/10/17,19,9.2.7 报表设计,报表设计: 学生成绩通知单(cjtz.frx):打印学生每学期的成绩设计方法是先用一对多报表向导进行初步设计,然后在报表设计器中修改为最终结果。 班级成绩表(xsmd.frx):按班打印学生成绩数据,2019/10/17,20,9.2.8 菜单设计,菜单设计:,DO cjtj.qpr,2019/10/17,21,9.2.9 设计主程序, 在主程序中设置初始化系统的代码,如修改窗口的标题栏,设置文件的默认路径,设置窗口背景图案等,然后调用系统主菜单,最后设置清理代码,2019/10/17,22,9.2.9 连编应用程序, 设置主程序main.prg为主文件,然后开始连编过程,2019/10/17,23,系统运行,连编后的应用程序成绩管理.exe可在操作系统环境下直接运行。可在“资源管理器”或“我的电脑”中找到此应用程序,双击即可运行,也可以在桌面上为此应用程序建立快捷方式。,