收藏 分销(赏)

图书管理系统实现与开发.doc

上传人:人****来 文档编号:4941474 上传时间:2024-10-20 格式:DOC 页数:40 大小:378.50KB
下载 相关 举报
图书管理系统实现与开发.doc_第1页
第1页 / 共40页
图书管理系统实现与开发.doc_第2页
第2页 / 共40页
图书管理系统实现与开发.doc_第3页
第3页 / 共40页
图书管理系统实现与开发.doc_第4页
第4页 / 共40页
图书管理系统实现与开发.doc_第5页
第5页 / 共40页
点击查看更多>>
资源描述

1、图书管理系统是典型的信息管理系统(MIS)的实现与开发摘 要图书管理系统是典型的信息管理系统(MIS),其开发主要包括后台数据库的建立和维护以及前端应用程序的开发两个方面。对于前者要求建立起数据一致性和完整性强、数据安全性好的库。而对于后者则要求应用程序功能完备,易使用等特点。采用C+作为开发工具,通过对C+进行深入的学习和应用,主要完成利用图书管理系统对图书记录进行统一管理,包括新增图书记录,更改图书记录,删除图书记录等功能,实现图书管理工作的系统化,规范化和自动化,为图书管理提供便利。同时是学习完面向对象程序设计课程后进行的一次全面的综合练习。有助于加深对面向对象程序设计中基础理论和基本知

2、识的理解,培养了实践能力,促进理论与实践的结合。关键字:图书管理系统;C+;信息管理系统 AbstractBooks management system management system is the typical information management system (MIS), its development mainly includes the setting and maintenance of database and the programming of the frontend application. The former required establish da

3、ta consistency and integrality, data security good storehouse. For the latter requires the application program function complete, easy to use, etc. Using c + + as development tools through in-depth study of c + + and applications, mainly completes use books management system management system of boo

4、k records, including new unified management, change book record books record, delete, realize functions such as book record books management work of the systematic, standardization and automation, provides the convenience for the books management. Meanwhile is after studying the object-oriented prog

5、ram design course of time after comprehensive practice. Help deepen our understanding of the object-oriented programming basic theory and basic knowledge understanding, cultivate the practice ability, promoting the combination of theory with practice. Key word: books management system management sys

6、tem;c + +; information management system Written by:Li Yudan Supervised by:Miao Xiufen目 录1 需求分析 11.1 程序运用的平台 12 整体设计 22.1 书库管理模块 22.2 获取图书信息22.3 设置图书信息32.4 删除图书42.5 添加图书42.6 借书 42.7 还书 52.8显示图书状态 52.9查找图书 52.10读者管理模块 73 详细设计93.1 程序的主要功能 93.2 程序流程图94 调试与测试 104.1 调试测试结果 104.2 存在的不足与对策、编程体会 145 总结1535

7、/ 406 致谢167 参考文献178 附录181 需求分析一直以来人们使用传统的人工方式管理图书馆的日常工作,对于图书馆的借书和还书过程,想必大家都已很熟悉。在计算机尚未在图书馆广泛使用之前,借书和还书过程主要依靠手工。 以上所描述的手工过程的不足之处显而易见,首先处理借书、还书业务流程的效率很低,其次处理能力比较低,一段时间内,所能服务的读者人数是有限的。利用计算机来处理这些流程无疑会极大程度地提高效率和处理能力。我们将会看到排队等候借书、还书的队伍不再那么长,工作人员出错的概率也小了,读者可以花更多的时间在选择书和看书上。 为方便对图书馆书籍、读者资料、借还书等进行高效的管理,特编写本程

8、序以提高图书馆的管理效率。使用该程序之后,工作人员可以查询某位读者的借阅情况,还可以对当前图书馆内图书进行查看,新书上架,旧书下架,删除所有信息等操作。本次作业设计题目:“图书管理系统”主要目的是利用数据库软件编制一个管理软件,用以实现图书、读者以及日常工作等多项管理。图书管理系统是一种基于集中统一规划的数据库数据管理新模式。在对图书、读者的管理,其实是对图书、读者数据的管理。本系统的建成无疑会为管理者对图书管理系统提供极大的帮助1.1 程序运行平台VC+ 6.0具体操作如下:该程序是用VC+6.0制做的,使用Microsoft Visual C+ 6.0运行该程序,具体操作是:打开Micro

9、soft Visual C+ 6.0,菜单栏里点文件打开工作区找到“学生成绩管理系统.dsw”这个文件打开,或者在资源管理器中双击该文件,此时,VC+6.0会自动打开,并载入该系统相关资源,点击Run命令菜单或者或用快捷键Ctrl+F5运行该程序。另需要在ODBC中增加名为LibraryDB的图书管理系统的数据源。2 整体设计2.1 图书管理模块该模块实现图书信息的管理,如图书上架、旧书下架、图书查找、图书信息更新、删除所有图书信息。2.1.1 图书类,实现对图书的描述,图书的编号,书名,借出,还入等功能private: int tag; /int no; /图书编号char name20;

10、/书名 char author20;/作者char cbs20; /出版社int cbtime;/出版时间double bookprice;/图书价格int onshelf; /是否再架 1:再架 2:已借出 public: Book(); char *getname()2.1.2 图书库类,实现对图书的维护,查找,删除等class BDatabase /图书库类,实现对图书的维护,查找,删除等 private: int top; /图书记录指针Book bookMaxb; /图书记录public: 2.2 获取图书信息char *getname() /获取书名 return name; ch

11、ar *getauthorname()/获取作者名 return author; char *getcbsname()/获取出版社名 return cbs; int getcbtime()/获取出版时间return cbtime;double getbookprice()/获取图书价格return bookprice;int getno()/获取图书编号 return no; int gettag()/获取删除标记 return tag; 2.3 设置图书信息void setname(char na)/设置书名 strcpy(name,na); void setauthorname(char

12、aa)/设置作者名strcpy(author,aa);void setcbs(char ca)/设置出版社strcpy(cbs,ca);void setcbtime(int time) /设置时间 cbtime=time; void setbookprice(double price)/设置图书价格 bookprice=price;void setonshelf(int oa) onshelf=oa; 2.4 删除图书void delbook()/删除图书char i;cout确定删除吗?Y/N ?i;if(i=y|i=Y) tag=1; 2.5 添加图书void addbook(int n,

13、char *na,char *aa,char *ca,int time,double price,int oa) /增加图书 tag=0; no=n; strcpy(name,na); strcpy(author,aa); strcpy(cbs,ca); cbtime=time; bookprice=price; onshelf=oa; 2.6 借书int borrowbook() /借书操作 if (onshelf0) onshelf-; return 1; return 0; 2.7 还书void retbook()/还书操作 onshelf+; 2.8 显示图书状态void disp()

14、 /输出图书 coutsetw(6)nosetw(10)namesetw(10)authorsetw(10)cbssetw(15)cbtimesetw(15)bookpricesetw(10)onshelfendl; ; 2.9 查找图书Book *query1(int bookid) /按编号查找图书 for(int i=0;i=top;i+) if(booki.getno()=bookid &booki.gettag()=0) return &booki; return NULL; Book *query2(char a) /按书名查找图书 Book *e; int r=0; for(in

15、t i=0;i=top;i+) if(strcmp(booki.getname(),a)=0 &booki.gettag()=0) if(r=0) coutsetw(6)编号setw(10)书名setw(10)作者setw(10)出版社setw(15)出版时间setw(15)图书价格setw(10)存量disp(); r+; if(r=0) cout找不到该书!endl; return NULL; Book *query3(char a) /按作者查找图书 Book *e; int r=0; for(int i=0;i=top;i+) if(strcmp(booki.getauthorname

16、(),a)=0 &booki.gettag()=0) if(r=0) coutsetw(6)编号setw(10)书名setw(10)作者setw(10)出版社setw(15)出版时间setw(15)图书价格setw(10)存量disp(); r+; if(r=0) cout找不到该书!endl; return NULL; Book *query4(char a) /按出版社查找图书 Book *e; int r=0; for (int i=0;i=top;i+) if (strcmp(booki.getcbsname(),a)=0 &booki.gettag()=0) if(r=0)couts

17、etw(6)编号setw(10)书名setw(10)作者setw(10)出版社setw(15)出版时间setw(15)图书价格setw(10)存量disp(); r+; if(r=0) cout找不到该书!endl; return NULL; 2.10 读者管理模块class Reader/读者的信息描述 private: int tag; /删除标记 1表示已删 0表示未删 int no; /读者编号char name20; /读者姓名 int borbookMaxbor; /所借图书 public: Reader() /构造函数 ; 2.10.1 获取读者信息char *getname()

18、 /获取姓名 return name; int gettag() /获取删除标记 return tag; int getno() /获取读者编号 return no; 2.10.2 设置读者信息void setname(char na) /设置姓名 strcpy(name,na); void delbook() /设置删除标记 1:已删 0:未删 char i;cout确定删除吗?Y/N ?i;if(i=y|i=Y) tag=1; 2.10.3 添加读者信息void addreader(int n,char *na) /增加读者 tag=0; no=n; strcpy(name,na); fo

19、r(int i=0;iMaxbor;i+) borbooki=0; 3 详细设计3.1 程序的主要功能通过一个conio类对图书馆书籍进行管理。通过这个管理功能实现对学校书库中书籍数据的输入输出。比如增添某些书籍,删除某些书籍等操作。通过fstream类对图书数据的读取,写入进行管理。比如读者借书时显示所有图书信息,以及还书时的某些操作。3.2 程序流程图开始菜单管理员菜单读者菜单添 删加 除图 图书 书添 删加 除读 读者 者借 还 查 查 看 看 所 自 有 身 图 信书 书 书 息 读者管理员图书维护读者维护后退后退后退后退后退4 调试与测试4.1 调试测试结果4.1.1 开始运行4.1

20、.2 添加图书4.1.3 更改图书信息4.1.4 删除图书4.1.5 查找图书4.1.6 显示图书状态4.1.7 全部删除4.1.8 返回4.2 存在的不足与对策、编程体会 因为掌握的知识有限没能实现自动读取当前日期为借书日期并进行系统自行累加实现还书日期自动生成功能 通过编写图书管理系统,我体会到了一个系统应该作为一个整体来看待,系统具有牵一发而动全身的特性,某一个模块的一个小小错误都可能导致系统其他模块功能的丧失甚至是崩溃,同时在编程时应该按照模块来编写,一个模块实现一个功能,这样在调试的时候就方便检查,还有一个程序写完了,不是真正的结束,还需要不断地调试不断地修改程序中的错误。在编程中出

21、现了一个致命的错误:我在程序中定义了几个函数但是忘记了使用引用导致了最后编译是出现了重大错误,经过好几个小时的仔细排查终于找到了问题所在。 所以此次编程我最大的一个收获是:仔细研究每一个函数的定义,不要出现定义中形参缺少或者实参形参形式不符出现的错误5 总结本系统实现了图书管理系统的典型功能,包括查询所有记录的信息,添加查找等功能,而且具有较高的安全性。但是因为自己独立完成且能力有限,还有部分功能未能完善,例如对书名,编号的排序等等,这些局限性都是有待逐步完善的方面。而且通过这次课程设计,我培养了自己对C+编程的兴趣,编程能力也有所提高,但仍存在许多不足,不能独自写出功能很齐全的代码,写代码要

22、参考很多资料,所以今后应培养自己独立写代码的能力。大一的课程即将结束,程序设计课程设计开始了,但是我发现它并没有我想象的那么容易,从一开始刚刚接触程序设计课程设计的时候我都不知道这是干什么的,对着电脑愣了半天不知道要干什么,后来我询问了一下大二计算机专业的学长,他告诉我了一些知识,同时我的老师给了我们一些指导,同学们也是互帮互助,所以我对这门课程有了进一步的了解。我要感谢学校给我提供的良好的环境,让我们可以在机房好好的学习。同时感谢老师对我的指导和帮助,感谢高年级哥哥姐姐给我的鼓励让我逐渐有了信心,也感谢帮助我的同学们。是你们对我的帮助和耐心指导,让我有信心完成这次作业,是你们给了我信心,也给

23、了我无尽的希望。6 致 谢大一的课程即将结束,程序设计课程设计开始了,但是我发现它并没有我想象的那么容易,从一开始刚刚接触程序设计课程设计的时候我都不知道这是干什么的,对着电脑愣了半天不知道要干什么,后来我询问了一下大二计算机专业的学长,他告诉我了一些知识,同时我的老师给了我们一些指导,同学们也是互帮互助,所以我对这门课程有了进一步的了解。我要感谢学校给我提供的良好的环境,让我们可以在机房好好的学习。同时感谢老师对我的指导和帮助,感谢高年级哥哥姐姐给我的鼓励让我逐渐有了信心,也感谢帮助我的同学们。是你们对我的帮助和耐心指导,让我有信心完成这次作业,是你们给了我信心,也给了我无尽的希望。7 参考

24、文献1 谭浩强 C+面向对象程序设计北京:清华大学出版社,20062 谭浩强 C+程序设计实践指导北京:清华大学出版社,20053 刘玉英、张怡芳等C+实验指导与课程设计人民邮电出版社,20078 附录程序源代码#include#include /控制台数据输入输出的函数#include/文件流#include /控制数据输出格式#includeconst int Maxr=100 ;/最多的读者数 const int Maxb=100; /最多的图书数const int Maxbor=5; /每位读者最多借的书class Book /图书类,实现对图书的描述,图书的编号,书名,借出,还入等功

25、能private: int tag; /int no; /图书编号char name20; /书名 char author20;/作者char cbs20; /出版社int cbtime;/出版时间double bookprice;/图书价格int onshelf; /是否再架 1:再架 2:已借出 public: Book(); char *getname()/获取书名 return name; char *getauthorname() /获取作者名 return author; char *getcbsname()/获取出版社名 return cbs; int getcbtime()/获

26、取出版时间return cbtime;double getbookprice()/获取图书价格return bookprice;int getno()/获取图书编号 return no; int gettag()/获取删除标记 return tag; void setname(char na) /设置书名 strcpy(name,na); void setauthorname(char aa)/设置作者名strcpy(author,aa);void setcbs(char ca)/设置出版社strcpy(cbs,ca);void setcbtime(int time) /设置时间 cbtime

27、=time; void setbookprice(double price)/设置图书价格 bookprice=price;void setonshelf(int oa) onshelf=oa; void delbook()/删除图书char i;cout确定删除吗?Y/N ?i;if(i=y|i=Y) tag=1; void addbook(int n,char *na,char *aa,char *ca,int time,double price,int oa) /增加图书 tag=0; no=n; strcpy(name,na); strcpy(author,aa); strcpy(cb

28、s,ca); cbtime=time; bookprice=price; onshelf=oa; int borrowbook() /借书操作 if (onshelf0) onshelf-; return 1; return 0; void retbook()/还书操作 onshelf+; void disp() /输出图书 coutsetw(6)nosetw(10)namesetw(10)authorsetw(10)cbssetw(15)cbtimesetw(15)bookpricesetw(10)onshelfendl; ; class BDatabase /图书库类,实现对图书的维护,查

29、找,删除等 private: int top; /图书记录指针Book bookMaxb; /图书记录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() /全删 char i;cout确定全部删除吗?Y/N ?i;if(i=y|i=Y) top=-1; int ad

30、dbook(int n,char *na,char *aa,char *ca,int time, double price,int oa) /增加图书 Book *p=query1(n); if (NULL=p) top+; booktop.addbook(n,na,aa,ca,time,price,oa); return 1; return 0; Book *query1(int bookid) /按编号查找图书 for(int i=0;i=top;i+) if(booki.getno()=bookid &booki.gettag()=0) return &booki; return NUL

31、L; Book *query2(char a) /按书名查找图书 Book *e; int r=0; for(int i=0;i=top;i+) if(strcmp(booki.getname(),a)=0 &booki.gettag()=0) if(r=0) coutsetw(6)编号setw(10)书名setw(10)作者setw(10)出版社setw(15)出版时间setw(15)图书价格setw(10)存量disp(); r+; if(r=0) cout找不到该书!endl; return NULL; Book *query3(char a) /按作者查找图书 Book *e; int

32、 r=0; for(int i=0;i=top;i+) if(strcmp(booki.getauthorname(),a)=0 &booki.gettag()=0) if(r=0) coutsetw(6)编号setw(10)书名setw(10)作者setw(10)出版社setw(15)出版时间setw(15)图书价格setw(10)存量disp(); r+; if(r=0) cout找不到该书!endl; return NULL; Book *query4(char a) /按出版社查找图书 Book *e; int r=0; for (int i=0;i=top;i+) if (strcm

33、p(booki.getcbsname(),a)=0 &booki.gettag()=0) if(r=0)coutsetw(6)编号setw(10)书名setw(10)作者setw(10)出版社setw(15)出版时间setw(15)图书价格setw(10)存量disp(); r+; if(r=0) cout找不到该书!endl; return NULL; void bookdata(); /图书库信息void disp() for(int i=0;i=top;i+) if(booki.gettag()=0) booki.disp(); BDatabase() /析构函数,将book写到book

34、.txt文件中 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 choice3; char bname40;/书名char auname40;/作者名char cname40;/出版社int time;/出版时间double price;/价格char ch;int choice4;int bookid;int bookod;Book *b; while (choice3!=0) coutnttt* 图 书 信 息 *nendl; coutttt* 1.新增图书 *endl; coutttt* 2.更改图书信息 *endl; coutttt* 3.删除图书 *endl; coutttt* 4.查找图书 *endl; coutttt* 5.显示图书状态 *endl; coutttt* 6.全部删除 *endl; coutttt* 0.返回 *endl; coutchoice3; switch(choice3) case 1: coutbookid; b=query1(bookid);

展开阅读全文
部分上传会员的收益排行 01、路***(¥15400+),02、曲****(¥15300+),
03、wei****016(¥13200+),04、大***流(¥12600+),
05、Fis****915(¥4200+),06、h****i(¥4100+),
07、Q**(¥3400+),08、自******点(¥2400+),
09、h*****x(¥1400+),10、c****e(¥1100+),
11、be*****ha(¥800+),12、13********8(¥800+)。
相似文档                                   自信AI助手自信AI助手
搜索标签

当前位置:首页 > 包罗万象 > 大杂烩

移动网页_全站_页脚广告1

关于我们      便捷服务       自信AI       AI导航        获赠5币

©2010-2025 宁波自信网络信息技术有限公司  版权所有

客服电话:4008-655-100  投诉/维权电话:4009-655-100

gongan.png浙公网安备33021202000488号   

icp.png浙ICP备2021020529号-1  |  浙B2-20240490  

关注我们 :gzh.png    weibo.png    LOFTER.png 

客服