\\主程序
//用面向对象的程序设计方法设计一个通讯录管理程序。通讯录内容包括
//姓名、家庭住址、出生日期、电话号码。采用链表来做(最好能采用前
//面的通用链表类)。具有:创建、输出、排序(电话号码)、插入、删除、
//查找等功能。通讯录的操作结果用文件进行保存。
# include <iostream.h>
# include"iomanip.h"
# include <string.h>
# include"List.h"
//Menu definition
class Menu
{
public:
Menu();
void SetName();
void SetAdd();
void SetBir();
void SetPho();
int IsThisAdd(char Add[]);
int IsThisPho(char Pho[]);
int IsThisName(char nam[]);
int IsThisBir(char Bir[]);
void modefy();
void print();
private:
char name[10],address[20],birth[20],phone[20];
};
Menu::Menu()
{
cin.ignore(80,'\n');
cout<<"请输入姓名:";
cin.getline(name,strlen(name));
cout<<"请输入家庭住址:";
cin.getline(address,strlen(address));
cout<<"请输入出生日期 :";
cin.getline(birth,strlen(birth));
cout<<"请输入电话号码:";
cin.getline(phone,strlen(phone));
}
void Menu::print()
{
cout<<"姓名:"<<setw(24)<<name<<"家庭住址:"<<setw(20)<<address
<<endl<<"出生日期:"<<setw(20)<<birth<<"电话号码:"<<setw(20)
<<phone<<endl;
}
void Menu::modefy()
{
char response;
cout<<"请选择要修改的对象.a.姓名b.家庭住址c.出生日期d.电话号码...";
cin>>response;
switch(response)
{
case 'a':
SetName();
break;
case 'b':
SetAdd();
break;
case 'c':
SetBir();
break;
case 'd':
SetPho();
break;
default:
break;
}
}
void Menu::SetName()
{
char s[10];
cin.ignore(80,'\n');
cout<<"请输入新姓名 :";
cin.getline(s,strlen(s));
int len=strlen(s);
for(int i=0;i<10;i++)
name[i]='\0';
for(i=0;i<len;i++)
{
name[i]=s[i];
}
}void Menu::SetBir()
{
char s[10];
cin.ignore(80,'\n');
cout<<"请输入新出生日期 :";
cin.getline(s,strlen(s));
int len=strlen(s);
for(int i=0;i<10;i++)
birth[i]='\0';
for(i=0;i<len;i++)
{
birth[i]=s[i];
}
}void Menu::SetPho()
{
char s[10];
cin.ignore(80,'\n');
cout<<"请输入新姓名 :";
cin.getline(s,strlen(s));
int len=strlen(s);
for(int i=0;i<10;i++)
phone[i]='\0';
for(i=0;i<len;i++)
{
phone[i]=s[i];
}
}
void Menu::SetAdd()
{
char s[18];
cin.ignore(80,'\n');
cout<<"请输入新家庭住址:";
cin.getline(s,strlen(s));
int len=strlen(s);
for(int i=0;i<10;i++)
address[i]='\0';
for(i=0;i<len;i++)
{
address[i]=s[i];
}
}
int Menu::IsThisName(char nam[])
{
return !strcmp(name,nam);
}
int Menu::IsThisBir(char birt[])
{
return !strcmp(birth,birt);
}
int Menu::IsThisAdd(char addr[])
{
return !strcmp(address,addr);
}
int Menu::IsThisPho(char pho[])
{
return !strcmp(phone,pho);
}
typedef List<Menu> MenuNote;
MenuNote menunote;
void system()
{
cout<<"请选择你要的操作.. a.插入 b.删除 c.查询 d.浏览全部 e.修改...";
char response;
cin>>response;
switch(response)
{
case 'a':
menunote.append();
break;
case 'b':
menunote.remove();
break;
case 'c':
menunote.acquire();
break;
case 'd':
menunote.print();
break;
case 'e':
menunote.modefy();
break;
default:
break;
}
cout<<"\n ........ 继续操作 ? Y/N?";
cin>>response;
if(response=='y'||response=='Y')
system();
}
void main()
{
cout<<".-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-\n";
cout<<"这里是通讯录!!开始操作?Y/N?";
char response;
cin>>response;
if(response=='y'||response=='Y')
system();
}