图书信息管理的设计与实现(C课程设计)(2)

2019-03-11 09:23

进入借书模块,开始 输出提示信息 输入读者编号和借阅的图书编号 读者是否存在 Y N 提示错误信息 图书是否存在 Y 图书是否全部借出 N Y 保存借书信息 提示错误信息 提示错误信息 提示成功信息 退出借书模块,结束 图2-5 借书模块流程图

2.2源程序代码

#include #include #include

#include //输入/输出文件流类 using namespace std;

const int Maxr=100;//最多的读者 const int Maxb=100;//最多的图书

const int Maxbor=5;//每位读者最多借五本书 //读者类,实现对读者的信息的描述 class Reader {

private:

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; }//设置删除标记 1:已删 0:未删 void addreader(int n,char *na)//增加读者 { tag=0; no=n;

strcpy(name,na);

for(int i=0;i

void borrowbook(int bookid)//借书操作 { for(int i=0;i

} } }

int retbook(int bookid)//还书操作 { for(int i=0;i

void disp()//读出读者信息 { cout << setw(5) << no <

//读者类库,实现建立读者的个人资料 class RDatabase {

private:

int top; //读者记录指针

Reader read[Maxr];//读者记录 public:

RDatabase() //构造函数,将reader.txt读到read[]中 { Reader s; top=-1; fstream file(\打开一个输入文件 while (1) { file.read((char *)&s,sizeof(s)); if (!file)break; top++; read[top]=s; }

file.close(); //关闭 reader.txt }

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(\ 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() {

char choice; char rname[20]; int readerid;

Reader *r;

while (choice!='0') { cout <<\读 者 维 护\\n\\n\\n\\t\\t 1 新 增\\n\\n\\t\\t 2 更 改\\n\\n\\t\\t 3 删 除\\n\\n\\t\\t 4 查 找\\n\\n\\t\\t 5 显 示\\n\\n\\t\\t 6 全 删\\n\\n\\t\\t 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 << \该读者不存在 \ break; } cout << \输入新的姓名:\ cin >> rname; r->setname(rname); break; case '3': cout << \输入读者编号:\ cin >> readerid; r=query(readerid); if (r==NULL) { cout <<\该读者不存在\ break; } r->delbook(); break; case '4': cout << \读入读者编号:\ cin >> readerid; r=query(readerid); if (r==NULL)


图书信息管理的设计与实现(C课程设计)(2).doc 将本文的Word文档下载到电脑 下载失败或者文档不完整,请联系客服人员解决!

下一篇:党政领导干部经济责任同步审计的完善建议

相关阅读
本类排行
× 注册会员免费下载(下载后可以自由复制和排版)

马上注册会员

注:下载文档有可能“只有目录或者内容不全”等情况,请下载之前注意辨别,如果您已付费且无法下载或内容有问题,请联系我们协助你处理。
微信: QQ: