一个Student类

来源:互联网 发布:淘宝延长收款怎么取消 编辑:程序博客网 时间:2024/06/09 00:48

//题目6. 定义一个Student类,并使Student类具有以下特点:
//(1)该类学生具有学生姓名、学号、班级、C语言程序设计、
//高等数学、计算机导论、操作系统四门课程的成绩(2)创建
//一个数据成员,实现每建立一个学生对象进行自动记数功能
//(3)学生的全部信息由键盘输入(4)通过成员函数统计学
//生平均成绩(要求当课程增加时,成员函数无需修改仍然可
//求平均成绩(5)输出学生的各科成绩与平均成绩(6)在主函
//数中,学生对象的定义采用对象数组实现(7)统计不及格学生人数
//(8)能以方便的方式实现对课程数量的修改
#include<iostream.h>
#include<string.h>
#include<stdio.h>
const int M=50; //M表示学生人数
const int N=4;   //N表示课程数量
class Student
{
private:
 char name[25],id[10],cls[20];
 double course[N];//数组表示N门课程成绩
public:
 Student();
 double Aver();
 double *Getscore();
 void Display();
 void Display_Aver();
}

Student::Student()//构造函数的实现
{
 int i;
 cin>>name>>id>>cls;
 for(i=0;i<N;i++)
 {
  cin>>course[i];
 }
}

double* Student::Getscore()   //获取分数
{
 return course;
}

void Student::Display()  //输出分数
{
 int i;
 cout<<name<<"   ";
 cout<<id<<"   ";
 for(i=0;i<N;i++)
 {
  cout<<course[i]<<"           ";
 }
 cout<<endl;
}

void Student::Display_Aver()
{
 int i;
 double aver_score=0;
 for(i=0;i<N;i++)
 {
  aver_score+=course[i];
 }
 aver_score=aver_score/N;
 cout<<"该名学生平均分数为:"<<aver_score<<endl;
}

void main()
{
 int i,j,k,n[M];
 double aver_score;
 for(i=0;i<M;i++)//初始化数组
  n[i]=0;
 cout<<"请按以下方式输入学生信息,不同数据之间以空格分割:"<<endl;
 cout<<"姓名  学号  班级  C语言  高数  计导  操作系统"<<endl;
 Student s[M];
 cout<<endl<<"以下是输出信息:"<<endl;
 cout<<"姓名  学号  班级  C语言  高数  计导  操作系统"<<endl;
 for(i=0;i<M;i++)
 {
  s[i].Display();
 }
 cout<<endl;
   
 cout<<"平均成绩:";
 aver_score=0;
 for(j=0;j<N;j++)
 for(i=0;i<M;i++)
 {
  aver_score+=*(s[i].Getscore());
 }
 cout<<aver_score/M<<endl<<endl;

 cout<<"不及格学生:"<<endl;
 for(i=0;i<M;i++)
 {
  int nopass=0;   //不及格课程数量
  for(j=0;j<N;j++)  //查找60分以下的课程
  {
   if(*(s[i].Getscore()+j)<60)
    nopass++;
  }
  for(k=0;k<M; )
  {
   if(nopass>2)
    k++;
  }
  /*do
  {
   if(nopass>2)
      k++;
  }while();*/
  cout<<"不及格人数:"<<k<<endl;
 }
}
     


 

原创粉丝点击