c++图书馆程序

来源:百度知道 编辑:UC知道 时间:2024/06/19 02:13:28
class rdatabase
{private:
int top; //读者记录指针
reader read[maxr];//读者记录
public:
rdatabase()
{reader s;
top=-1;
fstream file("E:\reader.txt",ios_base::in);
while(1)
{file.read((char *)&s,sizeof(s));
if(!file)break;
top++;
read[top]=s;}
file.close();}
void clear()//删除所有读者信息
{top=-1;}
int addreader(int n,char *na)//添加读者
{reader *p=query(n);
if(p==NULL)
{top++;
read[top].addreader(n,na);
return 1;
}
return 0;
}
reader *query(int readerid)//按编号查找
{for(int i=0;i<=top;i++)
if(read[i].getnumber()==readerid && read[i].getnote()==0) {return &read[i];}
return NULL;
}
};
这程序中reader s;是什么意思?为什么要用类reader来定义?
top=-1?为什么要赋值-1?void clear()//删除所有读者信息
{top=-1;}中为什么是top=-1?

class rdatabase//建立一个图书馆类
{private:
int top; //这里写错了吧;指针需要有*这个符号啊。。。
reader read[maxr];//读者记录
public:
rdatabase()
{reader s;//声明一个读者s
top=-1;//这里是一个指针初始化(自定义)
fstream file("E:\reader.txt",ios_base::in);
while(1)
{file.read((char *)&s,sizeof(s));
if(!file)break;
top++;
read[top]=s;}
file.close();}
void clear()//删除所有读者信息
{top=-1;}//回到初始化状态
int addreader(int n,char *na)//添加读者
{reader *p=query(n);
if(p==NULL)
{top++;
read[top].addreader(n,na);
return 1;
}
return 0;
}
reader *query(int readerid)//按编号查找
{for(int i=0;i<=top;i++)
if(read[i].getnumber()==readerid && read[i].getnote()==0) {return &read[i];}
return NULL;
}
};

“top=-1;”这种语句通常是为了避免程序异常的,类似栈的溢出(OVERFLOW)。
希望能帮上你。