




已阅读5页,还剩32页未读, 继续免费阅读
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
课程设计说明书课程设计任务书课程名称c+语言课程设计设计题目影碟信息管理系统指导教师时间一、教学要求1. 巩固和加深学生对c+语言课程的基本知识的理解和掌握2. 掌握c+语言编程和程序调试的基本技能3. 利用c+语言进行基本的软件设计4. 掌握书写程序设计说明文档的能力5. 提高运用c+语言解决实际问题的能力二、设计资料及参数每个学生在教师提供的课程设计题目中任意选择一题,独立完成,题目选定后不可更换。影碟信息管理系统图影碟息包括:电影名称、出品公司、导演姓名、主演姓名(至少2个)、上映时间、库存数量、价格等。试设计一影碟信息管理系统,使之能提供以下功能:v 影碟信息录入功能(影碟信息用文件保存)输入;影碟信息浏览功能输出v 查询或排序功能:(至少两种查询方式)算法按电影名称查询 按主演姓名查询v 影碟信息的插入、删除与修改v 影碟的借出与归还三、设计要求及成果1. 分析课程设计题目的功能需求(可选用数组或链表实现,可多人(最多3人)协作完成一个题目)2. 写出详细设计说明(至少包括功能实现分析和模块流程图)3. 编写程序代码,调试程序使其能正确运行(代码书写要规范,标示符要见名知意,要有必要的注释,每人至少3个函数,每人至少200行代码,不包括注释和花括号)4. 设计完成的软件要便于操作和使用5. 设计完成后提交课程设计报告(请严格按照模板进行排版)四、进度安排第一天 选择课程设计题目,分析课题的要求第二天 编程第三天 编程及调试第四天 写课程设计报告第五天 提交课程设计报告(打印稿及电子稿)五、评分标准1. 根据平时上机考勤、表现和进度,教师将每天点名和检查2. 根据课程设计完成情况,必须有可运行的软件。3. 根据课程设计报告的质量,如有雷同,则所有雷同的所有人均判为不及格。六、建议参考资料1c+语言程序设计,谭浩强,清华大学出版社2c+语言程序设计课程设计,刘振安,机械工业出版社37影像信息管理系统目录内蒙古科技大学课程设计任务书i第一章 需求分析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+语言具有高级语言的强大功能,却又有很多直接操作计算机硬件的功能(这些都是汇编语言的功能),因此,c+语言通常又被称为中级语言。学习和掌握c+语言,既可以增进对于计算机底层工作机制的了解,又为进一步学习其他高级语言打下了坚实的基础。为了方便对影像进行管理,用c+程序实现这一想法。1.2 任务概述影像信息管理系统影像信息包括:碟片名称,演员,类型,可否借阅等。试设计一碟片信息管理系统,使之能提供以下功能:v 碟片信息录入功能(碟片信息用文件保存)输入v 碟片信息浏览功能输出v 查询或排序功能:(至少两种种查询方式)算法按名称查询 按演员名查询v 碟片的借出与归还1.3 数据描述class cd friend class 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; 定义结构体类型,该类型包括四个成员:依次为碟片的名称,演员,类型,可否借阅。1.4 功能需求实现:按名称查询按演员名查询增加碟片借阅碟片归还碟片1.5 性能需求要求反应时间快,对碟片的信息了解较全面。(时间特性)1.6 运行需求屏幕格式:有菜单和工具栏以方便操作各数据信息可以在屏幕直接修改各数据结果可在屏幕显示硬件环境:普通计算机编译环境:vc+6.01.7 任务计划 设计c+程序,实现影像管理的各项功能。碟片查询:两种查询方式分别为按名称查询,按演员查询,其中如果按要求找到对应的碟片,则输出该书目的所有信息。碟片增加:可输入碟片信息。碟片借阅:可按名称查询到碟片并借阅。碟片归还:可按名称查询到碟片并归还。第二章 概要设计2.1 总体设计总体设计目标:使用者可以利用本系统进行对影像借阅的各项运算操作,根据用户的需求自动的进行添加碟片,借阅碟片,归还碟片。查找所要的碟片,查阅碟片的详细资料,查阅演员的详细资料。最后清晰完整的结果于屏幕中。大大方便使用者对碟片借阅的操作,不仅节省时间,而且提高准确性,可以达到事半功倍的效果。总体设计策略:本系统采用的是自顶向下、层次化的模块结构。查询(名称)增加结构图:归还菜单主函数查询(演员)借阅2.2 数据类型设计(或数据结构设计)class cd friend class moivesystem;private:char film_name10; char actor 10;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();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.type,cdcd_number.n);fclose(a);cd_number+;cout s;fclose(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 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(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(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; 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);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 不存在此片!n;cout 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_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=1; elsecout 不存在此片!n; fclose(a); cout a: 再还一张n; cout choice;getchar(); 第四章 测试分析4.1 测试程序执行情况第五章 课程设计总结一门课程设计是一种对语言内容的提炼和使用,当确定所要设计的内容是,要从其所要实现的功能上下手,所确立的课题要拥有的功能是从一个用户的角度所来考虑的,用户是不知道其源程序,同时不知道任何内部细节,对于用户或者所该软件的使用者来说,你所要呈现的是一个清楚明了的界面,而他们可以从这个界面上得到他们所要实现的东西这是开发一个软件里应具有的思维程序,如同一个源程序的算法一样,这样一个算法的建立会让你有理有章,先要做些什么,然后下一步是什么,这也是从一个解决问题的理论高度上所出发的,每一问题的解决理所当然有一个如何解决的思路呈现,下面就具体用这个程序的设计过程来说明。当确立要设计一个影像管理系统的c+语言程序时,所呈现的第一个问题是什么:当你对所谓的影像管理流程一无所知时,你应当做的第一步是什么,对了,就是首先去了解它了解它的作用,它的流程,它的功能。这是一个必须要经历的阶段,只有当你熟练掌握你所要求的东西的细节之后,你的围绕才能展开,你所做的后续工作一切的核心都将围绕它,当你要一个个实现它的功能是时,你的思路里要求孕育着它,这就是你做这个软件的前提,当我了解一个影像管理系统的功能时,了解他所要求的细节时,一切就更加顺理成章。我知道了一个影像管理系统要求有影像信息的录入,影像信息的修改,影像信息的删除,影像的排序,影像信息的浏览,影像信息的查询当然还有后续的一些功能,这首先必须得建立在基础的功能之上,然后达到进一步的实现。然后就是组装这些功能,实现一个算法的流程。显而易见主函数就起到一个选择的作用,使用switch语句来选择相应的功能,当然也可以附加一个menu的子函数,用主函数对他的调用,再通过它来实现选择的作用。而主函数中的printf语句就可以呈现给用户一个明确的界面信息,告诉用户如何选择,如何实现相应的功能。当然这一切都只是个框架,并不具备具体的内容,要达到具体的内容不是让让其成为一个空架子,所以对于相应子函数的逐个设计是整个重心!而每一个子函数的实现都是一个对于细节相当程度上的把握问题,需要一遍又一遍的提炼。最终才能做得更好。往往所学习的知识内容,即你所拥有的知识储备,难以实现所有的要求,利用资源,而且是合理的吸收资源,反而成为一个相当比重的能力,对于新知识的吸收和把握才能更好的体现你所具备的能力,从我所设计这个程序的过程上讲,当具体着手做的时候,所具备的知识是不足以实现的,学习链表的相应使用,学习文件的相应功能上的应用都是一个必须所经过的过程。这其中有许多可以借鉴的子函数,它们所具备的功能加以改进就可以实现自己程序的功能,例如建立动态链表的函数,节点插入的insert函数,以及最基本的一些函数如排序的灵活运用都是一个利用资源的能力,要做的是理解这些程序,然后才能灵活的运用这些东西,通过这些东西的理解也是对c+语言具体相应规则的更加深刻的了解!同时还有仅靠课本上的内容不足以使程序达到一定的程度,因此借用一些完善程序的某些内容可以使自己的程序更加趋于完善!这一切的过程说起来也许可以条分缕析,但是真正做的时候要求的东西更多,需要更加的定下心来,面对一串串代码,运算符,以及标点符号一个也许很不显眼的问题就足以让你头昏脑胀,要理清思路,要关注每一点。整体上的把握,例如不要忽视了函数的声明,以至于无法运行,尝试着多一些调试,每一次改动都要考虑到方方面面,要整体上把握你的程序,这样才能减少不知所以的错误,当错误出现的时候,你可以准确的把握错误所出现的地方,这种能力的实现就是要求足够的细心,要求你对程序整体上的把握足够的熟练,当用三天的时间就针对一个链表排序来改变不同种做法的时候,也许你觉得这一切都足够的不可思议,然而实际上远远不是如此,你可以从这个过程中旁敲侧击的理解许多容易忽略的东西,熟练不是说出来的,熟练是做出来的!特别对于计算机专业的来说,对于软件的开发来说,一切的错误不可避免,一切都趋于正常为此你所建立的信心是足够强大的!一切其实只是个开始,我们还都只是个门外汉,当你知道的越多,你能感受到什么,是的,你会明白你是无知的,往往你所拥有的知识只不过是凤毛麟角,当你逐渐明白或者说感受到这些东西的话你就不会沾沾自喜,你需要更加去学习去钻研,如果你无法定下心来这一切都不可能实现。一次课程设计并不是最重要的,重要的是什么?是你通过自主的学习理解到如何去面对你生活或者学习上的问题,一个解决问题处理问题的方案,一个身在问题之中,然后你能够如何不被它搅得不知所措,能够把握住自己的思路,一步一步走下去,时间只是个过程,过程中会有好多东西值得去做!课程设计并不是结束了,它只是暂告了一个段落,如果真正能够从中得到什么,我想就是需要做的东西更多,需要做的事情更多!面对挑战面对知识的接踵而至总以一种孜孜不倦的态度,永远需求!附录:程序代码#include #include #include using namespace std;class cd friend class 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;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();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.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+; cout 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 moivesystem: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(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;system(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
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 粉末冶金在磁性材料领域的应用考核试卷
- 《企业安全生产管理制度讲座》课件
- 《中央银行数字货币基本知识》课件
- 租赁设备的绿色制造与循环经济模式考核试卷
- 网络安全防护技术发展趋势考核试卷
- 煤化工生产过程中的节能减排措施考核试卷
- 小种子的成长之旅家长会课件
- 小学期末安全教育主题班会
- 数字化转型企业战略规划BLM模型培训课件
- 2025年中级会计职称之中级会计实务能力提升试卷A卷附答案
- 2021年四川绵竹高发投资有限公司招聘笔试试题及答案解析
- 建设工程消防验收备案抽查复查申请表
- 水费计算、水权与水价课件
- 思想道德与法治课件:第六章 第一节 社会主义法律的特征和运行
- 《康复医学》第四章 常见疾病的康复 第二节 肿瘤康复课件
- 61850报文解析-深瑞版-131016
- 2016年度高考全国3卷文综地理试题(解析版)
- 江西新定额2017土建定额说明及解释
- 国家电网有限公司十八项电网重大反事故措施(修订版)-2018版(word文档良心出品)
- 部编版三下语文《宇宙的另一边》教学课件PPT
- 《工程勘察设计收费管理规定》计价格200210号文
评论
0/150
提交评论