读书人

local function definitions are ille

发布时间: 2012-07-31 12:33:46 作者: rapoo

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;  } 

读书人网 >C++

热点推荐