1 头文件
#include<algorithm>//提供算法
#include<iostream>//标准库文件
#include<vector>
#include<string>
using namespace std;
2 菜单栏
void menu()
{
cout<<"\t\t****Welcome to student Administration System****\n";
cout<<"\t\t************************************************\n";
cout << "\t\t*1)Display all student information************\t\n";
cout<<"\t\t*2)Delete student information*******************\t\n";
cout<<"\t\t*3)Add Student information**********************\t\n";
cout<<"\t\t*4)Modify student information*******************\t\n";
cout<<"\t\t*5)Query student information********************\t\n";
cout<<"\t\t*6)exit ********************\t\n";
cout<<"\t\t*7)clear ********************\t\n";
cout<<"\t\t*8)sort ********************\t\n";
cout<<"\t\t************************************************\n";
}
3 学生类
class Student
{
public:
Student(int id, string name):ID(id),Name(name){}
int getId()
{
return ID;
}
string getName()
{
return Name;
}
void modify(int id)
{
ID = id;
}
private:
int ID;
string Name;
};
4 功能类:
class STU
{
public:
STU(){}
public:
//增加一条信息
void addStu(vector<Student>& stu)
{
int id;
string name;
cout << "请输入学生的学号:";
cin >> id;
cout << "请输入学生的姓名:";
cin >> name;
Student sNew(id, name);
stu.push_back(sNew);
}
//查找一条信息
void find(vector<Student>& stu)
{
int id;
int flag = 0;
cout << "请输入你想查找的学生的学号:";
cin >> id;
for (int i = 0; i < stu.size(); i++)
{
if (stu[i].getId() == id)
{
flag = 1;
cout << "找到了!!\n";
cout << "该学生的信息如下:\n";
cout << stu[i].getId() << " " << stu[i].getName() << endl;
}
}
if (flag == 0)
{
cout << "抱歉,没找到!" << endl;
}
}
//修改一条信息
void modify(vector<Student>& stu)
{
int id;
int flag = 0;
cout << "请输入你想修改的学生的学号:";
cin >> id;
for (int i = 0; i < stu.size(); i++)
{
if (stu[i].getId() == id)
{
flag = 1;
cout << "找到了!!\n";
cout << "请输入你想修改的学号:" << endl;
cin >> id;
stu[i].modify(id);
cout << "修改成功!!" << endl;
}
}
if (flag == 0)
{
cout << "抱歉,没找到!" << endl;
}
}
//删除一条信息
void deleteStu(vector<Student>& stu)
{
int id;
int flag = 0;
int n = stu.size() - 1;
cout << "请输入你想删除的学生的学号:";
cin >> id;
for (int i = 0; i < stu.size(); i++)
{
if (stu[i].getId() == id)
{
flag = 1;
cout << "找到了!!\n";
swap(stu[i], stu[stu.size() - 1]);
stu.pop_back();
cout << "删除成功!!!" << endl;
}
}
if (flag == 0)
{
cout << "抱歉,没找到!" << endl;
}
}
//显示所有信息
void show(vector<Student>& stu)
{
for (int i = 0; i < stu.size(); i++)
{
cout << stu[i].getId() << " " << stu[i].getName() << endl;
}
}
//排序
void sortStu(vector<Student>& stu)
{
for (int i = 0; i < stu.size() - 1; i++)
{
for (int j = 0; j < stu.size() - i - 1; j++)
{
if (stu[i].getId() > stu[i + 1].getId())
{
swap(stu[i], stu[i + 1]);
}
}
}
cout<<"排序成功!!!"<<endl;
}
private:
};
5 主函数
int main()
{
STU s;
vector<Student> stu;
menu();
int select;
while (1)
{
printf("请输入数字来操作:");
scanf("%d", &select);
switch (select)
{
case 1:
s.show(stu);
break;
case 2:
s.deleteStu(stu);
break;
case 3:
s.addStu(stu);
printf("当前学生人数为%d;\n", stu.size());
break;
case 4:
s.modify(stu);
break;
case 5:
s.find(stu);
break;
case 6:
exit(0);
case 7:
system("cls");
menu();
break;
case 8:
s.sortStu(stu);
break;
default:
break;
}
}
return 0;
}