c语言综合设计作业学籍管理系统,C语言课程设计----学生学籍管理系统
匿名用户
1级
2014-11-13 回答
#include
#include
#include
structstud
{
longnum;
charname[20];
doublescore;
};
typedefstructstucode
{
structstudstudent;
structstucode*next;
}L;
voidmenu();
voidcreatelist(structstucode**r);
voidout(structstucode*r);
voidsearch1(structstucode*r);
voidsearch2(structstucode*r);
voiddel(structstucode**r);
voidinsert(structstucode**r);
voidsort(structstucode**r);
voidmain()
{
charchoose;
intflag=1;
structstucode*r=NULL;
while(flag)
{
system("cls");
menu();
choose=getchar();
switch(choose)
{
case'1':
createlist(&r);
out(r);
printf("Testingfunction1\nPressanykeytocontinue\n");
getchar();
getchar();
break;
case'2':
search1(r);
printf("Testingfunction1\nPressanykeytocontinue\n");
getchar();
getchar();
break;
case'3':
search2(r);
printf("Testingfunction1\nPressanykeytocontinue\n");
getchar();
getchar();
break;
case'4':
del(&r);
out(r);
printf("Testingfunction1\nPressanykeytocontinue\n");
getchar();
getchar();
break;
case'5':
insert(&r);
out(r);
printf("Testingfunction1\nPressanykeytocontinue\n");
getchar();
getchar();
break;
case'6':
sort(&r);
out(r);
printf("Testingfunction1\nPressanykeytocontinue\n");
getchar();
getchar();
break;
case'7':
out(r);
printf("Testingfunction7\nPressanykeytocontinue\n");
getchar();
getchar();
break;
case'0':
flag=0;
printf("Theend.\n");
break;
default:printf("\nWrongSelection!(选择错误,请重选!)\n");getchar();getchar();
}
}
}
voidcreatelist(structstucode**r)
{
structstucode*p,*t;
longn;
chara[20];
doubles;
if(*r)*r=NULL;
printf("\n请输入:\n学号(请按学号升序排列)姓名分数(若要结束请输入三个为零)\n");
scanf("%ld%s%lf",&n,a,&s);
if(n==0)return;
p=(L*)malloc(sizeof(L));
p->student.num=n;
strcpy(p->student.name,a);
p->student.score=s;
p->next=NULL;
*r=p;
scanf("%ld%s%lf",&n,a,&s);
while(n)
{
t=p;
p=(L*)malloc(sizeof(L));
p->student.num=n;
strcpy(p->student.name,a);
p->student.score=s;
p->next=NULL;
t->next=p;
scanf("%ld%s%lf",&n,a,&s);
}
}
voidsearch1(structstucode*r)
{
longx;
if(!r)
{
printf("没有学生信息可查询!\n");
return;
}
printf("请输入要查询的学生信息的学生学号:\n");
scanf("%ld",&x);
while(r&&r->student.num!=x)
r=r->next;
if(r==NULL)
printf("Error!Nosuchstudent!\n");
else
printf("%ld%s%.2lf\n",r->student.num,r->student.name,r->student.score);
}
voidsearch2(structstucode*r)
{
charm[20];
if(!r)
{
printf("没有学生信息可查询!\n");
return;
}
printf("请输入要查询的学生信息的学生姓名:\n");
scanf("%s",m);
while(r&&strcmp(r->student.name,m))
r=r->next;
if(r==NULL)
printf("Error!Nosuchstudent!\n");
else
printf("%ld%s%.2lf\n",r->student.num,r->student.name,r->student.score);
}
voiddel(structstucode**r)
{
longk;
structstucode*p=*r,*t;
if(!(*r))
{
printf("没有学生信息可删除!\n");
return;
}
printf("请输入要删除的学生信息的学生学号:\n");
scanf("%ld",&k);
if(p->student.num==k)
*r=(*r)->next,free(p);
else
{
while(p->next&&p->next->student.num!=k)
p=p->next;
if(p->next==NULL)
printf("Error!Nosuchstudent!\n");
else
{
t=p->next;
p->next=p->next->next;
free(t);
}
}
}
voidinsert(structstucode**r)
{
longn;
chara[20];
doubles;
L*p,*t,*k;
printf("请输入要插入的学生信息的学生学号姓名分数:\n");
scanf("%ld%s%lf",&n,a,&s);
p=(L*)malloc(sizeof(L));
p->student.num=n;
p->student.score=s;
strcpy(p->student.name,a);
if(!(*r))
{
*r=p;
(*r)->next=NULL;
return;
}
if(p->student.numstudent.num)
p->next=(*r),(*r)=p;
else
{
t=*r;
k=t;
while(t->next&&t->next->student.num<=p->student.num)
t=t->next;
p->next=t->next;
t->next=p;
*r=k;
}
}
voidsort(structstucode**r)
{
structstucode*t,*p,*q,*z;
if(!r)
{
printf("没有学生信息可排序!\n");
return;
}
if(!(*r)||!(*r)->next)
return;
t=*r;
p=t->next;
t->next=NULL;
while(p)
{
q=p->next;
if(p->student.score>t->student.score)
{
p->next=t;
t=p;
}
else
{
z=t;
while(z->next&&z->next->student.score>=p->student.score)
z=z->next;
p->next=z->next;
z->next=p;
}
p=q;
}
*r=t;
}
voidout(structstucode*r)
{
printf("\n\n");
if(!r)
{
printf("没有学生信息可输出!\n");
return;
}
while(r)
{
printf("%ld%s%.2lf\n",r->student.num,r->student.name,r->student.score);
r=r->next;
}
printf("\n\n");
}
voidmenu()
{
printf("\n学生信息管理系统\n");
printf("\n菜单\n\n");
printf("\n1建立链表并显示\n");
printf("\n2查找某学号的学生信息\n");
printf("\n3查找某姓名的学生信息\n");
printf("\n4删除某学号的学生信息\n");
printf("\n5插入新的学生信息\n");
printf("\n6按分数降序排列输出\n");
printf("\n7输出\n");
printf("\n0退出\n");
printf("\n请选择您要执行的选项:\n");
}
c语言综合设计作业学籍管理系统,C语言课程设计----学生学籍管理系统相关推荐
- Springboot旅游管理系统的设计与实现4eqkg计算机毕业设计-课程设计-期末作业-毕设程序代做
Springboot旅游管理系统的设计与实现4eqkg计算机毕业设计-课程设计-期末作业-毕设程序代做 [免费赠送源码]Springboot旅游管理系统的设计与实现4eqkg计算机毕业设计-课程设计- ...
- 代写python期末作业价格_代写program留学生作业、代做Python程序语言作业、代写Python课程设计作业...
代写program留学生作业.代做Python程序语言作业.代写Python课程设计作业 日期:2019-11-29 12:55 Completing the Final Project - Pyth ...
- Springboot列车调度信息系统的设计与实现4guf9计算机毕业设计-课程设计-期末作业-毕设程序代做
Springboot列车调度信息系统的设计与实现4guf9计算机毕业设计-课程设计-期末作业-毕设程序代做 [免费赠送源码]Springboot列车调度信息系统的设计与实现4guf9计算机毕业设计-课 ...
- Springboot课程教学平台设计与实现4mu05计算机毕业设计-课程设计-期末作业-毕设程序代做
Springboot课程教学平台设计与实现4mu05计算机毕业设计-课程设计-期末作业-毕设程序代做 [免费赠送源码]Springboot课程教学平台设计与实现4mu05计算机毕业设计-课程设计-期末 ...
- Springboot旧衣捐赠平台设计与实现 p40x5计算机毕业设计-课程设计-期末作业-毕设程序代做
Springboot旧衣捐赠平台设计与实现 p40x5计算机毕业设计-课程设计-期末作业-毕设程序代做 [免费赠送源码]Springboot旧衣捐赠平台设计与实现 p40x5计算机毕业设计-课程设计- ...
- Springboot企业出纳系统的设计与实现7k9je计算机毕业设计-课程设计-期末作业-毕设程序代做
Springboot企业出纳系统的设计与实现7k9je计算机毕业设计-课程设计-期末作业-毕设程序代做 [免费赠送源码]Springboot企业出纳系统的设计与实现7k9je计算机毕业设计-课程设计- ...
- Springboot快递代取系统的设计与实现3i0v9计算机毕业设计-课程设计-期末作业-毕设程序代做
Springboot快递代取系统的设计与实现3i0v9计算机毕业设计-课程设计-期末作业-毕设程序代做 [免费赠送源码]Springboot快递代取系统的设计与实现3i0v9计算机毕业设计-课程设计- ...
- 【免费赠送源码】Springboot流浪宠物救助网站设计与实现92soy计算机毕业设计-课程设计-期末作业-毕设程序代做
[免费赠送源码]Springboot流浪宠物救助网站设计与实现92soy计算机毕业设计-课程设计-期末作业-毕设程序代做 [免费赠送源码]Springboot流浪宠物救助网站设计与实现92soy计算机 ...
- 【免费赠送源码】Springboot理发店线上预约排队的设计与实现 7vsz2计算机毕业设计-课程设计-期末作业-毕设程序代做
[免费赠送源码]Springboot理发店线上预约排队的设计与实现 7vsz2计算机毕业设计-课程设计-期末作业-毕设程序代做 [免费赠送源码]Springboot理发店线上预约排队的设计与实现 7v ...
- Springboot旅游网的设计与实现xb29f计算机毕业设计-课程设计-期末作业-毕设程序代做
Springboot旅游网的设计与实现xb29f计算机毕业设计-课程设计-期末作业-毕设程序代做 [免费赠送源码]Springboot旅游网的设计与实现xb29f计算机毕业设计-课程设计-期末作业-毕 ...
最新文章
- 1.2 初窥输入输出、控制语句
- thinkphp 5 stdClass Call to undefined
- 如何从新开发的程序中提炼服务
- c语言sort函数排序二维数组,c++ - 如何使用stl sort函数根据第二列对二维数组进行排序? - 堆栈内存溢出...
- Spark初识-Spark基本架构概览使用
- mysql dns反向解析_DNS练习之反向解析(示例代码)
- 【代码笔记】iOS-performSelectorOnMainThread
- 曼昆《经济学原理》-微观经济学-随记(二)
- Android音频的录制与播放
- 求助 :Not allowed to launch ‘bytedance://dispatch_message/‘ because a user gesture is required.
- java生僻字解决方案
- w7计算机防火墙无法更改,win7系统提示防火墙无法更改某些设置错误代码0x8007437的原因及四种解决方法...
- pr怎么把视频去水印
- java大作业设计_Java程序设计_大作业.doc
- 通信原理 | FFT/STFT 你真的学会了吗?
- vue路由之路由的两种模式
- 各串口设备节点/dev/tty* 的区别
- 港科夜闻|香港科大2021年本科计划招生190人,首推人工智能延伸主修
- SAP:物料主数据增强
- 27岁了,老大不小了,转载一篇文章作年度回顾