欢迎来到天天文库
浏览记录
ID:42846556
大小:89.50 KB
页数:4页
时间:2019-09-23
《计算机水平考试-程序员分类模拟题17》由会员上传分享,免费在线阅读,更多相关内容在工程资料-天天文库。
1、程序员分类模拟题17试题一阅读以下说明和C++代码,填补C++代码中的空缺,将解答写在对应栏内。[说明]已知某公司按周给员工发放工资,其工资系统需记录每名员工的员工号、姓名、工资等信息。其中一些员工是正式的,按年薪分周发放(每年按52周计算);另一些员工是计时工,以小时工资为基准,按每周工作小时数核算发放。下面是实现该工资系统的C++代码,其中定义了4个类:工资系统类PayRolK员工类Emplovee.止式工类Salaried和计时工类Hourly,Salaried和Hourly是Employee的了类。[C++代码]//头文件和域名空间略cons
2、tintEMPL0YEE_NUM=5;classEmployee{protected:intemDCode;//员工号stringname;//员T姓名doublesalary;//周发放工资public:Employee(constintempCode,conststring&name){this->empCode=empCode;this->name=name;}virtual^Employeel{}virtualvoidpayl=0;doublegetSalaryl{returnthis->salary;}};fclassSalaried{pr
3、ivate:doublepayRate;//年薪public:Salaried(constintempCode,conststring&name,doublepayRate):Employee(empCode,name){this->payRate=payRate;voidpayl{this->salary=;//计算正式员工的周发放工资数cout<name<<11:11<salary<4、ublie:Hourly(constintempCode,conststring&name,inthours,doublepayRate):Employee(empCode,name){this->payRate=payRate;this->hours=hours,voidpayl{this->saiary=;//计算计时工的周发放工资数cout<name<<11::<salary<5、UM;i++){e[i]->payl;intmainl{PayRoll*payRoll=newPayRoll;employees[EMPLOYEE_NUM]={newSalaried(1001,"ZhangSan",58000.00),//此处省略对其他职工对象的生成newHourly(1005,"LI",12,50.00),};payRoll->pay();doubletotal=0•0;for(inti=0;igetSalaryl;}//统计周发放_L资总额cout<6、<卄,总发放额=”VVtotalVVendl;deletepayRoll;return0;试题二阅读以下说明和c程序,填充程序中的空缺。[说明]埃拉托斯特尼筛法求不超过自然数N的所有索数的做法是:先把N个自然数按次序排列起来,1不是素数,也不是合数,要划去;2是素数,取出2(输出),然后将2的倍数都划去;剩下的数中最小者为3,3是素数,取出3(输出),再把3的倍数都划去;剩下的数中最小者为5,5是素数(输出),再把5的倍数都划去。这样一直做下去,就会把不超过N的全部合数都筛掉,每次从序列中取出的最小数构成的序列就是不超过N的全部质数。下面的程序实现埃7、拉托斯特尼筛法求索数,其屮,数组元>sieve[i](u>0)的下标i对应自然数i,sieve[i]的值为1/0分别表示i在/不在序列中,也就是将:1划去(去掉)时,就将sieve[i]设置为0。[C程序]#include#defineN10000intmain7{charsieve[N+l]=8;inti=0,k;/*初始时2~N都放入sieve数组*/for(i=2;;i++)sieve[i]=1;for(k=2••){八找出剩卡的数中垠小者并用K表示★/for(;k8、rint("%dt"zk);/*输出素数*//*从Sieve111去掉k及其倍数*/for(i=k;i
4、ublie:Hourly(constintempCode,conststring&name,inthours,doublepayRate):Employee(empCode,name){this->payRate=payRate;this->hours=hours,voidpayl{this->saiary=;//计算计时工的周发放工资数cout<name<<11::<salary<5、UM;i++){e[i]->payl;intmainl{PayRoll*payRoll=newPayRoll;employees[EMPLOYEE_NUM]={newSalaried(1001,"ZhangSan",58000.00),//此处省略对其他职工对象的生成newHourly(1005,"LI",12,50.00),};payRoll->pay();doubletotal=0•0;for(inti=0;igetSalaryl;}//统计周发放_L资总额cout<6、<卄,总发放额=”VVtotalVVendl;deletepayRoll;return0;试题二阅读以下说明和c程序,填充程序中的空缺。[说明]埃拉托斯特尼筛法求不超过自然数N的所有索数的做法是:先把N个自然数按次序排列起来,1不是素数,也不是合数,要划去;2是素数,取出2(输出),然后将2的倍数都划去;剩下的数中最小者为3,3是素数,取出3(输出),再把3的倍数都划去;剩下的数中最小者为5,5是素数(输出),再把5的倍数都划去。这样一直做下去,就会把不超过N的全部合数都筛掉,每次从序列中取出的最小数构成的序列就是不超过N的全部质数。下面的程序实现埃7、拉托斯特尼筛法求索数,其屮,数组元>sieve[i](u>0)的下标i对应自然数i,sieve[i]的值为1/0分别表示i在/不在序列中,也就是将:1划去(去掉)时,就将sieve[i]设置为0。[C程序]#include#defineN10000intmain7{charsieve[N+l]=8;inti=0,k;/*初始时2~N都放入sieve数组*/for(i=2;;i++)sieve[i]=1;for(k=2••){八找出剩卡的数中垠小者并用K表示★/for(;k8、rint("%dt"zk);/*输出素数*//*从Sieve111去掉k及其倍数*/for(i=k;i
5、UM;i++){e[i]->payl;intmainl{PayRoll*payRoll=newPayRoll;employees[EMPLOYEE_NUM]={newSalaried(1001,"ZhangSan",58000.00),//此处省略对其他职工对象的生成newHourly(1005,"LI",12,50.00),};payRoll->pay();doubletotal=0•0;for(inti=0;igetSalaryl;}//统计周发放_L资总额cout<
6、<卄,总发放额=”VVtotalVVendl;deletepayRoll;return0;试题二阅读以下说明和c程序,填充程序中的空缺。[说明]埃拉托斯特尼筛法求不超过自然数N的所有索数的做法是:先把N个自然数按次序排列起来,1不是素数,也不是合数,要划去;2是素数,取出2(输出),然后将2的倍数都划去;剩下的数中最小者为3,3是素数,取出3(输出),再把3的倍数都划去;剩下的数中最小者为5,5是素数(输出),再把5的倍数都划去。这样一直做下去,就会把不超过N的全部合数都筛掉,每次从序列中取出的最小数构成的序列就是不超过N的全部质数。下面的程序实现埃
7、拉托斯特尼筛法求索数,其屮,数组元>sieve[i](u>0)的下标i对应自然数i,sieve[i]的值为1/0分别表示i在/不在序列中,也就是将:1划去(去掉)时,就将sieve[i]设置为0。[C程序]#include#defineN10000intmain7{charsieve[N+l]=8;inti=0,k;/*初始时2~N都放入sieve数组*/for(i=2;;i++)sieve[i]=1;for(k=2••){八找出剩卡的数中垠小者并用K表示★/for(;k8、rint("%dt"zk);/*输出素数*//*从Sieve111去掉k及其倍数*/for(i=k;i
8、rint("%dt"zk);/*输出素数*//*从Sieve111去掉k及其倍数*/for(i=k;i
此文档下载收益归作者所有