对学生考试成绩的处理

/*         
* Copyright (c) 2012, 烟台大学计算机学院         
* All rights reserved.         
* 作 者:  刘同宾       
* 完成日期:2012 年 12 月 07 日      
* 版 本 号:v1.0   
*              
* 输入描述:    
* 问题描述: 有一个班四个学生,5门课,1、求第一门课的平均分
                                      2、找出有两门以上课程不及格的学生,输出他们的学号,全部课程成绩和平均成绩;
									  3、找出平均成绩在90分以上或者全部课程成绩在85分以上的学生
									  分别编三个函数实现以上功能
* 程序输出:
* 问题分析:略        
* 算法设计:略         
*/  

#include<iostream>

using namespace std;

int main()
{
	void avsco(float *pscore,float *paver);

	void avcour1(char(*pcourse)[10],float *pscore);

	void fail2(char course[5][10],int num[],float *pscore,float aver[4]);

	void good(char course[5][10],int num[4],float *pscore,float aver[4]);

	int i,j,*pnum,num[4];

	float score[4][5],aver[4],*pscore,*paver;

	char course[5][10],(*pcourse)[10];

	cout<<"input course:"<<endl;

	pcourse=course;

	for(i=0;i<5;i++)
	{
		cin>>course[i];
	}

	cout<<"input NO.and score:"<<endl;

	cout<<"NO.";

	for(i=0;i<5;i++)
	{
		cout<<","<<course[i];
	}

	cout<<endl;

	pscore=&score[0][0];

	pnum=&num[0];

	for(i=0;i<4;i++)
	{
		cin>>*(pnum+i);

		for(j=0;j<5;j++)
		{
			cin>>*(pscore+5*i+j);
		}
	}

	paver=&aver[0];

	cout<<endl<<endl;

	avsco(pscore,paver);  //求每个学生的平均成绩

	avcour1(pcourse,pscore);//求出第一门课的平均成绩

	cout<<endl<<endl;

	fail2(pcourse,pnum,pscore,paver);//找出两门课不及格的学生,

	cout<<endl<<endl;

	good(pcourse,pnum,pscore,paver);//找出成绩好的学生

	return 0;
}



//求每个学生平均成绩的函数
void avsco(float *pscore,float *paver)
{
	int i,j;

	float sum,average;

	for(i=0;i<4;i++)
	{
		sum=0.0;

		for(j=0;j<5;j++)
		{
			sum=sum+(*(pscore+5*i+j));  //累计每个学生的各科成绩
		}

		average=sum/5;   //计算平均成绩

		*(paver+i)=average;
	}
}

//求第一课程的平均成绩的函数
void avcour1(char(*pcourse)[10],float *pscore)
{
	int i;

	float sum,average1;

	sum=0.0;

	for(i=0;i<4;i++)
	{
		sum=sum+(*(pscore+5*i));  //累计每个学生的得分
	}

	average1=sum/4;

	cout<<"course1:"<<*pcourse<<",averge score:"<<average1<<endl;
}



//找两门以上课程不及格的学生的函数
void fail2(char course[5][10],int num[],float *pscore,float aver[4])
{
	int i,j,k,labe1;

	cout<<"===========Student who failed in two courses======="<<endl;

	cout<<"NO.   ";

	for(i=0;i<5;i++)
	{
		cout<<course[i]<<" ";
	}

	cout<<" averge"<<endl;

	for(i=0;i<4;i++)
	{
		labe1=0;

		for(j=0;i<5;j++)
		{
			if(*(pscore+5*i+j)<60.0)
			{
				labe1++;
			}
		}

		if(labe1>=2)
		{
			cout<<num[i]<<"   ";

			for(k=0;k<5;k++)
			{
				cout<<*(pscore+5*i+j)<<"   ";
			}

			cout<<"   "<<aver[i]<<endl;
		}
	}
}



//找成绩优秀的学生(全部课程在85分以上或平均成绩在90分以上)的函数
void good(char course[5][10],int num[4],float *pscore,float aver[4])
{
	int i,j,k,n;

	cout<<"=======Student whose score is good========"<<endl;

	cout<<"NO.   ";

	for(i=0;i<5;i++)
	{
		cout<<course[i]<<"  ";
	}

	cout<<" averge"<<endl;

	for(i=0;i<4;i++)
	{
		n=0;

		for(j=0;j<5;j++)
		{
			if(*(pscore+5*i+j)>85.0)
			{
				n++;
			}
		}

		if((n==5)||(aver[i]>=90))
		{
			cout<<num[i]<<"   ";

			for(k=0;k<5;k++)
			{
				cout<<*(pscore+5*i+k)<<"   ";
			}

			cout<<"   "<<aver[i]<<endl;
		}
	}
}


  • 1
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值