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

趁热打铁之通讯录管理系统

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

趁热打铁之通讯录管理系统

上次不是写了一个车票管理系统么,那个系统我写的时间挺长的,我觉得对C语言的熟练度还不太够,所以这次我又写了个通讯录管理系统,由于代码比较长(一千多行),我就不在这里完全展示了,只展示部分代码,也算是再巩固一下我的C语言功底。

目录

题目要求:

         1.菜单界面

         2.添加联系人

         3.删除联系人

         4.查找联系人

        4.1编号查询

5.修改联系人


 

 

题目要求:

通讯录管理系统

问题描述

对通讯录中多个联系人信息管理,通讯录中的个人信息包括:编号、姓名、单位、住址、电话号码1、电话号码2、电子邮箱、QQ 号、分组标签。 

基本要求

(1)   能建立、修改和增删通讯录。

(2)   能显示通讯录中所有联系人的信息。

(3)   能根据电话号码来查询。注意每个联系人有2个电话号码。还能够按多种方式进行查询,如按姓名。按单位查询或分组标签进行查询,查询到符合条件的所有联系人。

(4)   支持模糊查询。即输入部分信息,把符合条件的联系人全部显示出来,如输入电话号码的部分信息“136”,可以将电话号码中所有含有136的联系人全部显示。

(5)   可以提供不同方式的排序显示。如按姓名排序、按单位显示、按单位或分组标签排序显示。

(6)   通讯录提供菜单方式。要求:界面友好,易于操作

1.菜单界面
//菜单界面 
void ShowMenu()
{
	printf("t================================n");
	printf("t====欢迎使用通讯录管理系统!====n");
	printf("t================================n");
	printf("t======t  1、添加联系人t  ======n");
	printf("t======t  2、显示联系人t  ======n");
	printf("t======t  3、删除联系人t  ======n");
	printf("t======t  4、查找联系人t  ======n");
	printf("t======t  5、修改联系人t  ======n");
	printf("t======t  6、清空联系人t  ======n");
	printf("t======t  7、退出通讯录t  ======n");
	printf("t================================n");
	printf("t================================n");
}
2.添加联系人
//1添加联系人
void AddPerson(struct Addressbooks* p)
{
	if(p->m_Size == MAX)
	{
		printf("通讯录已满!");
		return; 
	}
	else
	{
		int i;
		//编号 
		long long id;
		printf("请输入联系人编号:n");
		scanf("%lld",&id);
		p->personArray [p->m_Size ].m_Id=id;
		
		//姓名
		char name[NAME];
		printf("请输入联系人姓名:n");
		scanf("%s",name);
		strcpy(p->personArray [p->m_Size ].m_Name,name);
		
		//单位
		char unit[UNIT];
		printf("请输入联系人单位:n");
		scanf("%s",unit);
		strcpy(p->personArray [p->m_Size ].m_Unit,unit);
		
		//住址
		char addr[ADDR];
		printf("请输入联系人住址:n");
		scanf("%s",addr);
		strcpy(p->personArray [p->m_Size ].m_Addr,addr);
		
		//电话1
		char phone1[PHONE];
		printf("请输入联系人电话1:n");
		scanf("%s",phone1);
		strcpy(p->personArray [p->m_Size ].m_Phone1,phone1); 
		
		//电话2
		char phone2[PHONE];
		printf("请输入联系人电话2:n");
		scanf("%s",phone2);
		strcpy(p->personArray [p->m_Size ].m_Phone2,phone2); 
		
		//电子邮箱
		char email[E_MAIL];
		printf("请输入联系人邮箱:n");
		scanf("%s",email);
		strcpy(p->personArray [p->m_Size ].m_Email,email);
		
		//QQ号
		long long qq;
		printf("请输入联系人QQ:n");
		scanf("%lld",&qq);
		p->personArray [p->m_Size ].m_QQ=qq;
		
		//分组标签 
		char group[GROUP];
		printf("请输入联系人分组:n");
		ShowGroup();
		scanf("%s",group);
		
		while(strcmp(group,"亲人")&&strcmp(group,"朋友")&&strcmp(group,"同学")&&strcmp(group,"同事") != 0)
		{
			printf("您输入的分组有误,请重新输入!n"); 
			printf("请输入联系人分组:n");
			ShowGroup();
			scanf("%s",group);
		}
		strcpy(p->personArray [p->m_Size ].m_Group,group);	
	}
	//更新通讯录信息
	printf("添加成功!n"); 
	p->m_Size++;
	
	system("pause");
	system("cls");
}
3.删除联系人
//3删除联系人
void DeletePerson(struct Addressbooks* p)
{
	char name[NAME];
	int Exist = 0,i = 0,j = 0;	//判断联系人是否存在
	printf("请输入您想删除的联系人姓名:n");
	scanf("%s",name);
	
	for(i = 0;i < p->m_Size ;i++)
	{
		if(strcmp(p->personArray [i].m_Name,name) == 0)
		{
			Exist = 1;
			for(j = 0;j < p->m_Size ;j++)
			{
				//数组前移实现删除操作
				p->personArray [j]=p->personArray [j+1]; 
			}
			//更新数据 
			printf("删除成功!n");
			p->m_Size --; 
		}
	}
	if(Exist == 0)
		printf("未找到此人!n"); 
	
	system("pausen");
	system("cls"); 
} 
4.查找联系人
//4查找联系人
void FindPerson(struct Addressbooks* p)
{
	int F_select = 0;
	 
	printf("请输入您需要查找的联系人信息:n");
	printf("1、编号查询n");
	printf("2、姓名查询n");
	printf("3、单位查询n");
	printf("4、住址查询n");
	printf("5、电话查询n");
	printf("6、邮箱查询n");
	printf("7、QQ号查询n");
	printf("8、分组查询n");
	
	scanf("%d",&F_select);
	switch(F_select)
	{
		case 1:
			{
				void Find_Id_Person(struct Addressbooks* p);
				Find_Id_Person(p);
				break;
			}
		case 2:
			{
				void Find_Name_Person(struct Addressbooks* p);
				Find_Name_Person(p);
				break;
			}
		case 3:
			{
				void Find_Unit_Person(struct Addressbooks* p);
				Find_Unit_Person(p);
				break;
			}
		case 4:
			{
				void Find_Addr_Person(struct Addressbooks* p);
				Find_Addr_Person(p);
				break;
			}
		case 5:
			{
				void Find_Phone_Person(struct Addressbooks* p);
				Find_Phone_Person(p);
				break;
			}
		case 6:
			{
				void Find_Email_Person(struct Addressbooks* p) ;
				Find_Email_Person(p);
				break;
			}
		case 7:
			{
				void Find_QQ_Person(struct Addressbooks* p);
				Find_QQ_Person(p);
				break;
			}
		case 8:
			{
				void Find_Group_Person(struct Addressbooks* p);
				Find_Group_Person(p);
				break;
			}
		default:
			break;
	}
} 

具体的查找函数就不在这里一一赘述了,就举一个例子

4.1编号查询
//4.1 编号查询 
void Find_Id_Person(struct Addressbooks* p)
{
	long long  F_id;
	int i,Exist = 0;
	printf("请输入您要查询的联系人编号:n"); 
	scanf("%lld",&F_id);
	
	for(i = 0;i < p->m_Size ;i++)
	{
		if(p->personArray [i].m_Id == F_id)
		{
			Exist = 1;
			printf("编号:%-10lldt",p->personArray [i].m_Id);
			printf("姓名:%-10st",p->personArray [i].m_Name);
			printf("单位:%-10st",p->personArray [i].m_Unit);
			printf("住址:%-10st",p->personArray [i].m_Addr);
			printf("电话1:%-10sn",p->personArray [i].m_Phone1);
			printf("电话2:%-10st",p->personArray [i].m_Phone2);
			printf("电子邮箱:%-10st",p->personArray [i].m_Email);
			printf("QQ:%-10lldt",p->personArray [i].m_QQ);
			printf("分组:%-10sn",p->personArray [i].m_Group);
		}
	}
	if(Exist == 0)
	{
		printf("未找到此人!n");
	}
	
	system("pausen");
	system("cls");
}
5.修改联系人
//5修改联系人
void AmendPerson(struct Addressbooks* p)
{
	printf("请输入您要修改的联系人姓名:n");
	char A_name[NAME];
	scanf("%s",A_name);
	int i,Exist = 0;
	
	for(i = 0;i < p->m_Size ;i++)
	{
		if(strcmp(p->personArray [i].m_Name,A_name) == 0)
		{
			Exist = 1;
			printf("请输入您要修改该联系人的信息:n");
			printf("1——编号t2——姓名t3——单位n");
			printf("4——住址t5——电话t6——邮箱n");
			printf("7——QQtt8——分组n");
			
			int amend = 0;
			scanf("%d",&amend);
			
			switch(amend)
			{
				case 1:
					{
						void Amend_Id_Person(struct Addressbooks* p,char name[NAME]);
						Amend_Id_Person(p,A_name);
						break;
					}
				case 2:
					{
						void Amend_Name_Person(struct Addressbooks* p,char name[NAME]);
						Amend_Name_Person(p,A_name);
						break;
					}
				case 3:
					{
						void Amend_Unit_Person(struct Addressbooks* p,char name[NAME]);
						Amend_Unit_Person(p,A_name);
						break;
					}
				case 4:
					{
						void Amend_Addr_Person(struct Addressbooks* p,char name[NAME]);
						Amend_Addr_Person(p,A_name);
						break;
					}
				case 5:
					{
						void Amend_Phone_Person(struct Addressbooks* p,char name[NAME]);
						Amend_Phone_Person(p,A_name);
						break;
					}
				case 7:
					{
						void Amend_QQ_Person(struct Addressbooks* p,char name[NAME]);
						Amend_QQ_Person(p,A_name);
						break; 
					}
				case 8:
					{
						void Amend_Group_Person(struct Addressbooks* p,char name[NAME]);
						Amend_Group_Person(p,A_name);
						break;
					}
				default:
					break; 
			}
		}
	}
	if(Exist == 0)
	{
		printf("未找到此人!n");
	}
	
	system("pausen");
	system("cls");
}

后面的函数功能其实跟前面的相差不大,读者可以自行补全

来一张运行时的图进行参考

OK,以上就是我的通讯录管理系统了,一个简单的小程序,如果有什么需要纠正的请广大读者跟我联系 .

 

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

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

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