关于c++的成绩管理系统,请帮忙看看,运行老出现错误
#include<iostream.h>
#include<string.h>
class Student
{
private:
string Sname;
string Sscore[5];
public:
void fun()
{
cout<<"输入学生姓名:"endl;
cin>>this->Sname;
}
void fum()
{
cout<<"输入学生的成绩"<<endl;
for(int i=0;i<5;i++)
{
cin<<this->Sscore;
}
}
float total()
{
float sum=0;
for(int i=0;i<5;i++)
{sum=sum+Sscore[i];}
return sum;
}
void sort()
{
int n;
float temp;
for(int i=0;i<n;i++)
{
for(int j=i+1;j>n;j++)
{
if(Sscore[j]<Sscore[i])
{
temp=Sscore[j];
Sscore[j]=Sscore[i];
Sscore[i]=temp;
}
}
}
}
void print()
{
cout<<"学生的姓名"<<Sname<<"\t"<<"总成绩:";
for(int i=0;i<5;i++)
cout<<this->Sscore[i];
}
};
float main()
{
Student aveage;
float ave;
ave=aveage.total()/5;
cout<<"平均成绩为:"<<ave<<endl;
aveage.fum();
aveage.fun();
return 0;
}
[解决办法]
- C/C++ code
//#include<iostream.h>#include <iostream>//#include <string.h>#include <string>using namespace std; ////////////////////////class Student{private: string Sname;string Sscore[5];public:void fun(){//cout<<"输入学生姓名:"endl; cout<<"输入学生姓名:" << endl;cin>>this->Sname;}void fum(){ cout<<"输入学生的成绩"<<endl;for(int i=0;i<5;i++){//cin<<this->Sscore; cin >> this->Sscore; //没重载 运算符 >>}}float total(){float sum=0;for(int i=0;i<5;i++){sum=sum+Sscore[i];} //没重载 运算符 +return sum;}void sort(){ int n;float temp;for(int i=0;i<n;i++){for(int j=i+1;j>n;j++){if(Sscore[j]<Sscore[i]){temp=Sscore[j]; //string 不能赋给 float类型Sscore[j]=Sscore[i];Sscore[i]=temp;}}}}void print(){ cout<<"学生的姓名"<<Sname<<"\t"<<"总成绩:";for(int i=0;i<5;i++)cout<<this->Sscore[i];}};float main(){Student aveage;float ave;ave=aveage.total()/5;cout<<"平均成绩为:"<<ave<<endl;aveage.fum();aveage.fun();return 0;}
[解决办法]
- C/C++ code
#include<iostream>//error: string对象只有C++才有,string.h 提供的是C风格的字符串#include<string>//楼主参考下 http://topic.csdn.net/u/20120217/00/93306996-4260-41e6-8909-78dc79a5d705.htmlusing namespace std;class Student {private: string Sname; string Sscore[5];public: void fun() { cout<<"输入学生姓名:"<<endl; cin>>this->Sname; } void fum() { cout<<"输入学生的成绩"<<endl; for(int i=0;i<5;i++) { cin>>this->Sscore[i];//error } } float total() { float sum=0; for(int i=0;i<5;i++) { sum=sum+atof( Sscore[i].c_str() );//error } return sum; } void sort() { int n; string temp;//error for(int i=0;i<n;i++) { for(int j=i+1;j>n;j++) { if(Sscore[j]<Sscore[i]) { temp=Sscore[j]; Sscore[j]=Sscore[i]; Sscore[i]=temp; } } } } void print() { cout<<"学生的姓名"<<Sname<<"\t"<<"总成绩:"; for(int i=0;i<5;i++) cout<<this->Sscore[i]; }};int main() { Student aveage; float ave; ave=aveage.total()/5; cout<<"平均成绩为:"<<ave<<endl; aveage.fum(); aveage.fun(); return 0;}
[解决办法]
你的问题有点大吧!虽然我也是一个菜鸟,但是我要说的是你的构造函数和析构函数都没写。还有就是要用类的对象是 不是要初始化再使用,你是先使用然后在来给对象赋值。