pta7-3 统计不及格人数_编写程序,统计学生的成绩信息

bae01994095cebf6284d2dbdf00798d3.png

编写一程序,统计学生的成绩信息(成绩信息保存在文件Score.dat中)

要求:

1. 能按总分,数学成绩,英语成绩,计算机成绩分别排序

2. 能分别统计数学,英语,计算机中不及格人数

3. 能按学号查找学生,并显示该学生信息。

1. 从文件中读入数据用ReadData.c 实现,功能菜单显示用Menu.c实现

2. 代码的总体结构在文件Score.c中

score.h

#ifndef _SCORE_H
#define _SCORE_H

#include <stdio.h>
#include <string.h>
#include <stdlib.h>
#include <conio.h>

#define N				10
#define STUDENT_COUNT	50		//学生数
#define LESSON_COUNT	3		//课程数

#define SUM_SORT				0     	//按总分排序 
#define MATH_SORT				1		//按数学成绩排序 
#define ENGLISH_SORT			2		//按英语成绩总分排序 
#define COMPUTER_SORT			3		//按计算机成绩排序 
#define SUM_STATISTICS			4		// 统计总分 
#define MATH_STATISTICS			5		// 统计数学成绩
#define ENGLISH_STATISTICS		6		// 统计英语成绩
#define COMPUTER_STATISTICS		7		// 统计计算机成绩
#define SEARCH					8		// 查找

typedef struct _Student
{
    
	int 	id;						//学号
	char 	name[N];				//姓名
	int 	score[LESSON_COUNT];	//成绩
	int 	sum;					//总分
}Student;


//按课程成绩对学生进行排序
void Sort(Student stu[], int lessonId);

//求所有课程的总分
int Sum(Student stu[] , int count);

//按学号搜索某一名学生
int Search(Student stu[] ,int studentId);

//统计某门课程的不及格人数
int Statistics(Student stu[], int lessonId);

//显示信息
void ShowInfo(Student stu[] , int count);

//从文件读取数据 
void ReadData(Student stu[] , int count);

//显示菜单 
int Menu();
 
#endif

ReadData.c

#include "Score.h"
void ReadData(Student stu[] , int count)
{
    
	FILE *fp;
	int i;
	char ch[10];
	if((fp = fopen("Score.dat","rt")) == NULL)
	{
    
		printf("t无法打开文件: Score.dat.nt ");
		system("pause");
		exit(0);
	}
	fscanf(fp,"%s%s%s%s%s",ch,ch,ch,ch,ch);
	for(i = 0 ; i < count ; i++)
		fscanf(fp,"%d%s%d%d%d",&stu[i].id,stu[i].name,&stu[i].score[0],&stu[i].score[1],&stu[i].score[2]);
}

Menu.c

#include "Score.h"

//显示功能菜单,返回选择的菜单项
int Menu()
{
    
	int menuitem ;
	int item;
	while(1)
	{
    
		menuitem = -1;
		item = -1;
		while ( menuitem != 1 && menuitem != 2 && menuit
  • 1
    点赞
  • 10
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
### 回答1: 这个问题乍一看很难懂,实际上是在问:如何统计一批学生的平均成绩,而且不含有格外的人数(例如缺考、退课)? 答案就是使用“平均数”这个概念,但是要去掉那些无效的数据。如果是计算班级的平均成绩,就将缺考、退课的学生排除在外。如果是计算整个学校的平均成绩,就要将所有班级的无效数据一起去掉。 ### 回答2: 假设有一批学生共有n名,他们的成绩分别为s1, s2, ..., sn。我们可以通过求和s1+s2+...+sn,再除以n,得出这批学生的平均成绩。具体公式为: 平均成绩 = (s1+s2+...+sn) / n 如果要求这批学生不及格人数,我们需要先确定什么标准算是不及格。一般来说,考试成绩低于60分就算是不及格。所以我们可以遍历每一个学生成绩统计出低于60分的人数,具体算法步骤如下: 1. 初始化不及格人数变量fail为0 2. 遍历每一个学生成绩,如果小于60分,就让fail变量加1 3. 最后fail就是这批学生不及格人数 具体的伪代码如下: fail = 0 for i in range(n): if score[i] < 60: fail += 1 综合起来,我们可以写出如下的Python代码来求解这个问题: # 输入一批学生成绩 scores = input().split() # 将成绩转换为数字类型 scores = [float(s) for s in scores] # 计算平均成绩 avg_score = sum(scores) / len(scores) # 统计不及格人数 fail = 0 for score in scores: if score < 60: fail += 1 # 输出结果 print('平均成绩:{:.2f}, 不及格人数:{}'.format(avg_score, fail)) 当然,这只是一个简单的示例代码,实际应用可能需要考虑更多的特殊情况,例如输入数据的格式错误、数据量过大等。但是这个代码可以作为一个基础模板来进行扩展和优化。 ### 回答3: 如何计算一批学生的平均成绩不及格人数? 在统计,平均数和频数是最基本的概念。平均数是指一组数的总和除以这组数的个数,即平均值=总和÷个数。而频数则是指在一组数据出现某个数值的次数。因此,我们可以通过以下方法来计算一批学生的平均成绩不及格人数: 1. 首先,确定一批学生成绩数据。可以是一组整数、小数或百分数,也可以是一个数据表格或电子表格。 2. 计算这批学生的平均成绩。将所有学生成绩加起来,然后除以学生的数量,就可以得到平均成绩。 例如,假设班里有30名学生,他们的成绩分别是:70、80、90、60、50、75、85、95、65、55、80、75、90、85、70、60、80、75、85、90、95、60、70、80、85、90、75、65、50、60。则这批学生的平均成绩为: (70+80+90+60+50+75+85+95+65+55+80+75+90+85+70+60+80+75+85+90+95+60+70+80+85+90+75+65+50+60) ÷ 30 = 76.5 因此,这批学生的平均成绩为76.5。 3. 计算不及格人数不及格通常是指成绩低于60分的学生。因此,我们只需统计这批学生有多少人的成绩低于60分即可。 例如,这批学生成绩低于60分的有10人,则不及格人数为10人。 以上就是计算一批学生的平均成绩不及格人数的基本方法。当然,在实际统计过程还有很多细节需要注意,例如对数据进行清洗、去除异常值、使用不同的平均数计算方法等等,这些都需要根据具体情况来选择使用。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值