C++程序:大学MOOC数据结构课程名人堂及PAT代金券统计
该程序使用 C++ 语言编写,用于统计大学 MOOC 数据结构课程中获得 PAT 代金券的学生以及名人堂成员。
程序首先通过定义一个结构体 student 来存储学生的账号和总评成绩。
struct student {
char user[20];
int point;
}stud[10010];
该结构体包含两个成员变量:user 用来存储学生的账号,point 用来存储学生的总评成绩。程序中定义了一个 stud 数组来存储所有学生的信息。
程序通过输入学生总数 N、代金券等级分界线 G 和进入名人堂的最低名次 K,以及每个学生的账号和总评成绩,来计算出发放的 PAT 代金券的总面值。
程序使用 sort 函数对学生数组进行排序,排序规则是总评成绩非升序,如果成绩相同则按账号的字母序升序。
bol cmp(student a, student b)
{
if (a.point == b.point) {
if (strcmp(a.user, b.user) < 0)
return 1;
else
return 0;
}
return a.point > b.point;
}
int main()
{
int n, g, k;
int money = 0;
cin >> n >> g >> k;
getchar();
for (int i = 0; i < n; i++) {
scanf("%[^ ] %d", stud[i].user, &stud[i].point);
getchar();
if (stud[i].point >= 60 && stud[i].point < g)
money += 20;
else if (stud[i].point >= g && stud[i].point <= 100)
money += 50;
}
sort(stud, stud + n, cmp);
cout << money << endl;
int rank = 1;
cout << rank << " " << stud[0].user << " " << stud[0].point << endl;
for (int i = 1; rank<=k ; i++) {
if (stud[i].point != stud[i - 1].point)
rank = i + 1;
if (rank <= k)
printf("%d %s %d\n", rank, stud[i].user, stud[i].point);
}
return 0;
}
程序的输入格式要求是首先输入 N、G 和 K,然后依次输入每个学生的账号和总评成绩。输出格式要求首先输出发出的 PAT 代金券的总面值,然后按总评成绩非升序输出进入名人堂的学生的名次、账号和成绩。
该程序未涉及文件操作或数据库操作。
原文地址: https://www.cveoy.top/t/topic/qxXC 著作权归作者所有。请勿转载和采集!