[工学]图书管理系统课程设计报告.doc

上传人:sccc 文档编号:4532562 上传时间:2023-04-26 格式:DOC 页数:39 大小:455.50KB
返回 下载 相关 举报
[工学]图书管理系统课程设计报告.doc_第1页
第1页 / 共39页
[工学]图书管理系统课程设计报告.doc_第2页
第2页 / 共39页
[工学]图书管理系统课程设计报告.doc_第3页
第3页 / 共39页
[工学]图书管理系统课程设计报告.doc_第4页
第4页 / 共39页
[工学]图书管理系统课程设计报告.doc_第5页
第5页 / 共39页
点击查看更多>>
资源描述

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

1、北华航天工业学院课程设计报告北 华 航 天 工 业 学 院基于C+的面向对象程序设计实例课程设计报告报告题目: 媒体库管理系统 作者所在系部: 计算机科学与工程系 作者所在专业: 计算机科学与技术 作者所在班级: 作 者 姓 名 : 指导教师姓名: 完 成 时 间 : 北华航天工业学院教务处制摘 要在当前的媒体资料日益增多的情况下,图书馆对资料的管理难度也有所增加,如果能分类对资料流通进行管理,将会带来很多方便,从而达到对图书馆媒体资料的管理母的。本文利用Visual Basic6.0的ADO编写程序,实现了用户对图书馆资料添加、查询、统计、存盘等管理操作。本系统主要有四个功能模块:图书管理系

2、统、视频光盘管理系统、图画管理系统、信息统计系统。已经过全面的系统测试,能够很好的运行,达到了预期的效果。关键词:系统设计 数据库 信息 流通管理目 录摘要第1章 绪 论11.1 课程设计的目的11.2 课程设计的背景和意义11.2.1 课程设计的背景11.2.2 课程设计的意义11.3 课程设计环境1第2章 需求分析22.1问题描述.22.2功能要求.22.3问题的解决方案.3第3章 系统设计.43.1数据设计.4 3.1.1 类设计.4 3.1.2 类之间的关系4 3.1.3 函数设计53.2 结构设计.5 3.2.1 系统流程图5 3.2.2 界面设计6第4章 系统实现124.1类实现.

3、124.2 函数实现.164.3 主函数实现.23第5章 系统测试255.1 模块测试.25 5.1.1 主菜单各功能的实现.25 5.1.2 各媒体管理菜单内各功能的实现.285.2 课程设计过程中遇到的问题.32总结33致谢34参考文献35附录36第1章 绪论1.1 课程设计的目的(1)要求学生能够熟练掌握C+语言的基本知识和技能。(2)基本掌握面向对象程序设计的基本思路和方法。(3)能够利用所学的基本知识和技能,解决简单的面向对象程序设计问题。1.2 课程设计的背景和意义1.2.1课程设计的背景1. 理论研究基础(1)C+面向对象设计(2)系统编程2. 技术层面的支持对C+编程语言的熟练

4、掌握1.2.2 课程设计的意义学生可以更加充分的发挥自己的创造力,结合所学的知识,在课程设计中学习到更多的知识,从中发现自己的不足。课程设计可以真正锻炼学生的分析能力,动手能力,创新能力,同时增强同学之间的合作意识,真正做到提高学生的综合能力素质。1.3 课程设计环境Windows XP SP3系统Visual Basic6.0的ADO编写程序Intel Core 2 2.0GHzKingston 2GB DDR2第2章 需求分析2.1 问题描述图书馆中的资料很多,如果能分类对其资料流通进行管理,将会带来很多方便,因此需要有一个媒体库管理系统。图书馆共有三大类物品资料:图书、视频光盘、图画。这

5、三类物品共同具有的属性有:编号、标题、作者、评级(未评级,一般,成人,儿童)等。其中图书类增加出版社、ISBN号、页数等信息;视频光盘类增加出品者的名字、出品年份和视频时长等信息;图画类增加出品国籍、作品的长和宽(以厘米计,整数)等信息。2.2 功能要求(1)基本功能1)添加物品:主要完成图书馆三类物品信息的添加,要求编号唯一。当添加了重复的编号时,则提示数据添加重复并取消添加;当物品库已满,则提示不能再添加新的数据。2)查询物品 可按照三种方式来查询物品,分别为: 按标题查询:输入标题,输出所查询的信息,若不存在该记录,则提示“该标题不存在!”; 按编号查询:输入编号,输出所查询的信息,若不

6、存在该记录,则提示“该编号不存在!”; 按类别查询:输入类别,输出所查询的信息,若不存在记录,则提示“该类别没有物品!”;3)显示物品库:输出当前物品库中所有物品信息,每条记录占据一行。4)编辑物品:可根据查询结果对相应的记录进行修改,修改时注意编号的唯一性。5)删除物品:主要完成图书馆物品信息的删除。如果当前物品库为空,则提示“物品库为空!”,并返回操作;否则,输入要删除的编号,根据编号删除该物品的记录,如果该编号不在物品库中,则提示“该编号不存在”。6)统计信息输出当前物品库中总物品数,以及按物品类别,统计出当前物品中各类别的物品数并显示。例如:总物品数 30图书类 10视频光盘类 15图

7、画类 57)物品存盘:将当前程序中的物品信息存入文件中。8)读出物品:从文件中将物品信息读入程序。(2)扩展功能 在完成以上基本功能的基础上,可自行进行扩展或完善,例如:1)可按物品编号进行排序。2)使用二进制文件存储信息。3)添加记录时,考虑各种数据的有效性。4)组合查询功能的实现。2.3 问题的解决方案根据系统功能要求,可以将问题解决分为以下步骤: (1)应用系统分析,建立该系统的功能模块框图以及界面的组织和设计;(2)分析系统中的各个实体及它们之间的关系; (3)根据问题描述,设计系统的类层次; (4)完成类层次中各个类的描述; (5)完成类中各个成员函数的定义; (6)完成系统的应用模

8、块; (7)功能调试; (8)完成系统总结报告。 第3章 系统设计3.1 数据设计3.1.1 类设计Library protected:num,name,author,ratingBook_Manageprotected:b,toppublic: Library(),Input(),Output()public: Book_Manage(),Add(),Delete(),Edit(),Read(),Save(),Search(),Show(),Total()Bookprotected:press,ISBN,pageDVD_Manageprotected:d,toppublic:Book(),I

9、nput(),Output()public: DVD_Manage(),Add(),Delete(),Edit(),Read(),Save(),Search(),Show(),Total()DVDprotected:exhibitor,time,yearPic_Manageprotected:p,toppublic: DVD(),Input(),Output()public: Pic_Manage(),Add(),Delete(),Edit(),Read(),Save(),Search(),Show(),Total()Pictureprotected:length,state,widthpub

10、lic:Picture(), Input(),Output() 图 313.1.2 类之间的关系Library类Book类DVD类Picture类 图 32Book_Manage为Book类的友元类DVD_Manage为DVD类的友元类Pic_Manage为Picture类的友元类3.1.3 函数设计(1)定义了BookMenu(),DVDMenu(),PicMenu(),Statistics()函数对各类进行操作及页面设计。(2)类中成员函数定义了Input(),Output()等函数对各对象进行输入,输出。(3)操作类定义了Add(),Search(),Edit(),Total(),Del

11、ete(),Show(),Save(),Read()。对个对象进行1.添加 2.查询 3.修改 4.统计 5.删除 6.显示 7.保存 8.读取等操作。3.2 结构设计Book_Manage类DVD_Manage类Pic_Manage类友元友元友元Book类DVD类Picture类Library类Add(),Show(),Search(),Edit(),Delete(),Total(),Save(),Read()Add(),Show(),Search(),Edit(),Delete(),Total(),Save(),Read()Add(),Show(),Search(),Edit(),Dele

12、te(),Total(),Save(),Read()BookMenu()DVDMenu()PicMenu()调用调用调用3.2.1 系统流程图图 333.2.2 界面设计主菜单:图 34代码:cout *欢迎进入北华航天工业学院媒体库管理系统*endl;int choice;docout *主菜单*nendl;coutendl;cout| |endl;cout 图书管理 2 = 视频光盘管理 3 = 图画管理 4 = 统计信息 |endl;cout| |endl; cout 退出 |endl;coutendl;coutchoice;switch(choice)case 1:BookMenu()

13、;break;case 2:DVDMenu();break;case 3:PicMenu();break;case 4:Statistics();break;case 0:coutn您已安全退出系统.endl;break;default:coutn没有此选项.请重选.endl;break;while(choice!=0);coutn *欢迎您下次再使用本系统!*endl;图书管理菜单:图 35代码:Book_Manage b;int choice;while(choice!=0)cout n *图书管理* endl;cout+endl;cout| |endl;cout退出 |endl;cout

14、| |endl;cout+endl;coutchoice;switch(choice)case 1:b.Add();break;case 2:b.Search();break;case 3:b.Edit();break;case 4:b.Total();break;case 5:b.Delete();break;case 6:b.Show();break;case 7:b.Save();break; case 8:b.Read();break;case 0:b.Save();cout退出成功!endl;break;default:cout无此选项!请重试!endl;break;视频光盘管理菜单

15、:图 36代码:DVD_Manage d;int choice;while(choice!=0)cout n *视频光盘管理* endl;cout+endl;cout| |endl;cout退出 |endl;cout| |endl;cout+endl;coutchoice;switch(choice)case 1:d.Add();break;case 2:d.Search();break;case 3:d.Edit();break;case 4:d.Total();break;case 5:d.Delete();break;case 6:d.Show();break;case 7:d.Save

16、();break; case 8:d.Read();break;case 0:d.Save();cout退出成功!endl;break;default:cout无此选项!请重试!endl;break;图画管理菜单:图 37代码:Pic_Manage p;int choice;while(choice!=0)cout n *图画管理* endl;cout+endl;cout| |endl;cout退出 |endl;cout| |endl;cout+endl;coutchoice;switch(choice) case 1:p.Add();break;case 2:p.Search();break

17、;case 3:p.Edit();break;case 4:p.Total();break;case 5:p.Delete();break;case 6:p.Show();break;case 7:p.Save();break; case 8:p.Read();break;case 0:p.Save();cout退出成功!endl;break;default:cout无此选项!请重试!endl;break;第4章 系统实现4.1 类实现定义基类:Libraryclass Libraryprotected: int num; char name20; char author20; char ra

18、ting20;public: Library(int n=10001,char*nam=Seabed_20000_Miles,char*au=Jules-Verne,char*ra=unrating) :num(n)strcpy(name,nam);strcpy(author,au);strcpy(rating,ra);void Input();void Output();从基类中派生出Book类,DVD类,Picture类Book类(继承Library类):class Book:virtual public Libraryprotected: char press20; char ISBN2

19、0; int page;public:Book(int n=10001,char*nam=Seabed_20000_Miles, char*au=Jules-Verne,char*ra=unrating,char*pr=People, char*is=978-7-302-12315-6,int p=400):Library(n,nam,au,ra), page(p)strcpy(press,pr);strcpy(ISBN,is);void Input(); void Output(); friend class Book_Manage;void Book:Input()coutnum;cout

20、name;coutauthor;coutrating;coutpress;coutISBN;coutpage;void Book:Output() coutsetw(5)numsetw(10)namesetw(10)authorsetw(10)rating setw(10)presssetw(18)ISBNsetw(10)pageendl;DVD类(继承Library类):class DVD:virtual public Libraryprotected: char exhibitor20; int year; int time;public:DVD(int n=10001,char*nam=

21、Seabed_20000_Miles, char*au=Jules-Verne,char*ra=unrating, char*ex=GaoD,int y=2000,int t=90):Library(n,nam,au,ra), year(y),time(t)strcpy(exhibitor,ex);void Input(); void Output();friend class DVD_Manage;void DVD:Input()coutnum;coutname;coutauthor;coutrating;coutexhibitor;coutyear;couttime;void DVD:Ou

22、tput() coutsetw(5)numsetw(10)namesetw(10)authorsetw(10)rating setw(10)exhibitorsetw(10)yearsetw(10)timeendl;Picture类(继承Library类):class Picture:virtual public Libraryprotected: char state20; float length; float width;public:Picture(int n=10001,char*nam=Seabed_20000_Miles, char*au=Jules-Verne,char*ra=

23、unrating, char*st=France,float l=25,float w=20):Library(n,nam,au,ra), length(l),width(w)strcpy(state,st);void Input(); void Output();friend class Pic_Manage;void Picture:Input()coutnum;coutname;coutauthor;coutrating;coutstate;coutlength;coutwidth;void Picture:Output() coutsetw(5)numsetw(10)namesetw(

24、10)authorsetw(10)rating setw(10)statesetw(10)lengthsetw(10)width=BMAX)cout空间已满,无法添加!; return; elsebtop.Input();for(int i=0;itop;i+)if(bi.num=btop.num)cout该编号的图书已存在!;flag=1; if(flag=0)top+;cout添加成功!;用Show()函数实现显示当前媒体信息的显示void Book_Manage:Show() cout*所有图书*; coutendl; coutsetw(5)编号setw(10)标题setw(10)作者s

25、etw(10)评级 setw(10)出版社setw(18)ISBN号setw(10)页数endl;for(int i=0;itop;i+)bi.Output();cout*;用Search()函数实现在当前媒体中搜索记录信息void Book_Manage:Search() if(top=0)cout物品库为空!endl;return; int a;bool z=0;cout*(1)按编号查找*(2)按标题查找*endl;couta;if(a=1)int nu;coutnu;coutendl; for(int i=0;itop;i+)if(bi.num=nu) cout*该图书信息为*endl

26、;coutsetw(5)编号setw(10)标题setw(10)作者setw(10)评级 setw(10)出版社setw(18)ISBN号setw(10)页数endl;bi.Output();cout*endl;z=1;break;if(z=0)cout该编号不存在!endl; if(a=2)char t20;coutt;coutendl; for(int i=0;itop;i+)if(strcmp(bi.name,t)=0) cout*该图书信息为*endl;coutsetw(5)编号setw(10)标题setw(10)作者setw(10)评级 setw(10)出版社setw(18)ISBN

27、号setw(10)页数endl;bi.Output();cout*endl;z=1;break;if(z=0)cout该标题不存在!endl;用Edit()函数实现对当前媒体数据的修改void Book_Manage:Edit() int nu; bool z=0;coutnu; for(int i=0;itop;i+)if(bi.num=nu) char ju;coutju;coutendl;if(ju=y)coutbi.name; coutbi.author; coutbi.rating; coutbi.press; coutbi.ISBN; coutbi.page;z=1;break;if(z=

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

当前位置:首页 > 教育教学 > 成人教育


备案号:宁ICP备20000045号-2

经营许可证:宁B2-20210002

宁公网安备 64010402000987号