6-1 表彰优秀学生(多态) (15分)
学期结束,班主任决定表彰一批学生,已知该班学生数在6至50人之间,有三类学生:普通生,特招运动员,学科专长生,其中学科专长生不超过5人。
主函数根据输入的信息,相应建立GroupA, GroupB, GroupC类对象。
GroupA类是普通生,有2门课程的成绩(均为不超过100的非负整数);
GroupB类是特招运动员,有2门课程的成绩(均为不超过100的非负整数),1次运动会的表现分,表现分有:A、B、C、D共4等。
GroupC类是学科专长生,有5门课程的成绩(均为不超过100的非负整数)。
表彰人员至少符合以下3个条件中的一个:
(1)2门课程平均分在普通生和特招运动员中,名列第一者。
a.该平均分称为获奖线。
b.存在成绩并列时,则全部表彰,例如某次考试有2人并列第1,则他们全部表彰。
(2)5门课程平均分达到或超过获奖线90%的学科专长生,给予表彰。
(3)2门课程平均分达到或超过获奖线70%的特招运动员,如果其运动会表现分为A,给予表彰。
输入格式:每个测试用例占一行,第一项为类型,1为普通生,2为特招运动员,3为学科专长生, 输入0表示输入的结束。第二项是学号,第三项是姓名。对于普通生来说,共输入5项,第4、5项是课程成绩。对于特招运动员来说,共输入6项,第4、5项是课程成绩,第6项是运动会表现。对于学科专长生来说,共输入8项,第4、5、6、7、8项是课程成绩。
输出时,打印要表彰的学生的学号和姓名。(输出顺序与要表彰学生的输入前后次序一致)
函数接口定义:
以Student为基类,构建GroupA, GroupB和GroupC三个类
裁判测试程序样例:
#include
#include
using namespace std;
/* 请在这里填写答案 */
int main()
{
const int Size=50;
string num, name;
int i,ty,s1,s2,s3,s4,s5;
char gs;
Student *pS[Size];
int count=0;
for(i=0;i
if(ty==0) break;
cin>>num>>name>>s1>>s2;
switch(ty){
case 1:pS[count++]=new GroupA(num, name, s1, s2); break;
case 2:cin>>gs; pS[count++]=new GroupB(num, name, s1,s2, gs); break;
case 3:cin>>s3>>s4>>s5; pS[count++]=new GroupC(num, name, s1,s2,s3,s4,s5); break;
}
}
for(i=0;i
delete pS[i];
}
return 0;
}
输入样例:
1 001 AAAA 96 80
2 009 BBB 82 75 A
1 007 CC 100 99
3 012 CCCC 97 95 90 99 93
1 003 DDD 62 50
1 022 ABCE 78 92
2 010 FFF 45 40 A
3 019 AAA 93 97 94 82 80
0
输出样例:
009 BBB
007 CC
012 CCCC
在这里插入代码片
6-2 数组排序输出(函数模板) (10分)
对于输入的每一批数,按从小到大排序后输出。
一行输入为一批数,第一个输入为数据类型(1表示整数,2表示字符型数,3表示有一位小数的浮点数,4表示字符串,0表示输入结束),第二个输入为该批数的数量size(0 输出将从小到大顺序输出数据。 函数接口定义:sort函数将接受size个数据,将它们从小到大排序后存在a指向的一段连续空间中。 /* 请在这里填写答案 */ template 输入样例: 7-1 百鸡问题扩展-N鸡问题 (10分) 输入格式: 输出格式: 输入样例1: 7-2 输出各位数字之和能被15整除的所有数 (10分) 输出格式: 输出样例: 7-3 螺旋方阵 (15分) 输入格式: 输出格式: 输入样例: 7-4 算星期 (15分) 输入格式 输出格式 输入样例 按照现行历法:四年一闰,百年不闰,四百年再闰。即:年数是 4 的倍数且不是 100 的倍数,或者年数是 400 的倍数,则为闰年,否则为平年。 7-5 圆形类 (10分) (1)1个私有数据成员(半径)。 (2)3个公有函数成员(设置半径、计算面积、计算周长),圆周率设置为3.14 (3)3个构造函数: 无参构造函数(将半径设置为0)、带参数的构造函数和拷贝构造函数。 2、主函数main使用圆形类Circle创建圆形对象,要求: (1)定义一个圆对象c1,从键盘输入一个值x,并设置c1的半径为x,计算并输出c1的面积和周长; (2)定义一个圆对象c2,并将半径初始化为2x,计算并输出c2的面积和周长; (3)定义一个圆对象c3,并用c1初始化c3,计算并输出c3的面积和周长。 (4)定义一个圆对象c4,并把c2赋值给c4,计算并输出c4的面积和周长。 输入格式: 输出格式: 输入样例: 7-6 日程安排(多重继承+重载) (15分) int year; int month; int day; 另有一个时间类Time,包括三个protected成员数据 int hour; int minute; int second; 现需根据输入的日程的日期时间,安排前后顺序,为此以Date类和Time类为基类,建立一个日程类Schedule,包括以下新增成员: int ID;//日程的ID bool operator < (const Schedule & s2);//判断当前日程时间是否早于s2 生成以上类,并编写主函数,根据输入的各项日程信息,建立日程对象,找出需要最早安排的日程,并输出该日程对象的信息。 输入格式: 测试输入包含若干日程,每个日程占一行(日程编号ID 日程日期(**//)日程时间(::))。当读入0时输入结束,相应的结果不要输出。 输入样例: 1 2014/06/27 08:00:01 2 2014/06/28 08:00:01 0 输出样例: The urgent schedule is No.1: 2014/6/27 8:0:1
template
void sort(T *a, int size);
裁判测试程序样例:
#include
#include
using namespace std;
void display(T* a, int size){
for(int i=0; i
int main() {
const int SIZE=10;
int a[SIZE];
char b[SIZE];
double c[SIZE];
string d[SIZE];
int ty, size;
cin>>ty;
while(ty>0){
cin>>size;
switch(ty){
case 1:sort(a,size); display(a,size); break;
case 2:sort(b,size); display(b,size); break;
case 3:sort(c,size); display(c,size); break;
case 4:sort(d,size); display(d,size); break;
}
cin>>ty;
}
return 0;
}
1 3 3 2 1
2 2 a A
3 3 1.5 2.6 2.2
4 2 bca abc
0
输出样例:
1 2 3
A a
1.5 2.2 2.6
abc bca在这里插入代码片
N元钱买N只鸡,公鸡每只5元,母鸡每只3元,小鸡1元3只,N元钱必须刚好买N只鸡,而且鸡必须整只买,不能劈开买。
有几种买法呢?这就是N鸡问题。
在一行中输入一个正整数N。(N<500)
在一行中输出两个整数c s,中间用一个空格隔开,表示N元钱买N只鸡共有 c 种买法,且所有买法的公鸡数量之和是 s。
如果无解,则 s 为 -1.
100
输出样例1:
4 24
输入样例2:
1
输出样例2:
0 -1在这里插入代码片
输出100到1000之间的各位数字之和能被15整除的所有数,输出时每5个一行,每个数输出占4列列宽。
在每行中输出5的满足要求的数值,每个数输出占4列列宽。
159 168 177 186 195
249 258 267 276 285
294 339 348 357 366
375 384 393 429 438
447 456 465 474 483
492 519 528 537 546
555 564 573 582 591
609 618 627 636 645
654 663 672 681 690
708 717 726 735 744
753 762 771 780 807
816 825 834 843 852
861 870 906 915 924
933 942 951 960在这里插入代码片
所谓“螺旋方阵”,是指对任意给定的N,将1到N×N的数字从左上角第1个格子开始,按顺时针螺旋方向顺序填入N×N的方阵里。本题要求构造这样的螺旋方阵。
输入在一行中给出一个正整数N(<10)。
输出N×N的螺旋方阵。每行N个数字,每个数字占3位。
5
输出样例:
1 2 3 4 5
16 17 18 19 6
15 24 25 20 7
14 23 22 21 8
13 12 11 10 9在这里插入代码片
请编写程序,根据所给日期计算这一天是星期几。
年 月 日
星期(日、一、二、三、四、五、六)
2020 1 1
输出样例
星期三
提示:
公元1年1月1日是星期一。
不考虑历法演变过程(假定一直使用现行的历法)。
不考虑公元前(即年份大于等于 1)。在这里插入代码片
1、要求定义一个圆形类Circle,其中包含如下成员:
输入一个半径。
请按样例的格式输出
10
输出样例:
c1的面积=314
c1的周长=62.8
c2的面积=1256
c2的周长=125.6
c3的面积=314
c3的周长=62.8
c4的面积=1256
c4的周长=125.6
作者
hz
单位
惠州学院
代码长度限制
16 KB
时间限制
400 ms
内存限制
64 MB在这里插入代码片
已有一个日期类Date,包括三个protected成员数据在这里插入代码片