c++编写一个程序,实现对成绩数组的基本操作,如添加、删除、更新和查找成绩。 对成绩数组进行冒泡排序,并输出排序后的结果。 使用函数封装各个功能模块
时间: 2024-10-24 13:05:08 浏览: 17
在C++中,你可以创建一个名为`StudentScore`的类来表示成绩数组,然后定义一些成员函数来实现基本的操作。这里是一个简单的示例:
```cpp
#include <iostream>
#include <vector>
class StudentScore {
private:
std::vector<int> scores; // 存储成绩的动态数组
public:
// 添加新成绩
void addScore(int score) {
scores.push_back(score);
}
// 删除指定位置的成绩
bool removeScore(int index) {
if (index >= 0 && index < scores.size()) {
scores.erase(scores.begin() + index);
return true;
}
return false;
}
// 更新成绩
bool updateScore(int oldIndex, int newScore) {
if (oldIndex >= 0 && oldIndex < scores.size()) {
scores[oldIndex] = newScore;
return true;
}
return false;
}
// 查找成绩
int findScore(int target) const {
for (int i = 0; i < scores.size(); ++i) {
if (scores[i] == target)
return i;
}
return -1; // 如果没找到返回-1
}
// 冒泡排序并打印
void bubbleSort() {
int n = scores.size();
for (size_t i = 0; i < n - 1; ++i) {
for (size_t j = 0; j < n - i - 1; ++j) {
if (scores[j] > scores[j + 1]) {
std::swap(scores[j], scores[j + 1]);
}
}
}
printScores(); // 打印排序后的成绩
}
// 打印成绩
void printScores() const {
for (const auto& score : scores) {
std::cout << score << " ";
}
std::cout << "\n";
}
};
int main() {
StudentScore ss;
ss.addScore(85);
ss.addScore(90);
ss.updateScore(0, 95);
ss.printScores(); // 输出原始成绩
ss.removeScore(1);
ss.bubbleSort();
ss.printScores(); // 输出排序后的成绩
return 0;
}
```
在这个例子中,我们首先定义了一个`StudentScore`类,包含了加、删、改、查成绩以及排序的功能。在`main`函数中,创建了`StudentScore`的对象,并进行了相应操作。
阅读全文