关于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++