纠错???

beybey555 2012-03-17 08:25:52
1.编写一个程序,输入N个学生的资料,包括姓名,学号,成绩,要求输出这些学生的资料并求出平均成绩。(使用静态成员函数avg();静态变量,学生数 num,总成绩 sum)
#include<iostream>
#include<cmath>
using namespace std;
class stud
{
public:
stud(char no[],char name[],float deg)
{
strcpy(x1,name);
strcpy(x2,no);
x3=deg;
num++;
}
stud(stud &s)
{
strcpy(x1,s.x1);
strcpy(x2,s.x2);
x3=s.x3;
}
void disp()
{
cout<<s.x1<<" "<<s.x2<<" "<<s.x3<<endl;
cout<<s.avg()<<endl;
}
static void avg()
{
float s;
s.sum=s.sum+s.x3;
s=s.sum/s.num;
}
private:
char x1[20],x2[20];
float x3;
static float sum,num;
};

void main()
{
char a[],b[];
float c;
cin>>a>>b>>c;
stud s(a,b,c);
s.disp();

}
好像写的不对,求改正。。。
...全文
96 12 打赏 收藏 转发到动态 举报
写回复
用AI写文章
12 条回复
切换为时间正序
请发表友善的回复…
发表回复
深圳大哥 2012-03-17
  • 打赏
  • 举报
回复
#include <iostream>
#include <string>
using namespace std;


class Student
{
public:
Student(string name,string number,float grade)
{
this->name=name;
this->number=number;
this->grade=grade;
num++;
sum+=grade;
}


string GetName()
{
return name;
}

string GetNumber()
{
return number;
}

float GetGrade()
{
return grade;
}

static int num;
static float sum;

private:
string name;
string number;
float grade;
};

int Student::num=0;
float Student::sum=0;

float GetAverage()
{
float average=0;
average=Student::sum/Student::num;
return average;
}

int main()
{
string name,number;
float grade;


int num;
cout<<"The number of students:";
cin>>num;

cout<<"Please input the information of student:"<<endl;
for(int i=0;i<num;i++)
{
cout<<"student:"<<i+1<<endl;
cout<<"Name:";
cin>>name;
cout<<"Number:";
cin>>number;
cout<<"Grade:";
cin>>grade;
cout<<endl;
Student student(name,number,grade);
}

cout<<"The average score is:";
cout<<GetAverage()<<endl;

return 0;
}
深圳大哥 2012-03-17
  • 打赏
  • 举报
回复
#include <iostream>
#include <string>
using namespace std;

static int num=0;
static float sum=0;

class Student
{
public:
/*
Student()
{
name=NULL;
number=NULL;
grade=0;
num=0;
}
*/

Student(string name,string number,float grade)
{
this->name=name;
this->number=number;
this->grade=grade;
num++;
sum+=grade;
}


string GetName()
{
return name;
}

string GetNumber()
{
return number;
}

float GetGrade()
{
return grade;
}

private:
string name;
string number;
float grade;
};

float GetAverage()
{
float average=0;
average=sum/num;
return average;
}

int main()
{
string name,number;
float grade;


int num;
cout<<"The number of students:";
cin>>num;

cout<<"Please input the information of student:"<<endl;
for(int i=0;i<num;i++)
{
cout<<"student:"<<i+1<<endl;
cout<<"Name:";
cin>>name;
cout<<"Number:";
cin>>number;
cout<<"Grade:";
cin>>grade;
cout<<endl;
Student student(name,number,grade);
}

cout<<endl<<"The average score is:";
cout<<GetAverage()<<endl;

return 0;
}

运行结果
The number of students:3
Please input the information of student:
student:1
Name:Henry
Number:01
Grade:90

student:2
Name:perter
Number:02
Grade:89

student:3
Name:Justin
Number:03
Grade:91


The average score is:90
beybey555 2012-03-17
  • 打赏
  • 举报
回复
[Quote=引用 9 楼 czh3642210 的回复:]
C/C++ code
#include<iostream>
#include<cmath>
using namespace std;
class stud
{
public:
stud(char no[],char name[],float deg)
{
strcpy(x1,name);
strcpy(x2,no);
……
[/Quote]
想求N个学生的平均成绩我把main函数改成
void main()
{ int i,n;
cin>>n;
char a[20]={0},b[20]={0};
float c;
for(i=0;i<n;i++)
{
cin>>a>>b>>c;
stud s(a,b,c);
s.disp();
}
}
可是输出还是不对,还怎么改呢???
面包大师 2012-03-17
  • 打赏
  • 举报
回复
#include<iostream>
#include<cmath>
using namespace std;
class stud
{
public:
stud(char no[],char name[],float deg)
{
strcpy(x1,name);
strcpy(x2,no);
x3=deg;
sum=0;
num=0;
num++;
}
stud(stud &s)
{
strcpy(x1,s.x1);
strcpy(x2,s.x2);
x3=s.x3;
}
void disp()
{
cout<<x1<<" "<<x2<<" "<<x3<<endl;
cout<<avg()<<endl;
}
float avg()
{
float s;
sum=sum+x3;
s=sum/num;
return s;
}
private:
char x1[20],x2[20];
float x3;
float sum,num;
};

void main()
{
char a[20]={0},b[20]={0};
float c;
cin>>a>>b>>c;
stud s(a,b,c);
s.disp();
}
beybey555 2012-03-17
  • 打赏
  • 举报
回复
[Quote=引用 5 楼 greex 的回复:]
std::vector<_stud> vecObj;
_stud stud1;
stud1.strName.assign("name1");
stud1.result=90.3;
stud1.uNum=100;
vecObj.push_back(stud1);

_stud stud2;
stud2.strName.assign("name1");
stud2.result=90……
[/Quote]
这个我有点看不懂,能说一下你用了什么方法么,我看看相关资料。。。
beybey555 2012-03-17
  • 打赏
  • 举报
回复
[Quote=引用 4 楼 czh3642210 的回复:]
C/C++ code
#include<iostream>
#include<cmath>
using namespace std;
class stud
{
public:
stud(char no[],char name[],float deg)
{
strcpy(x1,name);
strcpy(x2,no);
……
[/Quote]
好像那个平均值不对???
greex 2012-03-17
  • 打赏
  • 举报
回复
#include <stdio.h>
#include <string>
#include <vector>
#include <algorithm>
#include <iostream>
#include <sstream>
#include <istream>
greex 2012-03-17
  • 打赏
  • 举报
回复
std::vector<_stud> vecObj;
_stud stud1;
stud1.strName.assign("name1");
stud1.result=90.3;
stud1.uNum=100;
vecObj.push_back(stud1);

_stud stud2;
stud2.strName.assign("name1");
stud2.result=90.3;
stud2.uNum=100;
vecObj.push_back(stud2);

//输出学习信息
float ft =0;
for (std::vector<_stud>::const_iterator itr = vecObj.begin();itr!=vecObj.end();++itr)
{
std::cout<<"姓名:"<<itr->strName<<"学号:"<<itr->uNum<<"成绩:"<<itr->result<<std::endl;
ft += itr->result;
}

std::cout<<"平均成绩:"<<vecObj.size()/ft<<std::endl;
面包大师 2012-03-17
  • 打赏
  • 举报
回复
#include<iostream>
#include<cmath>
using namespace std;
class stud
{
public:
stud(char no[],char name[],float deg)
{
strcpy(x1,name);
strcpy(x2,no);
x3=deg;
num++;
}
stud(stud &s)
{
strcpy(x1,s.x1);
strcpy(x2,s.x2);
x3=s.x3;
}
void disp()
{
cout<<x1<<" "<<x2<<" "<<x3<<endl;
cout<<avg()<<endl;
}
float avg()
{
float s;
sum=sum+x3;
s=sum/num;
return s;
}
private:
char x1[20],x2[20];
float x3;
float sum,num;
};

void main()
{
char a[20]={0},b[20]={0};
float c;
cin>>a>>b>>c;
stud s(a,b,c);
s.disp();
}
beybey555 2012-03-17
  • 打赏
  • 举报
回复
哦,我改下。。。
不二Se 2012-03-17
  • 打赏
  • 举报
回复
char a[],b[];这个不合适吧
忘世麒麟 2012-03-17
  • 打赏
  • 举报
回复
你的num,sum是不是应该赋初值0,否则你知道加出来的是什么吗?(如num++,sum=...)
你的avg()返回的是void类型,你确定"cout<<s.avg()<<endl"这句话能把你的float s打印出来吗?
建议你把思路理一理.

64,649

社区成员

发帖
与我相关
我的任务
社区描述
C++ 语言相关问题讨论,技术干货分享,前沿动态等
c++ 技术论坛(原bbs)
社区管理员
  • C++ 语言社区
  • encoderlee
  • paschen
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
  1. 请不要发布与C++技术无关的贴子
  2. 请不要发布与技术无关的招聘、广告的帖子
  3. 请尽可能的描述清楚你的问题,如果涉及到代码请尽可能的格式化一下

试试用AI创作助手写篇文章吧