《C++程序设计》课程设计报告-媒体库管理系统设计__第1页
《C++程序设计》课程设计报告-媒体库管理系统设计__第2页
《C++程序设计》课程设计报告-媒体库管理系统设计__第3页
《C++程序设计》课程设计报告-媒体库管理系统设计__第4页
《C++程序设计》课程设计报告-媒体库管理系统设计__第5页
已阅读5页,还剩21页未读 继续免费阅读

下载本文档

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

文档简介

1、C课程设计报告C+程序设计课程设计报告题 目: 媒体库管理系统设计 姓 名: 学 号: 专业班级: 计科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基本原理密码系统登陆菜单管理员菜单其他人员菜单退出信息删除信息显示信息查询信息添加信息查询退出2.2 程序各个

4、功能说明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<<"编号:"cin>>num; cout&

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

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

7、字 时长 年份 成员函数: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<<"请输入视频光盘出品者的名字: "cin>>

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

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

10、eshu: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<<"open error!"&

11、lt;<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<100;j+) ifstream

12、 infile("图书.txt",ios:in);infile>>tj.num>>;infile.close(); if(tj.num!=num1) n+;break; if(tj.num=num1&&strcmp(,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

13、 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(,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

14、; infile.close(); if(n=m) outfile<<ti.x<<" "<<ti.num<<" "<<<<" "<<ti.biaoti<<" "<<ti.pingji<<" "<<ti.cbs<<" "<<ti.hm<<" 1 "<<ti.yeshu

15、<<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>>ti.biaoti>

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

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

18、tream 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.biaoti>>si.pingji>>si.mingzi>>si.year>>si.shichan

19、g; cout<<si.x<<" "<<si.num<<" "<<<<" "<<si.biaoti<<" "<<si.pingji<<" "<<si.mingzi<<" "<<si.year<<" "<<si.shichang<<endl;infile.

20、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+;infile>>hi.x&

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

22、lt;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>>hi.x>>hi.num&g

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

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

25、;>bianha; for(i=0;i<100;i+) infile>>hi.x>>hi.num>>>>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(," ");strcpy(hj.biaoti," ");st

26、rcpy(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.biaoti<&

27、lt;" "<<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; case 2: shipinguangpan

28、shanchu();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=1) n+ ;infile.close

29、();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) m+ ; infile.close

30、();cout<<"图书馆有图书:"<<n<<"本"<<endl;cout<<endl; cout<<"图书馆有视频光盘:"<<m<<"个"<<endl; cout<<endl; cout<<"图书馆有图画"<<k<<"册"<<endl; 3 课程设计调试与测试报告1. 首页进入媒体管理系统登录系统2.进入媒体

31、库管理主菜单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: char name256; int

33、 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.图画): " cin>&

34、gt;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<<"请输入图书的页数: " cin>>yesh

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

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

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

38、quot;<<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+) int num1; char n

39、am256; 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>>;infile.close(); if(tj.num!=num1) n+;break; if

40、(tj.num=num1&&strcmp(,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; infile.close(); if

41、(hj.num=num1) break; else n+;break; strcpy(,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<<" "<<

42、<<" "<<ti.biaoti<<" "<<ti.pingji<<" "<<ti.cbs<<" "<<ti.hm<<" 1 "<<ti.yeshu<<endl; else cout<<"数据添加重复。"<<endl; outfile.close(); void shipinguangpantianjia() /视频光盘添

43、加 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<<"请重新输入视频

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

45、reak; 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<100;j+) ifstream

46、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.biaoti<<" "<<si.pingji<<" "<<si.mingzi<<" "

温馨提示

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

评论

0/150

提交评论