媒体库管理系统设计

上传人:沈*** 文档编号:41113284 上传时间:2021-11-18 格式:DOC 页数:26 大小:348.50KB
收藏 版权申诉 举报 下载
媒体库管理系统设计_第1页
第1页 / 共26页
媒体库管理系统设计_第2页
第2页 / 共26页
媒体库管理系统设计_第3页
第3页 / 共26页
资源描述:

《媒体库管理系统设计》由会员分享,可在线阅读,更多相关《媒体库管理系统设计(26页珍藏版)》请在装配图网上搜索。

1、C课程设计报告C+程序设计课程设计报告题 目: 媒体库管理系统设计 姓 名: 赵嘉豪 学 号: 1492010117 专业班级: 计科14 甲 指导老师: 朱夏君 2014 年 7 月 1 日浙江工商大学杭州商学院目 录1课题目标02程序具体实现原理12.1 总体方案12.1.1开发平台12.1.2基本原理12.2 程序各个功能说明12.2.1 程序结构12.2.2 程序各主要功能的实现23 课程设计调试与测试报告84 课程设计总结8附件 程序清单(源程序)91 课题目标程序基本功能:(1)添加物品:主要完成图书馆三类物品信息的添加,要求编号唯一。当添加了重复的编号时,则提示数据添加重复并取消

2、添加;当物品库已满,则提示不能再添加新的数据。(2)查询物品可按照三种方式来查询物品,分别为:按标题查询:输入标题,输出所查询的信息,若不存在该记录,则提示“该标题不存在!”;按编号查询:输入编号,输出所查询的信息,若不存在该记录,则提示“该编号不存在!”;按类别查询:输入类别,输出所查询的信息,若不存在记录,则提示“该类别没有物品!”;(3)显示物品库:输出当前物品库中所有物品信息,每条记录占据一行。(4)编辑物品:可根据查询结果对相应的记录进行修改,修改时注意编号的唯一性。(5)删除物品:主要完成图书馆物品信息的删除。如果当前物品库为空,则提示“物品库为空!”,并返回操作;否则,输入要删除

3、的编号,根据编号删除该物品的记录,如果该编号不在物品库中,则提示“该编号不存在”。(6)统计信息输出当前物品库中总物品数,以及按物品类别,统计出当前物品中各类别的物品数并显示。(7)物品存盘:将当前程序中的物品信息存入文件中。(8)读出物品:从文件中将物品信息读入程序。2 程序具体实现原理2.1 总体方案(1) 程序采用双向链表数据结构实现。(2) 用类来实现数据的封装。(3) 使用文件的输入输出流实现对记录的保存与读取。2.1.1开发平台操作系统:Win7 开发软件:Mirosoft Visual C+ 6.02.1.2基本原理密码系统登陆菜单管理员菜单其他人员菜单退出信息删除信息显示信息查

4、询信息添加信息查询退出2.2 程序各个功能说明2.2.1 程序结构1.类设计 基类:Tushuguan 数据成员: 作者、编号、标题、评级、类别编号 成员函数:display() 输入姓名、编号、标题、评级、类别编号 class Tushuguan public: char name256; /作者int num; /编号char biaoti256; /标题char pingji256; /评级 int x; /类别编号void display()cout<<"作者:"cin>>name; cout<<"编号:"ci

5、n>>num; cout<<"标题:"cin>>biaoti; cout<<"评级:"cin>>pingji; cout<<"类别编号(1.图书,2.视频光盘,3.图画): "cin>>x; ; 派生类:Tushu Shipinguangpan Tuhua Tushu 数据成员:出版社 ISBN号 页数 成员函数:display1() 调用基类的display()函数和输入课时 Teacher(int s=800) /基本工资赋值 class Tush

6、u:public Tushuguan public: char cbs256; /出版社 int hm; / ISBN号 int yeshu; /页数void display1()cout<<"请输入图书的" Tushuguan:display();cout<<"请输入图书的出版社: "cin>>cbs; cout<<"请输入图书的ISBN号: "cin>>hm; cout<<"请输入图书的页数: "cin>>yeshu; ; Sh

7、ipinguangpan 数据成员:名字 时长 年份 成员函数:display1() 调用基类的display()函数 Shiyanyuan(int s=650,int b=150) /基本工资及补助赋值 class Shipinguangpan:public Tushuguan public: char mingzi256; /名字 int year; /年份 int shichang; /时长 void display1()cout<<"请输入视频光盘的" Tushuguan:display();cout<<"请输入视频光盘出品者的名字

8、: "cin>>mingzi; cout<<"请输入视频光盘出品年份: "cin>>year; cout<<"请输入视频光盘视频时长: "cin>>shichang; ; Tuhua 数据成员:国籍、长、宽 成员函数:display1() 调用基类的display()函数class Tuhua:public Tushuguan public:char guoji256; /国籍 int chang; /长int kuan; /宽void display1() cout<<&

9、quot;请输入图画的" Tushuguan:display();cout<<"请输入图画的出品国籍: "cin>>guoji; cout<<"请输入图画作品的长: "cin>>chang; cout<<"请输入图画作品的宽: "cin>>kuan; ;Tushuguan#name256:chai#num:int #biaoti256; char#pingji256; char#x:int+display() void具体如图: 基类 Tushu#cbs

10、256;char #hm: int#yeshu:int+display1() voidShipinguangpan#mingzi:char#year: int#shichang:int+display1():voidTuhua#guoji:char#chang:int#kuan:int+display1():void派生类2.2.2 程序各主要功能的实现1.添加函数void tushutianjia() /图书添加 int m=3; ofstream outfile("图书.txt",ios:app); if(outfile.fail() cout<<"

11、;open error!"<<endl; exit(1); int b; cout<<"请选择你要添加图书的本数:" cin>>b; for(i=0;i<b;i+) int num1; char nam256; ti.display1(); cout<<"请重新输入图书的编号"<<endl;cin>>num1;cout<<"请重新输入图书的作者"<<endl;cin>>nam;int n=0;for(j=0;j&

12、lt;100;j+) ifstream infile("图书.txt",ios:in);infile>>tj.num>>tj.name;infile.close(); if(tj.num!=num1) n+;break; if(tj.num=num1&&strcmp(tj.name,nam)!=0) break; for(j=0;j<100;j+) ifstream infile("视频光盘.txt",ios:in); infile>>sj.num;infile.close(); if(sj.nu

13、m=num1) break; else n+;break; for(j=0;j<100;j+) ifstream infile("图画.txt",ios:in); infile>>hj.num; infile.close(); if(hj.num=num1) break; else n+;break; strcpy(ti.name,nam) ; ti.num=num1; for(j=0;j<100;j+)ifstream infile("图书.txt",ios:in); infile>>tj.num; if(tj.nu

14、m!=0) m=3; else m=2; infile.close(); if(n=m) outfile<<ti.x<<" "<<ti.num<<" "<<ti.name<<" "<<ti.biaoti<<" "<<ti.pingji<<" "<<ti.cbs<<" "<<ti.hm<<" 1 &qu

15、ot;<<ti.yeshu<<endl; else cout<<"数据添加重复。"<<endl; outfile.close(); 2.查询函数 void biaotichaxun() /标题查询 int n; char biaot100; cout<<"请输入你要查询的标题: "cin>>biaot; for(i=0,n=0;i<100;i+) ifstream infile("图书.txt",ios:in); infile>>ti.num&g

16、t;>ti.biaoti>>ti.hm>>ti.yeshu; if(ti.num=0) break; if(strcmp(ti.biaoti,biaot)=0) n+; infile>>ti.x>>ti.num>>ti.name>>ti.biaoti>>ti.pingji>>ti.cbs>>ti.hm>>ti.yeshu; cout<<ti.x<<" "<<ti.num<<" "&l

17、t;<ti.name<<" "<<ti.biaoti<<" "<<ti.pingji<<" "<<ti.cbs<<" "<<ti.hm<<" "<<ti.yeshu<<endl; break; infile.close(); if(n=0) cout<<"图书内没有你要查询的信息。"<<endl; for(i=0,n

18、=0;i<100;i+) ifstream infile("视频光盘.txt",ios:in); infile>>si.num>>si.biaoti>>si.year>>si.shichang; if(si.num=0) break; if(strcmp(si.biaoti,biaot)=0) n+;infile>>si.x>>si.num>>si.name>>si.biaoti>>si.pingji>>si.mingzi>>si.yea

19、r>>si.shichang; cout<<si.x<<" "<<si.num<<" "<<si.name<<" "<<si.biaoti<<" "<<si.pingji<<" "<<si.mingzi<<" "<<si.year<<" "<<si.shichang&

20、lt;<endl;infile.close(); break; infile.close();if(n=0)cout<<"视频光盘内没有你要查询的信息。"<<endl; for(i=0,n=0;i<100;i+) ifstream infile("图画.txt",ios:in);infile>>hi.num>>hi.biaoti>>hi.chang>>hi.kuan;if(hi.num=0) break; if(strcmp(hi.biaoti,biaot)=0) n+;

21、infile>>hi.x>>hi.num>>hi.name>>hi.biaoti>>hi.pingji>>hi.guoji>>hi.chang>>hi.kuan; cout<<hi.x<<" "<<hi.num<<" "<<hi.name<<" "<<hi.biaoti<<" "<<hi.pingji<<

22、;" "<<hi.guoji<<" "<<hi.chang<<" "<<hi.kuan<<endl;infile.close(); break; if(n=0) cout<<"图画没有你要查询的信息。"<<endl; 3.显示函数 void tuhuaxianshi() /图画显示ifstream infile("图画.txt",ios:in); for(i=0;i+) infile>>h

23、i.x>>hi.num>>hi.name>>hi.biaoti>>hi.pingji>>hi.guoji>>hi.chang>>hi.kuan; if(ti.num=0) break; else cout<<hi.x<<" "<<hi.num<<" "<<hi.name<<" "<<hi.biaoti<<" "<<hi.pin

24、gji<<" "<<hi.guoji<<" "<<hi.chang<<" "<<hi.kuan<<endl; cout<<"图画显示完毕!"<<endl; infile.close();4.删除函数void tuhuashanchu() /图画删除 ifstream infile("图画.txt",ios:in); int bianha; cout<<"请输入你要删除

25、图画的编号: "cin>>bianha; for(i=0;i<100;i+) infile>>hi.x>>hi.num>>hi.name>>hi.biaoti>>hi.pingji>>hi.guoji>>hi.chang>>hi.kuan; if(hi.num=0) break; if(hi.num=bianha) for(int j=i;j<100;j+) hj.num=0;strcpy(hj.name," ");strcpy(hj.biaot

26、i," ");strcpy(hj.pingji," ");strcpy(hj.guoji," ") ; hj.x=0;hj.chang=0;hj.kuan=0; infile.close();ofstream outfile("图画.txt",ios:out); for(i=0;i<100;i+) if(hi.num!=0) outfile<<hi.x<<hi.num<<" "<<hi.name<<" "<

27、;<hi.biaoti<<" "<<hi.pingji<<hi.guoji<<hi.chang<<hi.kuan<<endl; outfile.close();void xinxishanchu() /删除 int c; for(i=0;i+) show4();cin>>c; if(c=4)cout<<"退出删除成功。"<<endl;break; else switch(c) case 1: tushushachu(); break; cas

28、e 2: shipinguangpanshanchu();break; case 3: tuhuashanchu();break; default:cout<<"上一次输入错误。"<<endl;break; 5.统计函数void xinxitongji() /数据统计int n=0,k=0,m=0; for(i=0;i<100;i+) ifstream infile("图画.txt",ios:in); infile>>ti.x>>ti.num; if(ti.num=0) break; if(ti.x=

29、1) n+ ;infile.close();for(i=0;i<100;i+)ifstream infile("视频光盘.txt",ios:in); infile>>si.x>>si.num; if(si.num=0) break; if(si.x=2) k+ ; infile.close();for(i=0;i<100;i+) ifstream infile("图画.txt",ios:in); infile>>hi.x>>hi.num;if(hi.num=0) break; if(hi.x=3

30、) m+ ; infile.close();cout<<"图书馆有图书:"<<n<<"本"<<endl;cout<<endl; cout<<"图书馆有视频光盘:"<<m<<"个"<<endl; cout<<endl; cout<<"图书馆有图画"<<k<<"册"<<endl; 3 课程设计调试与测试报告1. 首

31、页进入媒体管理系统登录系统2.进入媒体库管理主菜单2. 可进入添加、查询、显示、删除、统计界面 4 课程设计总结(1) 通过本次课程设计,对本学期C+课程习得的知识进行了一次综合运用,巩固了所学。而本次课程设计与现实联系比较紧密,综合性也比较强,锻炼了独立思考并解决问题的能力。课程设计分为两个阶段,对于处理问题比较有层次性,即逐步深入;而课程要求也对本次试验有一定的引导作用。完成了本次试验,对于其他编程项目,不论简单、复杂,也比较容易理解、接受、尝试、解决。(2) 在做了本课程设计以后,我对C+的了解更深了,很多知识得到了巩固,一些不懂的知识也渐渐明了!这其中主要是对指针的使用收获很多,在指针

32、使用的过程中,对指针的指向以及对各函数中指针的赋值会影响到整个程序的运行;还有就是对文件的输入输出流了解得更透彻了,知道了打开一个文件后必须还要对其关闭,否则程序无法运行,对各种文件的输入输出控制符都能基本融会贯通。(3) 虽然本课题已完成,可是还是存在一些问题,比如说界面还不够好看,为了用户用得舒服,界面是很重要的。源代码#include<iostream> #include<fstream.h> #include<stdlib.h> #include<string.h> int i; int j; class Tushuguan public

33、: char name256; int num; char biaoti256; char pingji256; int x; void display() cout<<"作者:" cin>>name; cout<<"编号:" cin>>num; cout<<"标题:" cin>>biaoti; cout<<"评级:" cin>>pingji; cout<<"类别编号(1.图书,2.视频光盘,3.图

34、画): " cin>>x; ; class Tushu:public Tushuguan public: char cbs256; int hm; int yeshu; void display1() cout<<"请输入图书的" Tushuguan:display(); cout<<"请输入图书的出版社: " cin>>cbs; cout<<"请输入图书的ISBN号: " cin>>hm; cout<<"请输入图书的页数: &qu

35、ot; cin>>yeshu; ; class Shipinguangpan:public Tushuguan public: char mingzi256; int year; int shichang; void display1() cout<<"请输入视频光盘的" Tushuguan:display(); cout<<"请输入视频光盘出品者的名字: " cin>>mingzi; cout<<"请输入视频光盘出品年份: " cin>>year; cout&l

36、t;<"请输入视频光盘视频时长: " cin>>shichang; ;class Tuhua:public Tushuguan public: char guoji256; int chang; int kuan; void display1() cout<<"请输入图画的" Tushuguan:display(); cout<<"请输入图画的出品国籍: " cin>>guoji; cout<<"请输入图画作品的长: " cin>>cha

37、ng; cout<<"请输入图画作品的宽: " cin>>kuan; ; Tushu t100; Shipinguangpan s100; Tuhua h100; void show() cout<<"请输入你要添加的对象 :"<<endl; cout<<"1:图书"<<endl; cout<<"2:视频光盘"<<endl; cout<<"3:图画"<<endl; cout&l

38、t;<"4:退出添加"<<endl; cout<<"请选择: " void tushutianjia() /图书添加 int m=3; ofstream outfile("图书.txt",ios:app); if(outfile.fail() cout<<"open error!"<<endl; exit(1); int b; cout<<"请选择你要添加图书的本数:" cin>>b; for(i=0;i<b;i

39、+) int num1; char nam256; ti.display1(); cout<<"请重新输入图书的编号"<<endl;cin>>num1;cout<<"请重新输入图书的作者"<<endl;cin>>nam;int n=0;for(j=0;j<100;j+) ifstream infile("图书.txt",ios:in);infile>>tj.num>>tj.name;infile.close(); if(tj.num!

40、=num1) n+;break; if(tj.num=num1&&strcmp(tj.name,nam)!=0) break; for(j=0;j<100;j+) ifstream infile("视频光盘.txt",ios:in); infile>>sj.num;infile.close(); if(sj.num=num1) break; else n+;break; for(j=0;j<100;j+) ifstream infile("图画.txt",ios:in); infile>>hj.num;

41、 infile.close(); if(hj.num=num1) break; else n+;break; strcpy(ti.name,nam) ; ti.num=num1; for(j=0;j<100;j+)ifstream infile("图书.txt",ios:in); infile>>tj.num; if(tj.num!=0) m=3; else m=2; infile.close(); if(n=m) outfile<<ti.x<<" "<<ti.num<<" &q

42、uot;<<ti.name<<" "<<ti.biaoti<<" "<<ti.pingji<<" "<<ti.cbs<<" "<<ti.hm<<" 1 "<<ti.yeshu<<endl; else cout<<"数据添加重复。"<<endl; outfile.close(); void shipinguang

43、pantianjia() /视频光盘添加 int n,m=3; ofstream outfile("视频光盘.txt",ios:app); if(outfile.fail() ) cout<<"open error!"<<endl; exit(1); int b; cout<<"请输入你要添加视频光盘的个数:"cin>>b; for(i=0,n=0;i<b;i+) int num1=0; char nam256=" " si.display1(); cout&l

44、t;<"请重新输入视频光盘的编号"<<endl;cin>>num1; cout<<"请重新输入视频光盘的作者"<<endl;cin>>nam; for(j=0;j<100;j+) ifstream infile("视频光盘.txt",ios:in);infile>>sj.num>>sj.name;infile.close(); if(sj.num!=num1) n+;break; if(sj.num=num1&&strcmp

45、(sj.name,nam)!=0) break; for(j=0;j<100;j+) ifstream infile("图书.txt",ios:in);infile>>tj.num;infile.close(); if(tj.num=num1) break; else n+;break; for(j=0;j<100;j+) ifstream infile("图画.txt",ios:in); infile>>hj.num; if(hj.num=num1) break; else n+;break; for(j=0;j&l

46、t;100;j+) ifstream infile("视频光盘.txt",ios:in);infile>>sj.num; if(sj.num!=0) m=3; else m=2; infile.close(); if(n=m) outfile<<si.x<<" "<<si.num<<" "<<si.name<<" "<<si.biaoti<<" "<<si.pingji<

47、<" "<<si.mingzi<<" "<<si.year<<" "<<si.shichang<<endl; else cout<<"数据添加重复。"<<endl; outfile.close(); void tuhuatianjia() /图画添加 int n,m=3; ofstream outfile("图画.txt",ios:app); if(outfile.fail() cout<

48、<"open error!"<<endl; exit(1); int b; cout<<"请输入你要添加图画的本数:"cin>>b; for(i=0,n=0;i<b;i+) int num1=0; char nam256=" " hi.display1(); cout<<"请重新输入图画的编号"<<endl;cin>>num1; cout<<"请重新输入图画的作者"<<endl;cin&g

49、t;>nam; for(j=0;j<100;j+) ifstream infile("图画.txt",ios:in);infile>>hj.num>>hj.name; if(hj.num!=num1) n+;break; if(hj.num=num1&&strcmp(hj.name,nam)!=0) break; for(j=0;j<100;j+) ifstream infile("图书.txt",ios:in); infile>>tj.num;infile.close(); if(t

50、j.num=num1) break; else n+;break; for(j=0;j<100;j+) ifstream infile("视频光盘.txt",ios:in); infile>>sj.num;infile.close(); if(sj.num=num1) break; else n+;break; for(j=0;j<100;j+) ifstream infile("图画.txt",ios:in);infile>>hj.num; if(hj.num!=0) m=3; else m=2; infile.cl

51、ose(); if(n=m) outfile<<hi.x<<" "<<hi.num<<" "<<hi.name<<" "<<hi.biaoti<<" "<<hi.pingji<<" "<<hi.guoji<<" "<<hi.chang<<" "<<hi.kuan<<endl; else cout<<"数据添加重复。"<<endl; outfile.close(); void xinx

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

copyright@ 2023-2025  zhuangpeitu.com 装配图网版权所有   联系电话:18123376007

备案号:ICP2024067431-1 川公网安备51140202000466号


本站为文档C2C交易模式,即用户上传的文档直接被用户下载,本站只是中间服务平台,本站所有文档下载所得的收益归上传人(含作者)所有。装配图网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。若文档所含内容侵犯了您的版权或隐私,请立即通知装配图网,我们立即给予删除!