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

local function definitions are illegal解决办法

2012-07-31 
local function definitions are illegal错误怎么也发现不了求大神呀!#includeiostream#includestring

local function definitions are illegal
错误怎么也发现不了 求大神呀!

#include<iostream>
#include<string>
#include<fstream>
using namespace std;

const N=1000;
string bname[N];
long bnumber[N];
int bblong[N];
string bwriter[N];
string bputout[N];
string bputtime[N];
int bsale[N];
int bkucunnum[N];

class Book

public:
string bookname;
int booknumber;
int bookblong;
string bookwriter;
string bookputout;
string bookputtime;
int booksale;
int bookkucunnum;
static long bookmaxnum;
 void showall();
 void showinformation();
 void newinformation();
 void showbyname();
 void showbyblong(int blong);
 void showbysale(int min,int max);
 void showbynum(long number);
 void RefreshInformation(); 
 void DeleteInformation(); 
 static int MaxNum(); 
};

class Data
{  
public:
string bookname;
int booknumber;
int bookblong;
string bookwriter;
string bookputout;
string bookputtime;
int booksale;
int bookkucunnum;
  static long bookmaxnum; 
  void WriteInformation(int num);
  void ReadOut(); 
  void RefreshMaxNum(int num); 
};

long Book::bookmaxnum=0001;

int Book::MaxNum() 

 int MN = 0; 
 ifstream myf; 
  myf.open("bookMaxNum.txt"); 
  myf>>MN;  
  myf.close(); 
  return MN; 
}

void Book::newinformation()

cout<<"新书籍名称:";
cin>>Book::bookname;
 cout<<"新书籍编号:";
 cin>>Book::booknumber;
 cout<<"书籍类型[科普类为1,教辅类为2,文学类为3,周刊类为4,生活类为5]:";
 cin>>Book::bookblong;
 cout<<"书籍作者:";
 cin>>Book::bookwriter;
 cout<<"书籍出版社 :";
cin>>Book::bookputout;
 cout<<"书籍出版日期[格式XXXX/XX/XX]:";
cin>>Book::bookputtime;
cout<<"书籍售价:";
cin>>Book::booksale;
cout<<"书籍库存量:";
cin>>Book::bookkucunnum;
Data database;
database.ReadOut();
int MaxNum=Book::MaxNum();
bname[MaxNum]=Book::bookname;
bnumber[MaxNum]=Book::booknumber;
bblong[MaxNum]=Book::bookblong;
bwriter[MaxNum]=Book::bookwriter;
bputout[MaxNum]=Book::bookputout;
bputtime[MaxNum]=Book::bookputtime;
bsale[MaxNum]=Book::booksale;
bkucunnum[MaxNum]=Book::bookkucunnum;
 database.WriteInformation(1); 
  cout<<" 添加新成员成功!"<<endl; 
  return;
}

void Book::showinformation()

int a,b,min,max;
long c;
Book e;
  cout<<"**********************************************"<<endl;
cout<<"* 请输入查询方式 *"<<endl;
  cout<<"* 1、输出全部书籍信息 *"<<endl;  
  cout<<"* 2、按书籍编号输出 *"<<endl;
  cout<<"* 3、按书籍类型输出 *"<<endl;
  cout<<"* 4、按书籍售价输出 *"<<endl;
cout<<"**********************************************"<<endl;
cin>>a;
switch(a)
{
case 1:  
cout<<"书籍全部信息如下:"<<endl;
showall(); 
break;
  case 2:  
cout<<"请输入要查询书籍的编号:";


cin>>c;
e.showbynum(c);
break;
case 3:
cout<<"请输入要查询书籍的类型[科普类为1,教辅类为2,文学类为3,周刊类为4,生活类为5]:";
cin>>b;
e.showbyblong(b);
break;
case 4:
cout<<"请输入要查询书籍的售价:"<<endl;
cout<<"查询售价的最小值:";
cin>>min;
cout<<"查询售价的最大值:";
cin>>max;
e.showbysale(min,max);
break;
default: 
cout<<"输入命令出错!"<<endl;
break;
}
}

void Book::showall()
{
int i;
long number;
 for(i=0;i<Book::MaxNum();i++) 
 {
  number = bnumber[i]; 
  showbynum(number); 
 } 
}

void Book::showbyblong(int blong)
{
  int i;
  switch(blong)
  {
  case 1:  
cout<<" 科普类书籍有以下:"<<endl;
  case 2:
cout<<" 教辅类书籍有以下:"<<endl;
  case 3:
cout<<" 文学类书籍有以下:"<<endl;
  case 4:
cout<<" 周刊类书籍有以下:"<<endl;
  case 5:
cout<<" 生活类书籍有以下:"<<endl;
}
  for(i=0;i<Book::MaxNum();i++) 
 { 
  if(bblong[i] == blong) 
  {
  long number = bnumber[i]; 
  showbynum(number); 
  } 
  else continue; 
 } 
}

void Book::showbysale(int min,int max)
{
int i; 
  for(i=0;i<Book::MaxNum();i++) 
 { 
  if(bsale[i]>=min&&bsale[i]<=max) 
  {
  long number = bnumber[i]; 
  showbynum(number); 
  } 
  else continue; 
}

void Book::showbynum(long number) 
{
 int i; 
  for(i=0;i<Book::MaxNum();i++) 
{
  if(bnumber[i] == number) 
  { 
  cout<<"**********************************"<<endl; 
  cout<<"书籍编号 >"<<bnumber[i]<<endl; 
  cout<<" 书籍名称 >"<<bname[i]<<endl; 
   
  cout<<"书籍所属类型 >"; 
  switch (bblong[i]) 

  case 1:cout<<"科普类 "<<endl;
break; 
  case 2:cout<<"教辅类 "<<endl;
break; 
  case 3:cout<<"文学类 "<<endl;
break; 
  case 4:cout<<" 周刊类"<<endl;
break; 
  case 5:cout<<"生活类 "<<endl;
break; 
}
  cout<<" 书籍作者 >"<<bwriter[i]<<endl;
  cout<<" 书籍出版社 >"<<bputout[i]<<endl;
  cout<<" 书籍出版日期 >"<<bputtime[i]<<endl;
  cout<<" 书籍售价 >"<<bsale[i]<<"元"<<endl;
cout<<"书籍库存>"<<bkucunnum[i]<<endl;
  cout<<"**********************************"<<endl; 
  }
  else continue; 
}
}

void Book::RefreshInformation()
{
 int cNum = 0001; 
  Data database; 
  database.ReadOut(); 
  cout<<"请输入您要修改的书籍编号: >"; 
  cin>>cNum; 


  int MN; 
  MN = Book::MaxNum(); 
  for(int i=0;i<MN;i++) 
 { 
  if(bnumber[i] == cNum) 
  { 
  Book::showbynum(cNum); 
  cout<<"请输入该书籍的新信息: "<<endl; 
  cout<<"新书籍的名称: "; 
  cin>>Book::bookname; 
  bname[i] = Book::bookname; 
  cout<<"新的编号:"; 
  cin>>Book::booknumber 
  bnumber[i] = Book::booknumber; 
  cout<<"新书籍的所属类型,请输入相应类型的序号:"<<endl; 
  cout<<" [1:科普类 2:教辅类 3:文学类 4:周刊类 5:生活类] "; 
  cin>>Book::bookblong; 
  while(Book::bookblong !=1&&Book::bookblong !=2\
  && Book::bookblong !=3&&Book::bookblong !=4\
  && Book::bookblong !=5) 
  { 
  cout<<"输入有误,请重新输入:"<<endl; 
  cout<<" [1:科普类 2:教辅类 3:文学类 4:周刊类 5:生活类] ";
  cin>>Book::bookblong; 
  } 
  bblong[i] = Book::bookblong; 
  cout<<"新书籍作者: "; 
  cin>>Book::bookwriter; 
  bwriter[i] = Book::bookwriter; 
  cout<<"新书籍出版社: "; 
  cin>>Book::bookputout; 
  bputout[i] = Book::bookputout; 
  cout<<"新书籍出版日期: "; 
  cin>>Book::bookputtime; 
  bputtime[i] = Book::bookputtime; 
  cout<<"新书籍售价:";
  cin<<Book::booksale;
  bsale[i]=Book::booksale;
  cout<<"新书籍库存量:";
  cin>>Book::bookkucunnum;
  bkucunnum[i]=Book::bookkucunnum;
  break; 
  } 
 } 
 database.WriteInformation(0);
}


void Book::DeleteInformation()  

 char tmp; 
 int cNum = 0001; 
 Data database; 
 database.ReadOut(); 
 void Book::showbynum(long number); 
 cout<<"请输入您要删除的书籍编号>: "; 
 cin>>cNum; 
 int MN; 
 MN =Book::MaxNum(); 
 for(int i=0;i<MN;i++) 
 { 
  if(bnumber[i] == cNum) 
  Book::showbynum(cNum); 
 } 
 cout<<"确认要删除该书籍信息?(Y为确认 N为放弃): "; 
 cin>>tmp; 
 if(tmp=='y') 
 { 
  if(i==MN-1) 
  database.WriteInformation(-1); 
  else 
  { 
  for(int j=i;j<MN-1;j++)
  {
  bnumber[j] = bnumber[j+1];
  } 
  database.WriteInformation(-1); 
  } 
  cout<<" 删除操作成功 ! "<<endl; 
 } 
}

void Data::WriteInformation(int num)  

 Data::RefreshMaxNum(num); 
 ofstream myfile("book.txt"); 
Book e; 
 int MN; 
 MN = e.MaxNum(); 
 for(int i=0;i<MN;i++) 
 { 
  myfile<<bnumber[i]<<'\n'<<bname[i]<<'\n'<<bblong[i]<<'\n'\
  <<bwriter[i]<<'\n'<<bputout[i]<<'\n'<<bputtime[i]<<'\n'\
  <<bsale[i]<<'\n'<<bkucunnum[i]<<'\n'; 
 } 
 myfile.close(); 
 return; 
}

void Data::ReadOut() 


{
 ifstream myfile("book.txt"); 
 Book e; 
 int MN; 
 MN = e.MaxNum(); 
 for(int i=0 ;i<MN;i++) 
 { 
  myfile>>bnumber[i]>>bname[i]>>bblong[i]>>bwriter[i]\
  >>bputout[i]>>bputtime[i]>>bsale[i]>>bkucunnum[i];
 } 
  myfile.close(); 
}

void Data::RefreshMaxNum(int num)  

 int MaxNum = 0; 
  ifstream myif("bookMaxNum.txt"); 
  myif>>MaxNum; 
  myif.close(); 
  MaxNum = MaxNum+num; 
  ofstream myof("bookMaxNum.txt"); 
  myof<<MaxNum; 
  myof.close(); 
}
 
int main()
{  
int select=0;
  while(select!=5)
  { 
cout<<"**********************************************"<<endl;
  cout<<"* 小型书店管理系统 *"<<endl;
cout<<"* 1、新建并输入书籍信息 *"<<endl;
  cout<<"* 2、查询书籍信息并输出 *"<<endl;
  cout<<"* 3、更新书籍信息 *"<<endl;
cout<<"* 4、删除书籍信息 *"<<endl;
cout<<"* 5、退出系统 *"<<endl;
cout<<"**********************************************"<<endl;
  cout<<" 请选择您要服务的类别: " ; 
  cin>>select; 
  Book e; 
  Data database; 
  switch(select)
  {
  case 1: 
  e.newinformation(); break; 
  case 2: 
  database.ReadOut(); 
  e.showinformation(); break; 
  case 3: 
  e.RefreshInformation(); break; 
  case 4: 
  e.DeleteInformation(); break; 
  case 5: break; 
  default: 
  cout<<"命令错误!"<<endl; 
  } 
  if(select == 5) 
  break; 
 } 
 exit(1); 
 return 0; 
}


Compiling...
fffffffffffffff.cpp
d:\实验\vc6\fffffffffffffff.cpp(198) : error C2601: 'showbynum' : local function definitions are illegal
d:\实验\vc6\fffffffffffffff.cpp(234) : error C2601: 'RefreshInformation' : local function definitions are illegal
d:\实验\vc6\fffffffffffffff.cpp(289) : error C2601: 'DeleteInformation' : local function definitions are illegal
d:\实验\vc6\fffffffffffffff.cpp(323) : error C2601: 'WriteInformation' : local function definitions are illegal
d:\实验\vc6\fffffffffffffff.cpp(340) : error C2601: 'ReadOut' : local function definitions are illegal
d:\实验\vc6\fffffffffffffff.cpp(354) : error C2601: 'RefreshMaxNum' : local function definitions are illegal
d:\实验\vc6\fffffffffffffff.cpp(366) : error C2601: 'main' : local function definitions are illegal
d:\实验\vc6\fffffffffffffff.cpp(403) : fatal error C1004: unexpected end of file found
Error executing cl.exe.

fffffffffffffff.obj - 8 error(s), 0 warning(s)





[解决办法]
showbysale函数少了个括号
另外还有一些语法错误,纠正了,现在可以编译通过

C/C++ code
#include<iostream>#include<string>#include<fstream>using namespace std;const int N=1000;//少了intstring bname[N];long bnumber[N];int bblong[N];string bwriter[N];string bputout[N];string bputtime[N];int bsale[N];int bkucunnum[N];class Book{  public:    string bookname;    int booknumber;    int bookblong;    string bookwriter;    string bookputout;    string bookputtime;    int booksale;    int bookkucunnum;    static long bookmaxnum;    void showall();    void showinformation();    void newinformation();    void showbyname();    void showbyblong(int blong);    void showbysale(int min,int max);    void showbynum(long number);    void RefreshInformation();      void DeleteInformation();      static int MaxNum();  };class Data{   public:    string bookname;    int booknumber;    int bookblong;    string bookwriter;    string bookputout;    string bookputtime;    int booksale;    int bookkucunnum;    static long bookmaxnum;      void WriteInformation(int num);    void ReadOut();      void RefreshMaxNum(int num);  };long Book::bookmaxnum=0001;int Book::MaxNum()  {      int MN = 0;      ifstream myf;      myf.open("bookMaxNum.txt");      myf>>MN;       myf.close();      return MN;  }void Book::newinformation(){      cout<<"新书籍名称:";    cin>>Book::bookname;    cout<<"新书籍编号:";    cin>>Book::booknumber;    cout<<"书籍类型[科普类为1,教辅类为2,文学类为3,周刊类为4,生活类为5]:";    cin>>Book::bookblong;    cout<<"书籍作者:";    cin>>Book::bookwriter;    cout<<"书籍出版社 :";    cin>>Book::bookputout;    cout<<"书籍出版日期[格式XXXX/XX/XX]:";    cin>>Book::bookputtime;    cout<<"书籍售价:";    cin>>Book::booksale;    cout<<"书籍库存量:";    cin>>Book::bookkucunnum;    Data database;    database.ReadOut();    int MaxNum=Book::MaxNum();    bname[MaxNum]=Book::bookname;    bnumber[MaxNum]=Book::booknumber;    bblong[MaxNum]=Book::bookblong;    bwriter[MaxNum]=Book::bookwriter;    bputout[MaxNum]=Book::bookputout;    bputtime[MaxNum]=Book::bookputtime;    bsale[MaxNum]=Book::booksale;    bkucunnum[MaxNum]=Book::bookkucunnum;    database.WriteInformation(1);      cout<<" 添加新成员成功!"<<endl;      return;}void Book::showinformation(){      int a,b,min,max;    long c;    Book e;    cout<<"**********************************************"<<endl;    cout<<"* 请输入查询方式 *"<<endl;    cout<<"* 1、输出全部书籍信息 *"<<endl;       cout<<"* 2、按书籍编号输出 *"<<endl;    cout<<"* 3、按书籍类型输出 *"<<endl;    cout<<"* 4、按书籍售价输出 *"<<endl;    cout<<"**********************************************"<<endl;    cin>>a;    switch(a)    {    case 1:       cout<<"书籍全部信息如下:"<<endl;    showall();      break;    case 2:       cout<<"请输入要查询书籍的编号:";    cin>>c;    e.showbynum(c);    break;    case 3:    cout<<"请输入要查询书籍的类型[科普类为1,教辅类为2,文学类为3,周刊类为4,生活类为5]:";    cin>>b;    e.showbyblong(b);    break;    case 4:    cout<<"请输入要查询书籍的售价:"<<endl;    cout<<"查询售价的最小值:";    cin>>min;    cout<<"查询售价的最大值:";    cin>>max;    e.showbysale(min,max);    break;    default:      cout<<"输入命令出错!"<<endl;    break;    }}void Book::showall(){    int i;    long number;    for(i=0;i<Book::MaxNum();i++)      {        number = bnumber[i];          showbynum(number);      }  }void Book::showbyblong(int blong){    int i;    switch(blong)    {    case 1:       cout<<" 科普类书籍有以下:"<<endl;    case 2:    cout<<" 教辅类书籍有以下:"<<endl;    case 3:    cout<<" 文学类书籍有以下:"<<endl;    case 4:    cout<<" 周刊类书籍有以下:"<<endl;    case 5:    cout<<" 生活类书籍有以下:"<<endl;    }    for(i=0;i<Book::MaxNum();i++)      {      if(bblong[i] == blong)      {    long number = bnumber[i];      showbynum(number);      }      else continue;      }  }void Book::showbysale(int min, int max){    int i;      for(i=0;i<Book::MaxNum();i++)      {          if(bsale[i]>=min&&bsale[i]<=max)          {            long number = bnumber[i];              showbynum(number);          }          else continue;      }}void Book::showbynum(long number)  {    int i;       for(i=0;i<Book::MaxNum();i++)       {     if(bnumber[i] == number)       {       cout<<"**********************************"<<endl;       cout<<"书籍编号 >"<<bnumber[i]<<endl;       cout<<" 书籍名称 >"<<bname[i]<<endl;       cout<<"书籍所属类型 >";       switch (bblong[i])       {       case 1:cout<<"科普类 "<<endl;     break;       case 2:cout<<"教辅类 "<<endl;     break;       case 3:cout<<"文学类 "<<endl;     break;       case 4:cout<<" 周刊类"<<endl;     break;       case 5:cout<<"生活类 "<<endl;     break;       }     cout<<" 书籍作者 >"<<bwriter[i]<<endl;     cout<<" 书籍出版社 >"<<bputout[i]<<endl;     cout<<" 书籍出版日期 >"<<bputtime[i]<<endl;     cout<<" 书籍售价 >"<<bsale[i]<<"元"<<endl;     cout<<" 书籍库存>"<<bkucunnum[i]<<endl;     cout<<"**********************************"<<endl;       }     else continue;       }}void Book::RefreshInformation(){    int cNum = 0001;      Data database;      database.ReadOut();      cout<<"请输入您要修改的书籍编号: >";      cin>>cNum;      int MN;      MN = Book::MaxNum();      for(int i=0;i<MN;i++)      {          if(bnumber[i] == cNum)          {              Book::showbynum(cNum);              cout<<"请输入该书籍的新信息: "<<endl;              cout<<"新书籍的名称: ";              cin>>Book::bookname;              bname[i] = Book::bookname;              cout<<"新的编号:";              cin>>Book::booknumber;                  bnumber[i] = Book::booknumber;              cout<<"新书籍的所属类型,请输入相应类型的序号:"<<endl;              cout<<" [1:科普类 2:教辅类 3:文学类 4:周刊类 5:生活类] ";              cin>>Book::bookblong;              while(Book::bookblong !=1&&Book::bookblong !=2\                && Book::bookblong !=3&&Book::bookblong !=4\                && Book::bookblong !=5)              {                  cout<<"输入有误,请重新输入:"<<endl;                  cout<<" [1:科普类 2:教辅类 3:文学类 4:周刊类 5:生活类] ";                cin>>Book::bookblong;              }              bblong[i] = Book::bookblong;              cout<<"新书籍作者: ";              cin>>Book::bookwriter;              bwriter[i] = Book::bookwriter;              cout<<"新书籍出版社: ";              cin>>Book::bookputout;              bputout[i] = Book::bookputout;              cout<<"新书籍出版日期: ";              cin>>Book::bookputtime;              bputtime[i] = Book::bookputtime;              cout<<"新书籍售价:";            cin>>Book::booksale;//            bsale[i]=Book::booksale;            cout<<"新书籍库存量:";            cin>>Book::bookkucunnum;            bkucunnum[i]=Book::bookkucunnum;            break;          }      }      database.WriteInformation(0);}void Book::DeleteInformation()   {      char tmp;      int cNum = 0001;      Data database;      database.ReadOut();      //void Book::showbynum(long number);      cout<<"请输入您要删除的书籍编号>: ";      cin>>cNum;      int MN;      MN =Book::MaxNum();    int i;    for(i=0;i<MN;i++)      {          if(bnumber[i] == cNum)              Book::showbynum(cNum);      }      cout<<"确认要删除该书籍信息?(Y为确认 N为放弃): ";      cin>>tmp;      if(tmp=='y')      {          if(i==MN-1)              database.WriteInformation(-1);          else          {              for(int j=i;j<MN-1;j++)            {                bnumber[j] = bnumber[j+1];            }              database.WriteInformation(-1);          }          cout<<" 删除操作成功 ! "<<endl;      }  }void Data::WriteInformation(int num)   {      Data::RefreshMaxNum(num);      ofstream myfile("book.txt");      Book e;      int MN;      MN = e.MaxNum();      for(int i=0;i<MN;i++)      {          myfile<<bnumber[i]<<'\n'<<bname[i]<<'\n'<<bblong[i]<<'\n'\            <<bwriter[i]<<'\n'<<bputout[i]<<'\n'<<bputtime[i]<<'\n'\            <<bsale[i]<<'\n'<<bkucunnum[i]<<'\n';      }      myfile.close();      return;  }void Data::ReadOut()  {    ifstream myfile("book.txt");      Book e;      int MN;      MN = e.MaxNum();      for(int i=0 ;i<MN;i++)      {          myfile>>bnumber[i]>>bname[i]>>bblong[i]>>bwriter[i]\            >>bputout[i]>>bputtime[i]>>bsale[i]>>bkucunnum[i];    }      myfile.close();  }void Data::RefreshMaxNum(int num)   {      int MaxNum = 0;      ifstream myif("bookMaxNum.txt");      myif>>MaxNum;      myif.close();      MaxNum = MaxNum+num;      ofstream myof("bookMaxNum.txt");      myof<<MaxNum;      myof.close();  }int main(){       int select=0;    while(select!=5)    {          cout<<"**********************************************"<<endl;        cout<<"* 小型书店管理系统 *"<<endl;        cout<<"* 1、新建并输入书籍信息 *"<<endl;        cout<<"* 2、查询书籍信息并输出 *"<<endl;        cout<<"* 3、更新书籍信息 *"<<endl;        cout<<"* 4、删除书籍信息 *"<<endl;        cout<<"* 5、退出系统 *"<<endl;        cout<<"**********************************************"<<endl;        cout<<" 请选择您要服务的类别: " ;          cin>>select;          Book e;          Data database;          switch(select)        {        case 1:              e.newinformation(); break;          case 2:              database.ReadOut();              e.showinformation(); break;          case 3:              e.RefreshInformation(); break;          case 4:              e.DeleteInformation(); break;          case 5: break;          default:              cout<<"命令错误!"<<endl;          }          if(select == 5)              break;      }      exit(1);      return 0;  } 

热点排行