王鹿其 发表于 2023-11-13 19:57:12

c++,用using namespace std;

3)编写程序实现下列问题的求解。
<1> 在某系的成绩登记册中,每个班最多有40个学生,每份成绩表中的成绩信息包括:学号(9位字符),姓名(8位字符),成绩(百分制),备注(20位字符)。设计程序以处理一个班级的成绩信息,包括输入、输出、查询(给定分数以上或以下的学生信息)、按分数排序等。
<2> *建立一个链表,存储上题所需数据,并实现相同功能。
<3> 定义一个带参数的宏,是两个参数的值互相交换。在主函数中输入来个数作为使用宏的参数,输出交换后的两个值。(说明:在程序主函数使用宏时,只能用两个参数,如swap(a,b),不能用三个参数)

isdkz 发表于 2023-11-13 19:57:26

#include <iostream>
#include <string>
#include <algorithm>
#include <list>

using namespace std;

struct Student {
    string id;
    string name;
    int score;
    string remark;
};

bool compareByScore(const Student &a, const Student &b) {
    return a.score < b.score;
}

int main() {
    list<Student> students;

    // 输入学生信息
    // ...

    // 输出学生信息
    for (const auto &student : students) {
      cout << "学号:" << student.id << ",姓名:" << student.name << ",成绩:" << student.score << ",备注:" << student.remark << endl;
    }

    // 查询给定分数以上的学生信息
    int givenScore = 80;
    for (const auto &student : students) {
      if (student.score >= givenScore) {
            cout << "学号:" << student.id << ",姓名:" << student.name << ",成绩:" << student.score << ",备注:" << student.remark << endl;
      }
    }

    // 按分数排序
    students.sort(compareByScore);
    for (const auto &student : students) {
      cout << "学号:" << student.id << ",姓名:" << student.name << ",成绩:" << student.score << ",备注:" << student.remark << endl;
    }

    // 使用宏交换两个值
    int a = 5, b = 10;
    #define SWAP(x, y) { int temp = x; x = y; y = temp; }
    SWAP(a, b);
    cout << "a: " << a << ", b: " << b << endl;

    return 0;
}
页: [1]
查看完整版本: c++,用using namespace std;