栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 软件开发 > 后端开发 > C/C++/C#

C++结构体—通讯录系统

C/C++/C# 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

C++结构体—通讯录系统

系统需求:

通讯录是一个可以记录亲人、好友信息的工具。
下面的代码实现主要利用C++来实现一个通讯录管理系统
系统中需要实现的功能如下:
添加联系人:向通讯录中添加新人,信息包括(姓名、性别、年龄、联系电话、家庭住址)最多记录1000人
●显示联系人:显示通讯录中所有联系人信息
●删除联系人:按照姓名进行删除指定联系人
●查找联系人:按照姓名查看指定联系人信息
●修改联系人:按照姓名重新修改指定联系人
●清空联系人:清空通讯录中所有信息
●退出通讯录:退出当前使用的通讯录

联系人结构体:

 typedef struct {
    	string name;//姓名
    	int sex;//性别 1男 2女
    	int age;//年龄
    	string phone;//电话 
    	string add;//地址 
    }Person; 

通讯录结构体

 typedef struct {
    	Person pArrs[MAX];
    	int size;//联系人个数 
    }Addbooks;

检测联系人是否存在,如果存在返回下标位置,不存在返回-1

 int isExit(Addbooks *abs,string name) {
    	for(int i=0;isize;i++) {
    		if(abs->pArrs[i].name==name)
    			return i;//找到了返回在结构体数组中的下标 
    	}	
    	return -1;//没找到返回-1 
    }

显示联系人代码实现:

 void showPerson(Addbooks *abs){
    	if(abs->size==0){
    		cout<<"当前通讯录的记录为空,请输入联系人"<size;i++){
    		cout<<"姓名: "<pArrs[i].name<<"t";
    		cout<<"性别: "<<(abs->pArrs[i].sex==1 ?"男":"女")<<"t";
    		cout<<"年龄: "<pArrs[i].age<<"t";
    		cout<<"电话 "<pArrs[i].phone<<"t";
    		cout<<"地址: "<pArrs[i].add< 

删除联系人代码实现:

void deletePerson(Addbooks *abs){
    	cout<<"请输入您需要删除的联系人:";
    	string name;
    	cin>>name;
    	int flag=isExit(abs,name);
    	if(flag==-1){
    		cout<<"查无此人!"<
    		//cout<<"找到此人"<size;i++){
    			abs->pArrs[i]=abs->pArrs[i+1];
    		}
    		//更新通讯录的人数 
    		abs->size--;
    		cout<<"删除成功!"< 

查找联系人代码实现:

void findPerson(Addbooks *abs){
    	cout<<"请输入您需要查找的联系人:";
    	string name;
    	cin>>name;
    	int flag=isExit(abs,name);
    	if(flag!=-1) {
    		cout<<"姓名: "<pArrs[flag].name<<"t";
    		cout<<"性别: "<pArrs[flag].sex<<"t";
    		cout<<"年龄: "<pArrs[flag].age<<"t";
    		cout<<"电话 "<pArrs[flag].phone<<"t";
    		cout<<"地址: "<pArrs[flag].add<
    		cout<<"查无此人!"< 

修改联系人代码实现:

 void modifyPerson(Addbooks *abs){
    	cout<<"请输入您需要修改的联系人:";
    	string name;
    	cin>>name;
    	int flag=isExit(abs,name);
    	if(flag!=-1){
    		string name;
    	int sex;
    	int age;
    	string phone;
    	string add;
    	//输入姓名 
    	cout<<"请输入姓名:";
    	cin>>name;
    	abs->pArrs[flag].name=name;
    	//输入性别
    	 
    	cout<<"请输入性别(提示:1代表男,2代表女):";
    	while(true){
    		cin>>sex;
    		if(sex==1||sex==2){	abs->pArrs[flag].sex=sex; break;}
    		cout<<"输入有误,请重新输入!"<>age;
    	abs->pArrs[flag].age=age;
    	
    	//输入电话
    	cout<<"请输入电话:"; 
    	cin>>phone;
    	abs->pArrs[flag].phone=phone; 
    	
    	//输入地址 
    	cout<<"请输入地址:"; 
    	cin>>add;
    	abs->pArrs[flag].add=add; 
    	cout<<"修改成功!"<
    		cout<<"查无此人!"< 

清空联系人代码实现:

 void cleanPerson(Addbooks *abs){
    	abs->size=0;
    	cout<<"通讯录已清空"< 

主函数:

int main(){
	Addbooks abs;
	//初始化通讯录人员个数
	abs.size=0; 
	int select=0;
	while(true){
			//菜单调用 
	showMenu();
	//system("pause");
	cout<<"请选择你的操作:";
	
	cin>>select;
	switch(select){
		case 1://1、添加联系人
			addPerson(&abs);//利用地址传递,可以修改形参 
			break;
		case 2://2、显示联系人
			showPerson(&abs) ;
			break;
		case 3://3、删除联系人
		{
			deletePerson(&abs);
			break;
		}
		case 4://4、查找联系人
		findPerson( &abs);
			break;
		case 5://5、修改联系人
		modifyPerson(&abs);
			break;
		case 6://6、清空联系人
		cleanPerson(&abs);
			break;
		case 0://7、退出通讯录
			cout<<"欢迎下次使用"< 
总结 

1.void ClearList(LinkList &L)
2.void ClearList(LinkList *L)
1是传递引用。她对应的主函数中的形式是ClearList(LinkList L)
就是变量的别名,可以当作原变量使用。
2是传递指针。她对应的主函数中的形式是ClearList(LinkList &L)
针对你的代码,应该是传递指针。

转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/862177.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号