该程序使用 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;
}

程序的输入格式要求是首先输入 NGK,然后依次输入每个学生的账号和总评成绩。输出格式要求首先输出发出的 PAT 代金券的总面值,然后按总评成绩非升序输出进入名人堂的学生的名次、账号和成绩。

该程序未涉及文件操作或数据库操作。

C++程序:大学MOOC数据结构课程名人堂及PAT代金券统计

原文地址: https://www.cveoy.top/t/topic/qxXC 著作权归作者所有。请勿转载和采集!

免费AI点我,无需注册和登录