第16周实践——学生成绩处理
2016-12-16 17:22
281 查看
问题及代码:
(一)
运行结果:
(二)
问题及代码:
运行结果:
知识点总结:
通过学习,进一步巩固了结构体的用法。
学习心得:
自顶向下,逐步求精。题目并不难...
(一)
/*Copyright(c)2016,烟台大学计算机学院 all rights reserved. 作者:曹欣宇 指导教师:贺利坚 完成日期:2016年12月16日 题目描述 (1)定义学生结构体,在结构体数组中,输入了学生学号和两门课的成绩,计算均分后, 输出成绩单,请在下面的程序基础上,将程序补充完整。 输入 学生人数及这些学生的学号和成绩 输出 学号,成绩,均分,以及全部及格的人数 样例输入 5 3160 98 72 3161 78 65 3162 45 61 3260 96 58 3261 99 78 样例输出 3160 98 72 85.00 3161 78 65 71.50 3162 45 61 53.00 3260 96 58 77.00 3261 99 78 88.50 3 */ #include <stdio.h> #define N 100 /*N表示最多允许的学生人数*/ struct Student { int num; //学号 int c; //C语言成绩 int math; //数学成绩 float aver; //两科均分 }; int main( ) { int n,i,pass=0; //定义结构体数组存放多名同学的成绩 struct Student stu ; printf("请输入学生人数: "); scanf("%d", &n); printf("请输入学号、C和数学课的成绩: \n"); //输入数据 for(i=1;i<=n;i++) { scanf("%d %d %d",&stu[i].num,&stu[i].c,&stu[i].math); } //输出成绩单 for(i=1;i<=n;i++) { stu[i].aver=(stu[i].c+stu[i].math)/2.0; if(stu[i].c>=60&&stu[i].math>=60) pass++; } printf("学号\tC\t数学\t均分\n"); for(i=1;i<=n;i++) { printf("%d\t%d\t%d\t%.2f\n",stu[i].num,stu[i].c,stu[i].math,stu[i].aver); } printf("两门都及格的有%d人",pass); return 0; }
运行结果:
(二)
问题及代码:
/*Copyright(c)2016,烟台大学计算机学院 all rights reserved. 作者:曹欣宇 指导教师:贺利坚 完成日期:2016年12月16日 题目描述 请在上面的程序的基础上增加功能,使运行结果改变,其中,需要做出的改动是: •计算每名学生的学分绩——各科成绩乘以学分的和,再除以总学分(本题中,C语言和数学课的学分分别是3和4); •计算各科的均分; •输出得奖学金的同学学号清单——奖学金规则是,学分绩要高于80且没有挂科。 输入 学生人数及这些学生的学号和成绩 输出 学号,成绩,学分绩,以及得奖学金的同学的学号 样例输入 5 3160 98 72 3161 78 65 3162 45 61 3260 96 58 3261 99 78 样例输出 3160 98 72 83.14 3161 78 65 70.57 3162 45 61 54.14 3260 96 58 74.29 3261 99 78 87.00 3160 3261 */ #include <stdio.h> #define N 100 /*N表示最多允许的学生人数*/ struct Student { int num; //学号 int c; //C语言成绩 int math; //数学成绩 float aver; //学分绩 }; int main() { int n,i,sumc=0,summath=0; float avec,avemath; //定义结构体数组存放多名同学的成绩 struct Student stu ; printf("请输入学生人数: "); scanf("%d", &n); printf("请输入学号、C和数学课的成绩: \n"); //输入数据 for(i=1; i<=n; i++) { scanf("%d %d %d",&stu[i].num,&stu[i].c,&stu[i].math); } for(i=1; i<=n; i++) { sumc+=stu[i].c; summath+=stu[i].math; } avec=sumc/n; avemath=summath/n; for(i=1; i<=n; i++) { stu[i].aver=(stu[i].c*3.0+stu[i].math*4.0)/7.0; } printf("学号\tC\t数学\t学分绩\n"); for(i=1; i<=n; i++) { printf("%d\t%d\t%d\t%.2f\n",stu[i].num,stu[i].c,stu[i].math,stu[i].aver); } printf("科均分\t%.2f\t%.2f\n\n",avec,avemath); printf("得奖学金的同学学号为: \n"); for(i=1; i<=n; i++) { if(stu[i].aver>=80&&stu[i].c>=60&&stu[i].math>=60) printf("%d ",stu[i].num); } return 0; }
运行结果:
知识点总结:
通过学习,进一步巩固了结构体的用法。
学习心得:
自顶向下,逐步求精。题目并不难...
相关文章推荐
- 第16周 课后实践-3 学生成绩处理(2)
- 第16周实践2.2 学生成绩的处理
- 第16周 课后实践-2学生成绩处理(1)
- 第16周实践项目二——学生成绩处理(1)
- 第16周实践项目二——学生成绩处理(2)
- 第16周实践2.1 学生成绩的处理
- 《C语言及程序设计》实践参考——学生成绩处理
- 第13周OJ实践 学生成绩的处理
- 第16周———用二进制文件处理学生成绩
- 第16周 学生成绩处理2.0
- oj第十三周实践——2969 C语言习题5.21--学生成绩的处理
- 第十六周实践项目2学生成绩处理(2)
- 《C++语言基础》实践参考——用二进制文件处理学生成绩
- 第十三周oj实践学生成绩处理
- 第十六周实践项目2学生成绩处理(1)
- 第16周 学生成绩处理1.0
- 十四周上机实践项目(二)处理学生成绩
- 第十六周上机实践——项目4-用二进制文件处理学生成绩
- 第15周上机实践项目1——用二进制文件处理学生成绩
- C++第16周(春)项目1 - 用二进制文件处理学生成绩