当前位置:编程学习 > C/C++ >>

关于C++的一个题目,急求!!!

前提:(实验五:编程实现一个student类,管理一个学生的基本信息,包括学生姓名、学号、语文成绩、数学成绩、英语成绩、平均成绩等数据成员,然后在main函数中,从键盘输入得到一个学生的基本信息,最后输出所有数据成员值到屏幕上;)

题目:

一、实验目的

1)      学习I/O基本方法及其格式控制;

2)      学习文本文件和二进制文件的输入输出方法。

 

二、实验内容及要求

1)      在实验五student类的基础上,加入将信息保存到硬盘中的student.txt文本文件的功能;

2)      以后每次运行时,都先读取该文件中的学生信息并显示给用户,然后由用户从键盘输入新学生的基本信息。

 

答案:#include<string.h>
#include<iostream.h>
#define N 10
class std
{
 int No;
 char name[10];
 float Eng;
 float Chi;
 float Mat;
 float total; 
public:
 void setname(char na[]){strcpy(name,na);};
 void setNo(int n){No=n;};
 void setEng(float e){Eng=e;};
 void setChi(float c){Chi=c;};
 void setMat(float m){Mat=m;};
 void settotal(float t){total=t;};
 char* getname(){return name;};
 int getNo(){return No;};
 float getEng(){return Eng;};
 float getChi(){return Chi;};
 float getMat(){return Mat;};
 float gettotal(){ return total;};
};

class compute
{
 int ns;
 std na[N];
 static float sumEng;
 static float sumChi;
 static float sumMat;
public:
 void getdata();
 void sort();
 void disp();
    float aveEng()
 {
  return sumEng/ns;
 }
    float aveChi()
 {
  return sumChi/ns;
 }
    float aveMat()
 {
  return sumMat/ns;
 }
};

float compute::sumEng=0.0;
float compute::sumChi=0.0;
float compute::sumMat=0.0;
void compute::getdata()
{
 int i,sno;
 float En,Ch,Ma,Tol;
 char tname[10];
 cout<<"Please input the amounts of students!";
 cin>>ns;
 for(i=0;i<ns;i++)
 {
 cout<<"Input the student's NO.:";
 cin>>sno;
 na[i].setNo(sno);
 cout<<"Input the student's name.:";
 cin>>tname;
 na[i].setname(tname);
 cout<<"Input the student's English score:";
 cin>>En;
    sumEng=sumEng+En;
 na[i].setEng(En);
 cout<<"Input the student's Chinese score:";
 cin>>Ch;
    sumChi=sumChi+Ch;
 na[i].setChi(Ch);
 cout<<"Input the student's Maths score:";
 cin>>Ma;
 sumMat=sumMat+Ma;
 na[i].setMat(Ma);
 Tol=En+Ch+Ma;
 na[i].settotal(Tol);
 }
}
void compute::sort()  //直接选择排序
{
 int i,j,pick;
 std temp;
 for(i=0;i<ns-1;i++)
 {
  pick=i;
  for(j=i+1;j<ns;j++)
  {
   if(na[j].gettotal()>na[pick].gettotal())
    pick=j;
  }
  temp=na[i];
  na[i]=na[pick];
  na[pick]=temp;
 }
}
void compute::disp()
{
 cout<<"List"<<"  NO"<<"  Name"<<"  English"<<"  Chinese"<<"  Maths"<<"  Total "<<endl;
 for(int i=0;i<ns;i++)
 {
  cout<<i+1<<"     "<<na[i].getNo()<<"    "<<na[i].getname()<<"      "<<na[i].getEng()<<"       "
   <<na[i].getChi()<<"      "<<na[i].getMat()<<"    "<<na[i].gettotal()<<endl;
 }
}

void main()
{
 compute obj;
 obj.getdata();
 obj.sort();
 obj.disp();
    cout<<"The average score of English is:"<<obj.aveEng()<<endl;
 cout<<"The average score of Chinese is:"<<obj.aveChi()<<endl;
 cout<<"The average score of Maths is:"<<obj.aveMat()<<endl;
}

上一个:求一用c++编的程序
下一个:你知道怎样使用Microsoft Visual C++

CopyRight © 2022 站长资源库 编程知识问答 zzzyk.com All Rights Reserved
部分文章来自网络,