C语言程序设计课程设计-计算器.doc_第1页
C语言程序设计课程设计-计算器.doc_第2页
C语言程序设计课程设计-计算器.doc_第3页
C语言程序设计课程设计-计算器.doc_第4页
C语言程序设计课程设计-计算器.doc_第5页
已阅读5页,还剩14页未读 继续免费阅读

下载本文档

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

文档简介

湖南工程学院 应用技术学院课 程 设 计 报 告课程名称 C语言程序设计 课题名称 计 算 器 专 业 电气工程及其自动化 班 级 电气工程0783 学 号 200713010315 姓 名 刘 毅 指导教师 王 颖 2008年 3 月19 日湖南工程学院课 程 设 计 任 务 书课程名称 C语言程序设计 课 题 计 算 器 专业班级 电气工程0783 学生姓名 刘 毅 学 号 200713010315 指导老师 王 颖 审 批 任务书下达日期:2008 年3月8日任务完成日期:2008年3月20日前 言C语言程序设计课程设计是对学生的一种全面综合训练,它包括问题分析,总体结构设计,用户界面设计,程序设计基本技能和技巧,多人合作,以至一整套软件工作规范的训练和科学作风的培养。是与课堂听讲、自学和练习相辅相成的必不可少的一个教学环节。通常,课程设计的课题比平时的习题复杂得多,也更接近实际。课程设计着眼于与应用的结合点,使学生学会如何把书上学到的知识用于解决实际问题,培养软件工作所需要的动手能力;另一方面,能使书上的知识变“活”,使学生更好地深化理解和灵活掌握教学内容。为了达到上述目的,本课程设计安排了八个设计课题,训练重点在于基本的程序设计方法和分析问题的能力,而不强调面面俱到。学生可任选其中一题进行设计,设计完毕写出课程设计报告,用A4纸打印成册;并将课程设计报告与源程序存盘。学习委员将课程设计报告与磁盘收齐后交指导老师。一、目的全面熟悉、掌握C语言基本知识,掌握C程序设计中的顺序、分支、循环三种结构及数组、函数和C语言基本图形编程等方法,把编程和实际结合起来,增强对不同的问题运用和灵活选择合适的数据结构以及算法描述的本领,熟悉编制和调试程序的技巧,掌握分析结果的若干有效方法,进一步提高上机动手能力,培养使用计算机解决实际问题的能力,养成提供文档资料的习惯和规范编程的思想,为以后在专业课程中应用计算机系统解决计算、分析、实验和设计等学习环节打下较扎实的基础。二、基本情况课程类别:必修课课程学分:1学分课程学时:1周课程对象:电气工程0781、0782、0783、0784、0785、0786三、时间安排时间 任务2008-3-8下午3:40-5:40指导老师给学生布置课程设计的任务及要求2008-3-10到2008-3-15学生根据设计任务及要求,对系统进行需求分析、概要设计和详细设计,并在此基础上编写程序代码 学生提交系统程序清单初稿上机调试程序修改并完善程序并上机调试程序 2008-3-16接受指导老师的验收2008-3-16到2008-3-22书写程序设计报告提交课程设计报告四、调试过程规范化要求1)需要分析分析系统功能需求以及用户操作流程。2)概要设计在需求分析的基础上,确定系统总体框架(系统功能结构图)。3)详细设计定义数据储存结构,并设计实现系统功能的具体算法,画出各算法的工作流程图。4)代码设计根据所设计的算法,定义相应函数分别实现系统的各子功能模块,同时由主程序提供友好的用户界面,使用户可通过选择主菜单来调用课程设计中要求完成的各个功能模块,子程序执行完后还可以返回到主菜单,继续选择其他功能执行。源程序要求书写规范,结构清晰。重点函数的重点变量。重点功能部分均要求给出清晰的程序注释。5)程序调试程序编译、链接成功后,自己设计实现程序功能的一组或多组测试数据,并严格按照此测试数据进行测试,然后分析测试结果。如果程序不能正常进行或结果不正确,则需对程序进行单步调试,在调试过程中认真查找算法实现中存在的问题,并加以分析和改正。如果程序能够基本正确地运行,可考虑增加若干基本的容错功能;另外尽量对现有的算法给出改进方案,并比较不同算法之间的优缺点。五、设计报告及书写内容要求课程设计任务完成后,每位同学必须独立书写一份课程设计报告,注意:不得抄袭他人的报告(或给他人抄袭),一旦发现,成绩为零分。课程设计报告的内容应包括以下五个部分:1) 需求分析:包括设计题目、设计要求以及系统功能需求分析;2) 概要设计:包括系统总体设计框架和系统功能模块图;3) 详细设计:包括主要功能模块的算法设计思路以及对应的工作流程图;4) 主要源程序代码:包括存储结构设计说明,以及完整源程序清单;5) 调试分析过程描述:包括测试数据、测试输出结果,以及对程序调试过程中存在问题的思考(列出主要问题的出错现象、出错原因、解决方法及效果等);6) 总结:包括课程设计过程中的学习体会和收获、对c语言和本次课程设计的认识以及自己的建议等内容。7) 书写格式严格按所附要求书写。附1:l 课程设计报告装订顺序:封面、任务书、目录、正文、评分、附件(A4大小的图纸及程序清单)。 l 正文的格式:一级标题用3号黑体,二级标题用四号宋体加粗,正文用小四号宋体;行距为22。l 正文的内容:一、课题的主要功能;二、课题的功能模块的划分(要求画出模块图);三、主要功能的实现(至少要有一个主要模块的流程图);四、程序调试;五、总结;六、附件(所有程序的原代码,要求对程序写出必要的注释)。l 正文总字数要求在5000字以上(不含程序原代码)。 C程序课程设计任务书一. 课程设计性质与目的: C 语言程序设计是一门实践性很强的课程。 C程序课程设计是学习C语言程序设计的非常重要的实践环节,通过本课程设计使学生进一步巩固课堂所学,全面熟悉、掌握C语言程序设计的基本方法和技巧,进一步提高编写程序、阅读分析程序及上机操作、调试程序的能力,让学生加深理解书本上所学的知识,提高动手操作的能力以及分析问题和解决问题的能力。加深对C语言课程所学知识的理解,进一步巩固C语言语法规则。学会编制结构清晰、风格良好、数据结构适当的语言程序,从而具备解决综合性实际问题的能力。二. 课程设计包含知识点: 1,掌握并熟练运用C语言的基本数据类型与各种表达式,程序的流程控制语句。 2,掌握数组的基本概念。熟练掌握一维数组和二维数组的使用,掌握字符数组与字符串的关系以及字符串的简单处理,会分析、编写利用数组进行数据存储和处理的简单程序。 3,熟练掌握指针、地址、指针类型、void指针类型、空指针等概念,熟练掌握指针变量的定义和初始化、指针的间接访问、指针的加减运算和指针表达式,掌握指针与数组、函数、字符串、自由空间等的联系,了解引用变量、值传送、引用传送的概念,掌握引用参数的使用。 4,掌握函数的定义,函数的返回值,函数的调用,函数的形式参数和实际参数之间的关系;掌握变量的作用域与生存期,了解函数的作用域。 5,掌握结构的概念,结构类型的定义,结构变量的定义和初始化,结构成员的表示,结构的赋值含义,结构与指针、函数的关系。三. 课程设计要求: 1,学生从以下八个题目中任意选择并完成一个题目。要求每个学生能独立思考认真并按时完成本课程设计所包含的所有内容。2,要求学生必须按照课程设计报告的完整格式说明设计内容,设计任务分析过程和算法,给出程序流程图和全部源程序,并做出总结。3设计报告的完整格式应包括以下部分的内容:l 设计总体思路l 主程序及各个模块说明l 模块框图l 各个程序模块说明l 程序流程图l 程序清单l 总结与体会四.进度安排3月份,具体安排如下:日期时间班级内容地点3月815:4017:40电气0783指导老实给学生布置课程设计的任务及要求1-213教室3月10318:30-22:30电气0783编程上机机房6月2514:30-18:30电气0783编程上机机房6月2818:30-22:30电气0783答辩机房五.课程设计考核办法: 根据学生所完成课程设计报告的完整性,准确性,和算法实现质量,分为优,良,中, 及格,和不及格 五个等级。六.课程设计指导老师:王颖七.课程设计题目:计算器 一问题描述:对一个式子的两个数M,N之间,可能出现加,减,乘,除等算法中的一种通过该系统计算出结果。 二功能要求1 本系统采用了一个结构数组,每个数据的结构应当包括:数字,运算符,结果。2 本系统显示这样的菜单:a. 数字及其运算符的输入b. 数字及运算符的显示c. 数字及运算符的显示数字及运算的保存d. 显示结果e. 数字及运算符的修改f. 退出系统三算法的提示1数据结构:结构体类型数组2数据库结构:下表构成该系统的基本数据库数字(两个)运算符结果intcharint四 测试数据(1) 数字:M=35,N=5(2) 运算符:+(3) 运算结果:40五 其他对该系统有感兴趣的同学可以在实现上述基本功能后,完善系统的其他功能。目 录一设计题目: 计算器;- 3 -二内容摘要:- 3 -三.关键字:- 4 -四.总体方案的选定:- 4 -【概要设计】- 4 -1)程序的模块组成及各个函数的功能:- 4 -2)程序中的抽象数据类型的定义:- 4 -3)系统功能结构图- 5 -【详细设计】- 6 -相关的数据类型:- 6 -五函数间的调用关系图如下:- 6 -1)主函数- 6 -2)入栈函数- 7 -3)出栈函数:- 7 -六、调试分析- 8 -七.收获及体会:- 8 -附录:- 11 -参考文献- 11 -源程序清单- 11 -应用技术学院课程设计评分表- 13 -课 程 设 计 文 档一设计题目: 计算器;二内容摘要:该系统是一个简单的运算系统,只能进行简单的四则运算。如:加,减,乘,除。 三.关键字: 计算器。四.总体方案的选定: 在了解该系统的功能后,可以通过运用函数、编译语句、数据类型来实现。由于数据多,数据结构相似的特点,自然地想到用数组实现数据的存储,且总体数据结构应用文件类型的数据。文件类型为结构体数据,数据库结构用文件来实现。【概要设计】 1)程序的模块组成及各个函数的功能:1) 程序的模块组成:主函数:main();入栈函数:push(int i);出栈函数:pop();2) 各函数的主要功能:入栈函数:将输入的数据进入堆栈;出栈函数:从堆栈中取出运算数;2)程序中的抽象数据类型的定义: 堆栈的结构堆栈指示; 堆栈大小;数组长度;待返回的栈顶元素; 进入系统3)系统功能结构图退出程序给出提示信息输入第一个运算数输入第二个运算数储存该运算数输入运算符号把运算符与已知的四则运算符相比较执行第一次运算提示用户是否继续是否取出这两个运算数 . 【详细设计】 相关的数据类型: 堆栈结构数组 struct int top;/* 堆栈指示*/ int var ;/* 栈顶元素*/ int m,n;/*输入的两个数*/ char l;/* 运算符*/ 五函数间的调用关系图如下:开始1)主函数memuSwitch. case pop() 函数push() 函数 输出结果开始2)入栈函数输入数据 return ERRtopMAXstack+top=ireturn 0开始3)出栈函数:var=stacktop-top!=NULLreturn ERRreturn var六、调试分析1) 测试数据:35,52) 运算符:+.3) 运算结果:40七.收获及体会:c语言的学习也过了一段时间。有时候,由于兴趣,自己在课堂上乱划,一道小程序便出来了,但是,要是不幸运的话,逻辑有毛病,抑或是语句出现问题,在电脑面前一坐便是几个小时了!随着时间的流逝,我对C语言的理解和感悟也积攒了不少!通过两个星期的折腾,总算把课程设计给完成了,这是一个坚苦而又漫长的过程。是啊,读了那么多年的书,课程设计可是第一次。看着劳动成果,很欣慰!虽然这不是我一个人做的,是大家的共同努力得来的。“也许完成不了!”两个星期前我们这样说,“完成他没问题!”一个星期前我们这样说,现在我们可以说:“哈哈,完成啦”!刚开始,可以说是没有头绪,于是就去图书馆找资料,找到了一些关于画图方面的,可是这点小进展远远不够,这只是一个小小的开始。下一步是上网查,找到了些与我们题目相似的,那时我们每个人都很高兴,可是那还不是我们要的,于是又上网查到了些有关的函数等等,终于在我们大家的努力下,完成了这个程序。虽然对着电脑做程序,有点累有点热,可是当看到劳动成果时,真是别有一番滋味在心头啊!世上无难事,只怕有心人,的确如此。做完这个程序最大的收获就是感受到了集体的力量,当然个人的智慧也是很重要的哦!做完这个课程设计,我们的自信一下子提高了,我们也会写程序了;尽管对于有些人这种程序会很简单,可对我们C语言初学者来说,已经很不容易了。这次体验为以后的学习计算机的我们增强了信心。享受劳动成果的滋味实在很美妙啊!通过此次C语言程序设计实践,本人实在是获益不浅!C语言是上个学期开的课程,所以这个学期并没怎么看过,当要开始设计的时候,还真不知从哪下手!结果,第一次的上机,我傻坐着不知道该做什么,后来就写了几个预处理命令。回去以后,我想,这样不行,这样下去还得了!我就重新复习了一遍我们上个学期学习的内容,发觉自已有许多都遗忘了!特别是有文件的操作,几乎是一遍空白!温习过后,开始做题! 一开始做题,也是有点模糊,在指导老师的指导下,我们慢慢的进入状态,我们做的是一个通讯录,内容包括很多。运用的函数也是非常的复杂,我们一组有七个人,我分工合作,首先我一起完成了结构题,然后我们一人各负责一个函数程序的设计,经过几星期的努力,我们完成了大半个程序,但是总是有很多错误出现,有好多是些小问题,这都是我们粗心大意造成的,所以设计程序一定要仔细,不容一点的马虎。当然也有大问题,关于文件的操作,是我们最大的问题,不过,我们做好后,经过老师的讲解和改错,我们也懂得设计和运用了。同时,也让我知道了,合作的力量,如果是孤军奋战的话,我也不能在规定时间内完成,当然,也多亏老师的指导。这次设计,让我重新掌握了C语言,而且还得到了用C语言解决实际问题的宝贵经验首先是数组的学习,给我带来了不少烦恼。但是说起数组来,它贯穿于我们整个c语言之中,我们经常要用它来存储数据。编写图形要用它来储存坐标数据,编写音乐要用它来储存音符乐谱,即使学生的成绩也要用到它来储存但是,如果我们在利用它的时候,不好好注意,将被弄得眼花缭乱!我们在利用它来处理数据的时候,涉及到的排序,找最大,最小值这些问题。特别是排序,方法挺多,但如果不把握住几种常用的方法,使用数组就变得非常不便。常用的方法中,有冒泡排序,选择排序,希尔排序,快速排序等方法:选择法排序,与冒泡法排序都是利用for循环语句,前者是先寻找出最大最小值的下标,然后再交换,后者则是利用相邻间元素的比较大小,不符合要求顺序的就交换,这样一级一级地向上交换,把最大的或者最小的放到最上面去;对于后两种办法排序,都利用到循环次数不确定的while和do-while语句,前者还利用到for语句,希尔排序利用一一对应比较的办法,后者利用数组中其它元素与中间数进行比较大小,然后实行交换。同时,我也清楚地知道21世纪挑战与机遇并存,没有足够的知识储备必将被时代所抛弃。C语言作为国际上广泛流行的通用程序设计语言,在计算机的研究和应用中已展现出强大的生命力。C语言兼顾了诸多高级语言的特点,是一种典型的结构化程序设计语言,它处理能力强,使用灵活方便,应用面广,具有良好的可移植性。虽然我们C语言已有四个月,但一直都重概念、轻实践,这次设计对我们来说是千载难逢的机会,无论如何都要好好把握。心态一转变,整个人的精神状态都非同寻常,而且这种程序设计课比一般的课堂教学更具灵活性,它可以始终使人处于兴奋之中。高中的教育模式化倾向太强,整齐划一的教育模式使学校变成“工厂”,学生成为统一式模子加工出来的“标准件”。但大学的程序设计实践课促进我们的个性充分、健康地发展,最大限度地激发我们的学习热情和创造热情。我可以说若你一一欣赏我们的设计,你一定会眼花缭乱,因为它们各种各样、各有千秋。并且,它无形中促进我们自主学习,使我们对C语言有了更深刻地了解,对程序设计有了更高的操作水平。通过这次实践我明白:人是在与他人交往中认识世界,在交流中不断调整和修正自己的错误,从而使之更全面,更透彻。这套运算器的程序都由我们自己互相帮助,经过无数次的修改而成,老师只是辅导。我们知道老师不再是全知全能的权威,不再是知识的来源,他们只是学生的协作和促进者,只有我们才是学习的主人。附录:参考文献 C 语言程序设计例题与习题 齐幼菊 C 语言程序设计 李大友 清华大学 C 程序设计课程设计 刘振安等 C 语言程序设计实训教程 石小岭 源程序清单#include #include #include #define ERR -1 #define MAX 100 /*定义堆栈的大小*/ int stackMAX; /*用一维数组定义堆栈*/ int top=0; /*定义堆栈指示*/ int push(int i) /*存储运算数,入栈操作*/ if(topMAX)/*MAX为已定义数组的长度*/ stack+top=i; /*堆栈仍有空间,栈顶指示上移一个位置*/ return 0; else printf(The stack is full); return ERR; int pop() /*取出运算数,出栈操作*/ int var; /*定义待返回的栈顶元素*/ if(top!=NULL) /*堆栈中仍有元素*/ var=stacktop-; /*堆栈指示下移一个位置*/ return var; /*返回栈顶元素*/ else printf(The stack is empty!n); return ERR; void main() int m,n; char l; int a,b,c; int k; do printf(tAriothmatic Operate simulatorn); /*给出提示信息*/ printf(ntPlease inp

温馨提示

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

评论

0/150

提交评论