#include
#include
using namespace std;
#define max 1000
struct link {
struct people pdata[max];
int m_size;
};
void addpperson(link*);
struct people {
string name;
int sex;
int age;
string number;
string loction;
};
void showmanu() {
cout << "******************************" << endl;
cout<< "*********" << "1.添加联系人" << "*********" << endl;
cout << "*********" << "2.显示联系人" << "*********" << endl;
cout << "*********" << "3.删除联系人" << "*********" << endl;
cout << "*********" << "4.查找联系人" << "*********" << endl;
cout << "*********" << "5.修改联系人" << "*********" << endl;
cout << "*********" << "6.清空联系人" << "*********" << endl;
cout << "*********" << "0.退出通讯录" << "*********" << endl;
cout << "******************************" << endl;
}
int main() {
showmanu();
cout << "欢迎使用通讯录管理系统,请选择您需要的服务。" << endl;
//初始化通讯录
struct link abs;
abs.m_size = 0;
select(&abs); //"select":找不到标识符
return 0;
}
void addperson(link* abs) {
if (abs->m_size == max) {
cout << "通讯录已满!添加失败!" << endl;
return;
}
else {
cout << "请输入名字 :" << endl;
string name;
cin >> name;
abs->pdata[abs->m_size].name = name;**//下标要求数组或指针类型**
cout << "请输入性别:" << endl;
int sex;
cin >> sex;
abs->pdata[abs->m_size].sex = sex;**//下标要求数组或指针类型**
cout << "请输入年龄:" << endl;
int age;
cin >> age;
abs->pdata[abs->m_size].age = age;**//下标要求数组或指针类型**
cout << "请输入电话号:" << endl;
string number;
cin >> number;
abs->pdata[abs->m_size].number = number;**//下标要求数组或指针类型**
cout << "请输入住址:" << endl;
string loction;
cin >> loction;
abs->pdata[abs->m_size].loction = loction;**//下标要求数组或指针类型**
abs->m_size += 1;
showmanu();
return;
}
}
void select(link *abs) {
int a = 0;
while (true){
cin >> a;
showmanu();
switch (a) {
case 1:
addperson(abs);
break;
case 2:
break;
case 3:
break;
case 4:
break;
case 5:
break;
case 6:
break;
case 0:
cout << "欢迎下次使用!" << endl;
return ;
break;
}
}
}
把link结构体放到people后面,或者link前先声明people,主要是link里的people没有事先声明导致的,另外你这个select函数也没有事先声明。