查找汇编程序小程序
# 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“读者不存在。