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