ImageVerifierCode 换一换
格式:DOC , 页数:25 ,大小:272.80KB ,
资源ID:852591      下载积分:20 积分
快捷下载
登录下载
邮箱/手机:
温馨提示:
快捷下载时,用户名和密码都是您填写的邮箱或者手机号,方便查询和重复下载(系统自动生成)。 如填写123,账号就是123,密码也是123。
特别说明:
请自助下载,系统不会自动发送文件的哦; 如果您已付费,想二次下载,请登录后访问:我的下载记录
支付方式: 微信支付   
验证码:   换一换

加入VIP,免费下载资源
 

温馨提示:由于个人手机设置不同,如果发现不能下载,请复制以下地址【http://www.wodocx.com/d-852591.html】到电脑端继续下载(重复下载不扣费)。

已注册用户请登录:
账号:
密码:
验证码:   换一换
  忘记密码?
三方登录: 微信登录   QQ登录  

下载须知

1: 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。
2: 试题试卷类文档,如果标题没有明确说明有答案则都视为没有答案,请知晓。
3: 文件的所有权益归上传用户所有。
4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
5. 本站仅提供交流平台,并不能对任何下载内容负责。
6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

版权提示 | 免责声明

本文(图书馆登陆管理程序C++课程设计论文.doc)为本站会员(精***)主动上传,沃文网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。 若此文所含内容侵犯了您的版权或隐私,请立即通知沃文网(发送邮件至2622162128@qq.com或直接QQ联系客服),我们立即给予删除!

图书馆登陆管理程序C++课程设计论文.doc

1、目 录1题目描述22功能分析33系统设计43.1程序总体结构43.2主功能模块设计53.2.1 图书管理功能53.2.2 读者管理功能53.2.3 借阅管理功能53.3程序设计63.4类与函数的设计与实现73.4.1读者类73.4.2图书类83.4.3读者类库93.4.4图书库类104运行与测试结果125小结166参考文献17 第 1 页1题目描述 请设计一个图书登记管理程序。该程序应该具有下列功能:(1) 通过键盘输入某本图书的信息,并能对图书进行增加、修改、删除和查找;(2) 通过键盘输入读者信息,并可以增加读者、修改读者、删除读者、查找读者和显示读者信息;(3) 实现借阅功能;(4) 实

2、现还书功能。【题目要求】(1) 按照分析、设计、编码、调试和测试的软件开发过程完成这个应用程序;(2) 图书信息应该包含:编号、书名、作者姓名、出版社、价格等;(3) 为各项操作功能设计一个菜单。应用程序运行后,先显示这个菜单,然后用户通过菜单项选择希望进行的操作项目。【输入要求】应用程序运行后,在屏幕上显示一个菜单(菜单显示外观见前面的图示)。用户可以根据需求,选定相应的操作项目。进入每个操作后,根据应用程序的提示信息,从键盘输入相应的信息。【输出要求】(1) 应用程序运行后,要在屏幕上显示一个菜单;(2) 要求用户输入数据时,要给出清晰、明确的提示信息,包括输入的数据内容、格式及结束方式等

3、。第 2 页2功能分析 根据图书管理的实际要求,结合本系统开发的要求,对与本章所要介绍的“图书管理系统”的需求实现如下功能:1、书籍管理部分:书籍信息管理包括书籍信息的添加、书籍信息的修改、书籍信息的查询、书籍信息的删除等。2、 读者管理部分:读者信息管理包括添加读者信息、修改读者信息、删除读者信息、查询读者信息和读者借阅图书情况等。3、 借阅管理部分:这一部分包括借书信息管理和还书信息管理两部分。main()函数图书维护模块读者维护模块还书模块借书模块图1功能模块图第 25 页3系统设计3.1程序总体结构开始选择相应功能(04)4、读者维护2、还书1、借书5、离开3、图书维护1、 新增2、

4、更改3、 删除4、 查找5、 显示6、 全删1、 新增2、 更改3、 删除4、 查找5、 显示6、 全删图2程序结构图3.2主功能模块设计3.2.1 图书管理功能书籍信息管理:包括书籍信息的添加、书籍信息的修改、书籍信息的查询、书籍信息的删除、书籍信息的显示和书籍信息的全删等6部分功能。其中,书籍信息包括图书编号、书名、图书作者、出版社、价格已及是否在架。 3.2.2 读者管理功能读者信息管理:包括读者信息的添加、读者信息的修改、读者信息的查询和读者信息的删除、读者信息的显示和读者信息的全删等6部分功能。其中,读者信息包括读者姓名、读者编号和已借书数量及编号。3.2.3 借阅管理功能借书管理:

5、借阅信息包括图书编号、读者编号。还书管理:还书信息与借阅信息各部分明细相同。3.3程序设计/main() 函数的实现,程序的主界面的引导 void main() char choice; Book *b; while(choice!=0) cout endlendlttt 图 书 管 理 系 统nnn; cout ttt1 借 书nnttt2 还 书 nnttt3 图 书 维 护nnttt4 读 者 维 护nnttt0 离 开 choice;switch (choice) case 1: 借书 cout 不存在该读者,不能借书 endl; cout 不存在该图书,不能借书 endl; .cou

6、t 该图书已借出,不能借书 endl; break; case 2: 还书cout 不存在该读者,不能还书 endl; cout 不存在该图书,不能还书 endl; break; case 3: 图书维护break; case 4: 读者维护break; default: cout已退出!; 3.4类与函数的设计与实现3.4.1读者类/实现对读者的信息的描述class Reader private: int tag; /删除标记 1:已删 0:未删 int no; /读者编号 char name10; /读者姓名 int borbookMaxbor;/所借图书 public: Reader()

7、 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+) borbooki=0; void borrowbo

8、ok(int 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 ;

9、 cout endl; ;3.4.2图书类/实现对图书的描述,图书的编号,书名,借出,还入等class Book private: int tag;/删除标记 1:已删 0:未删 int no;/图书编号 char name20;/书名char author100;/作者char pub200;/出版社int price;/价格int onshelf;/是否再架 1:再架 2:已借 public: Book() char *getname() return name; /获取姓名 int getno() return no; /获取图书编号int getprice() return price

10、; int gettag() return tag; /获取删除标记 void setname(char na)/设置书名 strcpy(name,na); void setauthor(char au)/设置作者 strcpy(author,au); void setpub(char pu)/设置出版社 strcpy(pub,pu); void delbook() tag=1;/删除图书 void addbook(int n,char *na,char *au,char *pu,int t)/增加图书 tag=0; no=n; strcpy(name,na); strcpy(author,a

11、u); strcpy(pub,pu); price=t;onshelf=1; int borrowbook()/借书操作 if (onshelf=1) onshelf=0; return 1; return 0; void retbook()/还书操作 onshelf=1; void disp()/输出图书 cout setw(6) no setw(18) name setw(20) author setw(30) pub setw(6) price setw(10) (onshelf=1? 在架:已借) endl; ;3.4.3读者类库/实现建立读者的个人资料 class RDatabase

12、 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 void clear()/删除所有读者信息 top=-1; int addreade

13、r(int n,char *na)/添加读者时先查找是否存在Reader *p=query(n);if (p=NULL) top+; 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() /输出所有读者信息 for (int i=0;i=top;i+) readi.disp(

14、); 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(); ;3.4.4图书库类/实现对图书的维护,查找,删除等 class BDatabase private: int top; /图书记录指针 Book bookMaxb; /图书记录 public: BD

15、atabase()/构造函数,将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; int addbook(int n,char *na,char *au,char *pu,int t)/增加图书 Book *p=query(n); if (NULL=p) top+; booktop.addboo

16、k(n,na,au,pu,t); return 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 f

17、ile(book.txt,ios:out); for (int i=0;i=top;i+) if (booki.gettag()=0) file.write(char *)&booki,sizeof(booki); file.close(); ;4运行与测试结果运行程序,在主界面选择要进行的操作。选择3 图书维护操作,进入图书维护界面。选择1新增操作,依次输入图书信息。若有无用信息,可以选择3删除操作,或者2更改操作。输入完毕后,选择5显示操作,可以显示刚输入的信息,核对是否正确。界面上有3删除,4查找和6全删操作,可依次进行操作。0退出操作,离开图书维护界面,回到主界面。选择4读者维护,进行

18、读者信息的添加,删除,查找等操作。已有图书和读者,可以进行借书操作。在图书维护的显示操作和读者维护的显示操作都可以看出借书成功。经读者维护中的5显示操作,看出确实已经借书成功。下面进行还书操作。且可以通过图书维护中显示操作,说明图书以在架。5小结本课程设计的目的在于开发一个“图书管理系统”,真正成为图书管理提供的一个电子平台。需要注意的是,本设计所介绍的系统只是图书管理系统的一个框架,由于现实管理的复杂性,在实际信息系统的开发中,还需要用户对实际需求进一步明确,对系统功能进一步加强。从开始接到课程设计题目到系统的实现,再到论文文章的完成,每走一步对我来说都是新的尝试与挑战。在这段时间里我学到了

19、很多知识也有很多感受。从对c+很不了解的状态,我开始独立的学习和试验,查看相关的资料和书籍,让自己头脑中模糊的概念逐渐清晰,使自己非常稚嫩作品一步步完善起来,每一次改进都是我学习的收获,每一次试验的成功都会让我兴奋好长一段时间。虽然我的作品不是很成熟,还有很多不足之处,但当看着自己的程序能够正常的运行,就已经是莫大的幸福和欣慰。我相信其中的酸甜苦辣都最终会化为甜美的甘泉。这次做课程设计的经历也会使我终身受益,我感受到做设计是要真真正正的用心去做的一件事,是真正自己学习的过程和研究的过程,没有学习就没有研究的能力,没有自己的研究,就不会有所突破,那也就不叫课程设计了。希望这次的经历能让我在以后的

20、学习中激励我继续进步。6参考文献1、郑阿奇,C#实用教程,电子工业出版社,2008.12、叶核亚,JAVA 2程序设计实用教程(第2版),电子工业出版社,2007.13、陈圣国,C+程序设计,西安电子科技大学出版社,2008.1附录(程序源代码)#include #include #include #include /输入/输出文件流类 using namespace std; const int Maxr=100;/最多的读者 const int Maxb=100;/最多的图书 const int Maxbor=5;/每位读者最多借五本书class Reader private: int t

21、ag; /删除标记 1:已删 0:未删 int no; /读者编号 char name10; /读者姓名 int borbookMaxbor;/所借图书 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

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

23、booki!=0) cout borbooki ; cout endl; ; class RDatabase private: int top; Reader readMaxr; public: RDatabase() 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(); void clear() top=-1; int addreader(int n,char *na)

24、 Reader *p=query(n);if (p=NULL) top+; 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() for (int i=0;i=top;i+) readi.disp(); void readerdata();/读者库维护 RDatabase() fstre

25、am 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; char rname20; int readerid; Reader *r; while (choice!=0) cout nnttt读 者 维 护nnntt 1 新 增nntt 2 更 改nntt 3 删 除nntt 4 查 找nntt 5 显 示nntt

26、 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; r-setname(rname); break; case 3: cout readerid; r=query(readerid); if (r=NULL) cout 该读者不存在 delbook

27、(); 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 Book private: int tag;/删除标记 1:已删 0:未删 int no;/图书编号 char name20;/书名char author100;/作者char pub200;/出版社int price;/价格int onshelf;/是否再架 1

28、:再架 2:已借 public: Book() char *getname() return name; /获取姓名 int getno() return no; /获取图书编号int getprice() return price; int gettag() return tag; /获取删除标记 void setname(char na) strcpy(name,na); void setauthor(char au) strcpy(author,au); void setpub(char pu) strcpy(pub,pu); void delbook() tag=1;/删除图书 voi

29、d addbook(int n,char *na,char *au,char *pu,int t) tag=0; no=n; strcpy(name,na); strcpy(author,au); strcpy(pub,pu); price=t;onshelf=1; int borrowbook() if (onshelf=1) onshelf=0; return 1; return 0; void retbook() onshelf=1; void disp() cout setw(6) no setw(18) name setw(20) author setw(30) pub setw(6

30、) price setw(10) (onshelf=1? 在架:已借) endl; ; class BDatabase private: int top; Book bookMaxb; public: BDatabase() 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; int addbook(int n,char *na

31、,char *au,char *pu,int t) Book *p=query(n); if (NULL=p) top+; booktop.addbook(n,na,au,pu,t); return 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.

32、gettag()=0) booki.disp(); BDatabase() fstream file(book.txt,ios:out); for (int i=0;i=top;i+) if (booki.gettag()=0) file.write(char *)&booki,sizeof(booki); file.close(); ;void BDatabase:bookdata() char choice; char bname18,bauthor20,bpub30; int bookid,bookpri; Book *b; while (choice!=0) cout nnnttt图

33、书 维 护 endlendl; couttt1 新 增n tt2 更 改ntt3 删 除ntt4 查 找ntt5 显 示ntt6 全 删ntt0 退 出 choice;switch (choice) case 1: cout 输入图书编号: bookid; cout 输入图书书名: bname;cout 输入图书作者: bauthor;cout 输入图书出版社: bpub; cout 输入图书价格: bookpri;addbook(bookid,bname,bauthor,bpub,bookpri); break; case 2: cout 输入图书编号: bookid; b=query(bo

34、okid); if (b=NULL) cout 该图书不存在 endl; cout 输入新的书名: bname; b-setname(bname); cout 输入新的作者: bauthor; b-setauthor(bauthor); cout 输入新的出版社: bpub; b-setpub(bpub); cout 输入新的价格: bookpri; break; case 3: cout 读入图书编号: bookid; b=query(bookid); if (b=NULL) cout 该图书不存在 delbook(); break; case 4: cout 读入图书编号: bookid;

35、 b=query(bookid); if (b=NULL) cout 该图书不存在disp(); break; case 5: disp(); break; case 6: clear(); break; default:cout已退出!; void main() char choice; int bookid,readerid; RDatabase ReaderDB; Reader *r; BDatabase BookDB; Book *b; while(choice!=0) cout endlendlttt 图 书 管 理 系 统nnn; cout ttt1 借 书nnttt2 还 书 nnttt3 图 书 维 护nnttt4 读 者 维 护nnttt0 离 开 choice;s

版权声明:以上文章中所选用的图片及文字来源于网络以及用户投稿,由于未联系到知识产权人或未发现有关知识产权的登记,如有知识产权人并不愿意我们使用,如有侵权请立即联系:2622162128@qq.com ,我们立即下架或删除。

Copyright© 2022-2024 www.wodocx.com ,All Rights Reserved |陕ICP备19002583号-1 

陕公网安备 61072602000132号     违法和不良信息举报:0916-4228922