#include<iostream>
#include<string>
#include<vector>
using namespace std;
struct my_student
{
protected:
string name = "张三";
int student_number = 100000;
int score = 60;
public:
my_student(string nm, int st_n, int sc)
{
name = nm;
student_number = st_n;
score = sc;
}
string get_name()
{
return name;
}
void set_name(string nm)
{
name = nm;
}
int get_student_number()
{
return student_number;
}
void set_student_number(int st_n)
{
if (st_n >= 100000 && st_n < 1000000)
{
student_number = st_n;
}
}
int get_score()
{
return score;
}
bool set_score(int sc)
{
if(sc >= 0 && sc <= 100)
{
score = sc;
return 1;
}
return 0;
}
};
struct my_class
{
private:
vector<my_student>cl;
public:
my_student get_student(int num)
{
return cl[num - 1];
}
bool set_student(int num, my_student stu)
{
if(stu.get_score() >= 0 && stu.get_score() <= 100 && stu.get_student_number() >= 100000 && stu.get_student_number() <= 1000000)
{
cl[num - 1] = stu;
return 1;
}
return 0;
}
vector<my_student> get_class()
{
return cl;
}
void delete_student(int num)
{
cl.erase(cl.begin() + num - 1);
}
bool add_student(my_student stu)
{
if(stu.get_score() >= 0 && stu.get_score() <= 100 && stu.get_student_number() >= 100000 && stu.get_student_number() <= 1000000)
{
cl.push_back(stu);
return 1;
}
return 0;
}
int find_student(my_student stu)
{
for (unsigned int i = 0; i < cl.size(); i++)
{
if (cl[i].get_score() == stu.get_score() && cl[i].get_name() == stu.get_name() && cl[i].get_student_number() == stu.get_student_number())
{
return i + 1;
}
}
return -1;
}
void clear_class()
{
cl.clear();
}
};
void show_menu()
{
system("cls");
cout << "________________________\n";
cout << "| |\n";
cout << "| 欢迎来到班级管理器 |\n";
cout << "| 功能如下 |\n";
cout << "| 1、显示学生 |\n";
cout << "| 2、添加学生 |\n";
cout << "| 3、删除学生 |\n";
cout << "| 4、查找学生 |\n";
cout << "| 5、清空班级 |\n";
cout << "| 0、退出系统 |\n";
cout << "|- - - - - - - - - - - |\n";
cout << "| 开始体验 |\n";
cout << "| |\n";
cout << "| 附劵 |\n";
cout << "| 自行撕开无效 |\n";
cout << "________________________\n";
cout << "请输入功能码:";
}
int main()
{
my_class c;
int x;
while (1)
{
show_menu();
cin >> x;
switch(x)
{
case 1:
{
if (c.get_class().empty())
{
cout << "班级为空\n";
system("pause");
}
else
{
vector<my_student> students = c.get_class();
unsigned int size_ = students.size();
for (unsigned int i = 0; i < size_; i++)
{
cout << i+1 << "号学生\t姓名:" << students[i].get_name() << "\t学号:" << students[i].get_student_number() << "\t分数:" << students[i].get_score() << '\n';
}
system("pause");
}
break;
}
case 2:
{
string name;
int student_num;
int score;
cout << "请输入要添加的学生的姓名:";
cin >> name;
cout << "\n请输入要添加的学生的学号:";
cin >> student_num;
while(student_num < 100000 || student_num > 1000000)
{
cout << "学号必须是六位数\n请重新输入:";
cin >> student_num;
}
cout << "\n请输入要添加的学生的分数:";
cin >> score;
while(score < 0 || score > 100)
{
cout << "分数要在0~100之间\n请重新输入:";
cin >> score;
}
cout << '\n';
c.add_student({name, student_num, score});
system("pause");
break;
}
case 3:
{
int num;
cout << "请输入要删除第几个学生:";
cin >> num;
c.delete_student(num);
system("pause");
break;
}
case 4:
{
string name;
int student_num, score;
cout << "请输入要查找的学生的姓名:";
cin >> name;
cout << "\n请输入要查找的学生的学号:";
cin >> student_num;
cout << "\n请输入要查找的学生的分数:";
cin >> score;
if (c.find_student({name, student_num, score}) == -1)
{
cout << "查无此人\n";
}
else
{
cout << c.find_student({name, student_num, score}) << '\n';
}
system("pause");
break;
}
case 5:
{
c.clear_class();
break;
}
case 0:
{
return 0;
}
default:
{
cout << "输入错误!";
system("pause");
break;
}
}
}
}
免费试玩
前提是……
告诉我有什么可以改进的地方