| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 1173 人关注过本帖
标题:[开源][求助]仅一处错误!成员函数为什么不能调用string类的成员变量。。。 ...
只看楼主 加入收藏
wyp
Rank: 1
等 级:新手上路
帖 子:10
专家分:0
注 册:2007-5-13
收藏
 问题点数:0 回复次数:5 
[开源][求助]仅一处错误!成员函数为什么不能调用string类的成员变量。。。。

#include <iostream.h>
#include <string>

using namespace std;


class student
{
private:
string no;
string name;
float deg1;
float deg2;
float deg3;
static float sum1,sum2,sum3;
static int num;
public:

student(string no,string name,float deg1,float deg2,float deg3)
{
this->no = no;
this->name = name;
this->deg1 = deg1;
this->deg2 = deg2;
this->deg3 = deg3;
sum1+=this->deg1;
sum2+=this->deg2;
sum3+=this->deg3;
num+=1;
}

float avg1()
{
return sum1/num;
}
float avg2()
{
return sum2/num;

}
float avg3()
{

return sum3/num;

}
void disp()
{
cout<<name<<endl;-------------------------------------------->>???这处不明白呀?
cout<<"语文总成绩:"<<sum1<<endl;
cout<<"数学总成绩:"<<sum2<<endl;
cout<<"英语总成绩:"<<sum3<<endl;

}

};

float student::sum1 = 0;
float student::sum2 = 0;
float student::sum3 = 0;
int student::num = 0;


void main()
{
student s[5]={student("11","Li ming",76,83,77),student("12","Wang Tao",74.5,87,67.5),
student("8","Sun Yue",79,89,68.5),student("21","li Lei",73,87,69),
student("9","xiao ming",77.5,86.5,87)}; //对象数组的使用!

cout<<"语文平均分:"<<s[1].avg1()<<endl;
cout<<"数学平均分:"<<s[1].avg2()<<endl;
cout<<"英语平均分:"<<s[1].avg3()<<endl;
s[1].disp();


}


搜索更多相关主题的帖子: string 变量 函数 成员 开源 
2007-07-13 11:29
anthony634
Rank: 6Rank: 6
来 自:西南交大
等 级:贵宾
威 望:24
帖 子:653
专家分:10
注 册:2006-6-8
收藏
得分:0 
你不是说string 是个类么?那么name就应该是个对象吧,为什么不这样调用一个对象属性呢? name.c_str()或者 &name[0]

[此贴子已经被作者于2007-7-13 14:00:58编辑过]

2007-07-13 13:58
wyp
Rank: 1
等 级:新手上路
帖 子:10
专家分:0
注 册:2007-5-13
收藏
得分:0 

我懂了,谢谢高手哈!



再麻烦您下:这个程序怎样才能按照设计的去输入数据呢?帮下忙,真心谢谢好心人

#include<iostream.h>
#include<string>
#include<string.h>
using namespace std;


class School
{
public:
char* sname;
int num;
int totalscore;
School(char* sname,int num)
{
this->sname=sname;
this->num=num;
}
void disp()
{
cout<<sname<<"("<<num<<")"<<endl;
}
};

class ManMatch
{
char* mname;
int mno;
ManMatch(char* mname,int mno)
{
this->mname=mname;
this->mno=mno;
}
void display()
{
int m=1;
cout<<"男子竞赛项目"<<m<<endl;
cout<<mname<<endl;
cout<<"代号:"<<mno<<endl;
m++;
}
};

class WomanMatch
{
char* wname;
int wno;
WomanMatch(char* wname,int wno)
{
this->wname=wname;
this->wno=wno;
}
void display()
{
int w=1;
cout<<"女子竞赛项目"<<w<<endl;
cout<<wname<<endl;
cout<<"代号:"<<wno<<endl;
w++;
}
};
void main()
{
int N=0,M=0,W=0,i=1,j=1,k=1,a=0,b=0,c=0;
int num;
char * name=NULL;
float score=0;

cout<<"请输入:"<<endl;
cout<<"参赛学校总数 "<<"男子竞赛项目数 "<<"女子竞赛项目数 "<<endl;
cin>>N>>M>>W;
int s[]={0};
cout<<"请填写比赛结果:"<<endl;
for(i=1;i<=M;i++)
{
cout<<"男子竞赛项目"<<i<<"的比赛结果"<<endl;
for(j=1;j<=5;j++)
{
cout<<" 第"<<j<<"名:"<<endl;
cout<<"姓名 "<<"比赛成绩 "<<"所在学校代号"<<endl;
cin>>name>>score>>num;


switch(j)
{

case 1:
for(k=1;k<=N;k++)
{
if(num==s[k-1]){
s[k-1]+=7;
break;
}
}
break;
case 2:
for(k=1;k<=N;k++)
{
if(num,s[k-1]){
s[k-1]+=5;
break;
}
}
break;
case 3:
for(k=1;k<=N;k++)
{
if(num,s[k-1]){
s[k-1]+=3;
break;
}
}
break;
case 4:
for(k=1;k<=N;k++)
{
if(num,s[k-1]){
s[k-1]+=2;
break;
}
}
break;
case 5:
for(k=1;k<=N;k++)
{
if(num,s[k-1]){
s[k-1]+=1;
break;
}
}
break;
}
}
}

for(a=1;a<=M;a++)
{
cout<<"女子竞赛项目"<<a<<"的比赛结果"<<endl;
for(b=1;b<=5;b++)
{
cout<<" 第"<<b<<"名:"<<endl;
cout<<"姓名:"<<endl;cin>>name;
cout<<"比赛成绩:"<<endl;cin>>score;
cout<<"所在学校代号:"<<endl;cin>>num;

switch(b)
{

case 1:
for(c=1;c<=W;c++)
{
if(num,s[c-1]){
s[c-1]+=7;
break;
}
}
break;
case 2:
for(c=1;c<=N;c++)
{
if(num,s[c-1]){
s[c-1]+=5;
break;
}
}
break;
case 3:
for(c=1;c<=N;c++)
{
if(num,s[c-1]){
s[c-1]+=3;
break;
}
}
break;
case 4:
for(c=1;c<=N;c++)
{
if(num,s[c-1]){
s[c-1]+=2;
break;
}
}
break;
case 5:
for(c=1;c<=N;c++)
{
if(num,s[c-1]){
s[c-1]+=1;
break;
}
}
break;
}
}
}
}

2007-07-13 14:24
kaikai19958
Rank: 1
等 级:新手上路
帖 子:12
专家分:0
注 册:2007-7-13
收藏
得分:0 

造出来的类怎么没用啊!那类还有什么用?

2007-07-15 08:38
moviefilm
Rank: 1
等 级:新手上路
帖 子:12
专家分:0
注 册:2007-7-14
收藏
得分:0 
你输出的那条语句改为:cout<<&name<<endl;//-------------------------------------------->>???这处不明白呀?
因为name可以看成name[],像你钢才写的,依照C++ 语言是不对的,输出之前必须找到要输出内容的首地址!
2007-07-15 10:11
THE
Rank: 1
等 级:新手上路
帖 子:37
专家分:0
注 册:2007-6-30
收藏
得分:0 
以下是引用moviefilm在2007-7-15 10:11:31的发言:
你输出的那条语句改为:cout<<&name<<endl;//-------------------------------------------->>???这处不明白呀?
因为name可以看成name[],像你钢才写的,依照C++ 语言是不对的,输出之前必须找到要输出内容的首地址!

不对, cout<<name<<endl; 才是对的,不用&!

2007-07-15 14:01
快速回复:[开源][求助]仅一处错误!成员函数为什么不能调用string类的成员变量。 ...
数据加载中...
 
   



关于我们 | 广告合作 | 编程中国 | 清除Cookies | TOP | 手机版

编程中国 版权所有,并保留所有权利。
Powered by Discuz, Processed in 0.014035 second(s), 7 queries.
Copyright©2004-2024, BCCN.NET, All Rights Reserved