问答题 综合应用题(1小题,计30分) 在考生文件夹下有学生管理数据库books,数据库中有score表(学号、物理、高数、英语和学分查询表结构),其中前4项已有数据。 请编写符合下列要求的程序并运行程序: 设计一个名为myform的表单,表单中有两个命令按钮,按钮的名称分别为cmdyes和cmdno,标题分别为"计算"和"关闭"。程序运行时,单击"计算"按钮应完成下列操作: 1)计算每一个学生的总学分并存入对应的学分字段。学分的计算方法是:物理60分以上 (包括60分)2学分,否则0分;高数60分以上(包括60分)3学分,否则0分;英语60分以上(包括60分)4学分,否则0分。 2)根据上面的计算结果,生成一个新的表xf(要求表结构的字段类型与score表对应字段的类型一致),并且按学分升序排序,如果学分相等,则按学号降序排序。单击"退出"菜单项,程序终止运行。
【正确答案】在命令窗口输入命令:CREATE FORM myform,打开表单设计器;单击表单控件工具栏上的"命令按钮"控件图标,向表单添加两个命令按钮,选中第一个命令按钮(command1),在属性对话框中将命令按钮的Name属性值修改为"cmdyes",将Caption属性值修改为"计算",如图7-4所示。以同样的方法,将第二个命令按钮(command2)的Name属性值修改为"cmdno",将Caption属性值修改为"关闭"。 [8} 双击命令按钮cmdyes(计算),在Click事件代码中编写如下程序段: *******"计算"命令按钮的Click事件代码******* SET TALK OFF USE score REPLACE ALL 学分 WITH 0 GO TOP DO WHILE .NOT. EOF() IF 物理>=60 THEN REPLACE 学分 WITH 学分+2 ENDIF IF 高数>=60 THEN REPLACE 学分 WITH 学分+3 ENDIF IF 英语>=60 THEN REPLACE 学分 WITH 学分+4 ENDIF SKIP ENDDO SORT ON 学分,学号/d TO xf SET TALK ON ********************************************** 双击命令按钮cmdno(关闭),在Click事件代码中编写如下程序段: ********"关闭"命令按钮的Click事件代码******* ThisForm.Release ********************************************** 保存表单,在命令窗口输入命令:DO FORM myform。在运行的表单界面中单击"计算"命令按钮,系统将计算结果自动保存到新表xf中。
【答案解析】本大题考查的主要是通过对表单控件编写事件代码,来完成数据的查询操作,一般来说命令按钮的单击事件代码是存放在Click事件中,控件属性修改可以在属性对话框中完成,对于程序设计部分,可以通过Do While…Enddo循环来依次判断数据表中的每条记录,然后通过条件语句进行分类统计。