/*功能:通讯录日期:2013-09-23*/#include <iostream>#include <string.h>using namespace std;
typedef struct Address{ char name[30]; int number;
}Address;
void viewMenu();void Menu();int insertStudentNode(Address *peop,int n,int m);void printLinkList(Address *p,int n);void findAndName(Address *p,char *q,int n);void findAndTele(Address *p,int n,int m);void editAndName(Address *p,char *q,int n);void editAndTele(Address *p,int n,int m);int main(void){ char chiose,ch,nAme[30]; int n=10,i=0,num;
Address *peop = new Address[i] ; do {
viewMenu(); cin >> chiose; switch(chiose) { case 'A': cout <<"请输入联系人个数:"<<endl; cin>>n; i +=n; insertStudentNode(peop,n,i); break; fflush(stdin); case 'F': { Menu(); cin>>ch; switch(ch) { case 'N': cout <<"请输入要查的姓名:"<<endl; cin>>nAme; findAndName(peop,nAme,i); break; case 'T': cout <<"请输入要查的电话:"<<endl; cin>>num; findAndTele(peop,num,i); break; case'Q': break; fflush(stdin); } } case 'M': { Menu(); cin>>ch; switch(ch) { case 'N': cout <<"请输入要查的姓名::"<<endl; cin>>nAme; editAndName(peop,nAme,i); break; case 'T': cout <<"请输入要查的电话:"<<endl; cin>>num; editAndTele(peop,num,i); break; case'Q': break; fflush(stdin); } } case 'P': printLinkList(peop,i); break; case 'Q': break; default: break; } fflush(stdin); }while('Q'!=chiose);
delete[] peop; system("pause"); return 0;}
/************************************************************************函数名:viewMenu()功能:显示菜单--提示用户选择哪种操作参数:无返回值:无************************************************************************/void viewMenu(){ cout<<" 欢迎使用通讯录系统 "<<endl; cout<<"-----------------------------------------------------"<<endl; cout<<" 添加请按:A 修改请按:Mn"<<endl; cout<<" 查询请按:F 浏览请按:P n"<<endl; cout<<" 退出请按:Q n" <<endl; cout<<"-----------------------------------------------------"<<endl; cout<<" 请选择您的操作:"<<endl;
}/************************************************************************函数名:Menu()功能:显示内部菜单--提示用户选择哪种操作参数:无返回值:无************************************************************************/void Menu(){ cout<<" 欢迎使用通讯录系统 "<<endl; cout<<"-----------------------------------------------------"<<endl; cout<<" 按姓名:N 按电话:Tn"<<endl; cout<<" 退出请按:Q n" <<endl; cout<<"-----------------------------------------------------"<<endl; cout<<" 请选择您的操作:"<<endl;}/************************************************************************函数名:insertStudentNode(StudentNode *aHead)功能:插入成绩参数:Address *peop 首地址 int n 输入的个数 int m 总个数返回值:0。************************************************************************/int insertStudentNode(Address *peop,int n,int m){ int i;
cout <<"请输入联系人姓名及电话:"<<endl; if (n==m) { for (i=0;i<n;i++) { cin >>peop[i].name; cin >>peop[i].number;
} } else { for (i=m-n;i<m;i++) { cin >>peop[i].name; cin >>peop[i].number;
} }
return 0;}/************************************************************************函数名:printLinkList功能:输出所有信息参数:Address *p 首地址 int m 总数返回值:无************************************************************************/void printLinkList(Address *p,int m){ int i; for (i=0;i<m;i++) { cout<<p[i].name<<" "<<p[i].number<<endl; }}/************************************************************************函数名:findAndName功能:按姓名查询参数:Address *p 首地址 char *q 要查的姓名 int n 总数返回值:0************************************************************************/void findAndName(Address *p,char *q,int n){ int i=0; for (i=0;i<n;i++) { if (strcmp(q,p[i].name)==0) { cout<<"找到了!姓名及电话为:"<<endl; cout<<p[i].name<<" "<<p[i].number<<endl; } }
}
/************************************************************************函数名:findAndTele功能:按电话查询参数:Address *p 首地址 int n 要查的电话 int m 总个数返回值:0************************************************************************/void findAndTele(Address *p,int n,int m){ int i=0; for (i=0;i<n;i++) { if (n==p[i].number) { cout<<"找到了!姓名及电话为:"<<endl; cout<<p[i].name<<" "<<p[i].number<<endl; } }
}/************************************************************************函数名:editAndName功能:按姓名修改参数:Address *p 首地址 char *q 要修改的姓名 int n 总数返回值:0************************************************************************/void editAndName(Address *p,char *q,int n){ int i=0; for (i=0;i<n;i++) { if (strcmp(q,p[i].name)==0) { cout<<"请输入新数据,姓名及电话为:"<<endl; cin>>p[i].name; cin>>p[i].number; } }}/************************************************************************函数名:editAndTele功能:按电话修改参数:Address *p 首地址 int n 要修改的电话 int m 总个数返回值:0************************************************************************/void editAndTele(Address *p,int n,int m){ int i=0; for (i=0;i<n;i++) { if (n==p[i].number) { cout<<"请输入新数据,姓名及电话为:"<<endl; cin>>p[i].name; cin>>p[i].number; } }
}数组版通讯录-C++

最后更新于 2022-12-25
部分内容可能已过时,请注意信息时效。
本文采用 CC BY-NC-SA 4.0 许可,转载请注明出处与作者。
支持一下
如果这篇文章对你有帮助,欢迎打赏或分享。
评论