#include<iostream>
#include<string>
#include<list>
using namespace std;
class Fox
{
public:Fox(string name, int age, int num) :name(name), age(age), num(num) {}
void printdata()
{
cout << name<<"\t" << age<<"\t" << num<<"\t" << endl;
}
int getage() const
{
return age;
}
int getnum() const
{
return num;
}
private:
string name;
int age;
int num;
};
class Stsyem
{
public:
Stsyem() = default;
void printfmume()
{
cout << "狐狸管理系统" << endl;
cout << "1.打印狐狸数据" << endl;
cout << "2.年龄删除狐狸数据" << endl;
cout << "3.通过年龄排序狐狸" << endl;
cout << "4.通过编号排序狐狸" << endl;
cout << "5.插入狐狸的数据" << endl;
cout << "请做出你的选择" << endl;
}
private:
};
bool cmpByage(const Fox&object1, const Fox& object2)
{
if (object1.getage() < object2.getage())
{
return true;
} else
{
return false;
}
}
bool cmpBynum(const Fox& object1, const Fox& object2)
{
if (object1.getnum() < object2.getnum())
{
return true;
} else
{
return false;
}
}
using namespace std;
int main()
{
list<Fox> listdata;
int temp;
Stsyem mystsyem;
list<Fox>::iterator itr;
while (1)
{
system("pause");
system("cls");
mystsyem.printfmume();
cin >> temp;
switch (temp)
{
case 1:
for (Fox v:listdata)
{
v.printdata();
}
cout << endl;
break;
case 2:
int temp;
cout << "请输入要删除狐狸的年龄" << endl;
cin >> temp;
for (itr=listdata.begin(); itr!= listdata.end(); )
{
if ((*itr).getage() == temp)
{
itr = listdata.erase(itr);
}
else
{
itr++;
}
}
if (itr==listdata.begin())
{
cout << "未找到需要删除的数据" << endl;
}
break;
case 3:
listdata.sort(cmpByage);
break;
case 4:
listdata.sort(cmpBynum);
break;
case 5:
string tempname;
int tempage;
int tempnum;
cout << "请输入插入狐狸的姓名,年龄,和编号" << endl;
cin >> tempname >> tempage >> tempnum;
listdata.push_back(Fox(tempname, tempage, tempnum));
break;
}
}
return 0;
}