1:通讯录管理系统项目

话不多说,上代码(Dev-C++编写,其他编译器也可以运行)

#include <iostream>
#include<string>
#define MAX 100
 using  namespace std;
/* run this program using the console pauser or add your own getch, system("pause") or input loop */

//设计联系人结构体
struct Person
{
	string m_Name; //姓名
	
	int m_Sex; //性别
	
	int m_Age; //年龄
	
	string m_Phone; // 电话
	
	string m_Addr; //家庭住址 
 };
 
//通讯录结构体
struct Addressbooks
{
	//通讯录 保存联系人数组 
	struct Person personAdrray[MAX]; 
	
	//通讯录 当前记录联系人个数 
	int m_Size;
};


//显示菜单
 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;
 }


 //1.添加联系人**** 
 void addPerson(Addressbooks*abs) 
 {
 	//判断通讯录是否满 
 	if(abs->m_Size==MAX)
	 {
	 	cout<<"通讯录以满"<<endl;
		 return; 
	 } 
	else
	{
		string name; //添加姓名 
		cout<<"请输入姓名:"<<endl;
		cin>>name;
		abs->personAdrray[abs->m_Size].m_Name=name; 
		
		//添加性别
		cout<<"请输入性别:"<<endl;
		cout<<"0-->男性"<<endl;
		cout<<"1-->女性"<<endl;
		cout<<"请输入性别:" <<endl ;
		int sex=0;
		while(1)
		{
			cin>>sex;//如果输入0/1退出循环否则重新输入 
			if(sex==0||sex==1)
			{
				abs->personAdrray[abs->m_Size].m_Sex=sex;
				break;
			}
			cout<<"输入有误,重新输入:" <<endl ;//endl 
			
		}
		
		//添加年龄
		int age=0;
		cout<<"请输入年龄:"<<endl;
		while(1)
		{
			cin>>age;//如果输入正常年龄退出循环否则重新输入 
			if(age>0&&age<=120)
			{
				abs->personAdrray[abs->m_Size].m_Age=age;
				break;
			}
			cout<<"输入有误,重新输入:" <<endl ;//endl 		
		}
				
		//添加电话		
		string phone; 
		cout<<"请输入联系电话:"<<endl;
		cin>>phone;
		abs->personAdrray[abs->m_Size].m_Phone=phone;
		
		//添加家庭住址	
		cout<<"请输入家庭住址:"<<endl;
		string address;
		cin>>address;
		abs->personAdrray[abs->m_Size].m_Addr=address;	
		
		//更新通讯录人数
		abs->m_Size++ ;
		
		cout<<"添加成功"<<endl; 
		cout<<"**************************"<<endl;
		
		system("pause");//请按任意键继续 
		system("cls"); //清屏功能 
	}
 }
 
 
 // 2.显示联系人**** 
 void showPerson(Addressbooks*abs)
 {
 	//判断通讯录人数,0显示空 不为0显示联系人信息
	if(abs->m_Size==0)
	{
		cout<<"当前记录为空"<<endl;
	}	
	else
	{
		int i;
		for(i=0;i<abs->m_Size;i++)
	 	{
			cout<<"姓名:"<<abs->personAdrray[i].m_Name<<"\t";
			cout<<"性别:"<<(abs->personAdrray[i].m_Sex==0 ? "男":"女")<<"\t";
			cout<<"年龄:"<<abs->personAdrray[i].m_Age<<"\t";
			cout<<"联系电话:"<<abs->personAdrray[i].m_Phone<<"\t";
			cout<<"家庭住址:"<<abs->personAdrray[i].m_Addr<<endl;
		//	cout<<"*********************"<<endl;		//有"\t"不用分隔线			
		}	
	} 
	
	system("pause");//请按任意键继续 
	system("cls"); //清屏功能
 } 
 
 
 // 检测联系人是否存在,存在返回联系人数组位置,否则返回-1 
 int isExist(Addressbooks*abs,string name)
 {
 	int i;
 	for(i=0;i<=abs->m_Size;i++)
 	{
 		//找到用户信息 
 		if(abs->personAdrray[i].m_Name==name)
		{
		 	return i;
		}	
	}
	return -1; //不存在 返回-1
 } 
 
 
  //3.删除联系人 ****
  void deletePerson(Addressbooks*abs)
  {
  	cout<<"请输入删除联系人:"<<"";
  	string name;
	cin>> name; 
	//ret=-1 不存在  ret!=-1 存在
	int ret=isExist(abs,name);
	if(ret!=-1)
	{
		int i=ret; //找到用户进行删除 
		for(i;i<abs->m_Size;i++)
		{
			//删除后 后面数据向前移动 
			abs->personAdrray[i]=abs->personAdrray[i+1];
		}
		abs->m_Size--; //更新通讯录人数
		cout<<"删除联系人成功"<<endl; 
	}
	else
	{
		cout<<"查无此人"<<endl;
		cout<<"请重新输入:"<<"";
	}
	
	system("pause");//请按任意键继续 
	system("cls"); //清屏功能	
  }
 
 
// 4.查找联系人 ***** 
void findPerson(Addressbooks*abs)
{
	cout<<"请输入查找联系人:"<<"";
	string name;
	cin>>name;
	//判断 查找的联系人是否存在 
	int ret=isExist(abs,name);
	
	if(ret!=-1) //找到并且显示联系人 
	{
		cout<<"姓名:"<<abs->personAdrray[ret].m_Name<<"\t";	
		cout<<"性别:"<<abs->personAdrray[ret].m_Sex<<"\t";
		cout<<"年龄:"<<abs->personAdrray[ret].m_Age<<"\t";
		cout<<"联系电话:"<<abs->personAdrray[ret].m_Phone<<"\t";
		cout<<"家庭住址:"<<abs->personAdrray[ret].m_Addr<<endl;	
	}
	else
	{
		cout<<"查无此人"<<endl;
		cout<<"请重新输入:"<<"";	
	} 
	
	system("pause");//请按任意键继续 
	system("cls"); //清屏功能		
} 


//5.修改联系人 *****
void moidfyPerson(Addressbooks*abs)
{
	cout<<"请输入修改的联系人:"<<"";
	string name;
	cin>>name;
	//判断 查找的联系人是否存在 
	int ret=isExist(abs,name);
	if(ret!=-1) //找到并且显示联系人 
	{
		//姓名:
		string name;
		cout<<"请输入姓名:"<<endl; 
		cin>>name;
		abs->personAdrray[ret].m_Name=name;
		
		//性别:
		cout<<"请输入性别:"<<endl; 
		cout<<"0-->男性"<<endl;
		cout<<"1-->女性"<<endl; 
		int sex=0;
				
		while(1)
		{
			cin>>sex;
			if(sex==1||sex==2) 
			{
				//输入正确,退出循环 
				abs->personAdrray[ret].m_Sex=sex;
				break;
			}
			cout<<"请重新输入:"<<"";
		}
		
		//年龄:
		cout<<"请输入年龄:"<< endl;
		int age=0;
		cin>>age;
		abs->personAdrray[ret].m_Age=age;
		
  		//联系电话: 
  		cout<<"请输入联系电话:"<<endl;
  		string phone;
  		cin>>phone;
  		abs->personAdrray[ret].m_Phone=phone;
  		
		//家庭住址: 
		cout<<"请输入家庭住址:"<<endl;
		string address;
		cin>>address;
		abs->personAdrray[ret].m_Addr=address;
	}
	else
	{
		cout<<"查无此人"<<endl;
		cout<<"请重新输入:"<<"";	
	} 
	system("pause");//请按任意键继续 
	system("cls"); //清屏功能	  
}


//6.清空联系人 *****
 void cleanPerson(Addressbooks*abs)
 {
 	cout<<"请重输入9清空通讯录"<<endl;
 	int rechoose;
	cin>>rechoose; 
 	if(rechoose==9)
 	{
 	abs->m_Size=0;
 	cout<<"通讯录已清空"<<endl; 
 	system("pause");//请按任意键继续 
	system("cls"); //清屏功能
	}
	else
	{
	cout<<"请重新选择;"<<endl;
	system("pause");//请按任意键继续 
	system("cls"); //清屏功能	
	}
 }
 
 
int main(int argc, char** argv) 
{
	//创建通讯录结构体变量
	Addressbooks abs; 
	//初始化通讯录当前人员个数为0 
	abs.m_Size=0;
	 
	int select=0;  //创建用户选择输入变量 
	
	while(1)
	{		 
		showMenu(); //调用菜单函数    //菜单调用
	
		cout<<"请输入您的选择:"<<""; 
		cin>>select; 
		switch(select)
		{
			case 1: //1.添加联系人
				addPerson(&abs); //调用联系人函数    //利用地址, 修改实参 
			 	break;
			case 2: //2.显示联系人
				showPerson(&abs); //调用显示联系人函数    //利用地址, 修改实参
				break;
			case 3: //3.删除联系人
				deletePerson(&abs);
				/*
				{
					cout<<"请输入删除联系人姓名:"<<""; 
					string name;
					cin>>name;
					if(isExist(&abs,name)==-1)
					{
						cout<<"查无此人"<<endl;
						cout<<"请重新输入:"<<""; 
					}
					else
					{
						cout<<"找到此人"<<endl; 
					}
				}*/
				break;
			case 4: //4.查找联系人
				findPerson(&abs); //调用显查找联系人函数    //利用地址, 修改实参 
				break;
			case 5: //5.修改联系人
			moidfyPerson(&abs);  //
				break;
			case 6: //6.清空联系人
			cleanPerson(&abs);  //
				break;	
			case 0: // 0.退出通讯录 **** 
				cout<<"欢迎下次使用"<<endl; 
				system("pause");
				return 0;
				break;
			default:
				break;
		}	
	}
	
	system("pause");
	return 0;
}

测试展示

关注.点赞.收藏

  • 2
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

bug空间

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值