C语言图书管理系统课程设计报告[1].docx

上传人:牧羊曲112 文档编号:3155231 上传时间:2023-03-11 格式:DOCX 页数:12 大小:38.94KB
返回 下载 相关 举报
C语言图书管理系统课程设计报告[1].docx_第1页
第1页 / 共12页
C语言图书管理系统课程设计报告[1].docx_第2页
第2页 / 共12页
C语言图书管理系统课程设计报告[1].docx_第3页
第3页 / 共12页
C语言图书管理系统课程设计报告[1].docx_第4页
第4页 / 共12页
C语言图书管理系统课程设计报告[1].docx_第5页
第5页 / 共12页
亲,该文档总共12页,到这儿已超出免费预览范围,如果喜欢就下载吧!
资源描述

《C语言图书管理系统课程设计报告[1].docx》由会员分享,可在线阅读,更多相关《C语言图书管理系统课程设计报告[1].docx(12页珍藏版)》请在三一办公上搜索。

1、C语言图书管理系统课程设计报告1#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 name10; /读者姓名 int borbookMaxbor;/所借图书 public: Read

2、er 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;iMaxbor;i+) 0 borbooki=0; void borrowbook(i

3、nt bookid)/借书操作 for(int i=0;iMaxbor;i+) if (borbooki=0) borbooki=bookid; return; int retbook(int bookid)/还书操作 for(int i=0;iMaxbor;i+) if(borbooki=bookid) borbooki=0; return 1; return 0; void disp/读出读者信息 cout setw(5) no setw(10) name借书编号:; for(int i=0;iMaxbor;i+) if(borbooki!=0) cout borbooki |; cout

4、 endl; 1 ; /读者类库,实现建立读者的个人资料 class RDatabase private: int top; /读者记录指针 Reader readMaxr;/读者记录 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+; readtop=s; file.close; /关闭 reader.txt vo

5、id clear/删除所有读者信息 top=-1; int addreader(int n,char *na)/添加读者时先查找是否存在 Reader *p=query(n); if (p=NULL) top+; 2 readtop.addreader(n,na); return 1; return 0; Reader *query(int readerid)/按编号查找 for (int i=0;i=top;i+) if (readi.getno=readerid & readi.gettag=0) return &readi; return NULL; void disp /输出所有读者信

6、息 for (int i=0;i=top;i+) readi.disp; void readerdata;/读者库维护 RDatabase /析构函数,将read写到reader.txt文件中 fstream file(reader.txt,ios:out); for (int i=0;i=top;i+) if (readi.gettag=0) file.write(char *)&readi,sizeof(readi); file.close; ; void RDatabase:readerdata char choice; 3 char rname20; int readerid; Rea

7、der *r; while (choice!=0) cout nnttt读 者 维 护nnntt 1 新 增nntt 2 更 改nntt 3 删 除nntt 4 查 找nntt 5 显 示nntt 6 全 删nntt 0 退 出 choice; switch (choice) case 1: cout readerid; cout rname; addreader (readerid,rname); break; case 2: cout readerid; r=query(readerid); if (r=NULL) cout 该读者不存在 endl; break; cout rname;

8、r-setname(rname); break; case 3: cout readerid; r=query(readerid); if (r=NULL) 4 cout 该读者不存在 delbook; break; case 4: cout readerid; r=query(readerid); if (r=NULL) cout 该读者不存在disp; break; case 5: disp; break; case 6: clear; break; default:cout输入错误,请从新输入:;break; /图书类,实现对图书的描述,图书的编号,书名,借出,还入等 class Boo

9、k 5 private: int tag;/删除标记 1:已删 0:未删 int no;/图书编号 char name20;/书名 int onshelf;/是否再架 1:再架 2:已借 public: Book char *getname return name; /获取姓名 int getno return no; /获取图书编号 int gettag return tag; /获取删除标记 void setname(char na)/设置书名 strcpy(name,na); void delbook tag=1;/删除图书 void addbook(int n,char *na)/增加

10、图书 tag=0; no=n; strcpy(name,na); onshelf=1; int borrowbook/借书操作 if (onshelf=1) onshelf=0; return 1; return 0; void retbook/还书操作 onshelf=1; 6 void disp/输出图书 cout setw(6) no setw(18) name setw(10) (onshelf=1? 在架:已借) endl; ; /图书库类,实现对图书的维护,查找,删除等 class BDatabase private: int top; /图书记录指针 Book bookMaxb;

11、 /图书记录 public: BDatabase/构造函数,将book.txt读到book中 Book b; top=-1; fstream file(book.txt,ios:in); while (1) file.read(char *)&b,sizeof(b); if (!file) break; top+; booktop=b; file.close; void clear/全删 top=-1; 7 int addbook(int n,char *na)/增加图书 Book *p=query(n); if (NULL=p) top+; booktop.addbook(n,na); re

12、turn 1; return 0; Book *query(int bookid)/查找图书 for (int i=0;i=top;i+) if (booki.getno=bookid &booki.gettag=0) return &booki; return NULL; void bookdata;/图书库维护 void disp for (int i=0;i=top;i+) if (booki.gettag=0) booki.disp; BDatabase/析构函数,将book写到book.txt文件中 fstream file(book.txt,ios:out); for (int i

13、=0;i=top;i+) if (booki.gettag=0) file.write(char *)&booki,sizeof(booki); file.close; 8 ; void BDatabase:bookdata char choice; char bname40; int bookid; Book *b; while (choice!=0) cout nnnttt图 书 维 护 endlendl; couttt1 新 增n tt2 更 改ntt3 删 除ntt4 查 找ntt5 显 示ntt6 全 删ntt0 退 出 choice; switch (choice) case 1:

14、 cout 输入图书编号: bookid; cout 输入图书书名: bname; addbook(bookid,bname); break; case 2: cout 输入图书编号: bookid; b=query(bookid); if (b=NULL) cout 该图书不存在 endl; break; cout 输入新的书名: bname; b-setname(bname); break; case 3: 9 cout 读入图书编号: bookid; b=query(bookid); if (b=NULL) cout 该图书不存在 delbook; break; case 4: cout

15、 读入图书编号: bookid; b=query(bookid); if (b=NULL) cout 该图书不存在disp; break; case 5: disp; break; case 6: clear; break; default:cout输入错误,请从新输入:; /main 函数的实现,程序的主界面的引导 10 void main char choice; int bookid,readerid; RDatabase ReaderDB; Reader *r; BDatabase BookDB; Book *b; while(choice!=0) cout endlendlttt 图

16、 书 管 理 系 统nnn; cout ttt1 借 书nnttt2 还 书 nnttt3 图 书 维 护nnttt4 读 者 维 护nnttt0 离 开 choice; switch (choice) case 1: cout readerid; cout bookid; r=ReaderDB.query(readerid);/按编号查找 if (NULL=r) cout 不存在该读者,不能借书 endl; break; b=BookDB.query(bookid); if (b=NULL) cout 不存在该图书,不能借书borrowbook=0) 11 cout 该图书已借出,不能借书b

17、orrowbook(b-getno); break; case 2: coutreaderid; cout bookid; r=ReaderDB.query(readerid); if (r=NULL) cout 不存在该读者,不能还书 endl; break; b=BookDB.query(bookid); if (b=NULL) cout 不存在该图书,不能还书 retbook; r-retbook(b-getno); break; case 3: BookDB.bookdata; break; case 4: ReaderDB.readerdata; break; default:cout输入错误,请从新输入:; 12 13

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 生活休闲 > 在线阅读


备案号:宁ICP备20000045号-2

经营许可证:宁B2-20210002

宁公网安备 64010402000987号