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