VFP高校学生成绩管理系统
6.3查询功能模块
查询功能可以按学校、姓名和考号中的任何一种方式,对考生的成绩进行查询。
考生信息导入后, 打开的表单,如图6.8所示,在“按学校”的下拉列表框中所列的学校是系统自动将不同的参赛学校列进去的。用户只要选择一个学校,单击“确定”按钮,即可在表格中列出该学校考生的成绩信息。同时,单击“导出EXCEL”按钮,可保存该学校考生的成绩单,还可利用本系统提拱的发送电子邮件功能,将该学校考生的成绩单发送给该学校。另外,只要将光标移到“按考号”或“按姓名”的文本框中,输入考号或姓名,单击“确定”按钮,表格即显示该学生的考试成绩[4]。
图6.8查询表单
实现系统自动将不同的参赛学校列进下拉列表框功能,需要在表单Form1的Activate事件中加入如下代码:
count to num &&判断记录数
go top
if num==0 &&无记录
messagebox("请先录入考生信息",64,"提示")
thisform.release
else &&有记录
set order to 1 &&打开索引,按学校升序排
go top
a=学校
thisform.combo1.additem(a) &&将首记录的学校名加进去
skip
do while not eof() &&以下代码完成移动指针的作用,将不同的学校名加入组合框
if 学校==a
skip
else
thisform.combo1.additem(学校)
skip
a=学校
endif
enddo
set order to &&关闭索引
endif
6.4排序功能模块
排序功能包括按团体排序和按个人排序,实现对考生成绩的统计、排序等功能。
考生信息导入后, 打开的表单,如图6.9所示,这里所说的团体是指学校,一个学校代表一个团体,本系统自动将考生人数十人以上(包括十人)的学校放在一个列表框中,不满足十人的学校放在另一个列表框中,单击学校即可显示该学校的考生人数和总分。单击“确定”按钮,即可在表格中列出考生人数十人以上(包括十人)的学校总分前十名考生的总分累加作为该团体的分数,并将每个团体按分数递减排列,如图6.10所示。
图6.9按团体排序的表单 图6.10排序后的表单
表单中“确定”按钮的Click事件代码如下:
set order to 1 &&打开索引,按学校升序排
copy to zf fields 学校,总分 &&选择部分字段复制成新表zf.dbf
use zf
****以下代码实现的是如果考生人数小于十人将删除该学校****
do while recno()==1 &&如果首记录的学校考生人数小于十人将删除该学校
a=学校
count for 学校==a to i &&i存放的学校的记录个数
if i<10
dele for 学校==a &&记录个数不足十个删除
pack
i=0
endif
enddo
go top
a=学校 &&将首记录的学校名赋给变量a
do while recn()<>recc()
skip &&指向下一记录
if a<>学校 &&判断下一记录是否与原记录相同,如不同,赋给变量a
a=学校
endif
count for 学校==a to i &&i存放的学校的记录个数
if i<10
dele for 学校==a &&记录个数不足十个删除
pack
i=0
endif
b=b+i
go b && go b 始终指向的是不同学校分界处上一学校(包含十个记录)的末记录
enddo
total on 学校 to xf fields 总分 &&按学校汇总总分,写入新表xf.dbf
use xf
index on 总分 tag zf descending &&建立索引,按总分降序排
thisformset.form1.hide
thisformset.form2.show
该功能分别实现了对所有的考生按第一试、第二试和总分成绩降序的排序。如图6.11所示的按第一试成绩降序的排序。
图6.11按第一试成绩降序的排序的表单
6.5打印功能模块
打印部分提供学校成绩单和个人总分名次打印功能,对需要打印的相关信息可及时进行打印。
考生信息导入后, 打开的表单,如图6.12所示,在“选择学校”的下拉列表框中的学校是系统自动将不同的参赛学校列进去的。用户只要选择一个学校,单击“确定”按钮,即可打印所选的学校的成绩单。另外,用户也可单击“预览”按钮,浏览所选学校的成绩单,如图6.13所示。
图6.12学校成绩单的表单
图6.13预览所选学校的成绩单
该功能实现的是按名次打印个人总分,用户可以选择打印前几名的考生的成绩。另外,如选择打印考生前0名考生,将打印所有考生的成绩。该表单也提拱了预览的功能,同时也可单击“确定”按钮,直接打印,如图6.14所示。
图6.14打印个人总分的表单
表单中“预览”按钮的Click事件中代码如下:
if thisform.spinner1.value==0 &&判断打印所有考生
report form ksxx environment preview
if messagebox('确实要打印所有考生吗?',1+3+256,'提示')=6
report form ksxx environment to printer &&打印符合条件的报表
messagebox("所有考生成绩单已打印",64,"提示")
endif
else
report form ksxx environment next(thisform.spinner1.value) preview&&预览符合条件的报表
if messagebox('确实要打印吗?',1+3+256,'提示')=6
report form ksxx environment next(thisform.spinner1.value) to printer &&打印符合条件的报表
messagebox("考生前"+allt(str(thisform.spinner1.value))+"名成绩单已打印",64,"提示")
endif
endif
6.6帮助功能模块
帮助部分主要提供对本系统主题问题的帮助和关于本系统的说明,另外还提供了发送电子邮件的功能,可以方便用户发送有关信息,如:学校成绩单。这里需要说明的是用户可以单击“帮助”菜单,也可直接按键盘上的“F1” 键,即可显示出帮助窗口。发送电子邮件的功能是通过调用系统的电子邮件软件来实现[5],如:OutLook。
以上内容只是毕业设计作品的部分资料介绍,如果了解更多详情请联系客服QQ:57510459
购买帮助>>
Tags:
作者:佚名评论内容只代表网友观点,与本站立场无关!
评论摘要(共 0 条,得分 0 分,平均 0 分)
查看完整评论