c++课程设计个人通讯录包含指针等(无文件)

#include<iostream>
#include<string>
#define MAX 1000
using namespace std;
//通讯录管理系统

struct Person
{
	string name;//姓名
	int sex;//性别
	int age ;//年龄
	string Phone;//号码
	string arr;//地址
};

struct Arrerssbooks//通讯录地址
{
	struct Person peroArray[ MAX];
	int size;
};

void showPerson(Arrerssbooks * abs)
{
			//判断通讯录中人数是否为零,如果是提示为空
			//如果不是,显示记录联系人的信息
			if(abs->size==0)
			{
				cout<<"当前记录为空"<<endl;
			}
			else
			{
				for (int i=0;i<abs->size;i++)
				 {
					cout <<"姓名:"<<abs->peroArray[i].name<<"\t";
					cout <<"性别:"<<(abs->peroArray[i].sex ==1?"男":"女")<<"\t";
					cout<<"年龄:"<<abs->peroArray[i].age<<"\t";
					cout<<"电话:"<<abs->peroArray[i].Phone<<"\t";
					cout<<"住处:"<<abs->peroArray[i].arr<<endl;
				}
		}
			system("pause");//任意键继续
			system("cls");//清屏
}
//查找联系人信息
/*
void findPerson(Arrerssbooks * abs)
{
	cout<<"请输入你要查找的联系人"<<endl;
	string name;
	cin>>name;
	//判断指定联系人是否存在通讯录中
	int ret = isExist(abs,name);
	if(ret!=-1)//找到联系人
	{
	cout<<"姓名:"<<abs->peroArray[ret].name<<"\t";
	cout<<"性别:"<<abs->peroArray[ret].sex<<"\t";
	cout<<"年龄:"<<abs->peroArray[ret].age<<"\t";
	cout<<"电话:"<<abs->peroArray[ret].Phone<<"\t";
	cout<<"住处:"<<abs->peroArray[ret].arr<<endl;
	}
	else//查无此人
	{
	cout<<"查无此人"<<endl;
	}
	//任意键按下后清屏
	system("pause");
	system("cls");
}

*/
void addPeron(Arrerssbooks * abs)
{
	//判断通讯录是否已满,如果满了就不再添加
	if(abs->size==MAX)
	{cout<<"通讯录已满,无法添加!"<<endl;}
	else
	{
	string name;//姓名
	cout<<"请输入姓名:"<<endl;
	cin>>name;
	abs->peroArray[abs->size].name=name;
	//	性别
	cout<<"请输入性别:"<<endl;
	cout<<"1----男"<<endl;
	cout<<"2----女"<<endl;
	int sex=0;
	
		while(true)
		{	cin>>sex;//如果输入1或者是2可以跳出循环
			if(sex==1||sex==2)
			{
			abs->peroArray[abs->size].sex=sex;
			break;
			}
			cout<<"输入有误,请重新输入"<<endl;
		}
		cout<<"请输入年龄:"<<endl;
		int age=0;//初始化变量值
		cin>>age;
		abs->peroArray[abs->size].age=age;

		cout<<"请输入l联系电话:"<<endl;
		string phone;
		cin>>phone;
		abs->peroArray[abs->size].Phone=phone;

		cout <<"请输入家庭住处"<<endl;
		string address;
		cin>>address;
		abs->peroArray[abs->size].arr=address;
		//更新通讯录人数
		abs->size++;
		cout <<"添加成功"<<endl;

		system("pause");//按任意键继续
		system("cls");//清屏操作
	}

}



//检测联系人是否存在,如果存在,返回联系人所在数组中对具体位置,如果没有则返回-1
//参数 通讯录 参数二 对比姓名
int  isExist(Arrerssbooks *abs, string name)
{
	for(int i=0;i<abs->size;i++)
	{
	//找到用户输入的姓名
		if(abs->peroArray[i].name==name)
		{return i;}
	
	}
	return -1;//如果遍历结束都没找到返回-1;

}

//删除指定联系人
void deletePerson(Arrerssbooks *abs)
{
		cout<<"请输入你要删除的联系人"<<endl;
		string name;
		cin>>name;
	int ret	=isExist(abs,name);
	if (ret!=-1)
	{
	//查找到这个人,要先操作
	for(int i=ret;i<abs->size;i++)
	{
	//数据前移
	abs->peroArray[i]=abs->peroArray[i+1];
	}
	abs->size--;//更新通讯录中的人员名单
	cout<<"删除成功"<<endl;
	}
	else{cout<<"查无此人"<<endl;}
	system("pause");
	system("cls");
}


//查找联系人信息
void findPerson(Arrerssbooks * abs)
{
	cout<<"请输入你要查找的联系人"<<endl;
	string name;
	cin>>name;
	//判断指定联系人是否存在通讯录中
	int ret = isExist(abs,name);
	if(ret!=-1)//找到联系人
	{
	cout<<"姓名:"<<abs->peroArray[ret].name<<"\t";
	cout<<"性别:"<<abs->peroArray[ret].sex<<"\t";
	cout<<"年龄:"<<abs->peroArray[ret].age<<"\t";
	cout<<"电话:"<<abs->peroArray[ret].Phone<<"\t";
	cout<<"住处:"<<abs->peroArray[ret].arr<<endl;
	}
	else//查无此人
	{
	cout<<"查无此人"<<endl;
	}
	//任意键按下后清屏
	system("pause");
	system("cls");
}


void modifyPerson(Arrerssbooks * abs)//修改联系人
{
	cout<<"请输入要修改的联系人"<<endl;
	string name;
	cin>>name;
	int ret =isExist(abs,name);
	if(ret!=-1)//找到指定联系人
	{//姓名//性别//年龄
			string name;
			cout<<"请输入姓名:"<<endl;
			cin>>name;
			abs->peroArray[ret].name=name;
			cout<<"请输入性别:"<<endl;
			cout<<"1-----男"<<endl;
			cout<<"2------女"<<endl;
			int sex=0;
			while(1)
			 {
			 cin>>sex;
			 if(sex==1||sex==2)
			 {abs->peroArray[ret].sex=sex;break;} 	//输入正确退出循环
			 cout <<"输入有误,请重新输入"<<endl;
			 }

			//年龄
			cout<<"请输入年龄:"<<endl; 
			int age=0;
			cin>>age;
			abs->peroArray[ret].age=age;
			//电话
			cout<<"请输入联系电话"<<endl;
			string phone;
			cin>>phone;
			abs->peroArray[ret].Phone=phone;

			cout<<"请输入家庭住处:"<<endl;
			string arr;
			cin>>arr;
			abs->peroArray[ret].arr=arr;

			cout<<"修改成功!"<<endl;

	}
	else{cout<<"查无此人"<<endl;}//未找到联系人
		//按任意建清屏
		system("pause");
		system("cls");
}


void  cleanPerson(Arrerssbooks * abs)
{
		abs->size=0;//size赋值为0即为全部删掉通讯录的内容
		cout<<"通讯录已清空"<<endl;
		system("pause");
		system("cls");

}

void ShowMeun()
{
		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;

}


void main()
{
		//创建通讯录结构体变量
	 Arrerssbooks abs;
		//初始化通讯录中当前人员个数
	 abs.size=0;
	 int select=0;//用户选择
     ShowMeun();
	 cin>>select;
     while(1)
	 {
	 switch(select)
	 {
	 case 1:
		 addPeron(&abs);//利用地址传递,可以修饰实参
		 //添加联系人 
		 break;
	 case 2:
		 showPerson(&abs);//显示联系人
		 break;
	 case 3:
		{ cout<<"请输入删除的联系人的姓名:"<<endl;
		 string name;
		 cin>>name;
		if( isExist(&abs,name)==-1)
		{
		cout<<"查无此人"<<endl;
		}
		 //删除联系人 
		else{cout<<"找到这个人"<<endl;}
		}
		 break;
	 case 4://查找联系人
		 findPerson(&abs);
		 break;
	 case 5: //修改联系人
		 modifyPerson(&abs);
		 break;
	 case 6://清空联系人
		  cleanPerson(&abs);
		 break;
     case 0:
		 cout<<"欢迎下次使用"<<endl;
		 system("pause");
		 system("cls");
		 break;
	   default:
	   break;
	 }
   }
}
















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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值