目录
实现语言c++,简单结构体训练,穿插一些简单算法思想。
编写通讯录
实现添加,展示,删除,查找,修改,清空,退出系统
c++代码如下
#include <iostream>
#include <string>
using namespace std;
#define max 1000
//联系人的结构体
struct person{
//姓名
string m_name;
//性别 1 男 2 女
int m_sex;
//年龄
int m_age;
//电话
string m_phone;
//地址
string m_address ;
};
struct addressbooks{
//通讯录的保存联系人数据
struct person presonarray[max];
//通讯录当前联系人个数
int m_size;
};
void cleanperson(addressbooks *abs);
void showperson(addressbooks *abs);
void addperson(addressbooks *abs);
int isexist(addressbooks *abs,string name);
void deleteperson(addressbooks *abs);
void show1();
void findperson(addressbooks *abs);
void modifperson(addressbooks *abs);
int main()
{ int choice = 1;
addressbooks abs;
abs.m_size=0;
while(choice)
{ show1();
scanf("%d",&choice);
switch(choice)
{
case 1:addperson(&abs);break;
case 2:showperson(&abs);break;
case 3:
{ deleteperson(&abs); break;
/*cout<<"请输入删除联系人的姓名:"<<endl;
string name;
cin>>name;
if(isexist(&abs,name)==-1)
{
cout<<"查无此人"<<endl;
break;
}
*/
case 4:findperson(&abs);break;
case 5:modifperson(&abs);break;
case 6:cleanperson(&abs);break;
}
}
}
}
void showperson(addressbooks *abs)
{
if(abs->m_size==0)
{
cout<<"当前记录为空!"<<endl;
}
else
{
int i;
for(i = 0;i<abs->m_size;i++)
{
cout<<"姓名: "<<abs->presonarray[i].m_name<<"\t";
cout<<"性别: "<<(abs->presonarray[i].m_sex==1?"男":"女")<<"\t" ;
cout<<"年龄: "<<abs->presonarray[i].m_age<<"\t";
cout<<"电话: "<<abs->presonarray[i].m_phone<< "\t" ;
cout<<"住址: "<<abs->presonarray[i].m_address<<endl ;
}
}
system("pause");
system("cls");
}
int isexist(addressbooks *abs,string name)
{
for(int i=0;i<abs->m_size;i++)
{
if(abs->presonarray[i].m_name == name)
{
return i;
}
}
return -1;
}
void deleteperson(addressbooks *abs)
{
cout<<"请输入要删除的联系人"<<endl;
string name;
cin>>name;
int ret = isexist(abs,name);
if(ret!=-1)
{
for(int i=ret;i<abs->m_size;i++)
{
abs->presonarray[i]=abs->presonarray[i+1];
}
abs->m_size--;cout<<"删除成功"<<endl ;
}
else
{
cout<<"查无此人!"<<endl;
}
system("pause");
system("cls");
}
void show1()
{
cout<<"*** *** *** *** *** ***"<<endl;
cout<<"**1.add contact(s)**"<<endl;
cout<<"**2.show contact(s)**"<<endl;
cout<<"**3.delete contact(s)**"<<endl;
cout<<"**4.found contact(s)**"<<endl;
cout<<"**5.change contact(s)**"<<endl;
cout<<"**6.empty stock ***"<<endl;
cout<<"**0.log down ***"<<endl;
cout<<"*** *** *** *** *** ***"<<endl;
}
void addperson(addressbooks *abs)
{
//判断通讯录full?
if(abs->m_size==max)
{
cout<<"fulled!"<<endl;
return ;
}
else
{
//添加具体联系人
string name;
cout<<"请输入姓名:" <<endl;
cin>>name;
abs->presonarray[abs->m_size].m_name=name;
//姓名
cout<<"请输入性别: 1 男 2 女"<<endl;
int sex = 0;
while(1)
{ cin>>sex;
if(sex==1||sex==2)
{abs->presonarray[abs->m_size].m_sex=sex;
break;
}
cout<<"输入有问题,重新输入!"<<endl;
}
//性别
cout<<"请输入年龄!"<<endl;
int age = 0;
cin>>age;
abs->presonarray[abs->m_size].m_age=age;
//年龄
cout<<"请输入联系电话: "<<endl;
string phone ;
cin>>phone;
abs->presonarray[abs->m_size].m_phone=phone;
//电话
cout<<"请输入住址"<<endl;
string address;
cin>>address;
abs->presonarray[abs->m_size].m_address=address;
// updata
abs->m_size++;
cout<<"添加成功!!!"<<endl;
system("pause");
system("cls");//清屏
}
}
void findperson(addressbooks *abs)
{
cout<<"请输入要寻找的联系人"<<endl;
string name;
cin>>name;
int ret = isexist(abs,name);
if(ret!=-1)
{ int i=ret;
cout<<"姓名: "<<abs->presonarray[i].m_name<<"\t";
cout<<"性别: "<<(abs->presonarray[i].m_sex==1?"男":"女")<<"\t" ;
cout<<"年龄: "<<abs->presonarray[i].m_age<<"\t";
cout<<"电话: "<<abs->presonarray[i].m_phone<< "\t" ;
cout<<"住址: "<<abs->presonarray[i].m_address<<endl ;
}
else
{
cout<<"查无此人"<<endl;
}
system("pause");
system("cls");
}
void modifperson(addressbooks *abs)
{
cout<<"请输入您要修改的联系人"<<endl;
string name;
cin>>name;
int ret = isexist(abs,name);
if(ret!=-1)
{
string name;
cout<<"请输入姓名"<<endl;
cin>>abs->presonarray[ret].m_name;
cout<<"请输入性别 1 男 2 女"<<endl;
int sex = 0;
cin>>sex;
while(1)
{
if(sex==2||sex==1)
{
abs->presonarray[ret].m_sex=sex;
break;
}
cout<<"输入有问题,请重新输入!"<<endl;
}
cout<<"请输入年龄"<<endl;
int age = 0;
cin>>age;
abs->presonarray[ret].m_age=age;
cout<<"亲输入电话"<<endl;
string phone;
cin>>phone;
abs->presonarray[ret].m_phone=phone;
cout<<"住址"<<endl;
string address;
cin>>address;
abs->presonarray[ret].m_address=address;
system("pause");
system("cls");
}
else
{
cout<<"未找到"<<endl;
}
}
void cleanperson(addressbooks *abs)
{
abs->m_size=0;
cout<<"已清空联系人!"<<endl;
system("pause");
system("cls");
}