通讯录管理系统
1、系统需求
通讯录是一个可以记录亲人、好友信息的工具。
本教程主要利用C++来实现一个通讯录管理系统
系统中需要实现的功能如下:
- 添加联系人:向通讯录中添加新人,信息包括(姓名、性别、年龄、联系电话、家庭住址)最多记录1000人
- 显示联系人:显示通讯录中所有联系人信息
- 删除联系人:按照姓名进行删除指定联系人
- 查找联系人:按照姓名查看指定联系人信息
- 修改联系人:按照姓名重新修改指定联系人
- 清空联系人:清空通讯录中所有信息
- 退出通讯录:退出当前使用的通讯录
花了我好几个小时时间终于写出来了,也算对前几天的学习做一个回顾吧!
功能比较简单,没有进行文件的读取保存
#include<iostream>
#include<stdlib.h>
using namespace std;
#define MAX 1000//最大存储人数
//定义通讯录内联系人结构体
struct addressPerson{
string name;//姓名
string addr;//地址
string phone;//电话
int sex;//性别,用1来代替男,2来代替女 其它提示错误
};
//定义通讯录结构体
struct addressBooks{
addressPerson personaddr[MAX];//通讯录能存储人数个数
int sizes;//当前通讯录中人书
};
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;
cout<<"请输入选项:";
}
//添加联系人
//实现添加联系人功能,联系人上限为1000人
void addPerson(addressBooks *abs){
if(abs->sizes==MAX){
cout<<"通讯录已满,无法添加"<<endl;
return;
}
else{
string name;
cout<<"请输入姓名:";
cin>>name;
abs->personaddr[abs->sizes].name=name;
cout<<"1--男"<<"\t"<<"2--女"<<endl;
cout<<"请输入性别:";
int sex ;
while(1){
cin>>sex;
if(sex==1||sex==2){
abs->personaddr[abs->sizes].sex=sex;
break;
}else{
cout<<"输入有错,请重新输入"<<endl;
}
}
cout<<"请输入电话:";
string phone;
cin>>phone;
abs->personaddr[abs->sizes].phone=phone;
cout<<"请输入地址:";
string addr;
cin>>addr;
abs->personaddr[abs->sizes].addr=addr;
}
abs->sizes++;//更新通讯录人数
system("pause");
system("cls");
}
//显示联系人
void showPerson(addressBooks *abs){
if(abs->sizes==0){
cout<<"通讯录为空!"<<endl;
system("pause");
system("cls");
}else{
for(int i=0;i<abs->sizes;i++){
cout<<"姓名:"<<abs->personaddr[i].name<<"\t";
cout<<"性别:"<<(abs->personaddr[i].sex==1?"男":"女")<<"\t\t";
cout<<"电话:"<<abs->personaddr[i].phone<<"\t";
cout<<"地址:"<<abs->personaddr[i].addr<<endl;
}
system("pause");
system("cls");
}
}
//判断联系人是否存在
//此函数在查找、删除、修改联系人过程中都会用到,因此将其封装为一个函数
int isExist(addressBooks *abs,string name){
for(int i=0;i<abs->sizes;i++){
if(abs->personaddr[i].name==name){
return i;//返回查找到联系人当前索引
}
}
return -1;
}
//删除联系人
//按照姓名进行删除指定联系人
void deletePerson(addressBooks *abs){
cout<<"请输入要删除姓名:";
string name;
cin>>name;
int ret=isExist(abs,name);
cout<<ret<<endl;
if(ret!=-1){
for(int i=ret;i<abs->sizes-1;i++){
abs->personaddr[i]=abs->personaddr[i+1];
}
abs->sizes--;
cout<<"删除成功"<<endl;
}else cout<<"查无此人"<<endl;
system("pause");
system("cls");
}
//查找联系人
//按姓名查找指定联系人信息
void findPerson(addressBooks *abs){
string name;
cout<<"请输入需要查找姓名:";
cin>>name;
int ret=isExist(abs,name);
if(ret!=-1){
cout<<"姓名:"<<abs->personaddr[ret].name<<"\t";
cout<<"性别:"<<(abs->personaddr[ret].sex==1?"男":"女")<<"\t\t";
cout<<"电话:"<<abs->personaddr[ret].phone<<"\t";
cout<<"地址:"<<abs->personaddr[ret].addr<<endl;
}else cout<<"查无此人"<<endl;
system("pause");
system("cls");
}
//修改联系人
void changePerson(addressBooks *abs){
cout<<"请输入需要修改人姓名:";
string name;
cin>>name;
int ret=isExist(abs,name);
if(ret!=-1){
int exit=1;
while(exit){
int select;
cout<<"请输入要修改信息:\n";
cout<<"1、姓名\n";
cout<<"2、姓别\n";
cout<<"3、电话\n";
cout<<"4、地址\n";
cout<<"0、退出\n";
cin>>select;
switch(select){
case 1:{
string newName;
cout<<"请输入新姓名:";
cin>>newName;
abs->personaddr[ret].name=newName;
cout<<"修改完成"<<endl;
system("pause");
system("cls");
break;
}
case 2:{
int newSex;
cout<<"1--男"<<"2--女"<<endl;
cout<<"请输入新姓别:";
cin>>newSex;
abs->personaddr[ret].sex=newSex;
cout<<"修改完成"<<endl;
system("pause");
system("cls");
break;
}
case 3:{
string newPhone;
cout<<"请输入新电话:";
cin>>newPhone;
abs->personaddr[ret].phone=newPhone;
cout<<"修改完成"<<endl;
system("pause");
system("cls");
break;
}
case 4:{
string newAddr;
cout<<"请输入新地址:";
cin>>newAddr;
abs->personaddr[ret].addr=newAddr;
cout<<"修改完成"<<endl;
system("pause");
system("cls");
break;
}
case 0:
exit=0;
break;
default :
cout<<"输入错误,请重新输入";
}
}
}else cout<<"未找到要修改联系人"<<endl;
system("pause");
system("cls");
}
//清空联系人
void clearPerson(addressBooks *abs){
cout<<"确定要清空通讯录吗?清空之后将无法恢复!Y/N"<<endl;
string makesure;
cin>>makesure;
if(makesure=="Y"){
abs->sizes=0;
}else if(makesure=="N"){
system("pause");
system("cls");
return ;
}else{
cout<<"命令输入错误,请重新输入!"<<endl;
}
system("pause");
system("cls");
}
int main(){
//菜单
addressBooks abs;//声明
abs.sizes=0;
int select = 0;
while(1){
showMenu();
cin>>select;
switch(select){
case 1://添加联系人
addPerson(&abs);
break;
case 2://显示联系人
showPerson(&abs);
break;
case 3://删除联系人
deletePerson(&abs);
break;
case 4://查找联系人
findPerson(&abs);
break;
case 5://修改联系人
changePerson(&abs);
break;
case 6://清空联系人
clearPerson(&abs);
break;
case 0://退出登录
cout<<"欢迎下次使用"<<endl;
system("pause");
return 0;
break;
default :
cout<<"命令输入错误,请重新输入!"<<endl;
system("pause");
system("cls");
break;
}
}
system("pause");
system("cls");
}