问答文章1 问答文章501 问答文章1001 问答文章1501 问答文章2001 问答文章2501 问答文章3001 问答文章3501 问答文章4001 问答文章4501 问答文章5001 问答文章5501 问答文章6001 问答文章6501 问答文章7001 问答文章7501 问答文章8001 问答文章8501 问答文章9001 问答文章9501
你好,欢迎来到懂视!登录注册
当前位置: 首页 - 正文

设计通讯录管理系统 可以添加,删除,修改信息和查询的功能。并保存...

发布网友 发布时间:2024-10-24 12:56

我来回答

1个回答

热心网友 时间:2024-10-31 11:12

#include"stdio.h"
#include"stdlib.h"
#include"string.h"
struct student
{
int no; /*学号*/
char name[20]; /*姓名*/
char acdamic[20]; /*院系*/
char major[20]; /*专业*/
char province[20]; /*籍贯*/
char address[40]; /*家庭地址*/
long phone; /*联系电话*/
struct student *next;
};
struct student *input();
void print(struct student *h);
struct student *insert(struct student *h);
struct student *del(struct student *h);
void find4(struct student *h);
void find3(struct student *h);
void find2(struct student *h);
void find1(struct student *h);
struct student *head=NULL;
char ch,*menu[]={"------------------通讯录菜单------------",
"1.----------建立学生通讯录---------------",
"2.----------输出全部学生通讯录---------------",
"3.----------增加的学生的个数---------------",
"4.----------删除指定学号的学生--------------",
"5.----------按系别查找学生信息-------------",
"6.----------按专业查找学生信息-------------",
"7.----------按姓名查找学生信息-------------",
"8.----------按学号查找学生信息--------------",
"9.----------退出通讯录-----------------------"};
struct student *input() /*输入函数*/
{
int n;
printf("请输入你要建立的学生通讯录的学生个数:\n");
scanf("%d",&n);
struct student *h=NULL,*p,*q;
int i;
for(i=1;i<=n;i++)
{
printf("请依次输入第%d个学生的学号,姓名,系别,专业,籍贯,家庭住址和联系电话:\n",i);
p=(struct student *)malloc(sizeof(struct student));
if(p==NULL)
{
printf("内存不足!\n");
exit(0);
}
scanf("%d%s%s%s%s%s%ld",&p->no,p->name,p->acdamic,p->major,p->province,p->address,&p->phone);
if(i==1)h=p;
else q->next=p;
q=p;
}
q->next=NULL;
return h;
}
void print(struct student *h) /*输出函数*/
{
struct student *p=h;
while(p)
{
printf("学生信息:\n%d,%s,%s,%s,%s,%s,%ld\n",p->no,p->name,p->acdamic,p->major,p->province,p->address,p->phone);
p=p->next;
}
}
struct student *insert(struct student *h) /*增加学生信息*/
{
int n;
printf("请输入你要增加的学生的个数:\n");
scanf("%d",&n);
struct student *p,*r;
int i;
for(i=1;i<=n;i++)
{
r=(struct student *)malloc(sizeof(struct student));
printf("请输入第%d个你要插入的学生的信息:\n",i);
scanf("%d%s%s%s%s%s%ld",&r->no,r->name,r->acdamic,r->major,r->province,r->address,&r->phone);
p=h;
h=r;
r->next=p;
}
return h;
}
struct student *del(struct student *h) /*按学号进行删除*/
{
int n;
printf("请输入要删除的学生的学号:\n");
scanf("%d",&n);
struct student *p,*q;
if(h=NULL)printf("empty list!\n");
else
{
p=h;
while(p->no!=n&&p->next)
{q=p;p=p->next;}
if(p->no==n)
{
if(h==p)h=p->next;
else q->next=p->next;
}
else printf("%d is not found!\n");
}
return h;
}
void find1(struct student *h) /*按院系查找学生信息*/
{
char s[40];
printf("请输入要查找的学生的院系:\n");
scanf("%s",s);
struct student *p;
if(h==NULL)printf("empty list!\n");
else
{
p=h;
while(p)
{
if(strcmp(p->acdamic,s)==0)
printf("学生信息:\n%d %s %s %s %s %s %ld\n",p->no,p->name,p->acdamic,p->major,p->province,p->address,p->phone);
p=p->next;
}
}
}
void find2(struct student *h) /*按专业查找*/
{
char s[20];
printf("请输入要查找的学生的专业名:\n");
scanf("%s",s);
struct student *p;
if(h==NULL)printf("empty list!\n");
else
{
p=h;
while(p)
{
if(strcmp(p->major,s)==0)
printf("学生信息:\n%d %s %s %s %s %s %ld\n",p->no,p->name,p->acdamic,p->major,p->province,p->address,p->phone);
p=p->next;
}
}
}
void find3(struct student *h) /*按姓名查找*/
{ char ss[10];
printf("请输入要查找的学生的姓名:\n");
scanf("%s",ss);
struct student *p;
if(h==NULL)printf("empty list!\n");
else
{
p=h;
while(p)
{
if(strcmp(p->name,ss)==0)
printf("学生信息:\n%d %s %s %s %s %s %ld\n",p->no,p->name,p->acdamic,p->major,p->province,p->address,p->phone);
p=p->next;
}
}
}
void find4(struct student *h) /*按学号查找*/
{
int num;
printf("请输入要查找的学生的学号:\n");
scanf("%d",&num);
struct student *p;
if(h==NULL)printf("empty list!\n");
else
{
p=h;
while(p)
{
if(p->no==num)
printf("学生信息:\n%d %s %s %s %s %s %ld\n",p->no,p->name,p->acdamic,p->major,p->province,p->address,p->phone);
else
printf("没有你要查找的学生信息!\n");
p=p->next;
}
}
}
int menu_select()
{
int i,s;
char c[3];
for(i=0;i<10;i++)
printf("%s\n",menu[i]);
do
{
scanf("%s",c);
s=atoi(c);
}while(s<0||s>9);
return s;
}
main()
{
for(;;)
{
switch(menu_select())
{
case 1:head=input();break;
case 2:print(head);break;
case 3:head=insert(head);break;
case 4:head=del(head);break;
case 5:find1(head);break;
case 6:find2(head);break;
case 7:find3(head);break;
case 8:find4(head);break;
case 9:exit(0);
}
}
} 一一,错的地方自己改哈。。。。。。呵呵.........没人回答,太可怜了。
声明:本网页内容为用户发布,旨在传播知识,不代表本网认同其观点,若有侵权等问题请及时与本网联系,我们将在第一时间删除处理。
E-MAIL:11247931@qq.com
俄罗斯国立师范大学是水硕吗 【院校推荐】俄罗斯国立师范大学-唯一冠有俄罗斯国家名称的师范大学 圣彼得堡师范大学 圣彼得堡国立师范大学怎么样 赞美冬天雪景的好句 描写家乡雪景好诗句 一造考试时间安排表2022 2022年一级造价工程师考试时间安排 2022年一级造价工程师考试时间表 2022年一造考试时间是什么时候 美国有没有米波雷达和反隐身雷达? 本届世界杯谁会是冠军呢 张叔叔平均每时跑80米是王叔叔的3.5倍,平均美食王叔叔跑多少千米? 张叔叔买了一套衣服,上衣的价格是650元,裤子的价格比上衣少5分之1,这... 张叔叔和王叔叔都自驾游去景区,张叔叔每小时行62千米,王叔叔每小时行58... 详细讲AD转换 DA转换的是哪门教材,谢谢? 这一届世界杯,谁有可能夺冠? 张叔叔与王叔叔从甲地到乙地,张叔叔骑摩托车5小时行驶325千米,王叔叔... 王叔叔排在第5米处,张叔叔排在35米,相差多少米 谁会是世界杯冠军 世界杯最可能拿第一的是那个国家? 荷兰和西班牙谁将问鼎冠军? 打架过失杀人判几年 本地连接连不上显示红叉叉,换一台电脑又能连接上了 世界杯冠军将会是谁 ...昨天还好好的,网络正常,wifi手机也能正常使用 ...题目是:难忘的端午节。快快!急急急急急急急急急急急急急急急急急急... 沈阳鑫广晟铝业有限公司怎么样 iphone14双卡信号差 - 知百科 成都市|54公交车终点站 米波雷达哪个国家有 破坏共享单车最多判几年刑罚 以前坐过牢现在醉驾有关系吗? ...设计“通讯录管理系统”使其具有数据插入、修改、删除、显示和查询等... 张叔叔和王叔叔在银行各有一笔存款,张叔叔存款800元,如果张叔叔从存款中... 英雄联盟圣枪游侠卢锡安应该出什么装备呢? 魅族mx2为什么root之后会发生录音内部文件错误 【资讯】《英雄联盟》加速器推荐 word2007怎么加载视频? 世界杯谁会最后胜利 intel hd630能玩游戏吗 网站设计专业 ...一样的,我买什么颜色的布鞋,他也买,那是什么意思? hd630能玩的游戏 精神焕发 是什么意思? word2007如何将视频添加进去? 火车轨道为什么有小石头 当一个女生把她的卷子放在一个知道喜欢她的男生书包里是什么意思 西申底村位于哪里 什么银行送ipad
  • 焦点

最新推荐

猜你喜欢

热门推荐