课程设计报告(媒体库管理系统)_第1页
课程设计报告(媒体库管理系统)_第2页
课程设计报告(媒体库管理系统)_第3页
课程设计报告(媒体库管理系统)_第4页
课程设计报告(媒体库管理系统)_第5页
已阅读5页,还剩46页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

1、各专业全套优秀毕业设计图纸c+面向对象程序设计课 程 设 计 报 告课程名称 c+面向对象程序设计 课题名称 媒体库管理系统 专 业 网络工程 班 级 551 学 号 132055110 姓 名 高慧鹏 指导教师 2014年 12 月 22 日(一)、课程设计题目: 媒体库管理系统(二)、目的与要求: 1、目的: (1)要求学生达到熟练掌握c+语言的基本知识和技能; (2)基本掌握面向对象程序设计的基本思路和方法; (3)能够利用所学的基本知识和技能,解决简单的面向对象程序设计问题。 2、基本要求: (1)要求利用面向对象的方法以及c+的编程思想来完成系统的设计; (2)要求在设计的过程中,建

2、立清晰的类层次; (3)在系统中至少要定义四个类,每个类中要有各自的属性和方法; (4)在系统的设计中,至少要用到面向对象的一种机制。 3、创新要求: 在基本要求达到后,可进行创新设计,如根据查找结果进行修改的功能。 (三)、设计方法和基本原理: 功能要求:1) 添加物品程序主要完成图书馆三类物品信息的添加,要求编号唯一。如果添加了重复编号的物品时,则提示用户数据添加重复并取消添加;如果物品库已满,则提示不能再添加新的物品。2) 查询物品可按照三种方式进行物品的查询。按标题查询:按编号查询:按类别查询:如果未找到,给出相应的提示信息,如果找到,则显示相应的记录信息。3) 显示物品库可显示当前物

3、品库中所有的物品信息。4) 修改物品可根据查询结果对相应的记录进行修改,修改时注意编号的唯一性。5)删除物品对已添加的物品信息进行删除。如果当前物品库为空,则提示“物品库为空!”并返回操作;否则输入要删除的编号,根据编号删除该物品信息,如果没有找到该物品信息,则提示“该编号不存在”。6)统计功能输出当前物品库中总物品数,以及按物品类别,统计出当前物品中各类别的物品数并显示。7) 保存物品将当前系统中物品信息存入文件中。8) 读取物品 将保存在文件中的物品信息读入到当前系统中,以供用户使用。在完成以上基本功能的基础上,可自行进行扩展或完善。3、问题的解决方案: 根据系统功能要求,可以将问题解决分

4、为以下步骤: (1)应用系统分析,建立该系统的功能模块框图以及界面的组织和设计;(2)分析系统中的各个实体及它们之间的关系包括属性和行为; (3)根据问题描述,设计系统的类层次; (4)完成类层次中各个类的描述(包括属性和方法); (5)完成类中各个成员函数的定义; (6)完成系统的应用模块; (7)功能调试; (8)完成系统总结报告以及系统使用说明书iv目 录1.系统需求分析12.总体设计23.详细设计及实现34.系统调试425.结论436.心得体会431. 系统需求分析 1.1系统设计的目的与意义: 图书馆中的资料很多,如果能分类对其资料流通进行管理,将会带来很多方便,因此需要有一个媒体库

5、管理系统。1.2 系统功能需求:本系统有四个类:base类、book类、cd类、draw类,存储资料信息、编号、标题、作者、评级。base 为父类,其余三个为子类,每个子类具有自己的特点。1基础信息的添加功能程序能够任意添加图书、cd视频光盘、图画信息以及各自对应的相关信息。2修改功能对已添加的记录(图书、cd视频光盘、图画信息以及各自对应的相关信息)进行查找和修改。3删除功能对已添加的记录(图书、cd视频光盘、图画信息以及各自对应的相关信息)进行查找和删除。如果当前系统中没有相应的记录,则提示“记录为空!”并返回操作;否则输入要删除的编号对该记录进行删除,如果没有找到,则提示相应的记录不存在

6、。4查询功能1 可根据资料的编号查询资料及其内容。2 可根据标题查找。3 根据类别查询如果未找到,给出相应的提示信息,如果找到,则显示相应的记录信息。5保存功能将当前系统中各类记录存入文件中。6读取功能将保存在文件中的信息读入到当前系统中,以供用户使用。2. 总体设计2.1 系统功能分析:系统通过调用函数来实现信息录入、信息修改、信息删除、信息查询以及数据保存文件等功能。add()函数用于添加信息;modify()函数用来修改信息;del()函数用来修改信息;refer()函数用来查询数据信息;read()函数用于将文件中的数据读取到内存中;save()函数用于将内存中的信息存入文件内;主函数

7、main()用于调用这些函数。 2.2系统功能模块划分与设计:系统定义了base基类、book类、cd类、draw类这四个类,定义了add()、modify()、del()、read()、save()、refer()等函数来实现系统所需功能。2.3 系统功能模块图:媒体库管理系统 library类图书图画视频光盘图画信息查询视频光盘信息添加图书信息查询图书信息添加图书信息统计图画信息统计图书信息修改图书信息删除视频光盘信息删除视频光盘信息修改视频光盘信息查询视频光盘信息统计图画信息修改图画信息删除图画信息添加2.4 类的设计(1)base类(抽象类)的设计:basevoid mainmenu(

8、); virtual void add(); virtual void refer();virtual void display()virtual void modify();virtual void del();virtual void info();virtual void save();virtual void read();int no;char headline200;char write200;char rating200;图 3.1 base类(2)图书类的设计:bookvoid book_manage();void book_menu();void add(); void re

9、fer(); void display(); void modify(); void del(); void info(); void save(); void read();char publisher20;char isbn_no20;int pages; 图 3.2班级类(3)cd类的设计:cdvoid cd_manage();void add(); void refer(); void display(); void modify(); void del(); void info(); void save(); void read();void cd_menu();char name2

10、0;char year20;char time20; 图 3.3学生类(4)图片类的设计:drawvoid draw_manage();void draw_menu(); void add(); void refer(); void display(); void modify(); void del(); void info(); void save(); void read();char nationality20;int length;int width; 图 3.4 课程类(6)各个类的关系描述:3. 详细设计及实现3.1 base类(抽象类)的实现class basepublic:v

11、oid mainmenu(); virtual void add();/添加物品 virtual void refer();/查询物品virtual void display();/显示物品库virtual void modify();/修改物品virtual void del();/删除物品virtual void info();/统计功能virtual void save();/保存物品virtual void read();/读取物品int no;/编号char headline200;/标题char write200;/作者char rating200;/评级;3.2 班级类的实现bo

12、ok.hclass book:public basepublic:void book_manage();/管理void book_menu();/菜单显示void add();/添加物品 void refer();/查询物品 void display();/显示物品库 void modify();/修改物品 void del();/删除物品 void info();/统计功能 void save();/保存物品 void read();/读取物品char publisher20;/出版社char isbn_no20;/isbn号int pages;/页数;book.cpp#include#in

13、clude#include#includewindows.h/暂停头文件#includebook.hconst int maxsize_book=100;/图书数据最大长度book b_maxsize_book;int count_book=1;book b,b1;base *p1;int i,j,num1,num2;void book:book_manage()int flag=1;int k;p1=&b;p1-read();b.book_menu();loop4:coutk;while(flag=1)if(k=0&kadd();break;case 2:p1-refer();break;c

14、ase 3:p1-display();break;case 4:p1-modify();break;case 5:p1-del();break;case 6:p1-info();break;case 0:break;elsecout输入有误,请重新输入:n;goto loop4;loop:flag=0;if(flag=0)coutflag;if(flag=1)b.book_menu();coutk;else if(flag=2)break;else cout选择错误,请重新输入。n;goto loop;void book:add()/添加图书数据cout请输入要添加数据的个数:num1;for

15、(j=0;jnum1;j+)cout请输入图书编号:b.no;i=b.no;b_i.no=i;cout请依次输入数据标题、作者、评级(未评级、一般、成人、儿童)、出版社、isbn号、页数:b_i.headlineb_i.writeb_i.ratingb_i.publisherb_i.isbn_nob_i.pages;p1-save();void book:refer()/查找子菜单loop1:cout endl endl endl 按标题查询- endl 按标题查询- endl 按标题查询- endl 退出子菜单- endl endl endl endl endl; cout请输入你要查询的方

16、式编号:nnum2; switch(num2)/三种情况用选择语句 case 1: cout请输入要查找的图书标题:nb1.headline; for(j=0;jmaxsize_book;j+) if(strcmp(b1.headline,b_j.headline)=0) cout图书编号:b_j.no标题:b_j.headline作者:b_j.write评级:b_j.rating出版社:b_i.publisher isbn号:b_j.isbn_no页数:b_j.pagesendl; sleep(10); break; case 2: cout请输入要查找的图书编号b1.no; for(j=0

17、;jmaxsize_book;j+) if(b1.no=b_j.no) cout图书编号:b_j.no标题:b_j.headline作者:b_j.write评级:b_j.rating出版社:b_i.publisher isbn号:b_j.isbn_no页数:b_j.pagesendl; sleep(10); break; case 3: loop2:cout请输入要查找的图书类别(未评级、一般、成人、儿童)b1.rating;if(b1.rating=未评级|一般|成人|儿童)for(j=0;jmaxsize_book;j+)if(strcmp(b1.rating,b_j.rating)=0)

18、cout图书编号:b_j.no标题:b_j.headline作者:b_j.write评级:b_j.rating出版社:b_j.publisherisbn号:b_j.isbn_no页数:b_j.pagesendl;sleep(10);elsecout输入有误请重新输入:n;goto loop2; break; case 4:break; default: cout选择错误,请重新选择:n; goto loop1; break; ;void book:display()for(j=1;jnum1+1;j+)cout图书编号:b_j.no标题:b_j.headline作者:b_j.write评级:b

19、_j.rating出版社:b_j.publisherisbn号:b_j.isbn_no页数:b_j.pagesendl;sleep(10);void book:modify()int k;cout请输入要修改的图书的编号b1.no;loop3:coutendlendl; cout endl endl endl 修改标题- endl 修改作者- endl 修改评级- endl 修改出版社- endl 修改isbn号- endl 修改页数- endl 返回菜单-0 endl endl endl endl; coutendlendl; coutk; if(k=0&k7) switch(k) case

20、 1: char mheadline20; cout请输入修改后的标题:mheadline; strcpy(b_b1.no.headline,mheadline); break; case 2: char mwrite20; cout请输入修改后的作者:mwrite; strcpy(b_b1.no.write,mwrite); break; case 3: char mrating20; cout请输入修改后的分级:(未评级、一般、成人、儿童)mrating; strcpy(b_b1.no.rating,mrating); break; case 4: char mpublishe20; co

21、ut请输入修改后的出版社:mpublishe; strcpy(b_b1.no.publisher,mpublishe); break; case 5: char misbn_no20; cout请输入修改后的isbn号:misbn_no; strcpy(b_b1.no.isbn_no,misbn_no); break; case 6: int mpages; cout请输入修改后的页数: mpages; b_b1.no.pages=mpages; break; case 0:break; ; else cout选择错误,请重新输入:n; goto loop3; ;void book:del()

22、cout请输入要删除的图书的编号b1.no;for(j=b1.no;jnum1;j+)b_j.no=b_j+1.no;strcpy(b_j.headline,b_j+1.headline);strcpy(b_j.write,b_j+1.write);strcpy(b_j.rating,b_j+1.rating);strcpy(b_j.publisher,b_j+1.publisher);strcpy(b_j.isbn_no,b_j+1.isbn_no);b_j.pages=b_j+1.pages;num1-;void book:info()cout当前物品库中总物品数:num1endl;voi

23、d book:save()ofstream out;out.open(图书信息.txt);outnum1endl;for(int k=1;k=num1;k+)outb_k.no b_k.headline b_k.write b_k.rating b_k.publisher b_k.isbn_no b_k.pagesnum1;while(num1=count_book)inb_count_book.nob_count_book.headlineb_count_book.writeb_count_book.ratingb_count_book.publisherb_count_book.isbn_

24、nob_count_book.pages;count_book+;in.close();void book:book_menu()coutnn - 欢迎使用媒体库管理系统 - endlendl;coutnn - 图书信息管理 - endlendl;cout endl endl endl 添加图书- endl 查询图书- endl 显示图书- endl 修改图书- endl 删除图书- endl 统计图书- endl 退出系统-0 endl endl endlendl;3.3 cd类的实现cd.hclass cd:public basepublic:void cd_manage();/管理子菜单

25、void add();/添加物品 void refer();/查询物品 void display();/显示物品库 void modify();/修改物品 void del();/删除物品 void info();/统计功能 void save();/保存物品 void read();/读取物品void cd_menu();/菜单char name20;/作者名char year20;/出版年份char time20;/播放时长;cd.cpp#include#include#include#includewindows.h/暂停头文件#includecd.hconst int maxsize_

26、video=100;/储存的最大值cd v_maxsize_video;int count_video=1;cd v,v1;base *p3;int i3,j3,vnum1,vnum2;void cd:cd_manage()/cd管理选择int flag=1;int k;p3=&v;p3-read();v.cd_menu();loop5: coutk;while(flag=1)if(k=0&kadd();break;case 2:p3-refer();break;case 3:p3-display();break;case 4:p3-modify();break;case 5:p3-del()

27、;break;case 6:p3-info();break;case 0:break;elsecout输入有误请重新输入:n;goto loop5;loop6:flag=0;if(flag=0)coutflag;if(flag=1)v.cd_menu();coutk;else if(flag=2)break;else cout选择错误,请重新输入:n;goto loop6;void cd:add()/添加cdcout请输入要添加编号的个数:vnum1;for(j3=0;j3vnum1;j3+)cout请输入视频编号:v.no;i3=v.no;v_i3.no=i3;cout请分别输入标题、作者、

28、评级(未评级、一般、成人、儿童)、出品人的姓名、出品年份、视频时长v_i3.headlinev_i3.writev_i3.ratingv_v_i3.yearv_i3.time;sleep(10);p3-save();void cd:refer()/cd查找loop7:cout endl endl endl 按标题查询- endl 按标题查询- endl 按标题查询- endl 退出子菜单- endl endl endl endlendl;cout请输入你要查询的方式编号:vnum2;switch(vnum2)case 1:cout请输入要查找的视频标题v1.headline;fo

29、r(j3=0;j3maxsize_video;j3+)if(strcmp(v1.headline,v_j3.headline)=0)cout视频编号:v_j3.no标题:v_j3.headline作者:v_j3.write评级:v_j3.rating出品人的姓名:v_出品年份:v_j3.year视频时长:v_j3.timeendl;sleep(10);break;case 2:cout请输入要查找的视频编号v1.no;for(j3=0;j3maxsize_video;j3+)if(v1.no=v_j3.no)cout视频编号:v_j3.no标题:v_j3.headline作者:v

30、_j3.write评级:v_j3.rating出品人的姓名:v_出品年份:v_j3.year视频时长:v_j3.timeendl;sleep(10);break;case 3:cout请输入要查找的视频类别(未评级、一般、成人、儿童)v1.rating;for(j3=0;j3maxsize_video;j3+)if(strcmp(v1.rating,v_j3.rating)=0)cout视频编号:v_j3.no标题:v_j3.headline作者:v_j3.write评级:v_j3.rating出品人的姓名:v_出品年份:v_j3.year视频时长:v_j3.tim

31、eendl;sleep(10);break;case 4:break;default:cout选择有误,请重新输入:n;goto loop7;void cd:display()for(j3=1;j3vnum1+1;j3+)cout视频编号:v_j3.no标题:v_j3.headline作者:v_j3.write评级:v_j3.rating出品人的姓名:v_出品年份:v_j3.year视频时长:v_j3.timeendl;sleep(10);void cd:modify()/cd修改int k;cout请输入要修改的视频的编号v1.no;loop8:coutendlendl;cout endl endl endl 修改标题- endl 修改作者- endl 修改评级- endl 修改出品者- endl 修改出品年份- endl 修改视频时长- endl 返回菜单-0 endl endl en

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论