“雇员”表包含以下列: EMPLOYEE_ID NOT NULL, Primary Key SSNUM NOT NULL, Unique LAST_NAME VARCHAR2(25) FIRST_NAME VARCHAR2(25) DEPARTMENT_ID NUMBER 部门表中 DEPARTMENT_ID 列的外键 SALARY NUMBER(8,2) 如果执行以下语句: CREATE INDEX emp_name_idx ON employees(last_name, first_name); 以下哪个说法是的()
第1题:
delete from employee语句的作用是( )
A.删除当前数据库中整个employee表,包括表结构
B.删除当前数据库中employee表内的所有行
C.由于没有where子句,因此不删除任何数据
D.删除当前数据库中employee表内的当前行
第2题:
在订单数据库中有“订单”表,请将姓“黄”的雇员改成姓“王”。
(2)将“订单”表的行高设置为13,单元格效果改为“凸起”。“订单”表如图所示。
(3)按照下列要求建立“雇员”表并输入数据,设置“雇员”表和“订单”表之间的关系设置为一对多。
“雇员”表如图所示。
第3题:
在考生文件夹下建立一个名为emp-bak的表,其结构与employee表的结构完全相同。 2.为employee表的“职员号”字段建立一个候选索引,索引名为empid,表达式为“职员号”。 3.使用报表向导生成一个名为employee.frx的报表文件,其中包括employee表的职员号、姓名、性别和职务4个字段,报表样式设为“简报式”,将其按“职员号”升序排序,报表标题则设为“职员一览表”。 4.建立一个名为one.prg的命令文件,该文件包含一条运行(预览)报表文件employee.frx的命令。
第4题:
mdb”数据库中有产品、订单、订单明细、客户、工资和雇员表。
(1)以雇员表为数据源,创建查询“查询1”,查询1980年出生的雇员信息。结果显示雇员的全部字段。查询结果如图所示。
2)以工资表为数据源,创建参数更新查询“工资调整”,通过输入基本工资、奖金和补贴的变动数来改变雇员工资。参数提示为“基本工资变动差额”、“奖金变动差额”、“补贴变动差额”和“请输入雇员ID”。
第5题:
在数据库的如下两个表中,若雇员信息表的主键是雇员号,部门信息表的主键是部门号,在下列所给的操作中,哪个操作不能执行?
A.从雇员信息表中删除行('010','李四','01',1200)
B.将行('101','赵六','01',1500)插入到雇员信息表中
C.将雇员信息表中雇员='010'的工资改为1600元
D.将雇员信息表中雇员号='101'的雇员名改为,钱七,
第6题:
在“xxx.mdb”数据库中有“订单”表。
(1)按照下列要求创建“雇员”表。
(2)设置“雇员”表“性别”字段的默认值为“男”,有效性规则为“男”or“女”,输入有效性规则不允许值时,则提示信息为“请输入男或女字样!”。
(3)在“雇员”表中输入如下数据。
“雇员”表如图所示
第7题:
有学生关系S和借书关系C如下图所示。它们的主码分别是S#和C#。下列哪些操作不能进行?
A.从雇员信息表中删除行('010','李四','01',1200)
B.将行('101,'赵六','01',1500)插入到雇员信息表中
C.将雇员信息表中雇员='010'的工资改为1600元
D.将雇员信息表中雇员号='101'的雇员名改为'钱七'
第8题:
●试题五
阅读下列程序说明,将应填入(n)处的字句写在答卷纸的对应栏内。
【程序说明】
对于一个公司的雇员来说,无非有3种:普通雇员、管理人员和主管。这些雇员有共同的数据:名字、每小时的工资,也有一些共同的操作:数据成员初始化、读雇员的数据成员及计算雇员的工资。但是,他们也有不同。例如,管理人员除有这些共同的特征外,有可能付固定薪水,主管除有管理人员的共同特征外,还有其他物质奖励等。3种雇员中,管理人员可以看作普通雇员的一种,而主管又可以看作管理人员的一种。我们很容易想到使用类继承来实现这个问题:普通雇员作为基类,管理人员类从普通雇员类中派生,而主管人员类又从管理人员类中派生。
下面的程序1完成上述各个类的定义,并建立了3个雇员(一个普通雇员、一个管理人员和一个主管)的档案,并打印出各自的工资表。将"程序1"中的成员函数定义为内联函数,pay成员函数定义为虚函数,重新完成上述要求。
【程序1】
//普通雇员类
class Employee
{
public:
Employee(char*theName,float thePayRate);
char*getName()const;
float getPayRate()const;
float pay(float hoursWorked)const;
protected:
char*name;//雇员名称
float payRate;//薪水等级
};
Employee::Employee(char*theName,float thePayRate)
{
name=theName;
payRate=thePayRate;
}
char*Employee::getName() const
{
return name;
}
float Employee::getPayRate()const
{
return payRate;
}
float Employee::pay(float hoursWorked)const
{
return hoursWorked*payRate;
}
//管理人员类
class Manager∶public Employee
{
public:
//isSalaried付薪方式:true付薪固定工资,false按小时付薪
Manager(char*theName,float thePayRate,bool isSalaried);
bool getSalaried()const;
float pay(float hoursWorked)const;
protected:
bool salaried;
};
Manager::Manager(char*theName,float thePayRate,bool isSalaried)
∶Employee(theName,thePayRate)
{
salaried=isSalaried;
}
bool Manager::getSalaried() const
{
return salaried;
}
float Manager::pay(float hoursWorked)const
{
if(salaried)
return payRate;
/*else*/
return Employee::pay(hoursWorked);
}
//主管人员类
class Supervisor:public Employee
{
public:
Supervisor(char*theName,float thePayRate,float theBouns):
Employee(theName,thePayRate, (1) ),bouns(theBouns){}
float getBouns()const{return bouns;}
float pay(float hoursWorked)const
return (2) ;
}
protected:
float bouns;
}
#include"iostream.h"
void main()
{
Employee e("Jack",50.00);
Manager m("Tom",8000.00,true);
Supervior s("Tanya",8000.00,8000.00);
cout<<"Name:"<<e.getName()<<endl;
cout<<"Pay:"<<e.pay(80)<<endl;//设每月工作80小时
cout<<"Name:"<<m.getName()<<endl;
cout<<"Pay:"<<m.pay (40) <<endl;
cout<<"Name:"<<s.getName()<<endl;
cout<<"Pay:"<<s.pay (40) <<endl;//参数40在这里不起作用
}
【程序2】
#include"employee.h"
//普通雇员类
class Employee
{
public:
//构造函数
Employee(string theName,float thePayRate):
name(theName),payRate(thePayRate){}
//取雇员姓名
string getName() const{returnname;}
//取雇员薪水等级
float getPayRate()const{return payRate;}
//计算雇员薪水
virtual float pay(float hoursWorked)const{return (3) ;}
protected:
string name;//雇员名称
float payRate;//薪水等级
};
//管理人员类
//继承普通雇员类
class Manager:public Employee
{
public:
//构造函数
//isSalaried标识管理人员类的付薪方式
//true 按阶段付薪(固定工资)
//false按小时付薪
Manager(string theName,float thePayRate,bool isSalaried):
Employee(theName,thePayRate),salaried(isSalaried){}
//取付薪方式
bool getSalaried()const{return salaried;}
//计算薪水
virtual float pay(float (4) )const;
protected:
bool salaried;
};
float Manager::pay(float hoursWorked)const
{
if(salaried)//固定付薪方式
return payRate;
else//按小时付薪
return (5) ; }
//主管人员类
class Supervisor: (6)
{
public:
//构造函数
Supervisor(string theName,float thePayRate,float theBouns):
Manager(theName,thePayRate,true),bouns(theBouns){}
//取奖金数额
float getBouns()const{return bouns;}
//计算薪水
virtual float pay(float hoursWorked)const
{
retum payRate+bouns;
}
(7)
float bouns;
}
#include"employee.h"
#include"iostream.h"
void main()
{
(8) *ep[3];ep[0]=new Employee("Jack","50.00");
ep[1]=new Manager("Tom","8000.00",true);
ep[2]=new Supervior("Tanya","8000.00","8000.00");
for(int i=0;i<3;i++){
cout<<"Name:"<< (9) <<endl;
cout<<"Pay:"<< (10) <<endl;//设每月工作80小时
}
}
●试题五
【答案】(1)true(2)payRate+bouns(3)hoursWorked*payRate(4)hoursWorked
(5)hoursWorked*payRate(6)public Manager(7)protected:(8)Employee
(9)ep[i]->getName()(10)ep[i]->pay(80)
【解析】(1)普通雇员类是所有类的基类,描述了雇员的一些基本信息,管理人员类从普通雇员类中派生,管理人员的付薪方式与普通雇员可能相同,所以该类添加了一个成员变量标识,并覆盖了基类的pay()函数。主管类从管理人员类中派生,主管人员是管理人员的一种,他们不仅支付固定薪水,而且还有奖金。所以在主管类中添加了bonus成员,保存他们的奖金数额,并覆盖了管理人员类的pay()函数重新计算工资。
(2)程序中建立了3个雇员(一个普通雇员、一个管理人员和一个主管)的档案,并打印出各自的工资表。事实上,将3种雇员分开处理会很繁琐,如果能够把他们看作同一种类型,都看成雇员类(他们本来都是雇员)统一处理,但在计算工资时再调用各自的pay()函数,那程序会简单得多。这就需要利用多态特性,只要将pay()函数定义成虚函数,便可以实现了。
第9题:
现有雇员信息表(雇员号:主键,雇员名,部门号,工资)和部门信息表(部门号:主键,部门名,地址)在雇员信息表中,哪个属性是外键?
A.雇员号
B.雇员名
C.部门号
D.工资
第10题:
创建新数据库“订单.mdb”,将“订单.xls”和“雇员.xls”导入到“订单.mdb”库中,第一行包含列标题,主键分别为订单号和雇员ID,并将导入表分别命名为“雇员”和“订单”。
(2)将“雇员”表和“订单”表的关系设置为一对多,实施参照完整性。
(3)在“雇员”表中在“雇员名字”后添加文本字段“性别”,大小为1,默认值为“男”,有效性规则为“男”or“女”。“雇员”表如图所示。