首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 开发语言 > C++ >

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

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

为了C++的考试,大家请帮忙看问题error C2146: syntax error : missing ')' before identifier 'stu'
为了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);
}
 

[解决办法]
class的结尾要加 分号

class xxxx
{
};
[解决办法]
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编译器支持这样的用法?
[解决办法]
出现这种情况,一般都在错误行的上一行找错误~~
[解决办法]
如果是想用“一维数组型”参数,也要把student[] stu 修改为 student str[]吧。
而且stu.length,这个用法是哪里来的?c++里面支持这个?还是VC6编译器扩展支持?

热点排行