VFP实验报告(学生成绩管理系统)
合集下载
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
(5)相关数据统计单:,平均分数、平均离差、标准差、极差、合格率。
根据数据库处理的需求,这些表需要和打印表关联起来,如下图所示。图中矩形框表示表,需要关联的表用线段连接。
分数段人数单
成绩分析表
相关数据统计单
基本信息单
成绩排序表
学生成绩单
成绩从高到低排序单
二、物理设计
下面列出了学生成绩管理系统的部分的表结构,为了便于理解系统,同时也列出了表的部分记录。
平均分数= 平均离差=平均分数-期望值标准差S =
极差=最高分-最低分合格率=合格人数÷实考人数
5、表格打印
此功能把上面得到的考试基本信息、分数段人数、相关数据统计中的数据填入到最终的打印报表中,这些报表包括成绩排序表和成绩分析表。
课程名称
任课教师
上课班级
学生人数(n)
考试时间
考试形式
命题
命题形式
负责人
学号
姓名
平时成绩
考试成绩
最终成绩
学生成绩表
课程名称
任课老师
上课班级
学生人数
考试时间
考试形式
考试基本信息表
命题形式
命题负责人
阅卷人
阅卷负责人
平卷负责人
教研室主任
填表日期
分数段人数表
分数
不及格
60-70
70-80
80-90
90-100
人数
相关数据统计表
相关数据
平均分数
平均离差
标准差
极差
合格率
数值
二、功能需求
功能分析的任务,是弄清用户对目标系统数据处理功能所提出的需求,根据系统目标和数据需求,本系统的功能需求可归纳为以下几个方面。
1、数据录入
录入功能用于在各种手填单据中增加新的记录,及时补充到系统将要运行的表中。这些单据包括学生成绩表、基本信息表等。
2、数据浏览和修改
能够浏览所要得到的数据表单,并且有修改功能。这些表单包括学生成绩表、基本信息表等。
(2)若改用表单为初始界面,可以在表单上设置若干按钮来表示格子系统的功能。对于图中的菜单项,下文将为它们进行设计与编码。
三、模块设计与编码
本小节将对“学生成绩管理系统”的主要模块的设计与编写作简要说明。
1、主文件(主文件.PRG)
菜单文件名为“主菜单”,并设置一个主文件来调用它。
主文件的代码编写如下:
bLeabharlann Baiduowse
use
(4)数据查询项
此项包括两个子菜单,按姓名查询和按成绩查询,它们都是命令,分别用于显示各自的表单。
按姓名查询的命令是“do form输入学生姓名”,所出现的表单如下:
其中Text1中的LostFocus事件的代码是:xm=thisform.Text1.VALUE
Form1的Load事件的代码是:public xm,用来定义公共变量xm
按学号查询的命令是“do form输入学生学号”,所出现的表单如下:
其中Text1中的LostFocus事件的代码是:xh=thisform.Text1.VALUE
Form1的Load事件的代码是:public xh,用来定义公共变量xh
确定按钮的Click事件的代码是
use学生成绩
locate for学号=trim(xh)
clear
*成绩人数段
use学生成绩
count for最终成绩<=100 and最终成绩>=90 to a
?"90-100分的学生人数为:",a
?
count for最终成绩<90 and最终成绩>=80 to b
?"80-90分的学生人数为:",b
?
count for最终成绩<80 and最终成绩>=70 to c
一、逻辑设计
设计从分析数据入手,输入数据中的某类相关数据可以归纳为一个类。对需要同时调用的若干表,应使它们符合关联要求。数据库设计好后,可通过分析输出数据来验证起可用性,若发现有的输出数据不能导出,必须检查问题,重新调试。
本系统根据学生成绩单、基本信息单等单据的数据需求,从学生成绩单、基本信息单、成绩从高到低排序单、分数段人数单、相关数据统计单中归纳出了包含五个表的数据库。现将这些表列出如下:
确定按钮的Click事件的代码是
use学生成绩
locate for姓名=trim(xm)
if not found()
wait window"无此学生!"
else
brow for姓名=trim(xm)
thisform.release
endif
在Text1中输入学生姓名,点击确定即可查出此学生的相关成绩。
read event
quit
下图为fm(封面)的示意图:
上图确定键的Click事件的代码为:
i=i+1
if thisform.text1.value="08605214"
thisform.release
else
if i<3 &&允许输入三次
messagebox("密码错误,请重新输入!最多三次尝试机会^_^哦")
?"80-90分的学生人数为:",c
?
count for最终成绩<70 and最终成绩>=60 to d
?"80-90分的学生人数为:",d
?
count for最终成绩<60 and最终成绩>=0 to e
?"80-90分的学生人数为:",e
?
use分数段人数
replace不及格with e
replace六十到七十with d
相关数据平均分数平均离差标准差极差合格率
数值82.8889 22.8889 13.87599 47.0000 0.88889
出来上述的三个表外,还有基本信息单(学基本信息单.DBF)、成绩从高到低排序单(成绩从高到低排序单.DBF),其结构为课程名称c(10)、任课教师c(10)、上课班级c(10)、学生人数n(10)、考试时间c(10)、考试形式c(10)、命题形式c(10)、命题负责人c(10)、阅卷人c(10)、阅卷负责人c(10)、成绩评价c(10)、评卷负责人c(10)、教研室主任c(10)、填表日期c(10)。
3、应用成绩设计
一、总统设计
按照功能分类是总体设计中常用的方法,系统的总体结构可用层次图(Hierarchy Chart,简称HC图)来表示,此学生成绩管理系统的HC可由下图表示。自上而下进行分层:第一层是系统层,对应主程序;第二层为子系统层,起分类控制作用,但是当该层没有下一层时也可直接用来表达功能;第三层为功能层;第四层为操作层。
if not found()
wait window"无此学生!"
else
brow for学号=trim(xh)
thisform.release
endif
在Text1中输入学生姓名,点击确定即可查出此学生的相关成绩。
(4)数据统计与管理项
此项包括两个子菜单,分别是相关成绩统计和成绩排序。
其中相关成绩统计是过程,其代码是:
下图所示的学生成绩管理系统有三层,系统功能分类如下:学生成绩表和基本信息表的新增功能归入数据录入一类,它们俩的浏览和修改功能归入数据修改一类,数据查询功能包括了按姓名查询和按学号查询,相关成绩统计和成绩排序归入数据统计与管理一类,最后的表格打印中有打印成绩分析表和打印排序结果。图中未画出操作层,该层次的程序模块在模块设计中列出。
(1)退出菜单项的命令
clear events
(2)数据录入项
此项有两个子菜单,分别是学生成绩和基本信息,用于输入新学生的各项成绩和增加最终打印报表中的基本信息。
其中,学生成绩子菜单是过程,其代码是:
close all
use学生成绩
append
use
基本信息子菜单也是过程,其代码是:
close all
阅卷
阅卷人
负责人
成绩分析
成绩评价
成绩分布
成绩
0-59.5
60-69.5
70-79.5
80-89.5
90-100
人数
主
要
指
标
平均分数=
平均离差=平均分数-期望值
标准差S =
极差=最高分-最低分=
合格率=合格人数÷实考人数=
评卷负责人
教研室主任
填表日期
年月日
考试情况统计分析表
2、数据库设计
数据库设计的任务是确定系统所需的数据库。数据库是表的集合,通常一个系统只需一个数据库。数据库设计可分为逻辑设计与物理设计两个步骤,第一步确定数据库所包含的表及字段,第二步是确定表的具体结果,即确定字段的名称、类型及宽度等。
VFP实验报告
学生成绩管理系统
密码:08605214
班级:06国贸(3)班
学号:200610430302
姓名:李建成
1、需求分析
某大学因扩招需求,需要建立一个“学生成绩管理系统”,以取代人工管理。开发目的和功能如下:
(1)能进行成绩及相关数据的录入。
(2)具有修改功能。
(3)能按姓名、学号查询任意一名同学的成绩。
(1)学生成绩单:姓名、学号、平时成绩、考试成绩、最终成绩。
(2)基本信息单等:课程名称、任课教师、上课班级、学生人数、考试时间、考试形式、命题形式、命题负责人、阅卷人、阅卷负责人、成绩评价、评卷负责人、教研室主任、填表日期。
(3)成绩从高到低排序单:姓名、学号、平时成绩、考试成绩、最终成绩。
(4)分数段人数单:成绩段、人数。
?
?"全班学生的平均分数为:" ,h
?
*平均离差
i=h-60
?"全班学生的平均离差为:" ,i
?
*标准差
j=a+b+c+d+e
store 0 to x,y
go top
for k=1 to j
x=最终成绩-h
y=y+x*x
二、初始用户界面设计
从总统结构图很容易列出应用程序的菜单,由总体结构图转换到菜单时,其对应的情况如下:系统层对应菜单文件,子系统层对应菜单标题,功能层则对应子菜单项。
下图是“学生成绩管理系统”下拉式菜单的示意图,说明如下:
(1)本系统使用菜单作为输入密码后进入系统的初始界面,并设置一个主文件来调用菜单程序。
(4)能完成上表中各项统计。
(5)能将全班同学按从高分到低分的顺序排序。
(6)能打印上述表格。
一、数据需求
在调研的过程中,用户提供了该系统所需的输入、输出单据。输入单据包括学生成绩单、基本信息单等,输出单据包括成绩从高到低排序单、分数段人数单、相关数据统计单等,另外,在最终的打印输出中还有两张表:成绩分析表和成绩排序表。
结构:
分数段人数(成绩段c(10)、人数n(10))
记录:
分数不及格60-70 70-80 80-90 90-100
人数1 1 1 3 3
3、相关数据统计表(相关数据统计表.DBF)
结构:
相关数据统计表(平均分数n(10)、平均离差n(10)、标准差n(10)、极差n(10)、合格率n(10))
记录:
1、学生成绩单(学生成绩.DBF)
结构:
学生成绩单(姓名c(10)、学号c(10)、平时成绩n(10)、考试成绩n(10)、最终成绩n(10))
记录:
学号姓名平时成绩考试成绩最终成绩
08605201小红91 85 89
08605202小明88 88 88
08605203小云95 93 94
2、分数段人数(分数段人数.DBF)
thisform.text1.value="" &&清空表单
thisform.text1.setfocus &&获得焦点
else
messagebox("密码错,明天再试吧")
thisform.release
endif
endif
取消键的Click事件的代码为:
quit
2、主菜单程序
按照菜单图示建立菜单的内容,一层菜单包括数据录入、数据修改、数据查询、数据统计与管理、数据打印和退出项。
replace七十到八十with c
replace八十到九十with b
replace九十到一百with a
*平均分数
use学生成绩
calculate avg(平时成绩),avg(考试成绩),avg(最终成绩) to f,g,h
?"全班学生的平时成绩平均分数为:" ,f
?
?"全班学生的考试成绩平均分数为:" ,g
3、数据查询
此查询功能包括两个:按姓名查询和按学号查询,能够查询到学生成绩表中各个字段的信息,并显示相关内容。
4、数据统计和管理
此功能能够统计出各个分数段的人数和分数的相关信息,包括全班学生的平均分数、平均离差、标准差、极差和合格率等。它从学生成绩表中调用相关数据,把计算得到的数据放入分数段人数表和相关数据统计表。
use基本信息表
append
use
(3)数据修改项
此项也有两个子菜单,也是学生成绩和基本信息,用于修改学生的各项成绩和最终打印报表中的基本信息。
其中,学生成绩子菜单是过程,其代码是:
close all
use学生成绩
browse
use
基本信息子菜单也是过程,其代码是:
close all
use基本信息表
set talk off
clea all
set view to sjhj.vue
public xm,xh
xm=space(8)
xh=space(8)
do form fm.scx
keyb '{CTRL+F4}'
modi wind screen titl '欢迎使用跑跑成绩查询系统'
clea
do主菜单.mpr
根据数据库处理的需求,这些表需要和打印表关联起来,如下图所示。图中矩形框表示表,需要关联的表用线段连接。
分数段人数单
成绩分析表
相关数据统计单
基本信息单
成绩排序表
学生成绩单
成绩从高到低排序单
二、物理设计
下面列出了学生成绩管理系统的部分的表结构,为了便于理解系统,同时也列出了表的部分记录。
平均分数= 平均离差=平均分数-期望值标准差S =
极差=最高分-最低分合格率=合格人数÷实考人数
5、表格打印
此功能把上面得到的考试基本信息、分数段人数、相关数据统计中的数据填入到最终的打印报表中,这些报表包括成绩排序表和成绩分析表。
课程名称
任课教师
上课班级
学生人数(n)
考试时间
考试形式
命题
命题形式
负责人
学号
姓名
平时成绩
考试成绩
最终成绩
学生成绩表
课程名称
任课老师
上课班级
学生人数
考试时间
考试形式
考试基本信息表
命题形式
命题负责人
阅卷人
阅卷负责人
平卷负责人
教研室主任
填表日期
分数段人数表
分数
不及格
60-70
70-80
80-90
90-100
人数
相关数据统计表
相关数据
平均分数
平均离差
标准差
极差
合格率
数值
二、功能需求
功能分析的任务,是弄清用户对目标系统数据处理功能所提出的需求,根据系统目标和数据需求,本系统的功能需求可归纳为以下几个方面。
1、数据录入
录入功能用于在各种手填单据中增加新的记录,及时补充到系统将要运行的表中。这些单据包括学生成绩表、基本信息表等。
2、数据浏览和修改
能够浏览所要得到的数据表单,并且有修改功能。这些表单包括学生成绩表、基本信息表等。
(2)若改用表单为初始界面,可以在表单上设置若干按钮来表示格子系统的功能。对于图中的菜单项,下文将为它们进行设计与编码。
三、模块设计与编码
本小节将对“学生成绩管理系统”的主要模块的设计与编写作简要说明。
1、主文件(主文件.PRG)
菜单文件名为“主菜单”,并设置一个主文件来调用它。
主文件的代码编写如下:
bLeabharlann Baiduowse
use
(4)数据查询项
此项包括两个子菜单,按姓名查询和按成绩查询,它们都是命令,分别用于显示各自的表单。
按姓名查询的命令是“do form输入学生姓名”,所出现的表单如下:
其中Text1中的LostFocus事件的代码是:xm=thisform.Text1.VALUE
Form1的Load事件的代码是:public xm,用来定义公共变量xm
按学号查询的命令是“do form输入学生学号”,所出现的表单如下:
其中Text1中的LostFocus事件的代码是:xh=thisform.Text1.VALUE
Form1的Load事件的代码是:public xh,用来定义公共变量xh
确定按钮的Click事件的代码是
use学生成绩
locate for学号=trim(xh)
clear
*成绩人数段
use学生成绩
count for最终成绩<=100 and最终成绩>=90 to a
?"90-100分的学生人数为:",a
?
count for最终成绩<90 and最终成绩>=80 to b
?"80-90分的学生人数为:",b
?
count for最终成绩<80 and最终成绩>=70 to c
一、逻辑设计
设计从分析数据入手,输入数据中的某类相关数据可以归纳为一个类。对需要同时调用的若干表,应使它们符合关联要求。数据库设计好后,可通过分析输出数据来验证起可用性,若发现有的输出数据不能导出,必须检查问题,重新调试。
本系统根据学生成绩单、基本信息单等单据的数据需求,从学生成绩单、基本信息单、成绩从高到低排序单、分数段人数单、相关数据统计单中归纳出了包含五个表的数据库。现将这些表列出如下:
确定按钮的Click事件的代码是
use学生成绩
locate for姓名=trim(xm)
if not found()
wait window"无此学生!"
else
brow for姓名=trim(xm)
thisform.release
endif
在Text1中输入学生姓名,点击确定即可查出此学生的相关成绩。
read event
quit
下图为fm(封面)的示意图:
上图确定键的Click事件的代码为:
i=i+1
if thisform.text1.value="08605214"
thisform.release
else
if i<3 &&允许输入三次
messagebox("密码错误,请重新输入!最多三次尝试机会^_^哦")
?"80-90分的学生人数为:",c
?
count for最终成绩<70 and最终成绩>=60 to d
?"80-90分的学生人数为:",d
?
count for最终成绩<60 and最终成绩>=0 to e
?"80-90分的学生人数为:",e
?
use分数段人数
replace不及格with e
replace六十到七十with d
相关数据平均分数平均离差标准差极差合格率
数值82.8889 22.8889 13.87599 47.0000 0.88889
出来上述的三个表外,还有基本信息单(学基本信息单.DBF)、成绩从高到低排序单(成绩从高到低排序单.DBF),其结构为课程名称c(10)、任课教师c(10)、上课班级c(10)、学生人数n(10)、考试时间c(10)、考试形式c(10)、命题形式c(10)、命题负责人c(10)、阅卷人c(10)、阅卷负责人c(10)、成绩评价c(10)、评卷负责人c(10)、教研室主任c(10)、填表日期c(10)。
3、应用成绩设计
一、总统设计
按照功能分类是总体设计中常用的方法,系统的总体结构可用层次图(Hierarchy Chart,简称HC图)来表示,此学生成绩管理系统的HC可由下图表示。自上而下进行分层:第一层是系统层,对应主程序;第二层为子系统层,起分类控制作用,但是当该层没有下一层时也可直接用来表达功能;第三层为功能层;第四层为操作层。
if not found()
wait window"无此学生!"
else
brow for学号=trim(xh)
thisform.release
endif
在Text1中输入学生姓名,点击确定即可查出此学生的相关成绩。
(4)数据统计与管理项
此项包括两个子菜单,分别是相关成绩统计和成绩排序。
其中相关成绩统计是过程,其代码是:
下图所示的学生成绩管理系统有三层,系统功能分类如下:学生成绩表和基本信息表的新增功能归入数据录入一类,它们俩的浏览和修改功能归入数据修改一类,数据查询功能包括了按姓名查询和按学号查询,相关成绩统计和成绩排序归入数据统计与管理一类,最后的表格打印中有打印成绩分析表和打印排序结果。图中未画出操作层,该层次的程序模块在模块设计中列出。
(1)退出菜单项的命令
clear events
(2)数据录入项
此项有两个子菜单,分别是学生成绩和基本信息,用于输入新学生的各项成绩和增加最终打印报表中的基本信息。
其中,学生成绩子菜单是过程,其代码是:
close all
use学生成绩
append
use
基本信息子菜单也是过程,其代码是:
close all
阅卷
阅卷人
负责人
成绩分析
成绩评价
成绩分布
成绩
0-59.5
60-69.5
70-79.5
80-89.5
90-100
人数
主
要
指
标
平均分数=
平均离差=平均分数-期望值
标准差S =
极差=最高分-最低分=
合格率=合格人数÷实考人数=
评卷负责人
教研室主任
填表日期
年月日
考试情况统计分析表
2、数据库设计
数据库设计的任务是确定系统所需的数据库。数据库是表的集合,通常一个系统只需一个数据库。数据库设计可分为逻辑设计与物理设计两个步骤,第一步确定数据库所包含的表及字段,第二步是确定表的具体结果,即确定字段的名称、类型及宽度等。
VFP实验报告
学生成绩管理系统
密码:08605214
班级:06国贸(3)班
学号:200610430302
姓名:李建成
1、需求分析
某大学因扩招需求,需要建立一个“学生成绩管理系统”,以取代人工管理。开发目的和功能如下:
(1)能进行成绩及相关数据的录入。
(2)具有修改功能。
(3)能按姓名、学号查询任意一名同学的成绩。
(1)学生成绩单:姓名、学号、平时成绩、考试成绩、最终成绩。
(2)基本信息单等:课程名称、任课教师、上课班级、学生人数、考试时间、考试形式、命题形式、命题负责人、阅卷人、阅卷负责人、成绩评价、评卷负责人、教研室主任、填表日期。
(3)成绩从高到低排序单:姓名、学号、平时成绩、考试成绩、最终成绩。
(4)分数段人数单:成绩段、人数。
?
?"全班学生的平均分数为:" ,h
?
*平均离差
i=h-60
?"全班学生的平均离差为:" ,i
?
*标准差
j=a+b+c+d+e
store 0 to x,y
go top
for k=1 to j
x=最终成绩-h
y=y+x*x
二、初始用户界面设计
从总统结构图很容易列出应用程序的菜单,由总体结构图转换到菜单时,其对应的情况如下:系统层对应菜单文件,子系统层对应菜单标题,功能层则对应子菜单项。
下图是“学生成绩管理系统”下拉式菜单的示意图,说明如下:
(1)本系统使用菜单作为输入密码后进入系统的初始界面,并设置一个主文件来调用菜单程序。
(4)能完成上表中各项统计。
(5)能将全班同学按从高分到低分的顺序排序。
(6)能打印上述表格。
一、数据需求
在调研的过程中,用户提供了该系统所需的输入、输出单据。输入单据包括学生成绩单、基本信息单等,输出单据包括成绩从高到低排序单、分数段人数单、相关数据统计单等,另外,在最终的打印输出中还有两张表:成绩分析表和成绩排序表。
结构:
分数段人数(成绩段c(10)、人数n(10))
记录:
分数不及格60-70 70-80 80-90 90-100
人数1 1 1 3 3
3、相关数据统计表(相关数据统计表.DBF)
结构:
相关数据统计表(平均分数n(10)、平均离差n(10)、标准差n(10)、极差n(10)、合格率n(10))
记录:
1、学生成绩单(学生成绩.DBF)
结构:
学生成绩单(姓名c(10)、学号c(10)、平时成绩n(10)、考试成绩n(10)、最终成绩n(10))
记录:
学号姓名平时成绩考试成绩最终成绩
08605201小红91 85 89
08605202小明88 88 88
08605203小云95 93 94
2、分数段人数(分数段人数.DBF)
thisform.text1.value="" &&清空表单
thisform.text1.setfocus &&获得焦点
else
messagebox("密码错,明天再试吧")
thisform.release
endif
endif
取消键的Click事件的代码为:
quit
2、主菜单程序
按照菜单图示建立菜单的内容,一层菜单包括数据录入、数据修改、数据查询、数据统计与管理、数据打印和退出项。
replace七十到八十with c
replace八十到九十with b
replace九十到一百with a
*平均分数
use学生成绩
calculate avg(平时成绩),avg(考试成绩),avg(最终成绩) to f,g,h
?"全班学生的平时成绩平均分数为:" ,f
?
?"全班学生的考试成绩平均分数为:" ,g
3、数据查询
此查询功能包括两个:按姓名查询和按学号查询,能够查询到学生成绩表中各个字段的信息,并显示相关内容。
4、数据统计和管理
此功能能够统计出各个分数段的人数和分数的相关信息,包括全班学生的平均分数、平均离差、标准差、极差和合格率等。它从学生成绩表中调用相关数据,把计算得到的数据放入分数段人数表和相关数据统计表。
use基本信息表
append
use
(3)数据修改项
此项也有两个子菜单,也是学生成绩和基本信息,用于修改学生的各项成绩和最终打印报表中的基本信息。
其中,学生成绩子菜单是过程,其代码是:
close all
use学生成绩
browse
use
基本信息子菜单也是过程,其代码是:
close all
use基本信息表
set talk off
clea all
set view to sjhj.vue
public xm,xh
xm=space(8)
xh=space(8)
do form fm.scx
keyb '{CTRL+F4}'
modi wind screen titl '欢迎使用跑跑成绩查询系统'
clea
do主菜单.mpr