为了C++的考试,大家请帮忙看问题error C2146: syntax error : missing ')' before identifier 'stu'

程序员导航123 2012-05-02 10:37:07
为了C++的考试,大家请帮忙

用的是VC++6.0工具,程序如下:
编译报错:
Compiling...
test1.cpp
C:\2010ks\pro2\test\test1.cpp(46) : error C2146: syntax error : missing ')' before identifier 'stu'
C:\2010ks\pro2\test\test1.cpp(46) : error C2146: syntax error : missing ';' before identifier 'stu'
C:\2010ks\pro2\test\test1.cpp(46) : fatal error C1004: unexpected end of file found
Error executing cl.exe.

test1.obj - 3 error(s), 0 warning(s)

----------------------------------------------------------------------------------------


//请编写程序c3.cpp,定义学生(student)类,其私有成员变量有学号(no),姓名(xm),性别(xb),品德成绩(pdcj)、考试平均成绩(kscj)
//体育成绩(tycj)。如果每个成绩都在85分以上的同学是三好学生。请输入10名学生的情况,先判断每位同学是否为三好学生,
//然后计算每个学生的平均成绩。
// 要求:求同学的平均成绩和判定三好学生的功能是学生对象的公共成员函数。
#include <iostream>
#include < string >
#include "afxdb.h"
using namespace std;

class student{
private:
int no;
string xm;
string xb;
int pdcj;
int kscj;
int tycj;
public:
student(){}
student(int n,string x,string b,int p,int k,int t)
{
no=n;
xm=x;
xb=b;
pdcj=p;
kscj=k;
tycj=t;

}
void setNo(int n){no=n;}
void setXm(string x){xm=x;}
void setXb(string b){xb=b;}
void setPdcj(int p){pdcj=p;}
void setKscj(int k){int kscj=k;}
void setTycj(int t){int tycj=t;}
int getNo(){return no;}
string getXm(){return xm;}
string getXb(){return xb;}
int getPdcj(){return pdcj;}
int getKscj(){return kscj;}
int getTycj(){return tycj;}
void avg(student[]);
void sanhao(student[]);
};

void student::avg(student[] stu)
{
for (int i = 0; i < stu.length; i++) {
int average = 0;
average = (stu[i].getPdcj()+stu[i].getTycj())/2;
cout << stu[i].getXm()<<"学生成绩是:"<<average<<endl;
}

}

void student::sanhao(student[] stu)
{
for (int i = 0; i < stu.length; i++) {
if (stu[i].getPdcj() >= 85 && stu[i].getTycj() >= 85)
{
cout << "姓名:" << stu[i].getXm() << "是三好学生"<<endl;

}

}
}


void main(){
student stu2 ;
student[] stu = new student[10];
for(int i=0;i<10;i++)
{
stu[i] = new student();
cout<<"学号:"<<"姓名"<<"性别:"<<"品德成绩:"<<"体育成绩:"<<endl;
int n ;
string xm;
string xb;
int pdcj;
int tycj;

cin>>no>>xm>>xb>>pdcj>>kscj>>tycj;
stu[i].setNo(no);
stu[i].setXm(xm);
stu[i].setXb(xb);
stu[i].setPdcj(pdcj);
stu[i].setTycj(tycj);
}

stu2.sanhao(stu);

stu2.avg(stu);
}
...全文
607 6 打赏 收藏 转发到动态 举报
写回复
用AI写文章
6 条回复
切换为时间正序
请发表友善的回复…
发表回复
northcan 2012-05-02
  • 打赏
  • 举报
回复
如果是想用“一维数组型”参数,也要把student[] stu 修改为 student str[]吧。
而且stu.length,这个用法是哪里来的?c++里面支持这个?还是VC6编译器扩展支持?
lkxd2011 2012-05-02
  • 打赏
  • 举报
回复
出现这种情况,一般都在错误行的上一行找错误~~
northcan 2012-05-02
  • 打赏
  • 举报
回复
void student::avg(student[] stu)
{
for (int i = 0; i < stu.length; i++) {
int average = 0;
average = (stu[i].getPdcj()+stu[i].getTycj())/2;
cout << stu[i].getXm()<<"学生成绩是:"<<average<<endl;
}

student[] stu
i < stu.length;

vc6编译器支持这样的用法?
bdmh 2012-05-02
  • 打赏
  • 举报
回复
class的结尾要加 分号

class xxxx
{
};
程序员导航123 2012-05-02
  • 打赏
  • 举报
回复
下面这些语句,调用不知道怎么样的写法啊:
报这样的错:
Compiling...
test1.cpp
C:\2010ks\pro2\test\test1.cpp(87) : error C2664: 'sanhao' : cannot convert parameter 1 from 'int [10]' to 'class student []'
Types pointed to are unrelated; conversion requires reinterpret_cast, C-style cast or function-style cast
C:\2010ks\pro2\test\test1.cpp(88) : error C2065: 'avg' : undeclared identifier
Error executing cl.exe.

test1.obj - 2 error(s), 0 warning(s)

------------------------------------------------------

cout<<"输入学号:"<<"姓名"<<"性别:"<<"品德成绩:"<<"体育成绩:"<<endl;

for(int i=0;i<10;i++)
{
cin>>xm>>xb>>no>>pdcj>>tycj;
}

s1.sanhao(s);
s1.avg(s);
}
程序员导航123 2012-05-02
  • 打赏
  • 举报
回复
//请编写程序c3.cpp,定义学生(student)类,其私有成员变量有学号(no),姓名(xm),性别(xb),品德成绩(pdcj)、考试平均成绩(kscj)
//体育成绩(tycj)。如果每个成绩都在85分以上的同学是三好学生。请输入10名学生的情况,先判断每位同学是否为三好学生,
//然后计算每个学生的平均成绩。
// 要求:求同学的平均成绩和判定三好学生的功能是学生对象的公共成员函数。
#include <iostream>
#include < string >
using namespace std;

class student{
private:
int no;
string xm;
string xb;
int pdcj;
//int kscj;
int tycj;
public:
student(){}
student(int n,string x,string b,int p,int k,int t)
{
no=n;
xm=x;
xb=b;
pdcj=p;
//kscj=k;
tycj=t;

}
void setNo(int n){no=n;}
void setXm(string x){xm=x;}
void setXb(string b){xb=b;}
void setPdcj(int p){pdcj=p;}
//void setKscj(int k){int kscj=k;}
void setTycj(int t){int tycj=t;}
int getNo(){return no;}
string getXm(){return xm;}
string getXb(){return xb;}
int getPdcj(){return pdcj;}
//int getKscj(){return kscj;}
int getTycj(){return tycj;}
void avg(student[]);
void sanhao(student[]);
};

void student::avg(student s[])
{
for (int i = 0; i < 10; i++) {
int average = 0;
average = s[i].getPdcj()+(s[i].getTycj())/2;
cout << s[i].getXm()<<"学生成绩是:"<<average<<endl;
}

}

void student::sanhao(student s[])
{
for (int i = 0; i < 10; i++) {
if (s[i].getPdcj() >= 85 && s[i].getTycj() >= 85)
{
cout << "姓名:" << s[i].getXm() << "是三好学生"<<endl;

}

}
}


void main(){
int s1[10];
student s;

int no ;
string xm;
string xb;
int pdcj;
int tycj;
cout<<"输入学号:"<<"姓名"<<"性别:"<<"品德成绩:"<<"体育成绩:"<<endl;

for(int i=0;i<10;i++)
{
cin>>s1[i].setNo(no)>>s1[i].setXm(xm)>>s1[i].setXb(xb)>>s1[i].setPdcj(pdcj)>>s1[i].setTycj(tycj);
}

s1.sanhao(s);
s1.avg(s);
}
---------------------------------------------------------

我现在这样写报这个错:
不知道怎样解决!!!
Compiling...
test1.cpp
C:\2010ks\pro2\test\test1.cpp(81) : error C2228: left of '.setNo' must have class/struct/union type
C:\2010ks\pro2\test\test1.cpp(81) : error C2228: left of '.setXm' must have class/struct/union type
C:\2010ks\pro2\test\test1.cpp(81) : error C2228: left of '.setXb' must have class/struct/union type
C:\2010ks\pro2\test\test1.cpp(81) : error C2228: left of '.setPdcj' must have class/struct/union type
C:\2010ks\pro2\test\test1.cpp(81) : error C2228: left of '.setTycj' must have class/struct/union type
C:\2010ks\pro2\test\test1.cpp(84) : error C2228: left of '.sanhao' must have class/struct/union type
C:\2010ks\pro2\test\test1.cpp(85) : error C2228: left of '.avg' must have class/struct/union type
Error executing cl.exe.

test1.obj - 7 error(s), 0 warning(s)

24,861

社区成员

发帖
与我相关
我的任务
社区描述
C/C++ 工具平台和程序库
社区管理员
  • 工具平台和程序库社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

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