C++快速实现简易增删改查系统
#include<iostream>
#include<list>
#include<string>
using namespace std;
struct info
{
string name;
int age;
string route;
string team;
};
ostream& operator<<(ostream& out, info Object)
{
out << Object.name << "\t" << Object.age << "\t" << Object.route << "\t" << Object.team << endl;
return out;
}
istream& operator>>(istream& in, info& Object)
{
cout << "请输入游客相关信息:" << endl;
cout << "name" << "\t" << "age" << "\t" << "route" << "\t" << "team" << endl;
in >> Object.name >> Object.age >> Object.route >> Object.team;
return in;
}
class travelSystem
{
public:
void inputInfo(info Object);
void outputInfo();
void searchInfo(int age);
void searchInfo(string name);
void modifyInfoByName(string name);
int deleteInfoByName(string name);
void printStyle();
protected:
list<info> myList;
};
void travelSystem::inputInfo(info Object)
{
myList.push_back(Object);
}
void travelSystem::outputInfo()
{
list<info>::iterator iter;
printStyle();
for (iter = myList.begin(); iter != myList.end(); iter++)
{
cout << *iter;
}
}
int travelSystem::deleteInfoByName(string name)
{
int flag = 0;
list<info>::iterator iter;
for (iter = myList.begin(); iter != myList.end(); iter++)
{
if (iter->name == name)
{
myList.erase(iter);
flag = 1;
return flag;
}
}
return flag;
}
void travelSystem::modifyInfoByName(string name)
{
info newData;
while (deleteInfoByName(name));
cout << "输入新的信息:" << endl;
cin >> newData;
inputInfo(newData);
}
void travelSystem::printStyle()
{
cout << "name" << "\t" << "age" << "\t" << "route" << "\t" << "team" << endl;
}
void travelSystem::searchInfo(int age)
{
int flag = 0;
list<info>::iterator iter;
printStyle();
for (iter = myList.begin(); iter != myList.end(); iter++)
{
if (iter->age == age)
{
cout << *iter;
flag = 1;
}
}
if (flag == 0)
{
cout << "无相关信息" << endl;
}
}
void travelSystem::searchInfo(string name)
{
int flag = 0;
list<info>::iterator iter;
printStyle();
for (iter = myList.begin(); iter != myList.end(); iter++)
{
if (iter->name == name)
{
cout << *iter;
flag = 1;
}
}
if (flag == 0)
{
cout << "无相关信息" << endl;
}
}
void makeMenu()
{
cout << "-----------------------------------------------" << endl;
cout << "\t\t旅游管理系统" << endl;
cout << "\t\t0.退出系统" << endl;
cout << "\t\t1.插入信息" << endl;
cout << "\t\t2.浏览信息" << endl;
cout << "\t\t3.删除信息" << endl;
cout << "\t\t4.修改信息" << endl;
cout << "\t\t5.查找信息" << endl;
cout << "-----------------------------------------------" << endl;
cout << "请输入(0—5):" << endl;
}
void keyDown(travelSystem* mySystem)
{
int userKey;
cin >> userKey;
info tempData;
switch (userKey)
{
case 0:
cout << "正常退出" << endl;
system("pause");
exit(0);
break;
case 1:
cin >> tempData;
mySystem->inputInfo(tempData);
break;
case 2:
mySystem->outputInfo();
break;
case 3:
cout << "请输入要删除的人员姓名:" << endl;
cin >> tempData.name;
if (mySystem->deleteInfoByName(tempData.name))
{
cout << "删除成功" << endl;
}
else
{
cout << "不存在相关信息,无法删除" << endl;
}
break;
case 4:
cout << "请输入要修改人员的的姓名:";
cin >> tempData.name;
mySystem->modifyInfoByName(tempData.name);
break;
case 5:
cout << "1.按年龄查找\t2.按姓名查找" << endl;
cout << "请输入查找方式(1or2)" << endl;
cin >> userKey;
if (userKey == 1)
{
cout << "请输入年龄:" << endl;
cin >> tempData.age;
mySystem->searchInfo(tempData.age);
}
else if (userKey == 2)
{
cout << "请输入姓名:" << endl;
cin >> tempData.name;
mySystem->searchInfo(tempData.name);
}
else
{
cout << "输入错误,无效操作" << endl;
break;
}
default:
cout << "输入错误!,请重新操作" << endl;
break;
}
}
int main()
{
travelSystem* Object = new travelSystem;
while (1)
{
makeMenu();
keyDown(Object);
cout << "选择你的操作(0-5)" << endl;
system("pause");
system("cls");
}
return 0;
}