在devc++中,实现学生成绩管理,实现功能:输入、输出、插入、删除、查找、追加、读入、显示、保存、拷贝、排序、索引、分类合计、退出。给出相应代码。
时间: 2024-08-13 17:04:31 浏览: 48
课程设计二: 题目: 学生成绩管理系统 功能: 实现学生信息管理 包括:录入、查询、排序等功能 C语言
在Dev-C++中实现一个简单的学生成绩管理系统,我们可以使用结构体来存储学生信息(例如姓名和成绩),并使用数组或动态分配内存来存储这些数据。由于这里是一个文本平台,我将提供一个基本的代码框架和关键函数的描述。在实际项目中,你可能需要创建头文件(如`student_manager.h`) 和实现文件(如`student_manager.cpp`)。
首先,在`student_manager.h`中定义一个学生结构体和相关函数声明:
```cpp
// student_manager.h
#include <iostream>
#include <string>
struct Student {
std::string name;
int score;
};
class StudentManager {
public:
// 函数声明
void displayStudents();
void inputStudent();
void deleteStudent(int index);
bool searchStudent(const std::string& name);
void appendStudent(Student newStudent);
void readInputFromFile(const std::string& filename);
void displaySortedStudents();
// ... 其他函数声明
private:
std::vector<Student> students;
};
```
接下来,在`student_manager.cpp`中实现这些函数:
```cpp
// student_manager.cpp
#include "student_manager.h"
void StudentManager::inputStudent() {
std::cout << "Enter student name and score: ";
std::string name;
int score;
std::cin >> name >> score;
students.push_back({name, score});
}
void StudentManager::deleteStudent(int index) {
if (index >= 0 && index < students.size()) {
students.erase(students.begin() + index);
} else {
std::cout << "Invalid index.\n";
}
}
bool StudentManager::searchStudent(const std::string& name) {
for (const auto& student : students) {
if (student.name == name) {
return true;
}
}
return false;
}
// ... 实现其他函数
void StudentManager::readInputFromFile(const std::string& filename) {
std::ifstream inputFile(filename);
if (inputFile.is_open()) {
std::string line;
while (std::getline(inputFile, line)) {
std::istringstream iss(line);
std::string name;
int score;
iss >> name >> score;
students.push_back({name, score});
}
inputFile.close();
} else {
std::cerr << "Failed to open file.\n";
}
}
// 显示排序后的学生
void StudentManager::displaySortedStudents() {
std::sort(students.begin(), students.end(), [](const Student& a, const Student& b) {
return a.score > b.score;
});
for (const auto& student : students) {
std::cout << "Name: " << student.name << ", Score: " << student.score << "\n";
}
}
```
请注意,这个示例并未涵盖所有列出的功能,如拷贝、分类合计等,但你应该能从这些基础函数开始扩展。每个新功能的实现方式类似,只是根据需求调整代码。
阅读全文