C语言课程设计典范--学生成绩管理系统(3)

2019-01-12 12:37

case 5:if (pm->score[2]score[2]) pm=p2;break;

case 6:if (pm->score[3]score[3]) pm=p2;break;

}

if (pm!=p1)

{

mid=*pm; *pm=*p1; *p1=mid; px=pm->next; pm->next=p1->next;

p1->next=px; } }

void sort_2(Student *head)/* 最值及平均值函数 */ {

Student *p=head->next;

int max_1,max_2,max_3,max_4,min_1,min_2,min_3,min_4; /* 最值声明 */ int max_sum,min_sum;

int sum_1=0,sum_2=0,sum_3=0,sum_4=0; float aver_1,aver_2,aver_3,aver_4,aver_sum; if (!p)

return; /* 链表非空 */

max_1=min_1=p->score[0];max_2=min_2=p->score[1];

max_3=min_3=p->score[2];max_2=min_2=p->score[3]; /* 初始时以表头的值域中各值为最值 */ max_sum=min_sum=p->sum; for(;p;p=p->next) { }

printf(\排序后的成绩表为:\\n\print(head); /* 打印排序后的链表 */ return head;

if (max_1score[0]) max_1=p->score[0];

else if (min_1>p->score[0]) min_1=p->score[0]; /* 最值的转换 */ if (max_2score[1]) max_2=p->score[1]; else if (min_2>p->score[1]) min_2=p->score[1]; if (max_3score[2]) max_3=p->score[2]; else if (min_3>p->score[2]) min_3=p->score[2]; if (max_4score[3]) max_4=p->score[3]; else if (min_4>p->score[3]) min_4=p->score[3]; if (max_sumsum) max_sum=p->sum;

else if (min_sum>p->sum) min_sum=p->sum; }

aver_1=1.0*sum_1/n;aver_2=1.0*sum_2/n;aver_3=1.0*sum_3/n;aver_4=1.0*sum_4/n; aver_sum=aver_1+aver_2+aver_3+aver_4; /*求平均值 */ printf(\总共%d名学生,具体数据为:\\n\

printf(\语文最高分为%d,最低分为%d,平均分为%.2f\\n\ printf(\数学最高分为%d,最低分为%d,平均分为%.2f\\n\printf(\英语最高分为%d,最低分为%d,平均分为%.2f\\n\ printf(\计算机最高分为%d,最低分为%d,平均分为%.2f\\n\printf(\总分最高分为%d,最低分位%d,平均分为%.2f\\n\

sum_1+=p->score[0];sum_2+=p->score[1];sum_3+=p->score[2];sum_4+=p->score[3];

max_sum,min_sum,aver_sum); }

void find(Student *head)/* 查找节点 */ {

Student *p; int choose,fnum; char tem[20];

if (n==0) {printf(\当前系统没有任何学生数据!\\n \for(;;)

{

printf(\请输入您要查询学生的方式:\\n\\n\

printf(\、按学号查询;2、按姓名查询;0、不查询了。\\n\\n\ printf(\请选择:\ scanf(\

while(getchar()!='\\n'); if (choose==1)

下查找*/

{ printf(\请输入你要查询的学生的学号,输入0退出学号查询:\ scanf(\ for(;fnum;) {

for(p=head->next;p!=NULL&&p->num!=fnum;p=p->next);/*节点的下一个部位空且输入还不是0,顺着指针向

if (!p) {

printf(\找不到你要查询的学号,请重新输入,输入0表示结束:\

scanf(\

}

else if (p->num==fnum)

{

printf(\学号为%d学生的数据为:\\n\

printf(\学号\\t姓名\\t语文成绩 数学成绩 英语成绩 计算机\\成绩 总分\\n\ printf(\ %d %d %d %d \\%d\\n\ p->name,p->score[0],p->score[1],p->score[2],p->score[3], p->sum);

printf(\请输入你还要查询的学生的学号,输入0表示不按学\\号查询了:\ scanf(\输入还要查询的学生的学号,输入0表示退出按学号查询*/ } } }

else if (choose==2) {

printf(\请输入你要查询的学生的姓名,输入0退出姓名查询:\ scanf(\

for(;strcmp(tem,\ /* 字符串比较函数,不是输入0则进行该循环*/ {

for(p=head->next;p!=NULL&&strcmp(p->name,tem);p=p->next); if (!p) {

printf(\找不到你要查询的姓名,请重新输入,输入0表\\示结束:\ scanf(\ }

else if (!strcmp(p->name,tem)) {

printf(\姓名为%s学生的数据为:\\n\

printf(\学号\\t姓名\\t语文成绩 数学成绩 英语成绩 \\计算机成绩 总分\\n\ printf(\ %d %d %d \\%d %d\\n\ p->num,p->name,p->score[0],p->score[1],p->score[2], p->score[3],p->sum);

printf(\请输入你还要查询的学生的姓名,输入0表\\示不按姓名查询了:\ scanf(\ } } }

else if (choose==0) {printf(\你选择了不查询!\\n\

else {printf(\输入有误,默认选择了不查询!\\n\ } }

Student *add_new(Student *head)/* 加入节点 */

{ { } }

head=sort_1(head,1); /*返回上一级 */ printf(\加入后的成绩表为:\\n\print(head); /* 打印加入后的成绩表 */ return head;

p=(Student *)malloc(LEN); p->num=flag;

printf(\请输入新加入学生的姓名:\

scanf(\

Student *p; int flag;

printf(\请输入你要新加入学生的学号(学号为0表示结束输入):\ scanf(\ /* 学号为0表示结束输入 */ while(getchar()!='\\n'); for(;flag;)

printf(\请输入新加入学生的语文成绩:\

scanf(\

printf(\请输入新加入学生的数学成绩:\

scanf(\

printf(\请输入新加入学生的英语成绩:\

scanf(\

printf(\请输入第%d名学生的计算机成绩:\

scanf(\

p->sum=p->score[0]+p->score[1]+p->score[2]+p->score[3]; p->next=head->next;

head->next=p;

n++;

printf(\请输入还要加入学生的学号,没有此学生则输入0表示结束:\ scanf(\学号为0表示结束输入 */


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

下一篇:广东省深圳市宝安区2018-2019第一学期8年级语文第一单元测试卷和

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

马上注册会员

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