问答文章1 问答文章501 问答文章1001 问答文章1501 问答文章2001 问答文章2501 问答文章3001 问答文章3501 问答文章4001 问答文章4501 问答文章5001 问答文章5501 问答文章6001 问答文章6501 问答文章7001 问答文章7501 问答文章8001 问答文章8501 问答文章9001 问答文章9501

麻烦大虾们帮我编一道c语言题,关于数组的。谢谢了!!!

发布网友 发布时间:2024-03-19 07:47

我来回答

1个回答

热心网友 时间:2024-06-11 07:42

通讯录管理
:
#include <stdio.h>
#include <string.h>
struct pep_list{ /*定义一个通讯录结构*/
char name[10];
int age;
char telephone[13];
};
int count=0; /*定义整个人数的全局变量计数*/
int count1=0; /*定义朋友人数的全局变量计数*/
int count2=0; /*定义家人人数的全局变量计数*/
int count3=0; /*定义陌生人数的全局变量计数*/
int c,b,a; /*为46 47 48行的赋值做准备*/
struct pep_list peps[50]; /*定义储存所有人的数组*/
struct pep_list friends[50]; /*定义储存朋友的数组*/
struct pep_list families[50]; /*定义储存家人的数组*/
struct pep_list unknows[50]; /*定义储存陌生人的数组*/
struct pep_list pp[50];
struct pep_list p[50];

void new_pep(struct pep_list peps[]); /*自定义函数*//*总的人数*/
void search_pep(struct pep_list peps[]); /*自定义函数*//*查询*/
void delete_pep(struct pep_list peps[]); /*删除*/
/*显示*/
void xianshi_pep(struct pep_list peps[],struct pep_list friends[],struct pep_list families[],struct pep_list unknows[]);
void xgxx_pep(struct pep_list peps[]);/*重新命名*/
int main(void)
{
int choice,choice1,choice2,choice3,choice4;

printf("\t \t********NOKIA 专用通讯录*********\n");
printf("\n\n");

do
{

printf("\n功能表:\n[1]:新建\n[2]:查询\n[3]:删除\n[4]:显示组员\n[5]:修改信息\n[0]:退出\n");
printf("\n选择你要的功能:\n");
scanf("%d",&choice);

switch(choice)
{ /*新建项*/
case 1:new_pep(peps);
printf("是否需要分组?\n"); /*分组提示*/
printf("\n[1]:是[2]:否");
scanf("%d",&choice3);
switch(choice3)
{
case 1:printf("[1]:朋友[2]:家人[3]:陌生人");
scanf("%d",&choice4);
switch(choice4)
{
case 1:friends[count1]=pp[1];count1++;break; /*将第一个子函数中的信息值赋值给朋友*/
case 2:families[count2]=pp[1];count2++;break; /*将第一个子函数中的信息值赋值给家人*/
case 3:unknows[count3]=pp[1];count3++;break; /*将第一个子函数中的信息值赋值给陌生人*/
}
break; /*注意此处的break一定不能少*/
case 2:break;
}
break; /*注意此处的break一定不能少*/

/*查询项*/
case 2:

search_pep(peps);
printf("还要使用该功能吗?");
printf("\n[1]:继续[2]:退出");
scanf("%d",&choice1);
switch(choice1)
{
case 1:continue;
case 2:goto next;
}
case 3:delete_pep(peps);break;
case 4:xianshi_pep(peps,friends,families,unknows);break;
case 5:xgxx_pep(peps);break;
case 0:break;
}

printf("还要使用该功能吗?");
printf("\n[1]:继续[2]:退出");
scanf("%d",&choice1);
switch(choice1)
{
case 1:continue; /*返回到do句中*/
case 2:goto next;
}

next: /*标签*/

printf("确定退出吗?");
printf("\n[1]:确定[2]继续");
scanf("%d",&choice2);
if(choice2==1)
break;
if(choice2==2)
continue; /*返回到do句中*/
}while(choice!=0);

printf("谢谢使用#NOKIA\n");

getch();

}

/*新建*/
void new_pep(struct pep_list peps[])
{
struct pep_list f;
/*定义一个结构型变量储存输入的名片*/
if(count==50)
{
printf("满员!\n");
return;
}
printf("联系人姓名:");
scanf("%s",f.name);
printf("\n年龄:");
scanf("%d",&f.age);
printf("\n号码:");
scanf("%s",f.telephone);
peps[count]=pp[1]=f; /*将输入的名片赋值给住函数中定义的整体数组*/
/*将输入的名片赋值给住函数中定义的辅助数组,是为59 60 61行做准备*/
count=count+1;
return;
}

/*查找组员*/
void search_pep(struct pep_list peps[])
{ char name[10];

int flag=0,i;
printf("输入姓名:");
scanf("%s",name);
if(count==0)
{
printf("通讯录为空!");
return;
}
for(i=0;i<count;i++)
{
if(strcmp(name,peps[i].name)==0) /*比较*/
flag=1;

break;

}
if(flag)
{
printf("\n姓名:%s",peps[i].name);
printf("\n年龄:%d",peps[i].age);
printf("\n号码:%s",peps[i].telephone);
}
else
printf("无此人!");
return;

}

/*删除组员*/
void delete_pep(struct pep_list peps[])

{

char name[10];
int i,j,choice;
printf("输入你要删除的名片的姓名:");
scanf("%s",name);
if(count==0)
printf("无人!");
else
{
for(i=0;i<count;i++)
{
if(strcmp(name,peps[i].name)==0) /*在名片里找名字*/
{
if(i==count-1) /*当删除最后一项时只需减少位数 不需在从后向前赋值*/
{
count=count-1;
printf("删除成功");
return;
}

for(j=i;j<count;j++)
{
strcpy(peps[j].name,peps[j+1].name); /*后一项的名字附到前一项*/
strcpy(peps[j].telephone,peps[j+1].telephone); /*后一项的号码附到前一项*/
peps[j].age=peps[j+1].age; /*后一项的年龄附到前一项*/
}
printf("\n删除成功");
count=count-1;
printf("\n是否显示所有组员?");
printf("[1]:是[2]:否");
scanf("%d",&choice);
switch(choice)
{
case 1:if(count==0)
printf("\n无人");
for(i=0;i<count;i++)
printf("\n姓名:%s 年龄:%d 号码:%s",peps[i].name,peps[i].age,peps[i].telephone);
break;
case 2:break;
}
break;
}
return;
}

}
if(i==count-1)
{
printf("查无此人");
return;
}

}

/*显示组员*/
void xianshi_pep(struct pep_list peps[],struct pep_list friends[],struct pep_list families[],struct pep_list unknows[])
{
int i,choice;

printf("\n[1]:显示全体组员 [2]:显示分组队员"); /*提示是否显示组员*/
scanf("%d",&choice);
switch(choice)
{
case 1:if(count==0)
printf("无人");
for(i=0;i<count;i++)
{
printf("姓名:%s 年龄:%d 号码:%s\n",peps[i].name,peps[i].age,peps[i].telephone);

}
return;
case 2:
printf("[1]:显示朋友[2]:家人[3]:陌生人");
scanf("%d",&choice);
switch(choice)
{
case 1:if(count1==0)
printf("无人");
for(i=0;i<count1;i++)
/*输出组员*/
printf("姓名:%s 年龄:%d 号码:%s \n",friends[i].name,friends[i].age,friends[i].telephone);break;
case 2:if(count2==0)
printf("无人");
for(i=0;i<count1;i++)
printf("姓名:%s 年龄:%d 号码:%s \n",families[i].name,families[i].age,families[i].telephone);break;
case 3:if(count3==0)
printf("无人");
for(i=0;i<count1;i++)
printf("姓名:%s 年龄:%d 号码:%s \n",unknows[i].name,unknows[i].age,unknows[i].telephone);break;
}
return;

}

}

/*修改信息*/
void xgxx_pep(struct pep_list peps[])
{
char name[10],name2[10],telephone[10];
int i,choice;
if(count==0)
{
printf("无人\n");
return;
}
printf("输入你想改信息人的名字:");
scanf("%s",name);
for(i=0;i<count;i++)

if(strcmp(peps[i].name,name)==0)
{
printf("[1]:修改姓名 [2]:修改号码\n");
scanf("%d",&choice);
switch(choice)
{

case 1:
printf("输入新的名字\n");
scanf("%s",name2);
strcpy(peps[i].name,name2);
break;
case 2:
printf("输入新的号码");
scanf("%s",telephone);
strcpy(peps[i].telephone,telephone);
break;
}
printf("是否显示改过的组员?");
printf("\n[1]:是[2]:否");
scanf("%d",&choice);
switch(choice)
{
case 1:
for(i=0;i<count;i++)
printf("姓名:%s 年龄:%d 号码:%s\n",peps[i].name,peps[i].age,peps[i].telephone);
case 2:break;
}
return;
}
}
声明声明:本网页内容为用户发布,旨在传播知识,不代表本网认同其观点,若有侵权等问题请及时与本网联系,我们将在第一时间删除处理。E-MAIL:11247931@qq.com
小鹿的过冬方式是什么 我弟弟生气,拍了下电脑桌,结果再开机就说电源按钮关闭,显示器休眠 为什么进入屏保后几分钟显示器又亮了起来 我的手碰电脑桌显示器经常闪一下 下一站江湖所有隐藏功法 最新隐藏功法级别 《下一站江湖》玄龟软甲获得方法介绍_《下一站江湖》玄龟软甲获得方法是... 如何选购前锋热水器 近年美国校园电影,青春喜剧 最好是08-11年的,新的。不要悲剧的。 推荐几部美国校园喜剧电影,谢谢! 美国 八九十年代 的 电视剧 电影 讲美国 八十年代的也可以 内容要有摇... ...已经跨年度了,导致应付职工薪酬科目下一直余额该怎么办?_百度... 打了新冠疫苗电脑上有显示,为什么健康卡上没有信息? 健康码为什么不显示头像?5 快手短视频配乐是什么意思 有一种黑褐色的种子,用水泡一下,周围就长出白色的毛,可以吃,没有味道... 兖州区前邴村动迁吗 ...把脚拇指指甲都拔了,结果还是长出来,请大家办办忙!谢谢了! 逻辑学的本质和学习逻辑学的目的。 指甲拔除,涂什么药 听力出现问题怎么办? 芙蓉楼送辛斩和塞下曲还有墨梅表现出诗人怎样的精神品格? 芙蓉楼送辛渐中的问有什么深意? 芙蓉楼送辛渐中寒和孤这两个字让你感受到了诗人当时什么样的心情?_百 ... ...就想吐,就算吃了也会吐出来,这是为什么?是什么病吗? ...茜(xi)”组成一个情侣网名,和一首关于爱情的诗句!谢谢了 炖鸭子怎么做好吃,鲍鱼炖鸭子的家常做法1 新西兰奥克兰面积 联通宽带想接路由器,但是送的数字电视怎么接?9 你好,请问我的电视机带有网络和内置wifi,家里还安装了无线...47 你好我的无线路由器 塘沽区饭店电话 请问塘沽有新疆风味的饭店么?大小不限,有多少?具体位置在哪?/谢谢... 窑工的解释 三墩天虹公寓到火车西站多少公里? 天虹公寓到杭州大厦怎么走 犬夜叉奈落之战为什么停运了如何下载 开发商泄露购房者的个人信息属于违法吗53 房屋首次登记是开发商还是买房人2 购房时,和房产开发商发生纠纷,应该找哪个部门51 黄芪枫斗红枣需要煮多久黄芪枫斗红枣需要煮多长时间 蹲在马桶上下腹痛怎么办 支教的人应该具备什么样的条件? 怎样做好房产经纪管理? 餐饮业的毛利率,净利润怎么计算?65 西夏博物馆门票是多少钱 不便血是不是代表痔疮好了 朋友圈分享妈妈做的美食朋友们嘲笑到他把我饿瘦了怎么搞笑回复? 最高分悬赏:我想开一家房地产代理公司(经纪类),请做过相关行...2 房地产代理公司经营范围有那些14 请问房地产代理公司需不需要办理备案。是在物价局备案还是在房地...3