C语言学生成绩管理系统设计报告(5)

2019-01-07 13:07

max=p=head;

for(i=0;i<80;i++) printf(\

printf(\按学生学号排序\\t2按学生姓名排序\\t3按语文成绩排序\\n\ printf(\按数学成绩排序\\t5按英语成绩排序\\t\\n\ for(i=0;i<80;i++) printf(\

printf(\请选择操作:\

scanf(\ /*选择操作*/ getchar();

switch(x) /*用switch语句实现功能选择*/ {

case 1 :

for(i=1;i

for(j=i+1;j<=n;j++) {

max=p; p=p->next;

if(max->number>p->number) {

k=max->number;

max->number=p->number;

p->number=k; /*交换前后结点中的学号值,使得学号大者移到后面的结点中*/ strcpy(t,max->name);

strcpy(max->name,p->name);

strcpy(p->name,t); /*交换前后结点中的姓名,使之与学号相匹配*/ fen=max->chinese;

max->chinese=p->chinese;

p->chinese=fen; /*交换前后结点中的语文成绩,使之与学号相匹配*/ fen=max->mathmatic;

max->mathmatic=p->mathmatic;

p->mathmatic=fen; /*交换前后结点中的数学成绩,使之与学号相匹配*/ fen=max->english;

max->english=p->english;

p->english=fen; /*交换前后结点中的英语成绩,使之与学号相匹配*/ }

中*/

}

max=head;

p=head; /*重新使max,p指向链表头*/ }

print(head);

break; /*打印值排序后的链表内容*/ case 2 :

for(i=1;i

for(j=i+1;j<=n;j++) {

max=p; p=p->next;

if(strcmp(max->name,p->name)>0) /*strcmp:字符串比较函数*/ {

strcpy(t,max->name); /*strcpy:字符串复制函数*/

strcpy(max->name,p->name);

strcpy(p->name,t); /*交换前后结点中的姓名,使得姓名字符串的值大者移到后面的结点

k=max->number;

max->number=p->number;

p->number=k; /*交换前后结点中的学号值,使之与姓名相匹配*/ fen=max->chinese;

max->chinese=p->chinese;

p->chinese=fen; /*交换前后结点中的语文成绩,使之与姓名相匹配*/ fen=max->mathmatic;

max->mathmatic=p->mathmatic;

p->mathmatic=fen; /*交换前后结点中的数学成绩,使之与姓名相匹配*/ fen=max->english;

max->english=p->english;

p->english=fen; /*交换前后结点中的英语成绩,使之与姓名相匹配*/ } }

p=head; max=head;

}

print(head); break; case 3 :

for(i=1;i

for(j=i+1;j<=n;j++) {

max=p; p=p->next;

if(max->chinese>p->chinese) {

fen=max->chinese;

max->chinese=p->chinese;

p->chinese=fen; /*交换前后结点中的语文成绩,使得语文成绩高者移到后面的结点中*/ k=max->number;

max->number=p->number;

p->number=k; /*交换前后结点中的学号,使之与语文成绩相匹配*/ strcpy(t,max->name);

strcpy(max->name,p->name);

strcpy(p->name,t); /*交换前后结点中的姓名,使之与语文成绩相匹配*/ fen=max->mathmatic;

max->mathmatic=p->mathmatic; p->mathmatic=fen; /*交换前后结点中的数学成绩,使之与语文成绩相匹配*/ fen=max->english;

max->english=p->english;

p->english=fen; /*交换前后结点中的英语成绩,使之与语文成绩相匹配*/ } }

p=head; max=head; }

print(head); break; case 4 :

for(i=1;i

for(j=i+1;j<=n;j++) {

max=p; p=p->next;

if(max->mathmatic>p->mathmatic) {

fen=max->mathmatic;

max->mathmatic=p->mathmatic;

p->mathmatic=fen; /*交换前后结点中的数学成绩,使得数学成绩高者移到后面的结点中*/ k=max->number;

max->number=p->number;

p->number=k; /*交换前后结点中的学号,使之与数学成绩相匹配*/ strcpy(t,max->name);

strcpy(max->name,p->name);

strcpy(p->name,t); /*交换前后结点中的姓名,使之与数学成绩相匹配*/ fen=max->chinese;

max->chinese=p->chinese;

p->chinese=fen; /*交换前后结点中的语文成绩,使之与数学成绩相匹配*/ fen=max->english;

max->english=p->english;

p->english=fen; /*交换前后结点中的英语成绩,使之与数学成绩相匹配*/ } }

p=head; max=head; }

print(head); break;

case 5 : for(i=1;i

for(j=i+1;j<=n;j++) {

max=p; p=p->next;

if(max->english>p->english) {

fen=max->english;

max->english=p->english;

p->english=fen; /*交换前后结点中的英语成绩,使得英语成绩高者移到后面的结点中*/

k=max->number;

max->number=p->number;

p->number=k; /*交换前后结点中的学号,使之与英语成绩相匹配*/ strcpy(t,max->name);

strcpy(max->name,p->name);

strcpy(p->name,t); /*交换前后结点中的姓名,使之与英语成绩相匹配*/ fen=max->chinese;

max->chinese=p->chinese;

p->chinese=fen; /*交换前后结点中的语文成绩,使之与英语成绩相匹配*/ fen=max->mathmatic;

max->mathmatic=p->mathmatic;

p->mathmatic=fen; /*交换前后结点中的数学成绩,使之与英语成绩相匹配*/ } }

p=head; max=head; }

print(head); break; default :

printf(\输入错误,请重试! \\n\ }

return (0); }

/*==========保存数据==========*/ /*函数save,功能:保存学生的资料*/ void save(score *p1) {

FILE *fp;

char filepn[20];/*用来存放文件保存路径以及文件名*/ printf(\请输入文件路径及文件名:\ scanf(\

if((fp=fopen(filepn,\ {

printf(\不能打开文件!\\n\ exit(1); }

fprintf(fp,\学生成绩管理系统 \\n\ fprintf(fp,\


C语言学生成绩管理系统设计报告(5).doc 将本文的Word文档下载到电脑 下载失败或者文档不完整,请联系客服人员解决!

下一篇:C++程序设计(第二版_吴乃陵_况迎辉)课后答案

相关阅读
本类排行
× 注册会员免费下载(下载后可以自由复制和排版)

马上注册会员

注:下载文档有可能“只有目录或者内容不全”等情况,请下载之前注意辨别,如果您已付费且无法下载或内容有问题,请联系我们协助你处理。
微信: QQ: