表“员工”中字段“加班费”的值为空,编写满足如下要求的程序: 根据“值班”表中的夜和昼的加班费的值

题目

表“员工”中字段“加班费”的值为空,编写满足如下要求的程序:

根据“值班”表中的夜和昼的加班费的值和“员工”表中各人昼夜值班的次数确定员工表的“加班费”字段的值,最后将程序保存为myprog.prg,并执行该程序。

如果没有搜索结果或未解决您的问题,请直接 联系老师 获取答案。
相似问题和答案

第1题:

首先为order_detail表增加一个新字段:新单价(类型与原来的单价字段相同),然后编写满足如下要求的程序:根据order_list表中的“订购日期”字段的值确定order_detail表的“新单价”字段的值,原则是:订购日期为2001年的“新单价”字段的值为原单价的90%,订购日期为2002年的“新单价”字段的值为原单价的110%(注意:在修改操作过程中不要改变order_detail表记录的顺序),将order_detail表中的记录存储到od_new表中(表结构与order_detail表完全相同)。最后将程序保存为prog1.prg,并执行该程序。

接着再利用Visual FoxPro的“快速报表”功能建立一个的简单报表,该报表内容按顺序含有order_detail表的订单号、器件号、器件名、新单价和数量字段的值,将报表文件保存为report1。


正确答案:在命令窗口输入命令:USE order_detail &&打开数据表 MODIFY STRUCTURE &&打开表设计器 打开表设计器后在“字段”选项卡的“数量”字段后增加一个新的字段根据题意输入字段名:新单价字段宽度和类型与“单价”字段一样。 在命令窗口输入命令:MODIFY COMMAND prog1在程序编辑窗口中输入如下程序段: **********文件prog1.prg中的程序段********** SET TALK OFF &&将订购日期是2001年的所有的订单号放入临时表curtable中 SELECT订单号FROM order_list WHERE YEAR(订购日期)=2001; INTO CURSOR curtable && 对所有订购日期是2001年的计算新的单价 DO WHILE NOT EOF() UPDATE order_detail SET新单价=单价*0.9; WHERE订单号=curtable.订单号 SKIP ENDDO && 将订购日期是2002年的所有的订单号放入临时表CurTable中 SELECT订单号FROM order_list WHERE YEAR(订购日期)=2002; INTO CURSOR curtable && 对所有订购日期是2002年的计算新的单价 DO WHILE NOT EOF() UPDATE order detail SET新单价=单价*1.1; WHERE 订单号=curtable.订单号 SKIP ENDDO CLOSE ALL USE order_detail COPY TO od_new SET TALK ON ****************************************** 保存设计结果在命令窗口输入命令:DO prog1执行程序文件。 在命令窗口输入命令:CREATE REPORT report1打开报表设计器。选择菜单命令“报表”—“快速报表”系统首先要求选择报表数据源。根据题意选择考生文件夹下的order_detail表作为报表数据源。系统接着弹出“快速报表对话框”单击对话框中的“字段”命令按钮在弹出的“字段选择器”对话框中依次选择订单号、器件号、器件名、新单价和数量5个字段添加到“选定字段”列表框中如图3-62所示。单击“确定”按钮返回报表设计器保存报表设计。单击工具栏中的预览按钮可查看设计效果。
在命令窗口输入命令:USE order_detail &&打开数据表 MODIFY STRUCTURE &&打开表设计器 打开表设计器后,在“字段”选项卡的“数量”字段后增加一个新的字段,根据题意输入字段名:新单价,字段宽度和类型与“单价”字段一样。 在命令窗口输入命令:MODIFY COMMAND prog1,在程序编辑窗口中输入如下程序段: **********文件prog1.prg中的程序段********** SET TALK OFF &&将订购日期是2001年的所有的订单号放入临时表curtable中 SELECT订单号FROM order_list WHERE YEAR(订购日期)=2001; INTO CURSOR curtable && 对所有订购日期是2001年的计算新的单价 DO WHILE NOT EOF() UPDATE order_detail SET新单价=单价*0.9; WHERE订单号=curtable.订单号 SKIP ENDDO && 将订购日期是2002年的所有的订单号放入临时表CurTable中 SELECT订单号FROM order_list WHERE YEAR(订购日期)=2002; INTO CURSOR curtable && 对所有订购日期是2002年的计算新的单价 DO WHILE NOT EOF() UPDATE order detail SET新单价=单价*1.1; WHERE 订单号=curtable.订单号 SKIP ENDDO CLOSE ALL USE order_detail COPY TO od_new SET TALK ON ****************************************** 保存设计结果,在命令窗口输入命令:DO prog1,执行程序文件。 在命令窗口输入命令:CREATE REPORT report1,打开报表设计器。选择菜单命令“报表”—“快速报表”,系统首先要求选择报表数据源。根据题意,选择考生文件夹下的order_detail表作为报表数据源。系统接着弹出“快速报表对话框”,单击对话框中的“字段”命令按钮,在弹出的“字段选择器”对话框中,依次选择订单号、器件号、器件名、新单价和数量5个字段添加到“选定字段”列表框中,如图3-62所示。单击“确定”按钮,返回报表设计器,保存报表设计。单击工具栏中的预览按钮,可查看设计效果。 解析:本大题考查的主要是SQL语句的应用,包括数据定义、数据修改和数据查询功能,设计过程中可利用临时表来存放查询结果,再利用DO循环语句对表中的记录逐条更新。

第2题:

对考生文件夹下的数据库“员工管理”中的“员工信息”表和“职称信息”表完成如下操作:

①为表“职称信息”增加两个字段“人数”和“明年人数”,字段类型均为整型。

②编写命令程序myp,查询职工中拥有每种职称的人数,并将其填入表“职称”的“人数”字段中,根据职称表中的“人数”和“增加百分比”,计算“明年人数”的值,如果增加的人数不足一个,则不增加。

③运行该程序。


正确答案:从菜单栏里单击“文件”并选择“打开”或直接单击工具栏上的“打开”图标在弹出的对话框中选择要打开的数据库文件“员工信息管理.dbc”。 在数据库设计器中右键单击数据库表“职称信息”在弹出的快捷菜单中选择“修改”菜单命令进入“职称信息”的数据表设计器界面在“字段”选项卡中单击右边的“插入”命令按钮在字段名中输入“人数”类型为“整型”用同样的方法增加“明年人数”字段。单击右边“确定”按钮。 在命令窗口中输入命令:MODIFY COMMANDmyp在弹出的程序编辑窗口中输入如下代码: ***********文件myp.prg中的程序代码********** SELECT员工信息.职称代码增加百分比COUNT(*)AS人数; FROM员工信息职称信息; WHERE员工信息.职称代码:职称信息.职称代码; GROUP BY员工信息.职称代码; INTO CURSOR atemp DO WHILE NOT EOF() UPDATE职称信息 SET 人数=atemp.人数明年人数=atemp.人数+; atemp.人数*atemp.增加百分比/100; WHERE职称信息.职称代码=atemp.职称代码 单击菜单中的“程序”—“运行”来运行程序结果如图3-132所示。
从菜单栏里单击“文件”并选择“打开”,或直接单击工具栏上的“打开”图标,在弹出的对话框中选择要打开的数据库文件“员工信息管理.dbc”。 在数据库设计器中,右键单击数据库表“职称信息”,在弹出的快捷菜单中选择“修改”菜单命令,进入“职称信息”的数据表设计器界面,在“字段”选项卡中,单击右边的“插入”命令按钮,在字段名中输入“人数”,类型为“整型”,用同样的方法增加“明年人数”字段。单击右边“确定”按钮。 在命令窗口中输入命令:MODIFY COMMANDmyp,在弹出的程序编辑窗口中输入如下代码: ***********文件myp.prg中的程序代码********** SELECT员工信息.职称代码,增加百分比,COUNT(*)AS人数; FROM员工信息,职称信息; WHERE员工信息.职称代码:职称信息.职称代码; GROUP BY员工信息.职称代码; INTO CURSOR atemp DO WHILE NOT EOF() UPDATE职称信息 SET 人数=atemp.人数,明年人数=atemp.人数+; atemp.人数*atemp.增加百分比/100; WHERE职称信息.职称代码=atemp.职称代码 单击菜单中的“程序”—“运行”来运行程序,结果如图3-132所示。 解析:本大题主要考查的是字段的增加以及记录的更新,字段的增加可在表设计器中完成,更新记录可以利用SQL语句,设计过程中可利用临时表来存放查询结果,再利用DO循环语句对表中的记录逐条更新。

第3题:

在“值班信息”数据库中统计“员工信息”表中的“加班费”,并将结果写入“员工信息”表中的“加班费”字段。

(2)建立视图shitu,包括“职工编码”,“姓名”和“夜值班天数”等字段,内容是夜值班天数在3天以上的员工。建立表单biao,在表单上显示视图shitu的内容。


正确答案:(1)在命令窗口中输入命令;MODIFY COMMANDquery1在程序文件编辑器窗口输入如下程序段; ****文件query1.prg中的程序代码***** SELECT职工编码夜值班天数*200+昼值班天数*150AS加班费; FROM 员工信息; INTO CURSOR atemp DO WHILE NOTEOF() UPDATE员工信息 SET 加班费=atemp.加班费; WHERE员工信息.职工编码=atemp.职工编码 SKIP ENDDO ************************************** 保存设计结果在命令窗口输入命令;DOquery1.prg执行程序文件结果如图3-133所示。 (2)从菜单栏里单击“文件”并选择“打开”或直接单击工具栏上的“打开”图标在弹出的对话框中选择要打开的数据库文件“值班信息.dbc”。 在“数据库设计器”工具栏中单击“新建本地视图”按钮在弹出的“新建本地视图”对话框中单击“新建视图”按钮打开视图设计器将“员工信息”数据表添加到视图设计器中根据题意在视图设计器的“字段”选项卡中将“可用字段”列表框中的字段“员工信息.职工编码”“员工信息.姓名”和“员工信息.夜值班天数”添加到右边的“选定字段”列表框里中;在“筛选”选项卡中字段名选择“员工信息.夜值班天数”条件选择“>”实例选项中输入3完成视图设计将视图以shitu文件名保存在考生文件夹下。 在命令窗口输入命令:CREATE FORM biao打开表单设计器新建表单。 在表单设计器中鼠标右键单击空白表单选择“数据环境”快捷菜单命令打开表单的数据环境在“选定”单选框中选择“视图”将视图文件shitu添加到数据环境中将数据环境中的视图文件shitu拖放到表单中可看到在表单中出现一个表格控件此时实现了视图文件shitu的窗口式输入界面运行表单结果如图3-134所示。
(1)在命令窗口中输入命令;MODIFY COMMANDquery1,在程序文件编辑器窗口输入如下程序段; ****文件query1.prg中的程序代码***** SELECT职工编码,夜值班天数*200+昼值班天数*150AS加班费; FROM 员工信息; INTO CURSOR atemp DO WHILE NOTEOF() UPDATE员工信息 SET 加班费=atemp.加班费; WHERE员工信息.职工编码=atemp.职工编码 SKIP ENDDO ************************************** 保存设计结果,在命令窗口输入命令;DOquery1.prg,执行程序文件,结果如图3-133所示。 (2)从菜单栏里单击“文件”并选择“打开”,或直接单击工具栏上的“打开”图标,在弹出的对话框中选择要打开的数据库文件“值班信息.dbc”。 在“数据库设计器”工具栏中,单击“新建本地视图”按钮,在弹出的“新建本地视图”对话框中,单击“新建视图”按钮,打开视图设计器,将“员工信息”数据表添加到视图设计器中,根据题意,在视图设计器的“字段”选项卡中,将“可用字段”列表框中的字段“员工信息.职工编码”,“员工信息.姓名”和“员工信息.夜值班天数”添加到右边的“选定字段”列表框里中;在“筛选”选项卡中,字段名选择“员工信息.夜值班天数”,条件选择“>”,实例选项中输入3,完成视图设计,将视图以shitu文件名保存在考生文件夹下。 在命令窗口输入命令:CREATE FORM. biao,打开表单设计器新建表单。 在表单设计器中,鼠标右键单击空白表单,选择“数据环境”快捷菜单命令,打开表单的数据环境,在“选定”单选框中选择“视图”,将视图文件shitu添加到数据环境中,将数据环境中的视图文件shitu拖放到表单中,可看到在表单中出现一个表格控件,此时实现了视图文件shitu的窗口式输入界面,运行表单,结果如图3-134所示。 解析:本大题1小题主要考查的是SQL语句的应用,设计过程中可利用临时表来存放查询结果,再利用DO循环语句对表中的记录逐条更新。2小题主要考查的是视图的建立,以及表单与视图的连接。需要注意的是新建视图文件时,首先应该打开相应的数据库,且视图文件在磁盘中是找不到的,直接保存在数据库中;在表单中定数据环境,通过表单的数据环境快速建立表单控件和视图之间的联系。

第4题:

对考生文件夹下的数据库“职员管理”中的“员工信息”表和“职称”表完成如下操作:

(1)为表“职称”增加两个字段“人数”和“明年人数”,字段类型均为整型。

(2)编写命令程序“cx2”,查询职员中拥有每种职称的人数,并将其填入表“职称”的“人数”字段中,根据职称表中的“人数”和“增加百分比”,计算“明年人数”的值,如果增加的人数不足一个,则不增加。

(3)运行该程序。


正确答案:
【考点指引】本大题主要考查利用SQL语句对数据表的结构和数据进行修改,重点是分组命令的使用及数值字段的计算。
【操作步骤】
①在命令窗口中输入命令:MODICOMMcx2(回车执行),打开程序文件编辑窗口,在程序文件编辑窗口中输入以下程序代码:
ALTERTABLE职称ADD人数INT
ALTERTABLE职称ADD明年人数INT
SELECT职称编号,COUNT(*)INTOARRAYaaFROM员工信息GROUPBY职称编号
FORi=1TOALEN(aa)/2
UPDATE职称SET人数=aa(i,2)WHERE职称编号=aa(i,1)
NEXT
UPDATE职称SET明年人数=IIF(人数*增加百分比<1,0,人数*增加百分比)
关闭程序文件编辑窗口并保存程序文件。
②在命令窗口中输入命令:DOcx2(回车执行),执行程序文件。

第5题:

(1)在“zhibian”数据库中根据“zhibian”表中的标准,统计计算“yuangon9”表中的“加班费”,并将结果写入"yuangon9”表中的“加班费”字段。

(2)建立视图“view1”,包括“职工编码”、“姓名”和“夜值班天数”等字段,内容是夜值班天数在3天以上的员工。建立表单“Forml”,在表单上显示视图“view1”的内容。


正确答案:
(1)【操作步骤】
在命令窗口输入如下代码:
SELECT每天加班费FROM zhibian WHERE值班时间=“夜”INTO ARRAY a1
SELECT每天加班费FROM zhibian WHERE值班时间=“昼”INTO ARRAY a2
UPDATE yuangong SET加班费=yuangong.夜值班天数*a1(1,1)+yuangong.昼值班天数*a2(1,1)
(2)【操作步骤】
①选择【文件】→【打开】,在列表框中选择“数据库”,打开“图书借阅”数据库,然后选择【文件】→【新建】选择“视图”,然后将“yuangong”表添加到视图设计中。
②在“字段”选项卡中,将“可用字段”列表框中的题目要求的字段添加到“选定字段”中。
③在“筛选”选项卡中,在“字段名”选择“yuangong夜班值班天数”,“条件”选择为“>”,在“实例”中填入“3”。
④保存视图,然后在命令窗口输入CREATE FORM Form1,新建一个表单,然后单击右键,选择数据环境,选择“视图”,将“view1”添加到数据环境设计器中,然后将“view1”拖入表单中。
⑤保存表单。

第6题:

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

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

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

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

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

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

费”字段)的总和。

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

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


正确答案:
【考点指引】本大题主要考查菜单的设计,重点是菜单过程代码的编写,这里要用到数组、UPDATE语句和GROUP BY分组语句。
【操作步骤】
①选择【文件】→【新建】命令,选择“菜单”,单击“新建文件”按钮,再单击“菜单”按钮,打开菜单设计器,在“菜单名称”中输入“计算”,在“结果”下拉列表框中选择“过程”,单击“创建”按钮创建“计算”菜单过程,在菜单过程代码编辑窗口中输入以下代码:
SELECT*INTO ARRAY aa FROM加班费
FOR i=1 TO ALEN(aa)/2
UPDATE加班登记SET加班费一加班次数*aa(i,2)WHERE加班类型=aa(i,1)
NEXT
SELECT员工信息.职工编号,姓名,SUM(加班费)AS加班费INTOTABLEresult2FROM员工信息,加班登记WHERE员工信息.职工编号=加班登记.职工编号GROUP BY员工信息.职工编号ORDER BY加班费DESC,员工信息.职工编号
关闭菜单过程代码编辑窗口回到菜单设计器。
②单击下一行,输入菜单名称“关闭”,在“结果”下拉列表框中选择“命令”,在右边的“命令”文本框中编写程序代码:SET SYSMENU TO DEFAULT
③选择【菜单】→【生成】命令,将菜单保存为“cd2”,生成一个菜单文件"cd2.mpr”。关闭菜单设计窗口,在命令窗口中输入命令:DO cd2.mpr,执行“计算”菜单程序。

第7题:

表“工资”中字段“加班费”的值为空.编写满足如下要求的程序: 根据“加班费”表中的白天和晚上的加班费的值和“工资”表中各个人加班的类型和次数确定工资表的“加班费”字段的值(注:在修改操作过程中不要改变员工表记录的顺序)。 最后将程序保存为“cxl.prg”,并执行该程序。


正确答案:
【考点指引】本大题主要考查数据库程序设计,通过一个表的字段值计算来修改另一个表对应的字段值。
【操作步骤】
①在命令窗口中输入命令:MODI cMM cxl(回车执行),打开程序文件编辑窗口,在程序文件编辑窗口中输入以下程序代码:
SELECT*INTO ARRAY a FRM加班费
FOR i=1 TO ALEN(a)/2
UPDATE工资SET加班费=a(i,2)*加班次数
WHERE加班类型=a(i,1)
NEXT
关闭程序文件编辑窗121并保存程序文件。
②在命令窗口中输入命令:Dcxl(回车执行),执行程序文件。

第8题:

首先为“order_d”表增加一个新字段:新单价(类型与原来的单价字段相同)。然后编写满足如下要求的程序:根据“order_m”表中的“订单日期”字段的值确定“order_d”表的“新单价”字段的值,原则是:订单日期为2007年的“新单价”字段的值为原单价的90%,订单日期为2006年的“新单价”字段的值为原单价的110%(注意:在修改操作过程中不要改变“order_d”表记录的顺序)。将“order_d”表中的记录存储到“od_new”表中(表结构与“order_d”表结构完全相同)。最后将程序保存为“result.prg”,并执行该程序。

接着再利用Visual FoxPro的“快速报表”功能建立一个简单的报表,该报表内容按顺序含有“order_d”表的全部信息,将报表文件保存为“bbl”。


正确答案:
【考点指引】本大题主要考查利用SQL命令对数据表结构及数据进行修改,同时考查了Visual FoxPro中“快速报表”的使用。
【操作步骤】
①在命令窗口中输入命令:MODI COMM result(回车执行),打开程序文件编辑窗口,在程序文件编辑窗口中输入以下程序代码:
ALTER TABLE order_d ADD新单价N(10,2)
UPDATE order_d SET新单价=单价*0.9 WHERE订单编号IN(SELECT订单编号FROM order_m WHERE YEAR(订单日期)=2007)
UPDATE order_d SET新单价=单价*1.1 WHERE订单编号IN(SELECT订单编号FROM order_m WHERE YEAR(订单日期)=2006)
SELECT*INTO TABLE od_new FROM order_d
关闭程序文件编辑窗口并保存程序文件。
②在命令窗口中输入命令:DO result(回车执行),执行程序文件。
③选择【文件】→【新建】命令,选择“报表”,单击“新建文
件”按钮,打开报表设计器。
④选择【报表】→【快速报表】命令,在“打开”对话框中选择表“0rder_d”,单击“确定”按钮打开“快速报表”对话框,单击“确定”按钮系统自动建立一个简单的报表,包含表“0rder_d”的全部字段信息。
⑤单击“打印预览”快捷按钮可以预览报表效果,关闭报表设计器并保存报表为“bb1”。

第9题:

在数据库“company”中为“dept”表增加一个新字段“人数”,编写满足如下要求的程序:根据“员工信息”表中的“部门编号”字段的值确定“部门信息”表的“人数”字段的值,即对“员工信息”表中的记录按“部门编号”归类。将“部门信息”表中的记录存储到“result”表中(表结构与“部门信息”表完全相同)。最后将程序保存为“result.prg”,并执行该程序。


正确答案:
【考点指引】本大题主要考查数据库表的修改及分组统计命令的使用。
【解题步骤】
①选择【文件】→【打开】命令打开数据库“company”。
②从数据库设计器中,选择表“dept”,单击右键,在弹出的快捷菜单中选择“修改”命令,打开表设计器。
③在表设计器中,单击“字段”选项卡,在最后一行处单击,输入字段名“人数”,类型为“整型”,单击“确定”按钮保存表“dept”结构。
④切换到命令窗口,输人命令:MODIFY COMMAND result(回车执行)创建程序“result.prg”.
⑤在程序编辑窗口中输入以下程序代码:
SELECT dept.部门编号,部门名称,COUNT(*)AS
人数FROM员工信息,dept INTO ARRAY arrRlt WHERE
dept.部门编号一员工信息.部门编号GROUP BY dept.部门编号,部门名称
CLOSE ALL
DELETE FRM dept
PACK
INSERT INT0 dept FRM ARRAY arrRlt
SELECT*INTO TABLE result FROM dept
⑥关闭程序编辑器保存“result.prg”,在命令窗口中输入:DO result(回车执行)。