c++语言课程设计—影像管理系统课程设计论文.doc

上传人:小小飞 文档编号:3901674 上传时间:2019-10-09 格式:DOC 页数:38 大小:161.52KB
返回 下载 相关 举报
c++语言课程设计—影像管理系统课程设计论文.doc_第1页
第1页 / 共38页
c++语言课程设计—影像管理系统课程设计论文.doc_第2页
第2页 / 共38页
c++语言课程设计—影像管理系统课程设计论文.doc_第3页
第3页 / 共38页
c++语言课程设计—影像管理系统课程设计论文.doc_第4页
第4页 / 共38页
c++语言课程设计—影像管理系统课程设计论文.doc_第5页
第5页 / 共38页
点击查看更多>>
资源描述

《c++语言课程设计—影像管理系统课程设计论文.doc》由会员分享,可在线阅读,更多相关《c++语言课程设计—影像管理系统课程设计论文.doc(38页珍藏版)》请在三一文库上搜索。

1、课程设计说明书本科生课程设计说明书题 目:c+语言课程设计 影像管理系统学生姓名: 学 号:专 业:计算机科学与技术班 级:计算机三班指导教师:37课程设计任务书课程名称c+语言课程设计设计题目影碟信息管理系统指导教师时间一、教学要求1. 巩固和加深学生对c+语言课程的基本知识的理解和掌握2. 掌握c+语言编程和程序调试的基本技能3. 利用c+语言进行基本的软件设计4. 掌握书写程序设计说明文档的能力5. 提高运用c+语言解决实际问题的能力二、设计资料及参数每个学生在教师提供的课程设计题目中任意选择一题,独立完成,题目选定后不可更换。影碟信息管理系统图影碟息包括:电影名称、出品公司、导演姓名、

2、主演姓名(至少2个)、上映时间、库存数量、价格等。试设计一影碟信息管理系统,使之能提供以下功能:v 影碟信息录入功能(影碟信息用文件保存)输入;影碟信息浏览功能输出v 查询或排序功能:(至少两种查询方式)算法按电影名称查询 按主演姓名查询v 影碟信息的插入、删除与修改v 影碟的借出与归还三、设计要求及成果1. 分析课程设计题目的功能需求(可选用数组或链表实现,可多人(最多3人)协作完成一个题目)2. 写出详细设计说明(至少包括功能实现分析和模块流程图)3. 编写程序代码,调试程序使其能正确运行(代码书写要规范,标示符要见名知意,要有必要的注释,每人至少3个函数,每人至少200行代码,不包括注释

3、和花括号)4. 设计完成的软件要便于操作和使用5. 设计完成后提交课程设计报告(请严格按照模板进行排版)四、进度安排第一天 选择课程设计题目,分析课题的要求第二天 编程第三天 编程及调试第四天 写课程设计报告第五天 提交课程设计报告(打印稿及电子稿)五、评分标准1. 根据平时上机考勤、表现和进度,教师将每天点名和检查2. 根据课程设计完成情况,必须有可运行的软件。3. 根据课程设计报告的质量,如有雷同,则所有雷同的所有人均判为不及格。六、建议参考资料1c+语言程序设计,谭浩强,清华大学出版社2c+语言程序设计课程设计,刘振安,机械工业出版社影像信息管理系统目录内蒙古科技大学课程设计任务书I第一

4、章 需求分析31.1引言31.2任务概述31.3数据描述31.4功能需求31.5性能需求31.6运行需求41.7任务计划4第二章概要设计52.1总体设计52.2数据类型设计(或数据结构设计)52.3接口设计 /函数声明52.4运行界面设计5第三章详细设计73.1输入模块设计73.2输出模块设计73.3查找模块设计73.4排序模块设计73.5保存及读取模块设计7第四章测试分析84.1测试程序执行情况84.2出现的问题和解决的方法8第五章用户手册(可选)95.1使用说明95.2运行说明9第六章课程设计总结10附录:程序代码11参考文献12致谢13第一章 需求分析1.1 引言c+语言具有高级语言的强

5、大功能,却又有很多直接操作计算机硬件的功能(这些都是汇编语言的功能),因此,c+语言通常又被称为中级语言。学习和掌握c+语言,既可以增进对于计算机底层工作机制的了解,又为进一步学习其他高级语言打下了坚实的基础。为了方便对影像进行管理,用c+程序实现这一想法。1.2 任务概述影像信息管理系统影像信息包括:碟片名称,演员,类型,可否借阅等。试设计一碟片信息管理系统,使之能提供以下功能:v 碟片信息录入功能(碟片信息用文件保存)输入v 碟片信息浏览功能输出v 查询或排序功能:(至少两种种查询方式)算法按名称查询 按演员名查询v 碟片的借出与归还1.3 数据描述class cd friend clas

6、s MoiveSystem;private:char film_name10; char actor 10;char type10;int n; ;class MoiveSystempublic:MoiveSystem();public:void add(void);int check_name(void);int check_actor(void);int rent(void) ;void retur_n(void) ;private:cd CD1000;int cd_number; ;MoiveSystem:MoiveSystem()cd_number = 1; 定义结构体类型,该类型包括

7、四个成员:依次为碟片的名称,演员,类型,可否借阅。1.4 功能需求实现:按名称查询按演员名查询增加碟片借阅碟片归还碟片1.5 性能需求要求反应时间快,对碟片的信息了解较全面。(时间特性)1.6 运行需求屏幕格式:有菜单和工具栏以方便操作各数据信息可以在屏幕直接修改各数据结果可在屏幕显示硬件环境:普通计算机编译环境:vc+6.01.7 任务计划 设计c+程序,实现影像管理的各项功能。碟片查询:两种查询方式分别为按名称查询,按演员查询,其中如果按要求找到对应的碟片,则输出该书目的所有信息。碟片增加:可输入碟片信息。碟片借阅:可按名称查询到碟片并借阅。碟片归还:可按名称查询到碟片并归还。第二章 概要

8、设计2.1 总体设计总体设计目标:使用者可以利用本系统进行对影像借阅的各项运算操作,根据用户的需求自动的进行添加碟片,借阅碟片,归还碟片。查找所要的碟片,查阅碟片的详细资料,查阅演员的详细资料。最后清晰完整的结果于屏幕中。大大方便使用者对碟片借阅的操作,不仅节省时间,而且提高准确性,可以达到事半功倍的效果。总体设计策略:本系统采用的是自顶向下、层次化的模块结构。查询(名称)增加结构图:归还菜单主函数查询(演员)借阅2.2 数据类型设计(或数据结构设计)class cd friend class MoiveSystem;private:char film_name10; char actor 1

9、0;char type10;int n; ;2.3 接口设计 一void add(void);二int check_name(void);三int check_actor(void);四int rent(void); 五void retur_n (void);2.4 运行界面设计第三章 详细设计3.1 输入模块设计void MoiveSystem:add(void) FILE *a; char s;s=y;system(cls);while (s=y)system(cls);cout 请输入碟片名称:n; scanf(%s,CDcd_number.film_name); getchar();c

10、out 请输入演员名字:n;scanf(%s,CDcd_number.actor);getchar();cout 请输入碟片类型:n; scanf(%s,CDcd_number.type);getchar();cout 请输入碟片状态:n;scanf(%d,&CDcd_number.n);getchar();a = fopen(cd.txt,a);fprintf(a,%s %s %s %d n,CDcd_number.film_name,CDcd_number.actor,CDcd_number.type,CDcd_number.n);fclose(a);cd_number+;cout s;f

11、close(a);system(cls);3.2 查询(名称)模块设计int MoiveSystem:check_name(void) int i;FILE *a;char cd_name10; system(cls);a=fopen(cd.txt,r);while(!feof(a) fscanf(a,%s %s %s %d,&CDcd_number.film_name,&CDcd_number.actor,&CDcd_number.type,&CDcd_number.n);if(!feof(a) cd_number+; cout cd_name;getchar();for(i = 0; i

12、cd_number; i+) if(strcmp(CDi.film_name, cd_name)=0) if(CDi.n=1) cout 可借阅n; fclose(a);return 1; if(CDi.n=0) cout 已借出n; fclose(a); return 1; for(i = 0; i cd_number; i+) if(strcmp(CDi.film_name, cd_name)!=0)cout 无此片n; fclose(a); return 1; fclose(a);return 0;3.3 查询(演员)模块设计int MoiveSystem:check_actor(voi

13、d) int i;FILE *a;char actor10; system(cls);a=fopen(cd.txt,r);while(!feof(a) fscanf(a,%s %s %s %d,&CDcd_number.film_name,&CDcd_number.actor,&CDcd_number.type,&CDcd_number.n);if(!feof(a) cd_number+; cout actor;getchar();for(i = 0; i cd_number; i+) if(strcmp(CDi.actor, actor)=0) if(CDi.n=1) cout 可借阅n;

14、fclose(a);return 1; if(CDi.n=0) cout 已借出n; fclose(a); return 1; for(i = 0; i cd_number; i+) if(strcmp(CDi.actor, actor)!=0) cout 无此片n; fclose(a); return 1; fclose(a);return 0; 3.4借阅模块设计int MoiveSystem:rent(void) int i;int j,f=0;char cd_name10; FILE *a; int k=0; char choice; choice=a;system(cls);whil

15、e(choice!=b)a = fopen(cd.txt,r); while(!feof(a) fscanf(a,%s %s %s %d,&CDcd_number.film_name,&CDcd_number.actor,&CDcd_number.type,&CDcd_number.n);if(!feof(a) cd_number+; cout cd_name;getchar();k+;for (j = 0; j cd_number; j+) if(strcmp(CDj.film_name, cd_name)=0) CDj.n=0; f=1; if (f=0)cout 不存在此片!n;cout

16、 A: 再借一张n; cout B: 退出n; fclose(a); scanf(%c,&choice); getchar(); return 0;3.5归还模块设计void MoiveSystem:retur_n(void) int i;int j;char cd_name10; FILE *a; int k=0; char choice; choice=a;system(cls);while(choice!=b)a = fopen(cd.txt,r); while(!feof(a) fscanf(a,%s %s %s %d,&CDcd_number.film_name,&CDcd_numb

17、er.actor,&CDcd_number.type,&CDcd_number.n);if(!feof(a) cd_number+; cout cd_name;getchar();k+;for (j = 0; j cd_number; j+) if(strcmp(CDj.film_name, cd_name)=0) CDj.n=1; elsecout 不存在此片!n; fclose(a); cout A: 再还一张n; cout choice;getchar(); 第四章 测试分析4.1 测试程序执行情况第五章 课程设计总结一门课程设计是一种对语言内容的提炼和使用,当确定所要设计的内容是,要从

18、其所要实现的功能上下手,所确立的课题要拥有的功能是从一个用户的角度所来考虑的,用户是不知道其源程序,同时不知道任何内部细节,对于用户或者所该软件的使用者来说,你所要呈现的是一个清楚明了的界面,而他们可以从这个界面上得到他们所要实现的东西这是开发一个软件里应具有的思维程序,如同一个源程序的算法一样,这样一个算法的建立会让你有理有章,先要做些什么,然后下一步是什么,这也是从一个解决问题的理论高度上所出发的,每一问题的解决理所当然有一个如何解决的思路呈现,下面就具体用这个程序的设计过程来说明。当确立要设计一个影像管理系统的c+语言程序时,所呈现的第一个问题是什么:当你对所谓的影像管理流程一无所知时,

19、你应当做的第一步是什么,对了,就是首先去了解它了解它的作用,它的流程,它的功能。这是一个必须要经历的阶段,只有当你熟练掌握你所要求的东西的细节之后,你的围绕才能展开,你所做的后续工作一切的核心都将围绕它,当你要一个个实现它的功能是时,你的思路里要求孕育着它,这就是你做这个软件的前提,当我了解一个影像管理系统的功能时,了解他所要求的细节时,一切就更加顺理成章。我知道了一个影像管理系统要求有影像信息的录入,影像信息的修改,影像信息的删除,影像的排序,影像信息的浏览,影像信息的查询当然还有后续的一些功能,这首先必须得建立在基础的功能之上,然后达到进一步的实现。然后就是组装这些功能,实现一个算法的流程

20、。显而易见主函数就起到一个选择的作用,使用switch语句来选择相应的功能,当然也可以附加一个menu的子函数,用主函数对他的调用,再通过它来实现选择的作用。而主函数中的printf语句就可以呈现给用户一个明确的界面信息,告诉用户如何选择,如何实现相应的功能。当然这一切都只是个框架,并不具备具体的内容,要达到具体的内容不是让让其成为一个空架子,所以对于相应子函数的逐个设计是整个重心!而每一个子函数的实现都是一个对于细节相当程度上的把握问题,需要一遍又一遍的提炼。最终才能做得更好。往往所学习的知识内容,即你所拥有的知识储备,难以实现所有的要求,利用资源,而且是合理的吸收资源,反而成为一个相当比重

21、的能力,对于新知识的吸收和把握才能更好的体现你所具备的能力,从我所设计这个程序的过程上讲,当具体着手做的时候,所具备的知识是不足以实现的,学习链表的相应使用,学习文件的相应功能上的应用都是一个必须所经过的过程。这其中有许多可以借鉴的子函数,它们所具备的功能加以改进就可以实现自己程序的功能,例如建立动态链表的函数,节点插入的insert函数,以及最基本的一些函数如排序的灵活运用都是一个利用资源的能力,要做的是理解这些程序,然后才能灵活的运用这些东西,通过这些东西的理解也是对c+语言具体相应规则的更加深刻的了解!同时还有仅靠课本上的内容不足以使程序达到一定的程度,因此借用一些完善程序的某些内容可以

22、使自己的程序更加趋于完善!这一切的过程说起来也许可以条分缕析,但是真正做的时候要求的东西更多,需要更加的定下心来,面对一串串代码,运算符,以及标点符号一个也许很不显眼的问题就足以让你头昏脑胀,要理清思路,要关注每一点。整体上的把握,例如不要忽视了函数的声明,以至于无法运行,尝试着多一些调试,每一次改动都要考虑到方方面面,要整体上把握你的程序,这样才能减少不知所以的错误,当错误出现的时候,你可以准确的把握错误所出现的地方,这种能力的实现就是要求足够的细心,要求你对程序整体上的把握足够的熟练,当用三天的时间就针对一个链表排序来改变不同种做法的时候,也许你觉得这一切都足够的不可思议,然而实际上远远不

23、是如此,你可以从这个过程中旁敲侧击的理解许多容易忽略的东西,熟练不是说出来的,熟练是做出来的!特别对于计算机专业的来说,对于软件的开发来说,一切的错误不可避免,一切都趋于正常为此你所建立的信心是足够强大的!一切其实只是个开始,我们还都只是个门外汉,当你知道的越多,你能感受到什么,是的,你会明白你是无知的,往往你所拥有的知识只不过是凤毛麟角,当你逐渐明白或者说感受到这些东西的话你就不会沾沾自喜,你需要更加去学习去钻研,如果你无法定下心来这一切都不可能实现。一次课程设计并不是最重要的,重要的是什么?是你通过自主的学习理解到如何去面对你生活或者学习上的问题,一个解决问题处理问题的方案,一个身在问题之

24、中,然后你能够如何不被它搅得不知所措,能够把握住自己的思路,一步一步走下去,时间只是个过程,过程中会有好多东西值得去做!课程设计并不是结束了,它只是暂告了一个段落,如果真正能够从中得到什么,我想就是需要做的东西更多,需要做的事情更多!面对挑战面对知识的接踵而至总以一种孜孜不倦的态度,永远需求!附录:程序代码#include #include #include using namespace std;class cd friend class MoiveSystem;private:char film_name10; char actor 10;char type10;int n; ;class

25、 MoiveSystempublic:MoiveSystem();public:void add(void);int check_name(void);int check_actor(void);int rent(void) ;void retur_n(void) ;private:cd CD1000;int cd_number; ;MoiveSystem:MoiveSystem()cd_number = 1;void MoiveSystem:add(void) FILE *a; char s;s=y;system(cls);while (s=y)system(cls);cout 请输入碟片名

26、称:n; scanf(%s,CDcd_number.film_name); getchar();cout 请输入演员名字:n;scanf(%s,CDcd_number.actor);getchar();cout 请输入碟片类型:n; scanf(%s,CDcd_number.type);getchar();cout 请输入碟片状态:n;scanf(%d,&CDcd_number.n);getchar();a = fopen(cd.txt,a);fprintf(a,%s %s %s %d n,CDcd_number.film_name,CDcd_number.actor,CDcd_number.

27、type,CDcd_number.n);fclose(a);cd_number+;cout s;fclose(a);system(cls);int MoiveSystem:check_name(void) int i;FILE *a;char cd_name10; system(cls);a=fopen(cd.txt,r);while(!feof(a) fscanf(a,%s %s %s %d,&CDcd_number.film_name,&CDcd_number.actor,&CDcd_number.type,&CDcd_number.n);if(!feof(a) cd_number+; c

28、out cd_name;getchar();for(i = 0; i cd_number; i+) if(strcmp(CDi.film_name, cd_name)=0) if(CDi.n=1) cout 可借阅n; fclose(a);return 1; if(CDi.n=0) cout 已借出n; fclose(a); return 1; for(i = 0; i cd_number; i+) if(strcmp(CDi.film_name, cd_name)!=0)cout 无此片n; fclose(a); return 1; fclose(a);return 0;int MoiveS

29、ystem:check_actor(void) int i;FILE *a;char actor10; system(cls);a=fopen(cd.txt,r);while(!feof(a) fscanf(a,%s %s %s %d,&CDcd_number.film_name,&CDcd_number.actor,&CDcd_number.type,&CDcd_number.n);if(!feof(a) cd_number+; cout actor;getchar();for(i = 0; i cd_number; i+) if(strcmp(CDi.actor, actor)=0) if

30、(CDi.n=1) cout 可借阅n; fclose(a);return 1; if(CDi.n=0) cout 已借出n; fclose(a); return 1; for(i = 0; i cd_number; i+) if(strcmp(CDi.actor, actor)!=0) cout 无此片n; fclose(a); return 1; fclose(a);return 0; int MoiveSystem:rent(void) int i;int j,f=0;char cd_name10; FILE *a; int k=0; char choice; choice=a;syst

31、em(cls);while(choice!=b)a = fopen(cd.txt,r); while(!feof(a) fscanf(a,%s %s %s %d,&CDcd_number.film_name,&CDcd_number.actor,&CDcd_number.type,&CDcd_number.n);if(!feof(a) cd_number+; cout cd_name;getchar();k+;for (j = 0; j cd_number; j+) if(strcmp(CDj.film_name, cd_name)=0) CDj.n=0; f=1; if (f=0)cout

32、不存在此片!n;cout A: 再借一张n; cout B: 退出n; fclose(a); scanf(%c,&choice); getchar(); return 0;void MoiveSystem:retur_n(void) int i;int j;char cd_name10; FILE *a; int k=0; char choice; choice=a;system(cls);while(choice!=b)a = fopen(cd.txt,r); while(!feof(a) fscanf(a,%s %s %s %d,&CDcd_number.film_name,&CDcd_n

33、umber.actor,&CDcd_number.type,&CDcd_number.n);if(!feof(a) cd_number+; cout cd_name;getchar();k+;for (j = 0; j cd_number; j+) if(strcmp(CDj.film_name, cd_name)=0) CDj.n=1; elsecout 不存在此片!n; fclose(a); cout A: 再还一张n; cout choice;getchar(); int main (void) MoiveSystem *app = new MoiveSystem();char choi

34、ce;while (choice!=f)cout 欢迎进入影片信息管理系统n;cout 请输入你的选择n; cout A: 增加影片n; cout B: 影片查询 (按名称n; cout C: 影片查询 (按演员)n; cout D: 碟片借出n; cout E: 碟片归还n; cout choice;switch(choice) case a: app-add();break; case b: app-check_name();break; case c: app-check_actor();break; case d: app-rent();break; casee: app-retur_n();break;casef: delete app;exit(0);break; delete app;return 0;参考文献吴敏 杨国林著.c+面向对象程序设计. 呼和浩特:内蒙古大学出版社.2006.7致谢

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

当前位置:首页 > 其他


经营许可证编号:宁ICP备18001539号-1