QRLabelScope2.Caption := IntToStr(Scope[3])+' 人,'+
Format('%.1f',[(Scope[3])*100.0/NumCount])+'%'; // 良好的人数及百分比
QRLabelScope3.Caption := IntToStr(Scope[2])+'人,'+
Format('%.1f',[(Scope[2])*100.0/NumCount])+'%'; // 中等的人数及百分比
QRLabelScope4.Caption := IntToStr(Scope[1])+'人,'+
Format('%.1f',[(Scope[1])*100.0/NumCount])+'%'; // 及格的人数及百分比
QRLabelScope5.Caption := IntToStr(Scope[0])+'人,'+
Format('%.1f',[(Scope[0])*100.0/NumCount])+'%'; // 不及格的人数及百分比
end;
界面和代码设计完成后,在主界面的“课程”→“课程成绩”菜单命令中调用该界面,界面运行效果如图7所示。单击“打印课程成绩单”按钮,输出课程成绩单,如图8所示。

图7 课程成绩录入运行界面

图8 课程成绩单报表输出界面
4 结语
在数据库应用程序中,数据的输入部分占到了很大的比例,因此设计输入界面对应用程序的好坏影响很大。一方面要实现用户的需要,另一方面界面的设计要简洁,代码设计尽可能地前后统一。考虑到一般学校学生总评成绩的计算是固定的,故本文中使用了三个成绩占比,但如果需要按不同课程有不同的成绩占比,则需要在专业计划信息表中添加三个字段分别表示三个成绩占比,读者可以自己添加并加以利用。本文中通过三个重点界面的介绍,实现了学生成绩管理系统的基本功能,并给出了创建目录树的通用快速算法、对象遍历、动态创建和释放对象、事件共享技术、事件中Sender参数的有效利用(EditAchievementChange()事件)等许多使用技巧。
|