#include<stdio.h>
#include<stdlib.h>
#include<string.h>
#define max 1000
int num = 1;
int bnum = 1;
typedef struct address_book
{
char Name[20]; // 通讯录姓名
char Unit[100]; // 单位
char Fix_phone[20]; //固定电话
char mobile_phone[20]; //移动电话
char classify[20]; //分类
char Emall[20]; // emall
char QQ[20]; //QQ
}address_book;
typedef struct address
{
address_book a[max];
int blank[1000]; // 空位置
}address;
void print(address L, int i); //输出信息
int check(address L); //查找
void cread(address *L); //创建联系人
void Delete(address *L); //删除联系人
void inint(address *L); //添加联系人
void modification(address *L); //修改联系人
void menu();
int main()
{
address L;
int n, i, j;
while(1)
{
menu();
printf("请输入主菜单中的代号\n");
scanf("%d", &n);
if(n==1)
cread(&L);
else if(n==2)
{
printf("请输入需要输出的人的位置\n");
scanf("%d", &i);
print(L, i);
}
else if(n==3)
{
inint(&L);
}
else if(n==4)
{
j = check(L);
}
else if(n==5)
{
Delete(&L);
}
else
{
printf("1");
modification(&L);
}
}
}
void print(address L, int i)
{
printf("系统输出联系人的信息\n");
printf("-------------------------------------\n");
printf("姓名: ");
printf("%s\n", L.a[i].Name);
printf("工作单位: ");
printf("%s\n", L.a[i].Unit);
printf("固定电话: ");
printf("%s\n", L.a[i].Fix_phone);
printf("移动电话: ");
printf("%s\n", L.a[i].mobile_phone);
printf("分类: ");
printf("%s\n", L.a[i].classify);
printf("Emall: ");
printf("%s\n", L.a[i].Emall);
printf("QQ: ");
printf("%s\n", L.a[i].QQ);
printf("------------------------------------\n");
printf("请按任意键\n");
getch();
}
int check(address L)
{
int i, j=1, n=0, m;
char A[100];
printf(" 查找方式 \n");
printf("*******************************************\n");
printf(" 1. 姓名 \n");
printf(" 2. 单位 \n");
printf(" 3. 移动电话 \n");
printf(" 4. 固定电话 \n");
printf(" 5. EMALL \n");
printf(" 6. QQ \n");
printf("******************************************\n");
printf("输入查找人的方式:\n");
scanf("%d", &i);
printf("请输入需要查找人的信息:");
scanf("%s", A);
if(i==1)
{
while(j<=num)
{
if(strcmp(A, L.a[j].Name)==0)
{
n++;//记录名字相同的个数;
printf("相同条件又%d个\n", n);
printf("编号: %d\n", j);
print(L, j);
}
j++;//遍历的位置
}
return j;
}
if(i==2)
{
while(j<=num)
{
if(strcmp(A, L.a[j].Unit)==0)
{
n++;//记录名字相同的个数;
printf("相同条件又%d个\n", n);
printf("编号: %d\n", j);
print(L, j);
}
j++;//遍历的位置
}
return j;
}
if(i==3)
{
while(j<=num)
{
if(strcmp(A, L.a[j].Fix_phone)==0)
{
printf("编号: %d\n", j);
print(L, j);
break;
}
j++;//遍历的位置
}
return j;//由于固定电话不会出现相同的所以不需要执行 check1;
}
if(i==4)
{
while(j<=num)
{
if(strcmp(A, L.a[j].mobile_phone)==0)
{
printf("编号: %d\n", j);
print(L, j);
break;
}
j++;//遍历的位置
}
return j;//由于移动电话不会出现相同的所以不需要执行 check1;
}
if(i==5)
{
while(j<=num)
{
if(strcmp(A, L.a[j].Emall)==0)
{
printf("编号: %d\n", j);
print(L, j);
break;
}
j++;//遍历的位置
}
return j;//由于EMall不会出现相同的所以不需要执行 check1;
}
if(i==6)
{
while(j<=num)
{
if(strcmp(A, L.a[j].QQ)==0)
{
printf("编号: %d\n", j);
print(L, j);
break;
}
j++;//遍历的位置
}
return j;//由于QQ不会出现相同的所以不需要执行 check1;
}
if(i<=0 || i>=7)
{
printf("查找出现错误\n");
return 0;
}
}
void cread(address *L)
{
int n, i;
printf("请输入需要输入联系人的数目\n");
scanf("%d", &n);
for(i=1; i<=n; i++)
{
printf("请输入联系人的信息\n");
printf("-------------------------------------\n");
printf("请输入姓名:\n");
scanf("%s", L->a[i].Name);
printf("请输入工作单位:\n");
scanf("%s", L->a[i].Unit);
printf("请输入固定电话:\n");
scanf("%s", L->a[i].Fix_phone);
printf("请输入移动电话:\n");
scanf("%s", L->a[i].mobile_phone);
printf("请输入联系人的分类:\n");
scanf("%s", L->a[i].classify);
printf("请输入联系人的EMALL:\n");
scanf("%s", L->a[i].Emall);
printf("请输入联系人的QQ号:\n");
scanf("%s", L->a[i].QQ);
printf("-------------------------------------\n");
num++;
}
}
void Delete(address *L)
{
int i;
i = check(*L);
if(i==0)
printf("删除不成功请重新操作\n");
else
{
// L->a[i] = memset(&L->a[i], 0, sizeof());
L->blank[bnum++] = i;
}
}
void inint(address *L)
{
if(bnum)
{
printf("请输入姓名:\n");
scanf("%s", L->a[bnum].Name);
printf("请输入工作单位:\n");
scanf("%s", L->a[bnum].Unit);
printf("请输入固定电话:\n");
scanf("%s", L->a[bnum].Fix_phone);
printf("请输入移动电话:\n");
scanf("%s", L->a[bnum].mobile_phone);
printf("请输入联系人的分类:\n");
scanf("%s", L->a[bnum].classify);
printf("请输入联系人的EMALL:\n");
scanf("%s", L->a[bnum].Emall);
printf("请输入联系人的QQ号:\n");
scanf("%s", L->a[bnum].QQ);
bnum--;
}
else
{
printf("请输入姓名:\n");
scanf("%s", L->a[num].Name);
printf("请输入工作单位:\n");
scanf("%s", L->a[num].Unit);
printf("请输入固定电话:\n");
scanf("%s", L->a[num].Fix_phone);
printf("请输入移动电话:\n");
scanf("%s", L->a[num].mobile_phone);
printf("请输入联系人的分类:\n");
scanf("%s", L->a[num].classify);
printf("请输入联系人的EMALL:\n");
scanf("%s", L->a[num].Emall);
printf("请输入联系人的QQ号:\n");
scanf("%s", L->a[num].QQ);
num++;
}
}
void modification(address *L)
{
int i, j;
char A[100];
i = check(*L);
printf(" 修改信息的序号 \n");
printf("*******************************************\n");
printf(" 1. 姓名 \n");
p
没有合适的资源?快使用搜索试试~ 我知道了~
C语言经典程序代码合集
共276个文件
o:54个
exe:51个
c:49个
需积分: 0 0 下载量 110 浏览量
2023-12-06
12:46:31
上传
评论
收藏 1.11MB ZIP 举报
温馨提示
本资源包括C语言所有基本的程序代码
资源推荐
资源详情
资源评论
收起资源包目录
C语言经典程序代码合集 (276个子文件)
main.c 9KB
main.c 1KB
main.c 1KB
main.c 858B
main.c 728B
main.c 708B
main.c 674B
main.c 638B
main.c 630B
main.c 616B
main.c 585B
main.c 528B
main.c 522B
main.c 492B
main.c 477B
main.c 474B
出租车公里数.c 440B
main.c 440B
main.c 438B
main.c 409B
main.c 406B
main.c 386B
main.c 371B
main.c 353B
main.c 349B
main.c 344B
main.c 340B
main.c 334B
main.c 334B
main.c 327B
main.c 312B
main.c 311B
main.c 300B
main.c 293B
main.c 290B
main.c 289B
main.c 281B
main.c 271B
main.c 264B
main.c 258B
main.c 241B
main.c 215B
main.c 213B
main.c 210B
main.c 203B
main.c 183B
main.c 179B
main.c 177B
main.c 107B
求最大公因数与最小公倍数.cbp 1KB
求解一元二次方程.cbp 1KB
厘米换算英尺英寸.cbp 1KB
求圆的周长和面积.cbp 1KB
判断实数大于等于.cbp 1KB
大小写字母判断.cbp 1KB
学生成绩排序.cbp 1KB
简单输出整数.cbp 1KB
兔子繁殖问题.cbp 1KB
求100以内素数.cbp 1KB
求最大公约数.cbp 1KB
求最小公倍数.cbp 1KB
递归求逆序数.cbp 1KB
输出指定图形.cbp 1KB
输出该月天数.cbp 1KB
数据的查找.cbp 1KB
求整数均值.cbp 1KB
九九乘法表.cbp 1KB
求m到n的和.cbp 1KB
近似求PI值.cbp 1KB
四则运算.cbp 1KB
存款本利.cbp 1KB
数字时钟.cbp 1KB
弹球距离.cbp 1KB
格里高利.cbp 1KB
判断字符.cbp 1KB
比大小2.cbp 1KB
比大小3.cbp 1KB
鸣礼炮.cbp 1KB
求最大.cbp 1KB
比大小.cbp 1KB
水电费.cbp 1KB
换硬币.cbp 1KB
三角形.cbp 1KB
黑洞数.cbp 1KB
数组最大最小移位.cbp 1KB
阶乘.cbp 1KB
期末.cbp 1KB
方阵.cbp 1KB
闰年.cbp 1KB
逆序.cbp 1KB
f4.cbp 1KB
c6.cbp 1KB
c5.cbp 1KB
选择法排序.cbp 1KB
大小写转换.cbp 1KB
个人通讯录.cbp 1KB
温度转换.cbp 1022B
求100以内素数.depend 148B
求最大公因数与最小公倍数.depend 148B
个人通讯录.depend 147B
共 276 条
- 1
- 2
- 3
资源评论
星耀
- 粉丝: 0
- 资源: 3
上传资源 快速赚钱
- 我的内容管理 展开
- 我的资源 快来上传第一个资源
- 我的收益 登录查看自己的收益
- 我的积分 登录查看自己的积分
- 我的C币 登录后查看C币余额
- 我的收藏
- 我的下载
- 下载帮助
安全验证
文档复制为VIP权益,开通VIP直接复制
信息提交成功