C语言实现一个通讯录
实现一个通讯录,通讯录可以用来存储1000个人的信息,每个人的信息包括:
姓名、性别、年龄、电话、住址
提供方法:
1. 添加联系人信息
2. 删除指定联系人信息
3. 查找指定联系人信息
4. 修改指定联系人信息
5. 显示所有联系人信息
6. 清空所有联系人
7. 以名字排序所有联系人
没有开辟动态内存的方法:
头文件:test.h
#ifndef__CONTACT #define__CONTACT #define_CRT_SECURE_NO_WARNINGS1 #include#include #include #include #defineN1000 typedefstructcontact { charname[30]; chargender[10]; intage; inttelephone; charaddress[100]; };//结构体没有定义变量属于声明一个结构体类型 voidmeau(); voidshow(structcontact*p,intlen);//structcontact*p:结构体指针指向这个结构体,intlen:结构体数组的长度 voidAdd_linkman(structcontact*p,intlen,intflag); intDelete_linkman(structcontact*p,intd_number,intlen);//intd_number选择要删除第几个结构体的内容 voidFind_member(structcontact*p,intd_number,intlen);//intd_number表示要查找的第几个结构体的内容(即联系人的信息) voidempty(structcontact*p); voidModify(structcontact*p,intM_member);//intM_member:要修改的第几个联系人 intcmp(constvoid*a,constvoid*b);//qsort里面的比较函数定义任意类型 voidsort(structcontact*p,intlen);//根据联系人的名字进行排序 #endif//条件编译
contact.c文件
#include"test.h"
voidmeau()
{
printf("*******************************************\n");
printf("*******************************************\n");
printf("##############Myaddressbook##############\n");
printf("*1-Add2-Delete3-Find*\n");
printf("*4-Empty5-Modify6-Sort*\n");
printf("*0-Exit7-Show*\n");
printf("*******************************************\n");
printf("*******************************************\n");
}
voidshow(structcontact*p,intlen)
{
assert(p);
inti=0;
for(i=0;i=0||d_number-1name!=bb->name)
return(strcmp((aa->name),(bb->name)));
}
voidsort(structcontact*p,intlen)
{
assert(p);
qsort(p,len,sizeof(structcontact),cmp);
}
test.c文件:
#include"test.h"
intmain()
{
intnum=0;
structcontactstudent[N];
intlen=0;
intflag=0;//定义一个标志位来结构体数组中每个结构体的位置
inttotal=N;
intdelete_number=0;
meau();
while(1)
{
printf("请输入数字进行选择:");
scanf("%d",&num);
switch(num)
{
case1:{
printf("请添加len个学生的信息:");
scanf("%d",&len);
Add_linkman(student,len+flag,flag);
flag=flag+len;
}break;
case2:{
printf("请输入要删除的第i个学生的信息:");
scanf("%d",&delete_number);
Delete_linkman(student,delete_number,len+flag);
flag=flag-1;
}break;
case3:{
intFind_number=0;
printf("请输入要查找的第i个学生的信息:");
scanf("%d",&Find_number);
Find_member(student,delete_number,len+flag);
}break;
case4:{
printf("清空所有联系人:");
empty(student);
}break;
case5:{
printf("请输入要修改的的第i个学生的信息:");
intM_member=0;
scanf("%d",&M_member);
Modify(student,M_member);
}break;
case6:{
printf("根据名字排序所有联系人:\n");
sort(student,len+flag);
}break;
case7:{
printf("打印所有联系人的信息:\n");
show(student,flag);
}break;
case0:{
exit(1);
}
default:printf("entererrordata!!!");
}
}
system("pause");
return0;
}
以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持毛票票。
声明:本文内容来源于网络,版权归原作者所有,内容由互联网用户自发贡献自行上传,本网站不拥有所有权,未作人工编辑处理,也不承担相关法律责任。如果您发现有涉嫌版权的内容,欢迎发送邮件至:czq8825#qq.com(发邮件时,请将#更换为@)进行举报,并提供相关证据,一经查实,本站将立刻删除涉嫌侵权内容。