在考生文件夹下有“公司”数据库,数据库中有表“加班费”和“加班登记”。请编写并运行符合下列要求的程序:设计一个名为“ed2”的菜单,菜单中有两个菜单项“计算”和“关闭”。程序运行时,单击“计算”菜单项应完成下列操作:(1)计算“加班登记”表的每个员工的加班费,计算方法是:加班费一次数*(加班类型对应的“加班费”表的“加班费”字段)的总和。(2)根据上面的结果,将员工的职工编号、姓名、加班费存储到自由表“result2”中,并按加班费降序排列,如果加班费相等,则按职工编号的升序排列。单击“关闭”菜单项,程序

题目

在考生文件夹下有“公司”数据库,数据库中有表“加班费”和“加班登记”。

请编写并运行符合下列要求的程序:

设计一个名为“ed2”的菜单,菜单中有两个菜单项“计算”和“关闭”。

程序运行时,单击“计算”菜单项应完成下列操作:

(1)计算“加班登记”表的每个员工的加班费,计算方法是:

加班费一次数*(加班类型对应的“加班费”表的“加班

费”字段)的总和。

(2)根据上面的结果,将员工的职工编号、姓名、加班费存储到自由表“result2”中,并按加班费降序排列,如果加班费相等,则按职工编号的升序排列。

单击“关闭”菜单项,程序终止运行。


相似考题
更多“在考生文件夹下有“公司”数据库,数据库中有表“加班费”和“加班登记”。请编写并运行符合下列要求的程 ”相关问题
  • 第1题:

    在考生文件夹下有一个数据库stsc,其中有数据库表student、score和course,利用SQL语句查询选修了“网络工程”课程的学生的全部信息,并将结果按学号降序存放在netp.dbf文件中(表的结构同student,并在其后加入课程号和课程名字段)。

    2.在考生文件夹下有一个数据库stsc,其中有数据库表student,使用一对多报表向导制作一个名为cjb的报表,存放在考生文件夹下。

    要求:从父表student中选择学号和姓名字段,从广表score中选择课程号和成绩,排序字段选择学号(升序),报表式样为简报式,方向为纵向。报表标题为“学生成绩表”。


    正确答案:1.在命令窗口输入命令:MODIFY COMMAND query打开程序文件编辑器;在程序文件编辑窗口中输入如下程序段: **********程序文件query.prg程序内容********** SELECT student.*score.课程号course.课程名; FROM stsc!student lNNER JOIN stsc!score; INNER JOIN stsc!course; ON score.课程号=eourse.课程号; ON student.学号=score.学号; WHERE course.课程名="网络工程" ORDER BY student.学号 DESC; INTO TABLE netp.dbf ********************************************** 保存程序文件在命令窗口输入命令:DO query完成查询。 2.请按以下步骤完成: 利用菜单命令“文件”→“新建”或从常用工具栏中单击新建图标按钮在弹出的“新建”对话框中选择“报表”单选项再单击“向导”图标按钮系统弹出“向导选取”对话框在列表框中选择“一对多报表向导”单击“确定”按钮。 选择“一对多报表向导”后系统首先要求选择一对多报表中作为父表的数据表文件。根据题意选择student表作为父表如图3-1所示从“可用字段”列表框中将“姓名”和“学号”字段添加到右边的“选定字段”列表框中用作父表的可用字段。 单击“下一步”设计子表的可用字段操作方法与父表选取字段的方法一样将score表中的“课程号”和“成绩”字段添加到“选定字段”列表框中。 单击“下一步”进入“建立表关联”的设计界面在此处系统已经默认设置好进行关联的字段:父表的“学号”和子表的“学号”字段。 单击“下一步”进入“选择排序方式”的设计界面将“可用字段或索引标识”列表框中的“学号”字段添加到右边的“选定字段”列表框中并选择“升序”单选项。 单击“下一步”进入“选择报表样式”的界面在“样式”列表框中选择 “简报式”’在“方向”选项组中选择“纵向”。 单击“下一步”进入最后的“完成”设计界面在“标题”文本框中输入“学生成绩表”为报表添加标题单击“完成”命令按钮在系统弹出的“另存为”对话框中将报表以cjb文件名保存在考生文件夹下退出报表设计向导。
    1.在命令窗口输入命令:MODIFY COMMAND query,打开程序文件编辑器;在程序文件编辑窗口中输入如下程序段: **********程序文件query.prg程序内容********** SELECT student.*,score.课程号,course.课程名; FROM stsc!student lNNER JOIN stsc!score; INNER JOIN stsc!course; ON score.课程号=eourse.课程号; ON student.学号=score.学号; WHERE course.课程名="网络工程" ORDER BY student.学号 DESC; INTO TABLE netp.dbf ********************************************** 保存程序文件,在命令窗口输入命令:DO query,完成查询。 2.请按以下步骤完成: 利用菜单命令“文件”→“新建”,或从常用工具栏中单击新建图标按钮,在弹出的“新建”对话框中选择“报表”单选项,再单击“向导”图标按钮,系统弹出“向导选取”对话框,在列表框中选择“一对多报表向导”,单击“确定”按钮。 选择“一对多报表向导”后,系统首先要求选择一对多报表中作为父表的数据表文件。根据题意,选择student表作为父表,如图3-1所示,从“可用字段”列表框中将“姓名”和“学号”字段添加到右边的“选定字段”列表框中,用作父表的可用字段。 单击“下一步”设计子表的可用字段,操作方法与父表选取字段的方法一样,将score表中的“课程号”和“成绩”字段添加到“选定字段”列表框中。 单击“下一步”进入“建立表关联”的设计界面,在此处系统已经默认设置好进行关联的字段:父表的“学号”和子表的“学号”字段。 单击“下一步”进入“选择排序方式”的设计界面,将“可用字段或索引标识”列表框中的“学号”字段添加到右边的“选定字段”列表框中,并选择“升序”单选项。 单击“下一步”进入“选择报表样式”的界面,在“样式”列表框中选择 “简报式”’在“方向”选项组中选择“纵向”。 单击“下一步”,进入最后的“完成”设计界面,在“标题”文本框中输入“学生成绩表”为报表添加标题,单击“完成”命令按钮,在系统弹出的“另存为”对话框中,将报表以cjb文件名保存在考生文件夹下,退出报表设计向导。 解析:本大题第1小题考查的是利用SQL语句进行多表查询以及查询输出,程序设计中应注意数据表之间的关联以及查洵结果的分组排序:第1小题主要考查报表向导的使用,只要根据每个向导界面的提示来完成相应的步骤即可。

  • 第2题:

    在考生文件夹下有“db4.mdb”数据库。

    鸡和兔子共30只,脚共90只,编写模块“模块1”实现计算鸡和兔子共多少只,结果用消息框显示,要求用Do While循环实现。


    正确答案:

  • 第3题:

    考生文件夹下有一个数据库“schoo1”,其中有数据库表“student”、“score”和“course”。

    (1)在考生文件夹下有程序文件“cx1.prg”.该程序的功能是检索同时选修了课程编号为“0001”和“0003”的学生的学号。请修改程序中的错误,并调试该程序.使其正确运行。考生不得增加或删减原程序的行数。

    (2)在考生文件夹下设计一个表单“bd1”,该表单为

    “student”表的窗口式输入界面,表单上还有一个名为“cmd-Close”的按钮,标题名为“关闭”,单击该按钮,使用This-Form.Release退出表单。最后将表单存放在考生文件夹中。

    注意:在设计表单时,打开“school”数据库。将“student”表拖入到表单中就实现了“student”表的窗口式输入界面,不需要其他设置或修改。


    正确答案:
    【考点指引】本大题第l小题主要考查改正在使用SQL编程时容易产生的错误;第2小题主要考查表单的创建。
    (1)【操作步骤】
    ①在命令窗口中输入命令:M()DI C()MM exl(回车执行),打开程序文件编辑窗口,在程序文件编辑窗口中修改如下:
    原程序:SELECT学号FR()M score WHERE课程编号IN(”0001”,”0003”)
    修改后:SELECT DIsTINcT学号FROM score
    WHERE学号IN(SELECT学号FROM
    score WHERE课程编号=”0001”)AND学
    号IN(SELECT学号FROM score
    WHERE课程编号=”0003”)
    关闭程序文件编辑窗口并保存程序文件。
    ②在命令窗口中输入命令:DO cxl(回车执行),执行程
    序文件。
    (2)【操作步骤】
    ①选择【文件】→【新建】命令,选择“表单”,单击“新建文件”按钮打开表单设计器,单击表单控件工具栏上的“命令按钮”控件图标,为表单添加一个命令按钮Commandl。
    ②在按钮属性窗口中将命令按钮Commandl的Name属性值修改为cmdClose,将Caption属性值修改为“关闭”。
    双击命令按钮,在Click事件中输入代码:ThisForm.Re-lease,用来关闭表单。
    ③在表单设计器中,鼠标右键单击表单空白处,在弹出的快捷菜单中选择“数据环境”命令,打开表单的数据环境,将数据表文件“student”添加到数据环境中,将数据环境中的“student”表拖放到表单中,可看到在表单中出现一个表格控件,此时实现了“student”表的窗口式输入界面。
    ④选择【表单】→【执行表单】命令,系统首先要求保存该表单文件,在弹出的“另存为”对话框中输入表单文件名“bdl”,保存在考生文件夹下,然后运行表单。

  • 第4题:

    在考生文件夹下有工资数据库wage3,包括数据库表文件:zg(仓库号C(4),职工号C(4),工资N(4))。设计一个名为tj的菜单,菜单中有两个菜单项“统计”和“退出”。

    程序运行时,单击“统计”菜单项应完成下列操作;检索出工资小于或等于本仓库职工平均工资的职工信息,并将这些职工信息按照仓库号升序排序,在仓库号相同的情况下再按职工号升序存放到emp1(emp1为自由表)文件中,该数据库表文件和zs数据库表文件具有相同的结构。

    单击“退出”菜单项,程序终止运行。

    (注意:相关数据表文件存在于考生文件夹下)


    正确答案:在命令窗口输入命令:CREATE MENU tj系统弹出一个“新建菜单”对话框在对话框中单击“菜单”图形按钮进入菜单设计器环境。根据题目要求首先输入两个主菜单名称“统计”和“退出”接着在“统计”菜单行的“结果”下拉框中选择“过程”选项(用于编写程序)在“退出”菜单行的“结果”下拉框中选择“命令”选项。 单击“统计”菜单行中的“编辑”按钮进入程序设计的编辑窗口在程序编辑窗口中输入如下程序段: **********“统计”菜单命令的程序设计********** SET TALK OFF SET SAFETY OFF OPEN DATABASE wage3 SELECT 仓库号AVG(工资) AS avggz; FROM zg; GROUP BY 仓库号; INTO CURSOR curtable SELECT zg.仓库号zg.职工号zg.工资; FROM zgcurtable; WHERE zg.工资<=curtable.avggz; AND zg. 仓库号=curtable.仓库号; ORDER BY zg.仓库号zg.职工号; INTO TABLE emp1 CLOSE ALL SET SAFETY ON SET TALK ON ********************************************** 在“退出”菜单项的“命令”文本框中编写程序代码:SET SYSMENU TO DEFAULT。 选择菜单命令“菜单”→“生成”生成一个菜单文件tj.mpr。关闭设计窗口在命令窗口输入命令:DO tj.mpr看到Visual FoxPro的菜单栏被新建的菜单所代替单击“退出”菜单命令将恢复系统菜单。 执行“统计”菜单命令后系统自动生成新数据表文件empl.dbf用来保存查询结果。
    在命令窗口输入命令:CREATE MENU tj系统弹出一个“新建菜单”对话框,在对话框中单击“菜单”图形按钮,进入菜单设计器环境。根据题目要求,首先输入两个主菜单名称“统计”和“退出”,接着在“统计”菜单行的“结果”下拉框中选择“过程”选项(用于编写程序),在“退出”菜单行的“结果”下拉框中选择“命令”选项。 单击“统计”菜单行中的“编辑”按钮,进入程序设计的编辑窗口,在程序编辑窗口中输入如下程序段: **********“统计”菜单命令的程序设计********** SET TALK OFF SET SAFETY OFF OPEN DATABASE wage3 SELECT 仓库号,AVG(工资) AS avggz; FROM zg; GROUP BY 仓库号; INTO CURSOR curtable SELECT zg.仓库号,zg.职工号,zg.工资; FROM zg,curtable; WHERE zg.工资<=curtable.avggz; AND zg. 仓库号=curtable.仓库号; ORDER BY zg.仓库号,zg.职工号; INTO TABLE emp1 CLOSE ALL SET SAFETY ON SET TALK ON ********************************************** 在“退出”菜单项的“命令”文本框中编写程序代码:SET SYSMENU TO DEFAULT。 选择菜单命令“菜单”→“生成”,生成一个菜单文件tj.mpr。关闭设计窗口,在命令窗口输入命令:DO tj.mpr,看到Visual FoxPro的菜单栏被新建的菜单所代替,单击“退出”菜单命令将恢复系统菜单。 执行“统计”菜单命令后,系统自动生成新数据表文件empl.dbf用来保存查询结果。 解析:本大题考查的主要是利用SQL语句的进行分组汁算查询,在本题应了解SQL中用于求平均值的函数AVG的使用;在菜单的设计过程中主要是注意两个菜单命令在“结果”下拉框中应选择的类型。

  • 第5题:

    在考生文件夹下有职员管理数据库staff_8,数据库中有yuangong表和zhicheng表。 yuangong的表结构:职工编码C(4)、姓名C(10)、职称代码C(1)、工资N(10,2) zhigong的表结构:职称代码C(1)、职称名称C(8)、增加百分比N(10)然后编写并运行符合下列要求的程序:

    设计一个名为staff_m的菜单,菜单中有两个菜单项“计算”和“退出”。程序运行时,单击“计算”菜单项应完成下列操作:

    在表yuangong中增加一新的字段:新工资N(10,2)。

    现在要给每个人增加工资,请计算yuangong表的新工资字段,方法是根据zhicheng表中相应支撑的增加百分比来计算:

    新工资=工资*(1+增加百分比/100)

    单击“退出”菜单项对应命令SET SYSMENU TO DEFAULT,用于返回到系统菜单,程序终止运行。


    正确答案:在命令窗口输入命令:CREATE MENU staff_m系统弹出一个“新建菜单”对话框在对话框中单击“菜单”按钮进入菜单设计器环境。根据题目要求首先输入两个主菜单名称“计算”和“退出”接着在“计算”菜单行的“结果”下拉框中选择“过程”选项(用于编写程序)在“退出”菜单行的“结果”下拉框中选择“命令”选项。 单击“计算”菜单行中的“编辑”按钮进入程序设计的编辑窗口在命令窗口中输入如下程序段: *****“计算”菜单命令的程序设计**** SET TALE OFF USE zhicheng IN 2 USE yuangong IN 1 ALTER TABLE yuangong.ADD新工资N(102) SELECT 2 DO WHILE NOT EOF() &&遍历zhicheng表中的每一条记录 SELECT 1 UPDATE yuangong SET新工资=工资*(1+(zhicheng.增加百分比/100)); WHERE yuangong.职称代码=zhicheng.职称代码 SELECT 2 SKIP ENDDO SET TALK ON ********************************************** 在“退出”菜单项的“命令”文本框中编写程序代码:SET SYSMENU TO DEFAULT。 选择菜单命令“菜单”—“生成”生成一个可执行菜单文件staff_m.mpr。关闭设计窗口在命令窗口输入命令:DO staff_m.mpr看到Visual FoxPro的菜单栏被新建的菜单所代替单击“退出”菜单命令将恢复系统菜单。 执行“计算”菜单命令后系统生成一个新的字段并将计算结果自动保存到新字段中。
    在命令窗口输入命令:CREATE MENU staff_m,系统弹出一个“新建菜单”对话框,在对话框中单击“菜单”按钮,进入菜单设计器环境。根据题目要求,首先输入两个主菜单名称“计算”和“退出”,接着在“计算”菜单行的“结果”下拉框中选择“过程”选项(用于编写程序),在“退出”菜单行的“结果”下拉框中选择“命令”选项。 单击“计算”菜单行中的“编辑”按钮,进入程序设计的编辑窗口,在命令窗口中输入如下程序段: *****“计算”菜单命令的程序设计**** SET TALE OFF USE zhicheng IN 2 USE yuangong IN 1 ALTER TABLE yuangong.ADD新工资N(10,2) SELECT 2 DO WHILE NOT EOF() &&遍历zhicheng表中的每一条记录 SELECT 1 UPDATE yuangong SET新工资=工资*(1+(zhicheng.增加百分比/100)); WHERE yuangong.职称代码=zhicheng.职称代码 SELECT 2 SKIP ENDDO SET TALK ON ********************************************** 在“退出”菜单项的“命令”文本框中编写程序代码:SET SYSMENU TO DEFAULT。 选择菜单命令“菜单”—“生成”,生成一个可执行菜单文件staff_m.mpr。关闭设计窗口,在命令窗口输入命令:DO staff_m.mpr,看到Visual FoxPro的菜单栏被新建的菜单所代替,单击“退出”菜单命令将恢复系统菜单。 执行“计算”菜单命令后,系统生成一个新的字段,并将计算结果自动保存到新字段中。 解析:本大题考查了菜单的设计,主要注意“结果”下拉框中的选项选择即可,用于编写程序段的菜单命令应该选择“过程”,在菜单命令的过程设计中,注意正确使用SQL数据定义(新增字段)和数据更新(插入记录)语句,利用DO循环来执行每条记录的新工资字段内容的插入。