编写一个简单的学生信息管理程序及菜单系统。 1、定义学生类和管理员类学生包括学号、姓名、性别、年龄、专业、班级、成绩等成员 2、定义管理员类 4、实现查找功能的重载函数,即可以按姓名查找,按学号查找。
时间: 2023-07-04 17:18:47 浏览: 116
好的,这个问题比较简单,我可以为你提供一个 C++ 的示例代码,希望对你有所帮助。
```cpp
#include <iostream>
#include <string>
#include <vector>
using namespace std;
class Student {
public:
Student(string num, string name, string gender, int age, string major, string cls, double score)
: num_(num), name_(name), gender_(gender), age_(age), major_(major), cls_(cls), score_(score) {}
string get_num() const { return num_; }
string get_name() const { return name_; }
string get_gender() const { return gender_; }
int get_age() const { return age_; }
string get_major() const { return major_; }
string get_cls() const { return cls_; }
double get_score() const { return score_; }
private:
string num_; // 学号
string name_; // 姓名
string gender_; // 性别
int age_; // 年龄
string major_; // 专业
string cls_; // 班级
double score_; // 成绩
};
class Administrator {
public:
Administrator(string username, string password) : username_(username), password_(password) {}
bool login(string username, string password) {
return (username == username_ && password == password_);
}
vector<Student> search_by_name(string name, const vector<Student>& students) {
vector<Student> result;
for (const auto& student : students) {
if (student.get_name() == name) {
result.push_back(student);
}
}
return result;
}
vector<Student> search_by_num(string num, const vector<Student>& students) {
vector<Student> result;
for (const auto& student : students) {
if (student.get_num() == num) {
result.push_back(student);
}
}
return result;
}
private:
string username_; // 用户名
string password_; // 密码
};
int main() {
vector<Student> students;
students.push_back(Student("001", "张三", "男", 20, "计算机科学与技术", "1班", 90.0));
students.push_back(Student("002", "李四", "女", 21, "软件工程", "2班", 85.0));
students.push_back(Student("003", "王五", "男", 22, "信息安全", "3班", 95.0));
Administrator admin("admin", "123456");
// 登录
string username, password;
cout << "请输入用户名和密码:" << endl;
cin >> username >> password;
if (!admin.login(username, password)) {
cout << "登录失败!" << endl;
return 0;
}
// 菜单系统
int choice;
string keyword;
vector<Student> result;
while (true) {
cout << "请输入数字选择操作:" << endl;
cout << "1. 添加学生信息" << endl;
cout << "2. 删除学生信息" << endl;
cout << "3. 修改学生信息" << endl;
cout << "4. 按姓名查找" << endl;
cout << "5. 按学号查找" << endl;
cout << "0. 退出程序" << endl;
cin >> choice;
switch (choice) {
case 1:
// 添加学生信息
break;
case 2:
// 删除学生信息
break;
case 3:
// 修改学生信息
break;
case 4:
// 按姓名查找
cout << "请输入要查找的姓名:" << endl;
cin >> keyword;
result = admin.search_by_name(keyword, students);
if (result.empty()) {
cout << "未找到符合条件的学生!" << endl;
} else {
cout << "共找到 " << result.size() << " 个学生:" << endl;
for (const auto& student : result) {
cout << student.get_num() << "\t" << student.get_name() << "\t" << student.get_gender() << "\t" << student.get_age() << "\t" << student.get_major() << "\t" << student.get_cls() << "\t" << student.get_score() << endl;
}
}
break;
case 5:
// 按学号查找
cout << "请输入要查找的学号:" << endl;
cin >> keyword;
result = admin.search_by_num(keyword, students);
if (result.empty()) {
cout << "未找到符合条件的学生!" << endl;
} else {
cout << "共找到 " << result.size() << " 个学生:" << endl;
for (const auto& student : result) {
cout << student.get_num() << "\t" << student.get_name() << "\t" << student.get_gender() << "\t" << student.get_age() << "\t" << student.get_major() << "\t" << student.get_cls() << "\t" << student.get_score() << endl;
}
}
break;
case 0:
// 退出程序
return 0;
default:
cout << "无效的选择!" << endl;
break;
}
}
return 0;
}
```
这段代码定义了一个 Student 类和一个 Administrator 类,其中 Student 类包含了学生的基本信息,Administrator 类包含了管理员的登录和查找学生信息的功能。
在 main 函数中,我们首先定义了一些学生信息,并创建了一个 Administrator 对象。然后,我们实现了一个简单的菜单系统,可以根据用户的选择进行不同的操作,包括添加、删除、修改和查找学生信息。在查找学生信息时,我们重载了两个函数,一个按姓名查找,一个按学号查找。
这只是一个简单的示例代码,实际上,一个完整的学生信息管理程序可能会更加复杂。不过,这段代码应该可以帮助你了解如何定义类、重载函数和实现菜单系统。
阅读全文