查找汇编程序小程序

# include & ltiostream.h & gt

# include & ltiomanip.h & gt

# include & ltstring.h & gt

# include & ltfstream.h & gt

const int Maxr = 100;//最大读取器数量

const int Maxb = 100;//书籍的最大数量

const int max bor = 5;//每位读者最多可以借阅5本书。

类读取器//读取器类

{

int标签;//删除标记1:已删除,0:未删除。

int号;//阅读器编号

字符名称[10];//读者姓名

int bor book[max bor];//借书

公共:

Reader() {}

char * getname(){ return name;}//获取名称

int gettag(){ return tag;}//获取删除标记

int getno(){ return no;}//获取阅读器编号

Void setname(char na[]) //设置名称。

{

strcpy(姓名,不适用);

}

void del book(){ tag = 1;}//设置删除标志

Void addreader(int n,char *na) //增加读取器。

{

tag = 0;

no = n;

strcpy(姓名,不适用);

for(int I = 0;我& ltMaxbori++)

bor book[I]= 0;

}

Void borrowbook(int bookid) //借入操作

{

for(int I = 0;我& ltMaxbori++)

{

if (borbook[i]==0)

{

bor book[I]= bookid;

返回;

}

}

}

Int retbook(int bookid) //图书返回操作

{

for(int I = 0;我& ltMaxbori++)

{

if (borbook[i]==bookid)

{

bor book[I]= 0;

返回1;

}

}

返回0;

}

Void disp() //输出读取器信息。

{

cout & lt& ltsetw(5)& lt;& lt否& lt& ltsetw(10)& lt;& lt名称& lt& lt“借阅号:[”;

for(int I = 0;我& ltMaxbori++)

if (borbook[i]!=0)

cout & lt& ltbor book[I]& lt;& lt"|";

cout & lt& lt"]" & lt;& ltendl

}

};

class RDA base//读者库类

{

int top//读取器记录指针

阅读器read[Maxr];//阅读器记录

公共:

RDatabase() //构造函数将reader.txt读入read[]。

{

读者s;

top =-1;

fstream文件(" reader.txt ",IOs::in);

while (1)

{

file . read((char *)& amp;s,sizeof(s));

如果(!文件)中断;

top++;

read[top]= s;

}

file . close();

}

Void clear() //删除所有阅读器信息。

{

top =-1;

}

Int addreader (int n,char *na) //添加读取器时,检查它们是否存在。

{

reader * p = query(n);

if (p==NULL)

{

top++;

阅读【顶部】。addreader(n,na);

返回1;

}

返回0;

}

Reader *query(int readerid) //按编号搜索。

{

for(int I = 0;我& lt= topi++)

如果(读[我]。getno()= = readerid & amp;& amp读[我]。gettag()==0)

返回& amp改为[I];

返回NULL

}

Void disp() //输出所有读取器信息。

{

for(int I = 0;我& lt= topi++)

读[我]。disp();

}

void reader data();//读者库维护

~RDatabase() //析构函数,将read[]写入reader.txt文件。

{

fstream文件(" reader.txt ",IOs::out);

for(int I = 0;我& lt= topi++)

如果(读[我]。gettag()==0)

file . write((char *)& amp;read[i],sizeof(read[I]);

file . close();

}

};

void RDatabase::readerdata()

{

int choice = 1;

char rname[20];

int readerid

reader * r;

而(选择!=0)

{

cout & lt& lt“阅读器维护1:添加2:更改3:删除4:查找5:显示6:全部删除0:退出= >”;

CIN & gt;& gt选择;

开关(选择)

{

案例1:

cout & lt& lt"输入读卡器号:";

CIN & gt;& gtreaderid

cout & lt& lt"输入读取器名称:";

CIN & gt;& gtrname

addreader(readerid,rname);

打破;

案例二:

cout & lt& lt"输入读卡器号:";

CIN & gt;& gtreaderid

r = query(readerid);

if (r==NULL)

{

cout & lt& lt"读者不存在"

打破;

}

cout & lt& lt”输入新名称:“;

CIN & gt;& gtrname

r-& gt;set name(rname);

打破;

案例三:

cout & lt& lt"输入读卡器号:";

CIN & gt;& gtreaderid

r = query(readerid);

if (r==NULL)

{

cout & lt& lt“读者不存在。