當前位置:編程學習大全網 - 源碼下載 - 求壹個匯編小程序

求壹個匯編小程序

#include <iostream.h>

#include <iomanip.h>

#include <string.h>

#include <fstream.h>

const int Maxr=100; //讀者上限

const int Maxb=100; //圖書上限

const int Maxbor=5; //每個讀者最多借借5本

class Reader //讀者類

{

int tag; //刪除標記 1:已刪,0:未刪

int no; //讀者編號

char name[10]; //讀者姓名

int borbook[Maxbor]; //所借圖書

public:

Reader() {}

char *getname() {return name;} //獲取姓名

int gettag() {return tag;} //獲取刪除標記

int getno() {return no;} //獲取讀者編號

void setname(char na[]) //設置姓名

{

strcpy(name,na);

}

void delbook() {tag=1;} //設置刪除標記

void addreader(int n,char *na) //增加讀者

{

tag=0;

no=n;

strcpy(name,na);

for (int i=0;i<Maxbor;i++)

borbook[i]=0;

}

void borrowbook(int bookid) //借書操作

{

for (int i=0;i<Maxbor;i++)

{

if (borbook[i]==0)

{

borbook[i]=bookid;

return;

}

}

}

int retbook(int bookid) //還書操作

{

for (int i=0;i<Maxbor;i++)

{

if (borbook[i]==bookid)

{

borbook[i]=0;

return 1;

}

}

return 0;

}

void disp() //輸出讀者信息

{

cout<<setw(5)<<no<<setw(10)<<name<<"借書編號:[";

for (int i=0;i<Maxbor;i++)

if (borbook[i]!=0)

cout<<borbook[i]<<"|";

cout<<"]"<<endl;

}

};

class RDatabase //讀者庫類

{

int top; //讀者記錄指針

Reader read[Maxr]; //讀者記錄

public:

RDatabase() //構造函數,將reader.txt讀到read[]中

{

Reader s;

top=-1;

fstream file("reader.txt",ios::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].getno()==readerid && read[i].gettag()==0)

return &read[i];

return NULL;

}

void disp() //輸出所有讀者信息

{

for (int i=0;i<=top;i++)

read[i].disp();

}

void readerdata(); //讀者庫維護

~RDatabase() //析構函數,將read[]寫入reader.txt文件中

{

fstream file("reader.txt",ios::out);

for (int i=0;i<=top;i++)

if (read[i].gettag()==0)

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

file.close();

}

};

void RDatabase::readerdata()

{

int choice=1;

char rname[20];

int readerid;

Reader *r;

while (choice!=0)

{

cout<<"讀者維護 1:新增 2:更改 3:刪除 4:查找 5:顯示 6:全刪 0:退出=>";

cin>>choice;

switch (choice)

{

case 1:

cout<<"輸入讀者編號:";

cin>>readerid;

cout<<"輸入讀者姓名:";

cin>>rname;

addreader(readerid,rname);

break;

case 2:

cout<<"輸入讀者編號:";

cin>>readerid;

r=query(readerid);

if (r==NULL)

{

cout<<"該讀者不存在"<<endl;

break;

}

cout<<"輸入新的姓名:";

cin>>rname;

r->setname(rname);

break;

case 3:

cout<<"輸入讀者編號:";

cin>>readerid;

r=query(readerid);

if (r==NULL)

{

cout<<"該讀者不存

  • 上一篇:貴港網站源代碼
  • 下一篇:哪位兄弟能給壹個用匯編語言編寫的打印程序?
  • copyright 2024編程學習大全網