您的位置:首页 > 其它

对学生考试成绩的处理

2012-12-08 10:22 288 查看
/*
* 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;
}
}
}
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: