0
点赞
收藏
分享

微信扫一扫

通讯录管理系统整理

钵仔糕的波波仔 2022-01-13 阅读 161
c++

1、设计通讯录功能:添加、显示、查找、删除、修改、清空联系人和退出通讯录。

2、封装菜单显示函数;

3、利用while加switch实现菜单操作并实现退出通讯录功能;

#include<iostream>
using namespace std;
#include<string>
#define MAX 1000//宏定义可存入最大人数
void showmenu()//显示主菜单
{
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;
}

struct person//定义联系人结构体
{
string name;
int sex;
int age;
string phoneNum;
string address;
};

struct addressnote//定义通讯录结构体
{
int m_size;
person arr[MAX];//#define又称宏定义,标识符为所定义的宏名,简称宏。
//#define 的功能是将标识符定义为其后的常量。一经定义,程序中就可以直接用标识符来表示这个常量。

};

void addperson(addressnote *a)//添加联系人函数
{
if (a->m_size >= 1000)
{
cout << "已满" << endl;
}
else
{
string name;
cout << "请输入联系人姓名" << endl;
cin >> name;
a->arr[a->m_size].name = name;
cout << "请选择联系人性别" << endl << "男-1 女-2" << endl;
int sex=0;
while (true)
{
cin >> sex;
if (sex == 1 || sex == 2)
{
a->arr[a->m_size].sex= sex;
break;
}
cout << "输入有误,请重新输入" << endl;
}
cout << "请输入联系人年龄" << endl;
cin >> a->arr[a->m_size].age ;
cout << "请输入联系人联系电话" << endl;
cin >> a->arr[a->m_size].phoneNum;
cout << "请输入联系人家庭住址" << endl;
cin >> a->arr[a->m_size].address;
a->m_size++;
cout << "添加成功" << endl;
system("pause");
system("cls");
}
}

void show(addressnote *a)//显示联系人函数
{
if (a->m_size > 0) {
for (int i = 0; i < a->m_size; i++)
{
cout << "姓名: " << a->arr[i].name <<"\t";
cout << "性别: " << (a->arr[i].sex ==1?"男":"女")<< "\t";
cout << "年龄: " << a->arr[i].age<< "\t";
cout << "电话: " << a->arr[i].phoneNum << "\t";
cout << "住址: " << a->arr[i].address << endl;
}
}
else {
cout << "未保存联系人" << endl;
}
system("pause");
system("cls");
}

int exist(addressnote* a, string name)//判断是否存在联系人
{
for (int i = 0; i < a->m_size; i++)
{
if (a->arr[i].name == name)
{
return i;
}
}
return -1;
}



void delet(addressnote* a)//删除联系人
{
cout << "输入要删除的联系人" << endl;
string Pname;
cin >> Pname;
int ret = exist(a, Pname);
if (ret > -1)
{
for (int i = ret; i < a->m_size; i++)
{
a->arr[i] = a->arr[i + 1];
}
a->m_size--;
cout << "联系人已删除" << endl;
system("pause");
system("cls");
}
else
{
cout << "查无此人" << endl;
system("pause");
system("cls");
}
}

void modifyPerson(addressnote *a)//修改联系人函数
{
string name;
cout << "输入要修改的联系人" << endl;
cin >> name;
int ret = exist(a, name);
if (ret==-1)
{
cout << "查无此人" << endl;
}
else
{
cout << "修改姓名: ";
cin >> a->arr[ret].name;
cout << "修改性别: ";
int sex = 0;
while (true) {
cin >> sex;
if (sex == 1 || sex == 2)
{
a->arr[a->m_size].sex = sex;
break;
}
cout << "输入有误,请重新输入" << endl;
}
cout << "修改年龄: ";
cin >> a->arr[ret].age;
cout << "修改电话: ";
cin >> a->arr[ret].phoneNum;
cout << "修改住址: ";
cin >> a->arr[ret].address;
}
system("pause");
system("cls");
}

void findPerson(addressnote* a)//查找联系人函数
{
string name;
cout << "输入要查找的联系人" << endl;
cin >> name;
int ret = exist(a, name);
if (ret==-1)
{
cout << "查无此人" << endl;
}
else
{
cout << "姓名: " <<a->arr[ret].name << "\t";
cout << "性别: "<<(a->arr[ret].sex==1?"男":"女") << "\t";
cout << "年龄: " <<a->arr[ret].age << "\t";
cout << "电话: " <<a->arr[ret].phoneNum << "\t";
cout << "住址: " <<a->arr[ret].address << "\t";
}
system("pause");
system("cls");
}

void clearPerson(addressnote *a)//清空通讯录函数
{
a->m_size = 0;
system("pause");
system("cls");
}

int main()
{

int select;
addressnote ads;
ads.m_size = 0;//初始化人数
while (true)
{
showmenu();
cin >> select;
switch (select)
{
case 1: addperson(
break;
case 2: show(
break;
case 3: delet(
break;
case 4: modifyPerson(
break;
case 5: findPerson(
break;
case 6: clearPerson(
break;
case 0:
system("pause");
return 0;
break;
default:system("cls");
break;
}
}
}
举报

相关推荐

0 条评论