写一个c++的编程,题目是“包括学号,姓名,性别,出生日期,学校,学院,专业,班级。基本功能有显示学生信息,保存学生信息,删除学生信息,查询学生信息,学号排序及退出系统”
时间: 2024-09-26 17:10:17 浏览: 28
为了编写这个程序,我们将创建一个名为`Student`的类,然后实现`StudentManagement`类来包含所需的各种操作。以下是完整的C++代码示例:
```cpp
#include <iostream>
#include <vector>
#include <algorithm>
#include <ctime>
// 定义学生类
class Student {
public:
int id;
std::string name;
char gender;
std::string birthDate;
std::string school;
std::string college;
std::string major;
std::string classID;
// 构造函数
Student(int _id, const std::string& _name, char _gender, const std::string& _birthDate,
const std::string& _school, const std::string& _college, const std::string& _major,
const std::string& _classID)
: id(_id), name(_name), gender(_gender), birthDate(_birthDate),
school(_school), college(_college), major(_major), classID(_classID) {}
// 显示学生信息
void display() const {
std::cout << "学号: " << id << "\n"
<< "姓名: " << name << "\n"
<< "性别: " << gender << "\n"
<< "出生日期: " << birthDate << "\n"
<< "学校: " << school << "\n"
<< "学院: " << college << "\n"
<< "专业: " << major << "\n"
<< "班级: " << classID << "\n";
}
};
class StudentManagement {
private:
std::vector<Student> students;
bool sortByID = false;
public:
// 添加学生
void addStudent(const Student& s) {
students.push_back(s);
if (sortByID) {
std::sort(students.begin(), students.end(), [](const Student& a, const Student& b) { return a.id < b.id; });
}
}
// 删除学生
bool removeStudent(int id) {
for (auto it = students.begin(); it != students.end(); ++it) {
if (it->id == id) {
students.erase(it);
return true;
}
}
return false;
}
// 查询学生
void searchStudent(const std::string& name) {
for (const auto& student : students) {
if (student.name == name) {
student.display();
return;
}
}
std::cout << "未找到该学生信息。\n";
}
// 学号排序
void sortByID(bool ascending = true) {
sortByID = ascending;
std::sort(students.begin(), students.end(), ascending ? [] (const Student& a, const Student& b) { return a.id < b.id; } : [] (const Student& a, const Student& b) { return a.id > b.id; });
}
// 退出系统
void exitSystem() {
std::cout << "退出学生管理系统...\n";
students.clear();
}
};
int main() {
StudentManagement sms;
// 示例操作
sms.addStudent(Student(1001, "张三", 'M', "1995-01-01", "XX大学", "计算机科学学院", "软件工程", "01班"));
sms.addStudent(Student(1002, "李四", 'F', "1997-03-15", "XX大学", "艺术学院", "视觉传达", "02班"));
sms.sortByID(); // 按学号升序排列
sms.searchStudent("张三"); // 查找张三
sms.removeStudent(1002); // 删除李四的信息
sms.exitSystem(); // 退出系统
return 0;
}
```
以上代码实现了基本功能,你可以根据需要进行扩展或调整。运行此程序后,可以按照提示进行操作。
阅读全文