/*
* 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;
}
}
}
对学生考试成绩的处理
最新推荐文章于 2017-01-06 15:35:54 发布