#include <iostream>
#include <iomanip>
#include <cstring>
#include <fstream>
#include "TongXun.h"
using namespace std;
//全局变量,数据的长度和首地址。
int num=-1;
tongxun *p_tongxun=NULL;
//菜单函数
void showMenu();
void showMenu_search();
void showMenu_modify();
void SelectMenu(int &);
//读取文件和保存文件 函数
void read_File();
void save_File();
//数据输入函数
void Data_in(tongxun &);
//替换函数
void instead(tongxun &, tongxun &);
//查询函数
int search_name(char *);
void search_number(char *);
void search_city(char *);
//删除函数
void delete_data(int);
//修改函数
void modify_number(int);
void modify_city(int);
//显示全部 函数
void show_all();
//检测函数,检查字符串是否为数字。
bool check_num(char*);
//判断数字是否在(min,max)内,不在的话提示重新输入。。
void get_num(int min,int max,int&);
//////////////////
//
//
int main(void)
{
int select=0;
showMenu();
SelectMenu(select);
read_File();
while(select!=7)
{
switch(select)
{
case 1:
{
tongxun temp;char ch[20];
int n=0;
cout<<"请输入通讯人姓名:";
cin>>ch;
while(strlen(ch)>12)
{
cout<<"姓名过长,请重新输入:";
cin>>ch;
cout<<endl;
}
temp.setName(ch); cout<<endl;
//
cout<<"请输入通讯人号码:";
while(cin>>ch)
{
cout<<endl;
if(!check_num(ch) | strlen(ch)>12)
{
cout<<"输入号码不是数字或数字位数过大,请重新输入:";
continue;
}
else
break;
}
temp.setNumber(ch); cout<<endl;
//
cout<<"请输入通讯人所在城市:";
cin>>ch;
while(strlen(ch)>12)
{
cout<<"城市过长,请重新输入:";
cin>>ch;
cout<<endl;
}
temp.setCity(ch); cout<<endl;
bool replace=false;
char c_r;
for(int i=0;i<num;i++)
{
if(strcmp(temp.getName(),p_tongxun[i].getName())==0)
{
cout<<" =^_^= 已存在【记录"<<i+1<<"、"<<p_tongxun[i].getName()<<" "<<p_tongxun[i].getNumber()<<" "<<p_tongxun[i].getCity()<<"】,是否覆盖之?(y/n):";
cin>>c_r;
cout<<endl;
while(c_r!='y'&& c_r!='n' && c_r!='Y' && c_r!='N')
{
cout<<" =。= 选择无效!覆盖记录选 y(Y),不不覆盖记录选择 n(N) ,请重新输入:";
cin>>c_r;
cout<<endl;
}
if(c_r=='y' | c_r=='Y')
{
replace=true;
instead(p_tongxun[i],temp);
break;
}
else
continue;
}
}
if(replace==false)
Data_in(temp);
cout<<endl;
cout<<"按任意键继续......"<<endl;
cin.get();cin.get();
break;
}
/////////////////////////////////////////
//
case 2:
{
if(0==num)
{
cout<<"通讯录为空,不能执行查询操作,请先录入信息!"<<endl;
break;
}
int c_search=0;
showMenu_search();
get_num(1,4,c_search);
if(1==c_search)
{
char temp[20];
cout<<"请输入查询姓名:";
cin>>temp;
while(strlen(temp)>12)
{cout<<"姓名过长,请重新输入:";cin>>temp;}
search_name(temp);
}
else if(2==c_search)
{
char temp[20];
int n=0;
cout<<"请输入查询号码:";
while(cin>>temp)
{
cout<<endl;
if(!check_num(temp) | strlen(temp)>12)
{
cout<<"输入号码不是数字或数字位数过大,请重新输入:";
continue;
}
else
break;
}
search_number(temp);
}
else if(3==c_search)
{
char temp[20];
cout<<"请输入查询城市:";
cin>>temp;
while(strlen(temp)>12)
{cout<<"城市名称过长,请重新输入:";cin>>temp;}
search_city(temp);
}
else
{}
cout<<endl;
cout<<"按任意键继续......"<<endl;
cin.get();cin.get();
break;
}
//////////////////////
//
case 3:
{
if(0==num)
{
cout<<"通讯录为空,不能执行修改操作,请先录入信息!";
break;
}
char temp[20];
int c_modify=0;
showMenu_modify();
get_num(1,3,c_modify);
if(1==c_modify)
{
cout<<"请输入通讯人姓名:";
cin>>temp;
while(strlen(temp)>12)
{cout<<"姓名过长,请重新输入:";cin>>temp;}
char c_num;
bool b_c_num=false;
for (int i=0;i<num;i++)
{
if(strcmp(p_tongxun[i].getName(),temp)==0)
{
cout<<"是否修改【"<<"记录"<<i+1<<"、"<<p_tongxun[i].getName()<<" "<<p_tongxun[i].getNumber()<<" "<<p_tongxun[i].getCity()<<"】"<<"的号码?(y/n):";
cin>>c_num;
cout<<endl;
while(c_num!='y' && c_num!='n' && c_num!='Y' && c_num!='N')
{
cout<<" =。= 选择无效!修改号码选 y,不修改号码选择 n ,请重新输入:";
cin>>c_num;
cout<<endl;
}
if(c_num=='y'| c_num=='Y')
{
modify_number(i);
b_c_num=true;
break;
}
}
}
if(b_c_num==false)
cout<<"=^_^= 没有合适的修改对象,修改号码操作取消!"<<endl;
}
else if(2==c_modify)
{
cout<<"请输入通讯人姓名:";
cin>>temp;
cout<<endl;
while(strlen(temp)>12)
{cout<<"姓名过长,请重新输入:";cin>>temp; cout<<endl;}
char c_city;
bool b_c_city=false;
for (int i=0;i<num;i++)
{
if(strcmp(p_tongxun[i].getName(),temp)==0)
{
cout<<"是否修改【"<<"记录"<<i+1<<"、"<<p_tongxun[i].getName()<<" "<<p_tongxun[i].getNumber()<<" "<<p_tongxun[i].getCity()<<"】"<<"的城市?(y/n):";
cin>>c_city;
cout<<endl;
while(c_city!='y' && c_city!='n' && c_city!='Y' && c_city!='N')
{
cout<<" =。= 选择无效!修改城市选 y(Y),不修改城市选择 n(N) ,请重新输入:";
cin>>c_city;
cout<<endl;
}
if(c_city=='y'| c_city=='Y')
{
modify_city(i);
b_c_city=true;
break;
}
}
}
if(b_c_city==false)
cout<<"=^_^= 没有合适的修改对象,修改城市操作取消!"<<endl;
}
else
{}
cout<<endl;
cout<<"按任意键继续......"<<endl;
cin.get();cin.get();
break;
}
///////////////////////
//
case 4:
{
if(0==num)
{
cout<<"通讯录为空,不能执行删除操作,请先录入信息!"<<endl;
break;
}
char temp[20];
cout<<"请输入要删除人的姓名:";
cin>>temp;
while(strlen(temp)>12)
{cout<<"姓名过长,请重新输入:";cin>>temp;}
if(num==0)
{cout<<"通讯录为空 ,不能执行删除操作!"<<endl;break;}
bool b_del=false;
char del;
for(int i=0;i<num;i++)
{
if(strcmp(p_tongxun[i].getName(),temp)==0)
{
cout<<"是否删除【记录"<<i+1<<"、"<<p_tongxun[i].getName()<<" "<<p_tongxun[i].getNumber()<<" "<<p_tongxun[i].getCity()<<"】?(y/n):";
cin>>del;
cout<<endl;
while(del!='y' && del!='Y' && del!='n' && del!='N')
{
cout<<" =。= 选择无效!删除记录选 y,不删除记录选择 n ,请重新输入:";
cin>>del;
cout<<endl;
}
if(del=='y'| del=='Y')
{delete_data(i);b_del=true;}
}
}
if(b_del==false)
cout<<" =^_^= 没有合适的删除对象,删除操作取消!"<<endl;
cout<<endl;
cout<<"按任意键继续......"<<endl;
cin.get();cin.get();
break;
}
///////////////////////
//
case 5:
if(0==num)
{
cout<<"通讯录为空,没有可显示的信息,请先录入信息!"<<endl;
break;
}
show_all();
cout<<endl;
cout<<"按任意键继续......"<<endl;
cin.get();cin.get();
break;
case 6:
system("cls");
showMenu();
SelectMenu(select);
}
save_File();
delete [] p_tongxun;
return 0;
}
//
////////////////////
void showMenu()
{
cout<<endl;
cout<<" **********************************************************"<<endl;
cout<<" **
通讯录小程序(补发源代码)
需积分: 11 57 浏览量
2009-07-01
11:02:15
上传
评论
收藏 536KB RAR 举报
shenyuhou
- 粉丝: 100
- 资源: 27
最新资源
- 什么是移动应用开发-关于移动应用开发的相关介绍
- 第二组汇报 PPT.pptx
- 什么是大数据开发-相关介绍-关于大数据开发的相关介绍
- 什么是软件测试-相关介绍-关于软件测试的相关介绍
- 前端开发-什么是前端开发-关于前端开发的一些相关介绍
- Sora AI-关于文生视频的使用场景说明
- suno AI文生视频的相关教程和介绍使用
- 什么是后端开发-关于后端开发的一些小介绍分享
- Jurassic Pack Vol. II Dinosaurs 侏罗纪包卷恐龙二号Unity游戏模型资源unitypackage
- Jurassic Pack Vol. III Dinosaurs 侏罗纪包卷恐龙三号Unity游戏模型资源unitypackag
资源上传下载、课程学习等过程中有任何疑问或建议,欢迎提出宝贵意见哦~我们会及时处理!
点击此处反馈
评论0