输入学生信息ptac++
时间: 2025-03-31 18:02:03 浏览: 20
### C++ 输入学生信息 示例代码
以下是基于提供的引用内容设计的一个简单的 C++ 程序,用于输入学生信息并将其存储到 `std::vector` 中。此程序涵盖了类定义、对象创建以及基本的输入输出操作。
#### 定义 Student 类
首先,我们需要定义一个表示学生的类 `Student`,其中包含学号和三门课程的成绩作为成员变量:
```cpp
#include <iostream>
#include <iomanip> // 用于设置浮点数精度
#include <string>
#include <vector>
class Student {
private:
std::string studentID; // 学号
double cLanguageScore; // C语言成绩
double mathScore; // 数学成绩
double englishScore; // 英语成绩
public:
// 构造函数初始化学生信息
Student(const std::string& id, double cLang, double math, double eng)
: studentID(id), cLanguageScore(cLang), mathScore(math), englishScore(eng) {}
// 获取学号的方法
const std::string& getStudentID() const { return studentID; }
// 输出学生信息方法
void displayInfo() const {
std::cout << "学号: " << studentID
<< ", C语言成绩: " << std::fixed << std::setprecision(2) << cLanguageScore
<< ", 数学成绩: " << mathScore
<< ", 英语成绩: " << englishScore << std::endl;
}
};
```
#### 主程序逻辑
接下来编写主程序来处理用户的交互过程,允许用户多次输入学生信息,并展示这些信息。
```cpp
int main() {
int choice;
std::vector<Student> students;
do {
std::cout << "\n请选择操作:" << std::endl;
std::cout << "1. 数据录入" << std::endl;
std::cout << "2. 显示所有学生信息" << std::endl;
std::cout << "3. 按学号查询学生信息" << std::endl;
std::cout << "4. 退出程序" << std::endl;
std::cin >> choice;
switch (choice) {
case 1: {
std::string id;
double cLang, math, eng;
std::cout << "请输入学号: ";
std::cin >> id;
std::cout << "请输入C语言成绩: ";
std::cin >> cLang;
std::cout << "请输入数学成绩: ";
std::cin >> math;
std::cout << "请输入英语成绩: ";
std::cin >> eng;
students.emplace_back(Student{id, cLang, math, eng});
break;
}
case 2: {
if (!students.empty()) {
for (const auto& s : students) {
s.displayInfo();
}
} else {
std::cout << "暂无学生信息!" << std::endl;
}
break;
}
case 3: {
std::string queryId;
bool found = false;
std::cout << "请输入要查询的学号: ";
std::cin >> queryId;
for (const auto& s : students) {
if (s.getStudentID() == queryId) {
s.displayInfo();
found = true;
break;
}
}
if (!found) {
std::cout << "未找到该学号对应的学生信息." << std::endl;
}
break;
}
case 4:
std::cout << "感谢使用! 节省时间,提高效率." << std::endl;
break;
default:
std::cout << "无效选项,请重新选择." << std::endl;
}
} while (choice != 4);
return 0;
}
```
上述代码实现了基础的功能需求[^3],即支持数据录入、显示所有学生信息、按学号查询学生信息以及安全退出程序。
---
### 关于四舍五入与保留两位小数
为了满足题目中的要求——输出成绩时需进行 **四舍五入** 并保留两位小数,可以利用 `<cmath>` 库中的 `round()` 函数配合固定宽度输出完成这一目标。例如,在构造函数内部或者调用前对分数做如下处理:
```cpp
double roundedCLang = round(cLang * 100) / 100;
double roundedMath = round(math * 100) / 100;
double roundedEng = round(eng * 100) / 100;
```
这样能够确保每次打印出来的数值都符合指定格式的要求[^4]。
---
阅读全文
相关推荐


















