VF课程设计报告模板

更新时间:2023-06-09 02:27:01 阅读量: 实用文档 文档下载

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

重庆科技学院

课程设计报告

院(系):__ __ 专业班级: 学生姓名: 学 号: 设计地点(单位)__ _ 设计题目:_ 成绩计算系统 完成日期: 2012 年 6 月 29 日

指导教师评语: _______________________________________

______________________________________________________________________________________________________________________________________________________

成绩(五级记分制):______ __________

指导教师(签字):

摘 要

Visual FoxPro 是新一代小型数据库管理系统的代表,它以强大的功能、完整而又丰富的工具、较高的处理速度、友好的界面;以及完备的兼容性等特点,受到广大用户的欢迎。Visual FoxPro 提供了一个集成化的系统开发环境,它使数据的组织与操作变得简单方便。它在语言体系方面作了强大的扩充,不仅支持传统的结构化程序设计,而且支持面向对象程序设计,并拥有功能强大的可视化程序设计工具。利用可视化的设计工具和向导,用户可以快速创建表单、菜单,查询和打印报表。相对于其他数据库管理系统而言,Visual FoxPro 的最大特点是自代编程工具,由于其程序设计语言和数据库管理系统的结合,所以很适合于初学者学习,更便于教学。

处理考试成绩是每个学校在教学管理中不可缺少的一项重要工作,每次考试都有大量的成绩需要处理。本系统基于光电阅卷机提供的原始数据,实现了成绩 录入,主观试卷成绩和客观题成绩的相加处理。最重要的是,本系统能够对成绩进行离均差、平均分、高分段平均分等处理,从而有效地分析学生成绩的整体情况,具有很好的实用价值。

关键字:成绩计算 数据库 系统信息

目 录

1 需求分析 .......................................................................................................................................................... 4

1.1 问题描述 .............................................................................................................................................. .4 1.2 基本要求……………………………………………………………………………………………….4 2 概要设计 .................................................................................................................................................... …..5

2.1 学生信息的设计 .............................................................................................................................. ….5 2.2 系统功能的设计……………………………………………………………………………………….6 2.3 结构框架图…………………………………………………………………………………………….6 3 详细设计………………………………………………………………………………………………………8 3.1 设计主程序……………………………………………………………………………………..………8

3.2 设计主界面模块………………………………………………………………………………………8 3. 3 设计输入数据模块…………………………………………………………………………………..10 3.3.1 选择班级模块…………………………………………………………………………………10 3.3.2 设计输入学生成绩报表………………………………………………………………………11 3.4 设计整理数据………………………………………………………………………………………...11 3.5 设计离均差模块……………………………………………………………………………………...11 3.5.1 设计代码……………………………………………………………………………………….12 3.5.2 设计SHOW_LJC表单………………………………………………………………………..13 3.5.3 设计LJCBB报表………………………………………………………………………………13 3.6 设计高分段平均分…………………………………………………………………………………….13 3.6.1计算代码设计…………………………………………………………………………………...13 3.6.2 设计SHOW_GFD表单………………………………………………………………………..18 3.6.3 设计报表………………………………………………………………………………………..18 3.7 设计大平均分………………………………………………………………………………………….19 3.8 设计设置高分段……………………………………………………………………………………….19 4 调试分析…………………………………………………………………………………………………...….21 5 总结…………………………………………………………………………………………………………….23

5.1 系统的改进与扩展……………………………………………………………………………………..23 5.2成绩计算系统总结…………………………………………………………………………………...…23 5.3 对本课的建议…………………………………………………………………………………………..23 6 致谢…………………………………………………………………………………………………………….24 7 参考文献……………………………………………………………………………………………………….25 8 附录……………………………………………………………………………………………………………26

8.1 设计输入数据模块……………………………………………………………………………………26 8.2设计整理数据………………………………………………………………………………………….26 8.3设计离均差模块……………………………………………………………………………………….28 8.4设计大平均分模块…………………………………………………………………………………….37

1 需求分析

1.1 问题描述

成绩计算系统是Visual ForPro进行系统操作的理想实例,包含了计算离均差、大平均差、

高分段平均分3个主要功能。其中离均差是运用方差分析的方法处理学生的成绩,得出各个班整体的;大平均分是将所有参考学生的成绩平均,了解学生的平均水平;高分段平均分是按照给定的分数线计算该分数线以上的平均分。

1.2 基本要求

1)巩固和加深对Visual ForPro 语言基础知识的理解,提高综合运用所学课程知识的能力。

2)培养学生的实际动手操作能力。

3)通过实际的课程设计,初步掌握简单软件的分析方法和设计方法。 4)需要了解排序算法。

5)能熟练地错误程序进行调试,能正确解释和分析实验结果。

2 概要设计

2.1 学生信息的设计

学生的信息包括:考生考号、考生的姓名、班级名称、科目名称,任课教师姓名、离均差、大平均分。这些信息反映到数据库表中,其字段名如下表

表1—1 学生成绩表结构 编号 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19

字段名 KSH XM ZF DW YW YW1 YW2 SX SX1 SX2 YY YY1 YY2 ZH WL WL1 WL2 HX HX1

字段类型 字符型 字符型 数值型 字符型 数值型 数值型 数值型 数值型 数值型 数值型 数值型 数值型 数值型 数值型 数值型 数值型 数值型 数值型 数值型

9 8 5 10 5 5 5 5 5 5 5 5 5 5 5 5 5 5 5 字段长度

小数位数 无 无 1 无 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1

作用 考生的考号 考生的姓名 总分

考生学校名称 语文总分 语文卷一成绩 语文卷二成绩 数学总分 数学卷一成绩 数学卷二成绩 英语总分 英语卷一成绩 英语卷二成绩 综合成绩 物理总分 物理卷一成绩 物理卷二成绩 化学总分 化学卷一成绩

20 21 22 23

HX2 SW SW1 SW2

数值型 数值型 数值型 数值型

5 5 5 5

1 1 1 1

化学卷二成绩 生物成绩 生物卷一成绩 生物卷二成绩

表1—2 离均差表 编号 1 2 3 4 5 6 7 8

字段名 BJ KM RK PZH LJC KBLJC QSHLJC LJCZHF

字段类型 字符型 字符型 字符型 数值型 数值型 数值型 数值型 数值型

字段长度 30 10 10 10 10 10 10 10

小数位数 无 无 无 2 2 2 2 2

作用 班级名称 科目名称 任课教师姓名 PZH值 离均差 可比离均差 起始离均差 离均差的涨幅

2.2系统功能的设计

成绩处理系统的目的是客观评价学生的成绩,为以后改良教学方法提供依据,这就要求

分析的结果准确、客观、全面。对于单科成绩,需要了解该科的平均分、最高分以及与其他班级的差距。为此,该系统设计了输入数据、离均差、大平均分、高分段平均分几个功能模块,以及数据整理和设置高分段两个辅助功能。结构图如下所示

图2.1 功能分析图

2.3结构框架图

确定了系统的功能,即可设计系统的功能模块。针对以上功能要求,分别设计GFD_SHR1、

SELECT_CLASS、ZHL、SHOW_LJC、SHOW_GFD表单,其结构图如下:

图2.2 程序结构图

用户运行程序时,弹出MAIN表单,在该表单上放置了6个功能项,单击其中某个按钮,程序将按照规定的方法处理数据,最后将处理的结果展示给用户以便查阅,用户确认无误后,单击界面上的“打印”按钮系统将打印出处理结果。

3 详细设计

3.1 设计主程序

程序在运行期间要使用部分变量来传递数据,这些变量都是主程序定义的。

打开VFP程序,进入设计界面,然后新建一个项目文件,以“成绩计算”命名保存,打开该项目管理器,在管理器的“代码”选项卡中添加一个名为“MAIN”的代码文件,并在“MAIN”代码文件窗口添加如下代码:

*初始化系统 close all clear all clea set talk off set deleted on *设置窗口属性 _screen.caption="计算" _screen.windowstate=2 *设置全局变量,用来传递数据 public show_file_name *调用主界面 do form main

3.2 设计主界面模块

主界面是操作者选择功能的主要方式,在设计上力求简单快捷。由于该系统的功能比较单一,因此采用了按钮的方式,如果系统的功能比较多建议采用菜单的方式,可以使界面简洁。在项目管理器中添加一个表单,命名为“MAIN”,Caption属性设置为“成绩分析”;使用“表单控件”工具栏在表单上一个CommandGroup控件,用户分隔显示界面如图3.1:

图3.1 添加CommandGroup 控件

利用同样的方法在该表单上添加另外2个CommandGroup 控件,接下来添加利用“表单控件”工具箱在表单中添加7个CommandGroup控件完成具体功能,1个Lable控件显示标题信息。属性如表1—1所示。

表3—1 属性设置 编号 1 2 3 4 5 6 7 8 9 10 11

名称

类型

属性名称

属性值

CommandGroup1 CommandGroup ButtonCount 0 CommandGroup2 CommandGroup ButtonCount 0 CommandGroup3 CommandGroup ButtonCount 0 Lable Command1 Command2 Command3 Command4 Command5 Command6 Command7

Lable Command Command Command Command Command Command Command

Caption Caption Caption Caption Caption Caption Caption Caption

成绩计算系统 输入数据 离均差 整理数据 高分段平均分 大平均分 设置高分段 退出

完成设计后界面如图3.2 所示

图3.2 设计主界面

在主界面设计了6项功能,用6 个Command控件完成,将完成此项功能所需的代码添放在6个Command控件的Click事件中。

3.3设计输入数据模块

在实际考试中考试的成绩由主观成绩和客观成绩两部分组成。所以在系统中提供了输入主观成绩的界面,即输入数据模块。

3.3.1选择班级模块

在输入数据前应该先选择要输入的班级,为此设计了选择班级的界面。在项目管理器中新建一表单,命名为“SELECT_CLASS”将Caption属性设置为“班级选择”,并添加2个CommandGroup控件分隔显示界面、1个Image控件用来插入背景图片、1个Combo控件供用户选择班级、2个Command控件完成控制功能,上述控件的主要属性设置如表3—1 所示。 表3—1 属性设置 编号 1 2 3

名称

类型

属性名称

属性设置 0 0

20041119277.jpg 1_值 cjg301,cjg302,

4

Combo1

Combo

RowSourceTypeRowSource cjg33,cjg304,cjg3305,

cjg306

5 6

Command1 Command2

Command Command

Caption Caption

选择 返回

CommandGroup1 CommandGroup ButtonCount CommandGroup2 CommandGroup ButtonCount Image1

Image

Picture

设计完成后界面如下图3.3 所示

图3.3 选择班级界面

系统运行时允许用户选择所要输入成绩的班级,并根据用户的选择打开相应班级的成绩单供用户修改,为此Command1控件的Click行为中添加代码,见附录8.1

3.3.2设计输入学生成绩表单

在SELECT_CLASS表单中要调用一个修改学生成绩的表单,下面介绍设计过程。 在项目管理器中新建一表单,命名为“XG”将Caption属性设置为“输入数据”。下面为该表单设置数据环境,用鼠标右键在表单空白处单击,在弹出的快捷菜单中现在“数据环境”命令,将打开“数据环境设计器”窗口。接下来将SHOW,DBF 数据表添加到数据环境中,用鼠标右键在设计器的空白处单击,现在弹出的快捷菜单中的“添加”命令。

通过数据环境中的表可以实现多种功能如用数据环境在的表建立一个Gril控件,只需要将现在的表文件拖放到表单中即可。在此Gril控件中可以任意修改学生的成绩,为了将修改的结果保存到相应的班级成绩表中,在表单上添加10个Command控件,命名为Command1,并将Caption属性设置为“确定”,如图3.4 所示。

图3.4 添加Command控件

在Command1控件的Click行为代码窗口中添加如下代码,将修改的结果保持到相应的比较成绩表中,其中SHOW_HILE_NAME为用户选择的比较成绩库文件名。代码见附录8.1

3.4 设计整理数据

在系统中处理的学生成绩一部分是由自动阅卷机产生的,另外一部分由人工输入的,再由两部分数据合成其他相关数据,数据整理的目的就是完成上述功能。

在“MAIN”表单的Command3控件的Click行为窗口输入代码,代码见附录8.2

3.5 设计离均差模块

3.5.1 代码设计

在处理离均差前首先要计算出每班每科的p值,计算过程是首先将一个班级的单科成绩降序排列,然后将该成绩序列分成3个分数段,每个分数段的起始点是人为规定的,其次计算出每个分数段的平均分,最好将3个分数段的平均分乘以一个系数,将得到的结果相加就是p值,接下来处理系数、可比离均差、离均差涨幅等多项数据。

上述功能的实现放在了主界面值,即MAIN表单中的Command2控件的Click行为窗口中,用鼠标双击该控件,打开Click行为窗口,添加实现功能的代码。

① 计算p值

P值是离均差处理中的一个重要的数据,在以后计算中要重复使用。P值的计算公式如下: P=第一个分数段的平均分*0.5+第二个分数段的平均分*0.35+第三个分数段的平均分*0.15

公式中每个分数段平均分乘以的权重是根据需要确定的,用户可自行修改,计算出的p值存放在LJC.DBF数据表,代码见附录8.3

②计算系数

系数代表了本次考试成绩与本学期第一次考试成绩的比值,系数越小表明本次考试成绩越好。计算公式如下:

系数=本学期考试第一次(前27%平均分-后27%平均分)/本次(前27%平均分-后27%平均分)

具体代码设计见附录8.3 ③计算离均差

取出理科班某一班的p值,计算出该科p值的平均值,然后用理科班所有班级的相应科目的p值和计算处理的平均值相减,得到的结果就是离均差。具体代码见附录8.3

④计算可比离均差

该数值反映了本次考试成绩与上一次考试的对比情况,计算方法是用本次的离均差与本学期第一次考试离均差相减得到的结果即为可比离均差,代码见附录8.3 ⑤设置起始离均差

本学期第一次考试的科比离均差要作为以后考试的起始离均差,所有要检查LJC.DBF表中起始离均差是否为0,如果是将本次的可比离均差作为起始离均差,代码见附录8.3 ⑥整理离均差数据

通过上面的设计以及将所有的离均差相关的数据处理完毕,为了更加清楚地反映本次考试结果,将处理的结果按科目排序,排序的结果存放在LJC.DBF表中,代码见附录8.3

3.5.2 设计SHOW_LJC表单

SHOW_LJC表单的作用为向用户显示本次的处理结果。在项目管理器中新建一个表单,命名为SHOW_LJC,在数据环境在添加LJC_PX.DBF表,并创建一个Gril 控件。上述操作完成后天就两个Command控件,并将Command1控件的Caption属性设置为“打印”,完成打印功能:Command2控件的Caption属性设置为“返回”。

3.5.3 设计LJCBB报表

设计LJCBB报表首先在项目管理器中新建一个报表文件,命名为LJCBB.FRX,再在数据环境中添加LJC_PX.DBF,并在设计器中设计如图3.5 所示的报表。

图3.5 报表设计器

3.6 设计高分段平均分

高分段反映的是上段分数的平均水平,反映出高分成绩的水平。高分段是人为规定的,高于该分数段的成绩都称之为高分,对该成绩平均得到的数据叫高分段平均分。

3.6.1 计算代码设计

在“MAIN” 表单的Command3控件的Click行为中添加如下代码:

&& 计算高分段的平均分 SET TALK OFF CLOSE ALL GFD_L=0 GFD_W=0 USE DMD_G.DBF GFD_L=DMD_G.CHJ1 GFD_W=DMD_G.CHJ2 USE

USE LKGF.DBF DELETE ALL PACK USE

USE LKGFBB.DBF DELETE ALL PACK USE

&& 计算理科的高分段平均分 SUM_GF=0 &&高分段人数 FOR I=1 TO 3 DO CASE CASE I=1 BJ_DAIMA="CJG301.DBF"

BJ_NAME="高三(1)班"

CASE I=2 BJ_DAIMA="CJG302.DBF"

BJ_NAME="高三(2)班"

CASE I=3

BJ_NAME="高三(3)班"

ENDCASE

FOR J=1 TO 6

DO CASE

CASE J=1

KM_DAIMA="YW" KM_MCH="语文"

CASE I=2

KM_DAIMA="SX" KM_MCH="数学"

CASE I=3

KM_DAIMA="YY" KM_MCH="英语"

CASE J=4

KM_DAIMA="WL" KM_MCH="物理"

CASE J=5

KM_DAIMA="HX" KM_MCH="化学"

CASE J=6

KM_DAIMA="SW" KM_MCH="生物"

ENDCASE

USE &BJ_DAIMA

AVERAGE &KM_DAIMA TO TEMP FOR ZF=>GFD_L ALL USE TEACHER.DBF

LOCATE FOR NAME=BJ_NAME.AND.KM=KM_MCH RKJSH=T_NAME

USE LKGF.DBF APPEND BLANK

REPLACE BJ WITH BJ_NAME,KM WITH KM_MCH,RK WITH RKJSH,PJF WITH TEMP

USE

ENDFOR

ENDFOR

&& 以下代码计算文科的高分段平均分 FOR I=4 TO 6 DO CASE CASE I=4 BJ_DAIMA="CJG304.DBF"

BJ_NAME="高三(4)班"

CASE I=5 BJ_DAIMA="CJG305.DBF"

BJ_NAME="高三(5)班"

CASE I=6 BJ_DAIMA="CJG306.DBF"

BJ_NAME="高三(6)班"

ENDCASE FOR J=1 TO 6 DO CASE

CASE J=1 KM_DAIMA="YW"

KM_MCH="语文"

CASE J=2 KM_DAIMA="SX"

KM_MCH="数学"

CASE J=3

KM_DAIMA="YY"

CASE J=4

KM_DAIMA="ZZ" KM_MCH="政治"

CASE J=5

KM_DAIMA="LS" KM_MCH="历史"

CASE J=6

KM_DAIMA="DL" KM_MCH="地理"

ENDCASE USE &BJ_DAIMA

AVERAGE &KM_DAIMA TO TEMP FOR ZF>=GFD_W ALL USE TEACHER.DBF

LOCATE FOR NAME=BJ_NAME.AND.KM=KM_MCH RKJSH=T_NAME USE

USE LKGF.DBF APPEND BLANK

REPLACE BJ WITH BJ_NAME,KM WITH KM_MCH,RK WITH RKJSH,PJF WITH TEMP USE

ENDFOR

ENDFOR &&整理报表文件 FOR J=1 TO 9

DO CASE

CASE I=1

KM_DAIMA="语文"

CASE I=2

KM_DAIMA="数学"

KM_DAIMA="英语"

CASE I=4

KM_DAIMA="物理"

CASE I=5

KM_DAIMA="化学"

CASE I=6

KM_DAIMA="生物"

CASE I=7

KM_DAIMA="政治"

CASE I=8

KM_DAIMA="历史"

CASE I=9

KM_DAIMA="地理"

ENDCASE USE LKGFBB.DBF

APPEN FROM LKGF FOR KM="&KM_DAIMA"

ENDFOR

MESSAGEBOX("数据处理完!") DO FORM SHOW_GFD

3.6.2 设计SHOW_GFD表单

该表单设计方法与SHOW_LJC相同,区别在于数据环境中添加表为LKGFBB.DBF,设计界面如图3.6所示。

图3.6 SHOW_GFD表单设计界面

3.6.3 设计报表

同样要设计个报表文件,数据环境在添加LKGFBB.DBF,设计界面如图3.7所示。

图3.7 高分段平均分报表设计界面

3.7 设计大平均分

平均分是成绩处理中最为基础的计算方法,在MAIN表单中鼠标双击command4,打开click行为的代码编辑窗口,将计算大平均分的功能添加到窗口中,代码见附录8.4

在上述代码的结束部分调用SHOW_DPJ表单,该表单设计与SHOW_LJC表单类似,不同之处在于数据环境中添加DPJBB.DBF表。同样设计报表文件SHOW_DPJ数据环境中添加DPJBB.DBF表。

3.8设计设置高分段

高分段是考试结束后人为确定的,本系统中提供了设置高分段的一个模块,在项目管理器中添加一个表单,命名为GFD.SHR。添加2个ComandGroup控件,用来分割表单显示区域;3个lable控件,用来显示标题和提示信息;2个text控件,供用户输入成绩;1个Command控件,完成输入结果的保存。

表3.1 主界面控件属性设置

设计完成的表单如图3.8 所示。

图3.8 高分段输入设计界面

程序运行时在两个文本框中输入理科和文科高分段,然后单击“确定”按钮保存输入的成绩,为此在Command 1控件的Click行为代码窗口中输入如下代码,完成上述功能。

USE DMD_G.DBF

CJ1=VAL (ALLTRIM(THISFORM.TXTCHJ1.VALUE)) CJ2=VAL(ALLTRIM(THISFORM.TXTCHJ2.VALUE)) REPLACE CHJ1 WITH CJ1 REPLACE CHJ2 WITH CJ2 USE

*释放表单

THISFORM.RELEASE

返回到主界面,在Command6控件的click行为代码窗口中添加如下代码,以便用户调用设置高分段表单:

Do form GFD_SHR

调用高分段设计模块,同时在Command7控件的click行为代码窗口中添加,退出该系统。 THISFORM.REPLACE

这个系统的设计工作就完成了。

4 调试分析

设计输入数据模块检测图

4.1

图4.1 班级输入界面

设计离均差模块检测图4.2

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

Top