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

下载本文档

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

文档简介

1、系统需求分析 1.1系统设计的目的与意义:图书馆中的资料很多,如果能分类对其资料流通进行管理,将会带来很多方便,因此需要有一个媒体库管理系统。1.2 系统功能需求:本系统有四个类:Base类、Book类、CD类、Draw类,存储资料信息、编号、标题、作者、评级。Base 为父类,其余三个为子类,每个子类具有自己的特点。1基础信息的添加功能程序能够任意添加图书、CD视频光盘、图画信息以及各自对应的相关信息。2修改功能对已添加的记录(图书、CD视频光盘、图画信息以及各自对应的相关信息)进行查找和修改。3删除功能对已添加的记录(图书、CD视频光盘、图画信息以及各自对应的相关信息)进行查找和删除。如果

2、当前系统中没有相应的记录,则提示“记录为空!”并返回操作;否则输入要删除的编号对该记录进行删除,如果没有找到,则提示相应的记录不存在。4查询功能可根据资料的编号查询资料及其内容。可根据标题查找。根据类别查询如果未找到,给出相应的提示信息,如果找到,则显示相应的记录信息。5保存功能将当前系统中各类记录存入文件中。6读取功能将保存在文件中的信息读入到当前系统中,以供用户使用。总体设计2.1 系统功能分析:系统通过调用函数来实现信息录入、信息修改、信息删除、信息查询以及数据保存文件等功能。add()函数用于添加信息;modify()函数用来修改信息;del()函数用来修改信息;refer()函数用来

3、查询数据信息;read()函数用于将文件中的数据读取到内存中;save()函数用于将内存中的信息存入文件内;主函数main()用于调用这些函数。 2.2系统功能模块划分与设计:系统定义了Base基类、Book类、CD类、Draw类这四个类,定义了add()、modify()、del()、read()、save()、refer()等函数来实现系统所需功能。2.3 系统功能模块图:媒体库管理系统媒体库管理系统Library类Library类图书图画视频光盘图书图画视频光盘图画信息查询视频光盘信息添加图书信息查询图书信息添加图书信息统计图画信息统计图书信息修改图书信息删除视频光盘信息删除视频光盘信息

4、修改视频光盘信息查询视频光盘信息统计图画信息修改图画信息删除图画信息添加图画信息查询视频光盘信息添加图书信息查询图书信息添加图书信息统计图画信息统计图书信息修改图书信息删除视频光盘信息删除视频光盘信息修改视频光盘信息查询视频光盘信息统计图画信息修改图画信息删除图画信息添加2.4 类的设计(1)Base类(抽象类)的设计:Basevoid mainmenu(); Basevoid mainmenu(); virtual void add(); virtual void refer();virtual void display()virtual void modify();virtual void

5、 del();virtual void Info();virtual void save();virtual void read();int No;char headline200;char write200;char rating200;图 3.1 Base类(2)图书类的设计:BookBookvoid Book_manage();void Book_menu();void add(); void refer(); void display(); void modify(); void del(); void Info(); void save(); void read();char pub

6、lisher20;char ISBN_No20;int pages;图 3.2班级类(3)CD类的设计:CDCDvoid CD_manage();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;图 3.3学生类(4)图片类的设计:DrawDrawvoid Draw_manage();void Draw_menu(); void a

7、dd(); void refer(); void display(); void modify(); void del(); void Info(); void save(); void read();char nationality20;int length;int width; 图 3.4 课程类(6)各个类的关系描述:详细设计及实现3.1 Base类(抽象类)的实现class Basepublic:void mainmenu(); virtual void add();/添加物品 virtual void refer();/查询物品virtual void display();/显示物品

8、库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 班级类的实现Book.hclass Book:public Basepublic:void Book_manage();/管理void Book_menu();/菜单显示void add();/添加物品 v

9、oid refer();/查询物品 void display();/显示物品库 void modify();/修改物品 void del();/删除物品 void Info();/统计功能 void save();/保存物品 void read();/读取物品char publisher20;/出版社char ISBN_No20;/ISBN号int pages;/页数;Book.cpp#include#include#include#includewindows.h/暂停头文件#includeBook.hconst int maxsize_book=100;/图书数据最大长度Book b_ma

10、xsize_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;case 3:p1-display();break;case 4:p1-modify();break;case 5:p1-del();break;case 6:p1-Info();break;

11、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(j=0;jnum1;j+)cout请输入图书编号:b.No;i=b.No;b_i.No=i;cout请依次输入数据标题、作者、评级(未评级、一般、成人、儿童)、出版社、ISBN号、页数:b

12、_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请输入你要查询的方式编号:nnum2; switch(num2)/三种情况用选择语句 case 1: cout请输入要查找的图书标题:nb1.headline; for(j=0;jmaxsize_book;j+) if(st

13、rcmp(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;jmaxsize_book;j+) if(b1.No=b_j.No) cout图书编号:b_j.No标题:b_j.headline作者:b_j.write评级:b_j.rating出版社:b_i.publ

14、isher 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)cout图书编号:b_j.No标题:b_j.headline作者:b_j.write评级:b_j.rating出版社:b_j.publisherISBN号:b_j.ISBN_No页数:b_j.pagesen

15、dl;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_j.rating出版社:b_j.publisherISBN号:b_j.ISBN_No页数:b_j.pagesendl;Sleep(10);void Book:modify()int k;cout请输入要修

16、改的图书的编号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 1: char mheadline20; cout请输入修改后的标题:mheadline; strcpy(b_b1.No.headline,mheadline); break; case 2: char mwrite20; cou

17、t请输入修改后的作者: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; cout请输入修改后的出版社:mpublishe; strcpy(b_b1.No.publisher,mpublishe); break; case 5: char mISBN_No20; cout请输入修改后的ISBN号:mISBN_

18、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()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+

19、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;void 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.

20、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_Nob_count_book.pages;count_book+;in.close();void Book:Book_menu()coutnn 欢迎使用媒体库管理系统 endlendl;coutnn 图书信息管理 endlendl;

21、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();/管理子菜单void add();/添加物品 void refer();/查询物品 void display();/显示物品库 void modify();/修改物品 void del();/删除物品 void Info();/统计功能 void save();/保存物品 void r

22、ead();/读取物品void cd_menu();/菜单char name20;/作者名char year20;/出版年份char time20;/播放时长;CD.cpp#include#include#include#includewindows.h/暂停头文件#includeCD.hconst int maxsize_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;p

23、3=&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();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;els

24、e 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请分别输入标题、作者、评级(未评级、一般、成人、儿童)、出品人的姓名、出品年份、视频时长v_i3.headlinev_i3.writev_i3.ratingv_v_i3.yearv_i3.time;Sleep(10);p3-save();void CD:refer()/CD查找lo

25、op7:cout endl endl endl 按标题查询endl 按标题查询endl 按标题查询endl 退出子菜单endl endl endl endlendl;cout请输入你要查询的方式编号:vnum2;switch(vnum2)case 1:cout请输入要查找的视频标题v1.headline;for(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_出品年份

26、: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_j3.write评级:v_j3.rating出品人的姓名:v_出品年份:v_j3.year视频时长:v_j3.timeendl;Sleep(10);break;case 3:cout请输入要查找的视频类别(未评级、一般、成人、儿童)v1.rating;for(j3=0;j3

27、maxsize_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.timeendl;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作者

28、: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 endlendl;coutendlendl;coutk;if(k=0&k7)switch(k)case 1

29、:char mheadline20;cout请输入修改后的标题:mheadline;strcpy(v_v1.No.headline,mheadline);break;case 2:char mwrite20;cout请输入修改后的作者:mwrite;strcpy(v_v1.No.write,mwrite);break;case 3:char mrating20;cout请输入修改后的分级:(未评级、一般、成人、儿童)mrating;strcpy(v_v1.No.rating,mrating);break;case 4:char mname20;cout请输入修改后出品人的姓名:mname;st

30、rcpy(v_v1.N,mname);break;case 5:char myear20;cout请输入修改后的出品年份:myear;strcpy(v_v1.No.year,myear);break;case 6:char mtime20;cout请输入修改后的视频时长:mtime;strcpy(v_v1.No.time,mtime);break;case 0:break;else cout选择错误,请重新输入:n;goto loop8;void CD:del()cout请输入要删除的视频的编号v1.No;for(j3=v1.No;j3vnum1;j3+)v_j3.No=v_j3+

31、1.No;strcpy(v_j3.headline,v_j3+1.headline);strcpy(v_j3.write,v_j3+1.write);strcpy(v_j3.rating,v_j3+1.rating);strcpy(v_,v_j3+1.name);strcpy(v_j3.year,v_j3+1.year);strcpy(v_j3.time,v_j3+1.time);vnum1-;void CD:Info()/统计cout当前CD总物品数:vnum1endl;void CD:save()/储存CDofstream out;out.open(CD信息.txt);out

32、vnum1endl;for(int k=1;k=vnum1;k+)outv_k.No v_k.headline v_k.write v_k.rating v_ v_k.year v_k.timevnum1;while(vnum1=count_video)inv_count_video.Nov_count_video.headlinev_count_video.writev_count_video.ratingv_count_v_count_video.yearv_count_video.time;count_video+;in.close();void CD:c

33、d_menu()/CD子菜单coutnn 欢迎使用媒体库管理系统 endlendl;coutnn CD光盘信息管理管理 endlendl;cout endl endl endl 添加CDendl 查询CDendl 显示CDendl 修改CDendl 删除CDendl 统计CDendl 退出系统0 endl endl endlendl;3.4图片类的实现Draw.hcclass Draw:public Basepublic:void Draw_manage();/子菜单管理void Draw_menu();/子菜单 void add();/添加物品 void refer();/查询物品 void

34、 display();/显示物品库 void modify();/修改物品 void del();/删除物品 void Info();/统计功能 void save();/保存物品 void read();/读取物品char nationality20;/国籍int length;/长int width;/宽;Draw.cpp#include#include#include#includewindows.h/暂停头文件#includeDraw.hconst int maxsize_Draw=100;/图片的储存最大值int count_Draw=1;Draw p_maxsize_Draw;Ba

35、se *p2;Draw pi,p1;int i2,j2,pnum1,pnum2;void Draw:Draw_manage()/图片子菜单管理int flag=1;int k;p2=pi.Draw_menu();loop9:coutk;while(flag=1)if(k=0&kadd();break;case 2:p2-refer();break;case 3:p2-display();break;case 4:p2-modify();break;case 5:p2-del();break;case 6:p2-Info();break;case 0:break;elsecout输入有误,请重新

36、输入:n;goto loop9;loop10:flag=0;if(flag=0)coutflag;if(flag=1)pi.Draw_menu();coutk;else if(flag=2)break;else cout选择错误,请重新输入。n;goto loop10;void Draw:add()/添加图片cout请输入要添加编号的个数:pnum1;for(j2=0;j2pnum1;j2+)cout请输入图片编号:pi.No;i2=pi.No;p_i2.No=i2;cout请分别输入标题、作者、评级(未评级、一般、成人、儿童)、国籍、作品的长(以厘米计,整数)、作品的宽(以厘米计,整数)p_

37、i2.headlinep_i2.writep_i2.ratingp_i2.nationalityp_i2.lengthp_i2.width; Sleep(10);void Draw:refer()loop11:cout endl endl endl 按标题查询endl 按标题查询endl 按标题查询endl 退出子菜单endl endl endl endlendl;cout请输入你要查询的方式编号:pnum2;switch(pnum2)case 1:cout请输入要查找的图片标题p1.headline;for(j2=0;j2maxsize_Draw;j2+)if(strcmp(p1.headl

38、ine,p_j2.headline)=0)cout图书编号:p_j2.No标题:p_j2.headline作者:p_j2.write评级:p_j2.rating国籍:p_j2.nationality作品的长:p_j2.length厘米作品的宽:p_j2.write厘米endl; Sleep(10);break;case 2:cout请输入要查找的图片编号p1.No;for(j2=0;j2maxsize_Draw;j2+)if(p1.No=p_j2.No)cout图书编号:p_j2.No标题:p_j2.headline作者:p_j2.write评级:p_j2.rating国籍:p_j2.nati

39、onality作品的长:p_j2.length厘米作品的宽:p_j2.write厘米endl; Sleep(10);break; case 3:loop12:cout请输入要查找的图片类别(未评级、一般、成人、儿童)p1.rating;if(p1.rating=未评级|一般|成人|儿童)for(j2=0;j2maxsize_Draw;j2+)if(strcmp(p1.rating,p_j2.rating)=0)cout图书编号:p_j2.No标题:p_j2.headline作者:p_j2.write评级:p_j2.rating国籍:p_j2.nationality作品的长:p_j2.lengt

40、h厘米作品的宽:p_j2.write厘米endl; Sleep(10);elsecout输入有误请重新输入:n;goto loop12;break;case 4:break;default: cout选择错误,请重新选择:n; goto loop11; break;void Draw:display()for(j2=1;j2pnum1+1;j2+)cout图书编号:p_j2.No标题:p_j2.headline作者:p_j2.write评级:p_j2.rating国籍:p_j2.nationality作品的长:p_j2.length厘米作品的宽:p_j2.width厘米endl;void Dr

41、aw:modify()int k;cout请输入要修改图片的编号p1.No;loop13:coutendlendl;cout endl endl endl 修改标题endl 修改作者endl 修改评级endl 修改国籍endl 修改作品的长endl 修改作品的宽endl 返回菜单0 endl endl endlendl;coutendlendl;coutk;if(k=0&k7)switch(k)case 1:char mheadline20;cout请输入修改后的标题:mheadline;strcpy(p_p1.No.headline,mheadline);break;case 2:char

42、mwrite20;cout请输入修改后的作者:mwrite;strcpy(p_p1.No.write,mwrite);break;case 3:char mrating20;cout请输入修改后的分级:(未评级、一般、成人、儿童)mrating;strcpy(p_p1.No.rating,mrating);break;case 4:char mnationality20;cout请输入修改后的国籍:mnationality;strcpy(p_p1.No.nationality,mnationality);break;case 5:int mlength;cout请输入修改后的作品的长:mlen

43、gth;p_p1.No.length=mlength;break;case 6:int mwidth;cout请输入修改后的页数: mwidth;p_p1.No.width=mwidth;break;case 0:break; else cout选择错误,请重新输入:n; goto loop13;void Draw:del()cout请输入要删除的图片的编号p1.No;for(j2=p1.No;j2pnum1;j2+)p_j2.No=p_j2+1.No;strcpy(p_j2.headline,p_j2+1.headline);strcpy(p_j2.write,p_j2+1.write);strcpy(p_j2.rating,p_j2+1.rating);strcpy(p_j2.nationality,p_j2+1.nationality);p_j2.length=p_j2+1.length;p_j2.width=p_j2+1.width;pnum1-;void Draw:Info()/图片统计cout当前图片总物品数:pnum1endl;v

温馨提示

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

评论

0/150

提交评论