图书馆管理系统课程设计报告.pdf

上传人:scccc 文档编号:11338193 上传时间:2021-07-27 格式:PDF 页数:34 大小:372.15KB
返回 下载 相关 举报
图书馆管理系统课程设计报告.pdf_第1页
第1页 / 共34页
图书馆管理系统课程设计报告.pdf_第2页
第2页 / 共34页
图书馆管理系统课程设计报告.pdf_第3页
第3页 / 共34页
图书馆管理系统课程设计报告.pdf_第4页
第4页 / 共34页
图书馆管理系统课程设计报告.pdf_第5页
第5页 / 共34页
点击查看更多>>
资源描述

《图书馆管理系统课程设计报告.pdf》由会员分享,可在线阅读,更多相关《图书馆管理系统课程设计报告.pdf(34页珍藏版)》请在三一文库上搜索。

1、计算机学院信息管理与信息系统专业计算机学院信息管理与信息系统专业 程序设计综合课程设计报告程序设计综合课程设计报告 (2010/2011 学年 第一学期) 学生姓名:学生姓名: 学生班级:学生班级: 学生学号:学生学号: 指导教师指导教师: 2011 年 1 月 7 日 I 目录 第一章.课程设计目的和要求.1 1.1 程序设计的目的.1 1.2 程序设计的要求.1 第二章.课程设计任务内容.2 2.1 背景.2 2.2 功能需求.2 第三章详细设计说明.3 3.1 函数的模块.3 3.2 主函数流程图.4 3.3 子函数流程图.5 3.3.1 借书.5 3.3.2 还书.6 3.3.3 图书

2、的维护.7 3.3.4 读者的维护.8 第四章. 软件使用说明及调试.9 4.1 使用说明.9 4.2 调试.9 第五章课程设计心得与体会.15 附录一.参考文献.16 附录二.程序清单.17 程序设计综合课程设计 1 图书管理系统 第一章 课程设计目的和要求 本课程设计是计算机科学与技术专业重要的实践性环节之一,是学生在学完面 向对象程序设计C+语言描述后进行的一次全面的综合性设计实验。此次课程 设计是编写图书管理系统,其具体目的与要求如下所示: 1.1 程序设计的目的 (1).巩固和加深对 C+语言课程基本知识的理解和掌握。 (2).掌握 C+语言编程和程序调试的基本技能。 (3).提高

3、C+语言编程技巧,培养分析问题和解决问题的能力。 (4).利用 C+语言进行基本的软件设计。 1.2 程序设计的要求 (1).分析课程设计题目的要求。 (2).对系统功能模块进行分析。 (3).编写程序代码,并在程序源代码后写明详细的注释,以便他人看懂。最后上机 调试程序使其能够正确的运行。 (4).完成整个程序后,根据要求写出相应的课程设计报告。 (5).设计完成后的程序要便于操作和使用。 程序设计综合课程设计 2 第二章 课程设计任务内容 2.1 背景 随着网络技术的高速发展,计算机技术的普及,引进计算机技术对图书进行方便 的管理势在必行,这样管理员就可以对图书众多的信息进行动态的管理,提

4、高效率, 节约人力资源,降低成本力求使其功能简洁明了,而且齐全、易于操作。虽然目前很 多大型的图书馆已经有了一套比较完善的管理系统, 但是在一些中小型的图书馆中大 部分工作仍需要手工完成,工作起来效率比较低,管理员不能及时了解图书馆里图书 的借约情况, 读者需要的图书难以在短时间内找到, 不便于动态及时的调整图书结构。 为了更好的适应当前读者的借阅需求,解决手工管理中存在的许多弊端,越来越多的 中小型图书馆正在逐步向计算机信息化管理转变。 2.2 功能需求 此程序实现了图书管理员对借书人是否存在及借阅情况和图书是否在架等进行 动态管理。具体功能如下: (1) 借书 (2) 还书 (3) 图书维

5、护 包括:新增、修改、查找、删除、显示 (4) 读者维护 包括:新增、修改、查找、删除、显示 (5) 离开 程序设计综合课程设计 3 第三章 详细设计说明 3.1 函数的模块 1、整个系统均用 C+语言实现; 2、利用类来实现图书管理的数据结构设计; 3、系统具有借书、还书、图书维护、读者维护、离开等基本功能; 4、系统的各个功能模块都用函数的形式来实现; 5、模块图如下: 图书管理 借 书 还 书 图 书 维 护 图 3-1 程序总模块图 读者维护 离开 程序设计综合课程设计 4 3.2 主函数流程图 开始 进入主界面 借 书 还 书 图 书 维 护 读 者 维 护 离 开 显示信息 结束

6、图 3-2 函数总流程图 程序设计综合课程设计 5 3.3 子函数流程图 3.31 借书 开始 读者是 否存在 输入读者编号 输入图书编号 图书是 否存在 图书是 否在架 结束 否 否 是 是 否 是 借书成功 图 3-3 借书流程图 程序设计综合课程设计 6 3.32 还书 显示信息 输入读 者编号 输入图 书编号 结束 开始 图 3-4 还书流程图 3.33 图书的维护 程序设计综合课程设计 7 开始 进入图书 维护界面 新 增 图 书 查 找 图 书 显 示 图 书 输入图 书编号 输入图 书编号 输入图 书名称 是否 存在 显示信息 结束 是 否 图 3-5 图书维护流程图 3.34

7、读者的维护 程序设计综合课程设计 8 开始 进入读者 维护界面 新 增 读 者 查 找 读 者 显 示 读 者 输入读 者编号 输入读 者编号 输入读 者姓名 是否 存在 显示信息 结束 是 否 图 3-6 读者维护流程图 第四章 软件使用说明及调试 程序设计综合课程设计 9 4.1 使用说明 该程序可以实现对借书、还书、图书维护、读者维护等功能。安装 VisualC+6.0 中文版后, 在工具栏 “文件” 中单击 “新建” 选项, 单击 “文件” 菜单, 选择 “C+ Source file”输入文件名“图书管理系统” 。开始输入程序,程序输入完成,单击“组建” 工具栏,选择“编译”,待程序

8、无误后,开始执行程序。 界面显示后,按要求首先按任意键开始,进入界面后用 1,2,3,4,0 选择相应 的功能。最后结束。 4.2 调试 1显示主界面 2.新增图书 程序设计综合课程设计 10 3.显示图书 程序设计综合课程设计 11 4.新增读者 程序设计综合课程设计 12 5.借书 程序设计综合课程设计 13 6.图书的查找 7还书 程序设计综合课程设计 14 8.退出程序 程序设计综合课程设计 15 第五章 课程设计心得与体会 通过这次课程设计,使我对 C+语言有了更进一步的认识和了解,要想学好它要 重在实践,要通过不断的上机操作才能更好地学习它,我也发现我的好多不足之处, 通过学习也有

9、所改进,还有对 C+语言中经常出现的错误也不了解,所以在以后在学 习过程中,我会更加注视实践操作。 在课程设计过程中,收获知识,提高能力的同 时,我也懂得怎么样去制定、实现计划,课程设计是培养学生综合运用所学知识发现 提出分析和解决实际问题锻炼实践能力的重要环节是对学生实际工作能力的具体训 练和考察过程.随着科学技术发展的日新月异,自从拿到题目到完成整个编程,从理 论到实践,可以学到很多很多的东西,同时不仅可以巩固了以前所学过的知识,而且 学到了很多在书本上所没有学到过的知识。 通过这次课程设计使我们懂得了理论与实 际相结合是很重要的,只有理论知识是远远不够的,只有把所学的理论知识与实践相 结

10、合起来,在设计的过程中发现了自己的不足之处,对一些前面学过的知识理解得不 够深刻,掌握得不够牢固,在设计中我们遇到了很多编程问题,最后在各位老师的辛 勤指导下,我慢慢的进入状态,我做的是一个图书管理系统的设计,内容包括很多。 当然也有大问题,关于文件的操作,是我们最大的问题。要有模块化思维能力 ,化 思维就是编程任何一个功能模块或函数的时候,要多想一些,不要局限在完成当前任 务的简单思路上,想想看该模块是否可以脱离这个系统存在,是否可以通过简单的修 改参数的方式在其他系统和应用环境下直接引用, 这样就能极大避免重复性的开发工 作。 程序设计综合课程设计 16 附录 1 参考文献 1郑莉,董渊,

11、张瑞丰.C+语言程序设计(第 3 版)M. 清华大学出版社,2004. 2郑莉,董渊.C+语言程序设计案例教程M. 清华大学出版社,2000. 3、邹金安主编面向对象程序设计与 Visual C+6.0 教程出版社:厦门大学 出版社 4、高克宁,于端云 编著, 程序设计基础(C+语言)实验指导与测试(高等学校 计算机基础教育教材精选) ,出版社:清华大学出版社 5、严蔚敏,吴伟民 编著, 数据结构(C+语言版) 出版社:清华大学出版社 程序设计综合课程设计 17 附录 2 程序清单 #include #include #include #include /输入/输出文件流类 using nam

12、espace 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: Reader() char *getname() return name; /获取姓名 int gettag() return tag; /获取删除标记

13、 int getno() return no; /获取读者编号 void setname(char na) /设置姓名 strcpy(name,na); 程序设计综合课程设计 18 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 borrowbook(int bookid)/借书操作 for(int i=0;iMaxbor;i+) if (borboo

14、ki=0) borbooki=bookid; return; int retbook(int bookid)/还书操作 for(int i=0;iMaxbor;i+) if(borbooki=bookid) borbooki=0; 程序设计综合课程设计 19 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 endl; ; /读者类库,实现建立读者的个人资料 class R

15、Database private: int top; /读者记录指针 Reader readMaxr;/读者记录 public: RDatabase() /构造函数,将 reader.txt 读到 read中 Reader s; top=-1; 程序设计综合课程设计 20 fstream file(reader.txt,ios:in);/打开一个输入文件 while (1) file.read(char *) if (!file)break; top+; readtop=s; file.close(); /关闭 reader.txt void clear()/删除所有读者信息 top=-1;

16、int addreader(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 return NULL; void disp() /输出所有读者信息 for (int i=0;i=top;i+) readi.disp(); void readerdata();

17、/读者库维护 RDatabase() /析构函数,将 read写到 reader.txt 文件中 fstream file(reader.txt,ios:out); for (int i=0;i=top;i+) if (readi.gettag()=0) file.write(char *) file.close(); ; void RDatabase:readerdata() char choice; char rname20; int readerid; Reader *r; while (choice!=0) 程序设计综合课程设计 22 cout nnttt 读 者 维 护nnntt 1

18、 新 增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; r-setname(rname); break; case 3: cout readerid; 程序设计

19、综合课程设计 23 r=query(readerid); if (r=NULL) 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; 程序设计综合课程设计 24 /图书类,实现对图书的描述,图书的编号,书名,借出,还入等 class Book private: int tag

20、;/删除标记 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)/增加图书 tag=0;

21、no=n; strcpy(name,na); onshelf=1; 程序设计综合课程设计 25 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(10) (onshelf=1? 在架:已借) endl; ; /图书库类,实现对图书的维护,查找,删除等 class BDatabase private: int top; /图书记录指针 程序设计综合

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

23、ddbook(n,na); return 1; return 0; 程序设计综合课程设计 27 Book *query(int bookid)/查找图书 for (int i=0;i=top;i+) if (booki.getno()=bookid 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

24、); for (int i=0;i=top;i+) if (booki.gettag()=0) file.write(char *) file.close(); ; void BDatabase:bookdata() char choice; char bname40; 程序设计综合课程设计 28 int bookid; Book *b; while (choice!=0) cout nnnttt 图 书 维 护 endlendl; couttt1 新 增n tt2 更 改ntt3 删 除ntt4 查 找ntt5 显示 ntt6 全 删ntt0 退 出 choice; switch (choi

25、ce) case 1: 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; 程序设计综合课程设计 29 case 3: cout 读入图书编号: bookid; b=query(bookid); if (b=NULL) cout 该图书不存在 delbo

26、ok(); break; case 4: cout 读入图书编号: bookid; b=query(bookid); if (b=NULL) cout 该图书不存在disp(); break; case 5: disp(); break; case 6: clear(); break; default:cout输入错误,请从新输入:; 程序设计综合课程设计 30 /main() 函数的实现,程序的主界面的引导 void main() char choice; int bookid,readerid; RDatabase ReaderDB; Reader *r; BDatabase BookDB

27、; Book *b; while(choice!=0) cout endlendlttt 图 书 管 理 系 统nnn; cout ttt1 借 书nnttt2 还 书 nnttt3 图 书 维护nnttt4 读 者 维 护nnttt0 离 开 choice; switch (choice) case 1: cout readerid; cout bookid; 程序设计综合课程设计 31 r=ReaderDB.query(readerid);/按编号查找 if (NULL=r) cout 不存在该读者,不能借书 endl; break; b=BookDB.query(bookid); if

28、(b=NULL) cout 不存在该图书,不能借书borrowbook()=0) cout 该图书已借出,不能借书borrowbook(b-getno(); break; case 2: coutreaderid; cout bookid; r=ReaderDB.query(readerid); if (r=NULL) cout 不存在该读者,不能还书 endl; break; 程序设计综合课程设计 32 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输入错误,请从新输入:;

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

当前位置:首页 > 社会民生


经营许可证编号:宁ICP备18001539号-1