c语言结构体基础实验题,具体看问题补充

要求:
(1) 定义关于学生信息的结构体:
每个学生信息有:学号、姓名、三门课程的成绩、总分、平均分;
(2) 定义结构体类型的变量:定义一个学生结构体类型的变量、通过键盘输入该学生的信息;
提示:其中,学号、姓名、三门课程的成绩由键盘输入;
总分和平均分通过用户输入的学生信息计算得到。
(3) 分别使用 “.”运算和“->”运算实现结构体数据成员的访问,输出学生的各项信息。

#include "stdio.h" #define N 3 struct student {char num[10]; char name[20]; float score[3]; float sum; float aver; }stu[N]; int choose; void input(); void find(); void count(); void sort(); void input() { int i; float temp; for(i=0;i<N;i++) {printf("输入第%d个学生信息:\n",i+1); printf("number: "); scanf("%s",stu[i].num); printf("name: "); scanf("%s",stu[i].name); printf("score1: "); scanf("%f",&temp); stu[i].score[0]=temp; printf("score2: "); scanf("%f",&temp); stu[i].score[1]=temp; printf("score3: "); scanf("%f",&temp); getchar(); stu[i].score[2]=temp; } } void count() { float sum,aver; int i,j; for(i=0;i<N;i++) {sum=0; for(j=0;j<3;j++) sum+=stu[i].score[j]; aver=sum/3.0; stu[i].sum=sum; stu[i].aver=aver; } printf(" 学生的总成绩及平均分 \n"); printf("学号 姓名 总成绩 平均分 \n"); for(i=0;i<N;i++) printf("%-8s%-10s%-9.2f%-9.2f\n",stu[i].num,stu[i].name,stu[i].sum,stu[i].aver); } void sort() {int i,j,k; float sum,aver; struct student temp; for(i=0;i<N;i++) {sum=0; for(j=0;j<3;j++) sum+=stu[i].score[j]; aver=sum/3.0; stu[i].sum=sum; stu[i].aver=aver; k=i; for(j=i+1;j<N;j++) if(stu[k].sum<stu[j].sum)k=j; if(k!=i) {temp=stu[i]; stu[i]=stu[k]; stu[k]=temp;} } printf(" 学生成绩排名 \n"); printf(" 按名次 \n"); for(i=0;i<3;i++) printf("学号%-8s名字%-10s%-8.2f%-8.2f%-8.2f总分%-8.2f平均分%-8.2f\n",stu[i].num,stu[i].name,stu[i].score[0],stu[i].score[1],stu[i].score[2],stu[i].sum,stu[i].aver); } void find() {int i,j,sum,flag=0; printf(" \n"); printf("有两科成绩不及格的同学是:\n"); printf(" \n"); for(i=0;i<N;i++) { sum=0; for(j=0;j<3;j++) if(stu[i].score[j]<60)sum++; if(sum>=2) {flag=1; printf("学号:%-8s名字:%-10s\n",stu[i].num,stu[i].name); } } if(flag==0) printf(" 没有两科都不及格的同学!!\n"); } void main() { printf(" 学生成绩管理系统 \n"); printf("1....成绩录入\n"); printf("2....成绩查询\n"); printf("3....成绩统计(平均成绩)\n"); printf("4....成绩排名\n"); printf("5....任意键退出\n"); printf("\n"); printf("\n"); printf("请输入您要进行的操作:\n"); scanf("%d",&choose); while(choose==1||choose==2||choose==3||choose==4) {switch(choose) { case 1:input(); break; case 2:find(); break; case 3:count(); break; case 4:sort(); break; } printf(" \n"); printf("\n"); printf("\n"); printf("请输入您要进行的操作:\n"); scanf("%d",&choose); } }
温馨提示:答案为网友推荐,仅供参考

相关了解……

你可能感兴趣的内容

本站内容来自于网友发表,不代表本站立场,仅表示其个人看法,不对其真实性、正确性、有效性作任何的担保
相关事宜请发邮件给我们
© 非常风气网