程序设计与问题求解下实验答案
更新时间:2023-12-08 11:13:01 阅读量: 教育文库 文档下载
...
实验 数组、结构体和函数综合编程练习
1.学生成绩统计
从键盘输入一个班(全班最多不超过 30 人)学生某门课的成绩,当输入成绩为 负值时,输入结束,分别实现下列功能:
(1)统计不及格人数并打印不及格学生名单;
(2)统计成绩在全班平均分及平均分之上的学生人数, 并打印这些学生的名单; (3)统计各分数段的学生人数及所占的百分比。
注:将成绩分为六个分数段, 60 分以下为第 0 段,60~69 为第 1 段,70~79 为第 2 段,80~89 为第 3 段,90~99为第 4 段,100 分为第 5 段。
编程要求 :
1. 较好的用户输入输出提示信息
2. 使用子函数来实现上述各个功能, 并且要使用结构体数组来实现, 该结构体中 包括学生学号和成绩
3. 最好不要使用全局变量
#include
#define ARR_SIZE 30
typedef struct tagStudent {
long num;//学生学号 float score;//学生分数 }Student;
int ReadScore(Student stu[]); int GetFail(Student stu[], int n); float GetAver(Student stu[], int n); int GetAboveAver(Student stu[], int n); void GetDetail(Student stu[], int n);
main()
...
...
{
int n, fail, aboveAver; Student stu[ARR_SIZE];
printf(\n = ReadScore(stu);
printf(\fail = GetFail(stu, n);
printf(\aboveAver = GetAboveAver(stu, n);
printf(\GetDetail(stu, n); }
/* 函数功能:从键盘输入一个班学生某门课的成绩及其学号 当输入成绩为负值时,输入结束
函数参数: 存放学生信息的 Student 结构体数组 函数返回值:学生总数 */
int ReadScore(Student stu[]) {
int i = 0;
scanf(\while (stu[i].score >= 0) {
i++;
scanf(\} return i; }
/* 函数功能:统计不及格人数并打印不及格学生名单 函数参数:存放学生信息的 整型变量 n,存放学生总数 函数返回值:不及格人数 */
int GetFail(Student stu[], int n) {
int i, count;
Student 结构体数组
...
...
printf(\count = 0; for (i=0; i if (stu[i].score < 60) { printf(\count++; } } return count; } /* 函数功能:计算全班平均分 函数参数:存放学生信息的 整型变量 n,存放学生总数 函数返回值:平均分 */ float GetAver(Student stu[], int n) { int float i; sum = 0; Student 结构体数组 for (i=0; i sum = sum + stu[i].score; } return sum/n; } /* 函数功能:统计成绩在全班平均分及平均分之上的学生人数并打印其学生名单 函数参数:存放学生信息的 整型变量 n,存放学生总数 函数返回值:成绩在全班平均分及平均分之上的学生人数 */ int GetAboveAver(Student stu[], int n) { int i, count; float aver; aver = GetAver(stu, n); printf(\ Student 结构体数组 ... ... printf(\count = 0; for (i=0; i if (stu[i].score >= aver) { printf(\count++; } } return count; } /* 函数功能:统计各分数段的学生人数及所占的百分比 函数参数:存放学生信息的 Student 结构体数组 整型变量 n,存放学生总数 函数返回值:无 */ void GetDetail(Student stu[], int n) { int i, j, stuLevel[6]; for (i=0; i<6; i++) { stuLevel[i]=0; } for (i=0; i if (stu[i].score < 60) { j = 0; } else { j = ((int)stu[i].score - 50) / 10; } stuLevel[j]++; } for (i=0; i<6; i++) { if (i == 0) { printf(\ } %d %.2f%%\\n\ (float)stuLevel[i]/(float)n*100); ... ... else if (i == 5) { printf(\ %d %d %.2f%%\\n\(float)stuLevel[i]/(float)n*100); } else { printf(\ %d %.2f%%\\n\ stuLevel[i],(float)stuLevel[i]/(float)n*100); } } } 2.成绩排名次 某班期末考试科目为数学( MT)、英语(EN)和物理( PH),有最多不超过 参加考试。要求: (1)计算每个学生的总分和平均分; (2)按总分成绩由高到低排出成绩的名次; (3)打印出名次表,表格内包括学生编号、各科分数、总分和平均分; (4)任意输入一个学号,能够查找出该学生在班级中的排名及其考试分数 #include #define STU 30 typedef struct tagStudent { long num;// 学号 float aver;// 平均分 int sum;// 总分 int math;// 数学( MT) int english;// 英语( EN) int physics;// 物理( PH) }Student; void Input(Student stu[], int n); void GetSumAver(Student stu[],int n); void Sort(Student stu[],int n); void Print(Student stu[],int n); int Search(Student stu[],int n,long x); main() { ... 30 人
正在阅读:
程序设计与问题求解下实验答案12-08
央视《青春赛道》观后感精品例文04-26
福建信息技术会考VB程序题汇总04-15
塑料模课程设计03-01
动物营养学复习资料10-05
成都2017届二诊语文word版含答案04-26
一件最难忘的事作文600字06-29
IEEE standard for Terminology and Test methods for ADC Std 104-12
计算机辅助设计与制造专题10-08
- exercise2
- 铅锌矿详查地质设计 - 图文
- 厨余垃圾、餐厨垃圾堆肥系统设计方案
- 陈明珠开题报告
- 化工原理精选例题
- 政府形象宣传册营销案例
- 小学一至三年级语文阅读专项练习题
- 2014.民诉 期末考试 复习题
- 巅峰智业 - 做好顶层设计对建设城市的重要意义
- (三起)冀教版三年级英语上册Unit4 Lesson24练习题及答案
- 2017年实心轮胎现状及发展趋势分析(目录)
- 基于GIS的农用地定级技术研究定稿
- 2017-2022年中国医疗保健市场调查与市场前景预测报告(目录) - 图文
- 作业
- OFDM技术仿真(MATLAB代码) - 图文
- Android工程师笔试题及答案
- 生命密码联合密码
- 空间地上权若干法律问题探究
- 江苏学业水平测试《机械基础》模拟试题
- 选课走班实施方案
- 求解
- 程序设计
- 答案
- 实验
- 问题
- 雷达天线测向与定位控制系统
- 广东省高州市2009-2010学年八年级第一学期学科联赛语文试题
- 有无源滤波器的区别与联系
- 学习风格测试量表12版 - 图文
- 2016监理工程师延续注册继续教育-选修-房屋建筑-试题及参考答案-76分
- 有机化学习题
- 第二章建筑材料基本性质试题
- 关于内审部门的KPI绩效考核设计
- DW笔记完整
- 学习情境二 飞机结构图纸识读
- 发明专利信息管理系统
- 国际机票预定步骤
- 中考专题突破《第4章几何初步与三角形》同步练习 第三节
- 幼儿美术课程计划
- 植物工厂的发展策略 -
- 第一节 人文主义史学 - 图文
- 高要市佛燃天然气有限公司水南镇至禄步镇天然气高压管道输气工程建设项目可行性研究报告-广州中撰咨询
- 2018-2019四字成语解释与造句-推荐word版(7页)
- 总代理协议书范本 doc1
- 会计信息系统期末复习题 2013