ImageVerifierCode 换一换
格式:DOCX , 页数:29 ,大小:149.24KB ,
资源ID:20129961      下载积分:3 金币
快捷下载
登录下载
邮箱/手机:
温馨提示:
快捷下载时,用户名和密码都是您填写的邮箱或者手机号,方便查询和重复下载(系统自动生成)。 如填写123,账号就是123,密码也是123。
特别说明:
请自助下载,系统不会自动发送文件的哦; 如果您已付费,想二次下载,请登录后访问:我的下载记录
支付方式: 支付宝    微信支付   
验证码:   换一换

加入VIP,免费下载
 

温馨提示:由于个人手机设置不同,如果发现不能下载,请复制以下地址【https://www.bdocx.com/down/20129961.html】到电脑端继续下载(重复下载不扣费)。

已注册用户请登录:
账号:
密码:
验证码:   换一换
  忘记密码?
三方登录: 微信登录   QQ登录  

下载须知

1: 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。
2: 试题试卷类文档,如果标题没有明确说明有答案则都视为没有答案,请知晓。
3: 文件的所有权益归上传用户所有。
4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
5. 本站仅提供交流平台,并不能对任何下载内容负责。
6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

版权提示 | 免责声明

本文(电气078321谢挺 心算抢答系统.docx)为本站会员(b****1)主动上传,冰豆网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。 若此文所含内容侵犯了您的版权或隐私,请立即通知冰豆网(发送邮件至service@bdocx.com或直接QQ联系客服),我们立即给予删除!

电气078321谢挺 心算抢答系统.docx

1、电气078321谢挺 心算抢答系统应用技术学院课 程 设 计 报 告课程名称: C语言程序设计 课题名称: 心算抢答系统 专 业: 电气工程及自动化 班 级: 0783班 学 号: 21 姓 名: 谢挺 指导教师: 王颖 2008年 3 月 27日湖南工程学院课 程 设 计 任 务 书课程名称: C语言程序设计 课 题: 心算抢答系统 专业班级: 电气工程及自动化 学生姓名: 谢挺 学 号: 21 指导老师: 王颖 审 批: 任务书下达日期:2008 年3月8日任务完成日期:2008年3月27日C语言程序设计课程设计是对学生的一种全面综合训练,它包括问题分析,总体结构设计,用户界面设计,程序设

2、计基本技能和技巧,多人合作,以至一整套软件工作规范的训练和科学作风的培养。是与课堂听讲、自学和练习相辅相成的必不可少的一个教学环节。通常,课程设计的课题比平时的习题复杂得多,也更接近实际。课程设计着眼于与应用的结合点,使学生学会如何把书上学到的知识用于解决实际问题,培养软件工作所需要的动手能力;另一方面,能使书上的知识变“活”,使学生更好地深化理解和灵活掌握教学内容。为了达到上述目的,本课程设计安排了四个设计课题,训练重点在于基本的程序设计方法和分析问题的能力,而不强调面面俱到。学生可任选其中一题进行设计,设计完毕写出课程设计报告,用A4纸打印成册;并将课程设计报告与源程序存盘。学习委员将课程

3、设计报告与磁盘(缺一不可)收齐后交指导老师。一、目的全面熟悉、掌握C语言基本知识,掌握C程序设计中的顺序、分支、循环三种结构及数组、函数和C语言基本图形编程等方法,把编程和实际结合起来,增强对不同的问题运用和灵活选择合适的数据结构以及算法描述的本领,熟悉编制和调试程序的技巧,掌握分析结果的若干有效方法,进一步提高上机动手能力,培养使用计算机解决实际问题的能力,养成提供文档资料的习惯和规范编程的思想,为以后在专业课程中应用计算机系统解决计算、分析、实验和设计等学习环节打下较扎实的基础。二、基本情况课程类别:必修课课程学分:1学分课程学时:1周课程对象:电气工程0781、0782、0783、078

4、4、0785、0786三、时间安排时间任务2008-3-8下午3:40-5:40指导老师给学生布置课程设计的任务及要求2008-3-10到2008-3-15学生根据设计任务及要求,对系统进行需求分析、概要设计和详细设计,并在此基础上编写程序代码学生提交系统程序清单初稿上机调试程序修改并完善程序并上机调试程序2008-3-16接受指导老师的验收2008-3-16到2008-3-22 书写课程设计报告 提交课程设计报告课题要求一、 需求分析分析系统功能需求以及用户操作流程。二、 概要设计在需求分析的基础上,确定系统总体框架(系统功能结构图)。三、 详细设计定义数据储存结构,并设计实现系统功能的具体

5、算法,画出各算法的工作流程图。四、 代码设计根据所设计的算法,定义相应函数分别实现系统的各子功能模块,同时由主程序提供友好的用户界面,使用户可通过选择主菜单来调用课程设计中要求完成的各个功能模块,子程序执行完后还可以返回到主菜单,继续选择其他功能执行。源程序要求书写规范,结构清晰。重点函数的重点变量。重点功能部分均要求给出清晰的程序注释。五、 程序调试程序编译、连接成功后,自己设计实现程序功能的一组或多组测试数据,并严格按照此测试数据进行测试,然后分析测试结果。如果程序不能正常运行或结果不正确,则需对程序进行单步调试,在调试过程中认真查找算法实现中存在的问题,并加以分析和改正。如果程序能够基本

6、正确地运行,可考虑增加若干基本的容错功能;另外尽量对现有的算法给出改进方案,并比较不同算法之间的优缺点五、设计报告及书写内容要求课程设计任务完成后,每位同学必须独立书写一份课程设计报告,注意:不得抄袭他人的报告(或给他人抄袭),一旦发现,成绩为零分。课程设计报告的内容应包括以下五个部分:1) 需求分析:包括设计题目、设计要求以及系统功能需求分析;2) 概要设计:包括系统总体设计框架和系统功能模块图;3) 详细设计:包括主要功能模块的算法设计思路以及对应的工作流程图;4) 主要源程序代码:包括存储结构设计说明,以及完整源程序清单;5) 调试分析过程描述:包括测试数据、测试输出结果,以及对程序调试

7、过程中存在问题的思考(列出主要问题的出错现象、出错原因、解决方法及效果等);6) 总结:包括课程设计过程中的学习体会和收获、对c语言和本次课程设计的认识以及自己的建议等内容。7) 书写格式严格按所附要求书写。附1: 课程设计报告装订顺序:封面、任务书、目录、正文、评分、附件(A4大小的图纸及程序清单)。 正文的格式:一级标题用3号黑体,二级标题用四号宋体加粗,正文用小四号宋体;行距为22。 正文的内容:一、课题的主要功能;二、课题的功能模块的划分(要求画出模块图);三、主要功能的实现(至少要有一个主要模块的流程图);四、程序调试;五、总结;六、附件(所有程序的原代码,要求对程序写出必要的注释)

8、。 正文总字数要求在5000字以上(不含程序原代码)。一.问题描述: 适用用于数学心算抢答赛。比赛题型分为两种:“四则简单运算”和“四则混合运算”,计算机随机出题,选手抢答。要求进入每种题型比赛时,计算机均有提示,每队的记分窗口随分的情况而更新。 二.功能要求:1:显示如下画面: 2.举办单位确定参赛的对数,每队分配一个记分窗口,底分均为0分。 3.比赛题型分为两种:“四则简单运算”(N道题)和“四则混合运算” (M道题),N,M由举办单位确定,计算机随机出题,现出:“四则简单运算”题,每出一道,选手抢答,做对一题加5分,做错一题减5分。后出“四则混合运算”,做对一题加10分,做错一题减10分

9、。要求进入每种题型比赛时,计算机均有提示,每队的积分窗口随得分情况而更新。4.根据最后总分,由高到底宣布比赛名次,按任意键退出比赛系统。5.要求整个设计以人为本,用户界面友好。 三.算法提示1.用简单的程序设计方法2.一定的窗口设计技巧3.简单的数据类型:int,char,4.简单的指针 四、测试数据: 主持人测试五、其他: 对改系统有兴趣的同学可以在实现系统的基本功能后,完善系统的其他功能。如底分的设置,每种类型题目的加,减分的多少和选手的起始均可由举办方设定。课题要求 4一、题目 6二、内容 6三、关键字: 6【需求分析】 6【概要设计】 71)、 程序的模块组成: 72)、 各个函数的主

10、要功能: 7【详细设计】 7算法: 8、【代码设计】 101主函数 main() 102四则简单运算函数simple() 104高低分排名函数exchange() 11【程序调试】 12十、总结 13十一,参考资料 13附件 13一、题目心算抢答系统二、内容该系统是一个简单的心算抢答系统,能够使选手实现抢答,了解自己的得分及排名情况。其功能包括:选手抢答、四则简单计算、四则混合计算、显示选手得分、选手排名等。三、关键字:心算抢答系统【需求分析】1. 开始时主持人可以选择难题与容易题的数目。2. 主持人可以选择先抢答者进行回答问题。3. 参加者的起始分为0。,若难题回答正确则加10分若回答错误则

11、扣10分。若容易回答正确则加5分若回答错误则扣5分。4. 程序能够给出2个数字的加减乘除的容易运算,也可以给出较难的4种其他的难题运算。5. 在题目回答错误之后显示出正确答案。6. 在题目答完之后显示出3人的最终分数,并给出从高到低的排名。主持人宣布开始抢答后开始抢答,主持人选择抢答者回答问题,若难题回答正确则加10分若回答错误则扣10分。若容易回答正确则加5分若回答错误则扣5分。在题目回答错误之后显示出正确答案,回答完题之后显示得分。总体设计方案的选定: 程序的功能:要实现对心算抢答进行统一有效的管理需要通过 用函数、数据类型、C语句(控制语句、函数调用语句、表达式语句、复合语句等)来实现。

12、由于是计算,很自然的要建立一个题库,而这个题库里的题目是随机的。这个系统有很多个界面,这些界面的调用,最终是通过函数之间的调用来实现的。【概要设计】 程序的模块组成以及各个函数的功能: 1)、 程序的模块组成: 主函数: void main() 四则简单运算函数:int simple() 四则混合运算函数: int mix() 高低分排名函数: void exchange() 交换函数:void swap()2)、 各个函数的主要功能: void main():主函数simple(): 四则简单运算函数.mix():四则混合运算函数。void exchange(): 抢答结束后排出名次。 vo

13、id swap():交换函数为排序函数服务。 【详细设计】 相关的数据类型 队伍信息结构数组 struct team char name; int score; tea3=A,0,B,0,C,0算法:void main():输入难题与容易题的数目。确定扣分加分规则。输出最后得分与排名。simple():规定简单题目的类型。mix():规定较难目的类型。void exchange():进行分数比较。void swap():进行排名。函数功能调用关系流程图如下:【代码设计】整个系统除了主函数外,另外还有5个函数,实现三大功能:四则简单运算功能、四则混合运算功能、从高分到低分排序功能。1主函数 ma

14、in()利用scanf()函数输入第一轮和第二轮抢答的次数。2四则简单运算函数simple()此函数通过随机数和加,减,乘,除,实现四则简单运算。算法:先初始化随机数发生器,得到两个随机数,在利用switch函数选择要进行的运算。N-S流程图如下:3.四则混合运算函数 mix()此函数通过随机数和加,减,乘,除,实现四则简单运算。算法:先初始化随机数发生器,得到三个随机数,在利用switch函数选择要进行的运算。N-S流程图如下:4高低分排名函数exchange()此函数建立在四则简单函数和四则混合运算的基础之上,当运算结束时,会执行此函数。算法:通过比较和交换函数,实现高低分排序。N-S流程

15、图如下:【程序调试】(1)先进入欢迎界面后,根据提示分别输入第一轮的次数,和第二轮的次数。(2)当输入了次数后,先运行的是简单运算,先输入参赛队伍,再输入答案,如果答案正确则给相应的队伍加分,当错误时,则扣分。(3)当简单运算结束后,出现混合运算的提示,与简单运算的方法一样。(4)在抢答结束后应该会出现各队的得分,并自动对其进行排序。(5)注意要按要求输入数字和字母,否则会得到错误的信息。十、总结 这次课程设计历时一个星期多左右,通过这两个星期的学习,发现了自己的很多不足,自己知识的很多漏洞,看到了自己的实践经验还是比较缺乏,理论联系实际的能力还急需提高。 学习C语言不是一朝一夕的事情。如何以

16、最小的代价学习并精通C语言是本文的主题。即使是“最小的代价”,也绝不是什么捷径,而是以最短的时间取得最多的收获,同时也意味着你需要经历艰苦的过程。仔细读书、认真抄写源代码、独立完成习题外加更进一步的实验,最后将所有的代码留下,成为自己的经验和财富,绝对的辛苦,也绝对的事半功倍。当然,这种方式只适合学习需要精通的技术,如果不是学习C语言,你还要具体情况具体分析。不断的练习,一个最愚蠢的办法,我也离不开这个蠢办法,但却不得不承认是最实用的也是最好用的,刚开始学的时候,不断的翻书查看,然后试着不看书凭记忆不断写些代码,把自己易忘记和易错的记下来,再默记几次,而写代码和看代码是每天必做的功课,经过一段

17、时间,我发觉我翻书的次数少了,东西慢慢在脑子里了,这是一种潜移默化的学习过程。我觉得入门还是多看些书,多实践,养成良好的编程习惯,在实践的同时多思考问题,多看别人优秀的解题思路与方法,多看别人优秀的代码,尝试自己去实现或者说模仿着去实现,让别人对你的代码多提意见,探究别人的思维过程,增强自己的思维能力,拓展视野,经常看看自己以前写的东西,有空拿出来改良改良,我想每隔一段时间,都会有意想不到的收获。就一定可以达到有效的锻炼自己的抽象逻辑思维能力。另外还需注意的就是自己实在无法理解的地方不妨指出来多多请教老师和懂的同学让他们用自然语言来描述一道,并且记录下来这样可以达到事半功倍的效果。 学习C语言

18、不能停留在学习它的语法规则,而是利用学到的知识编写C语言程序,解决实际问题。即把C语言作为工具,描述解决实际问题的步骤,由计算机帮助我们解题。只有通过上机才能检验自己是否掌握C语言、自己编写的程序是否能够正确地解题。 我首先觉得,用到的程序段不必太高级,因为天下事有高低之分,决定优劣的不是集体中某部分的强弱,起决定作用的是组合内各元素的和谐,要能在一个集体中各尽所能,每个人都能发挥长处,避免自己的短处,那么这个集体的实际组合能量是最优的。 其次,注重程序设计地完善性与缜密性,在设计程序地思路时,应从大局着手,尽可能地考虑所有可能出现地异常情况,以便在前期地设计阶段就加以控制。比如针对数组下标溢

19、出地情况,学习了指针之后,就可以运用动态数组地知识加以解决。 程序的调试非常重要,掌握好的调试方法,可以事半功倍。下面说一下程序已经没有编译错误,能够运行,但又得不出正确结果的情况下的程序的常用常见调试方法,完成程序的编写,决不意味着万事大吉。认为万无一失的程序,实际上机运行时可能不断出现麻烦。如编译程序检测出一大堆错误。有时程序本身不存在语法错误,也能够顺利运行,但是运行结果显然是错误的。开发环境所提供的编译系统无法发现这种程序逻辑错误,只能靠自己的上机经验分析判断错误所在。程序的调试是一个技巧性很强的工作,对于初学者来说,尽快掌握程序调试方法是非常重要的。有时候一个消耗你几个小时时间只是个

20、小小错误. 通过对编码规范的再次学习,发现了一些做的不够的地方,在以后的工作中努力的改正,并严格遵守编码规范来进行编码。1. 代码的排版布局。2. 效率问题。在实践过程中,自己编程的时候常常会犯错误,并总结了一些克服缺点的方法。而且更深刻体会到程序设计中最重要的一部分不是编写源程序,而是调试过程。只有经过调试程序,我们才能掌握正确的语法知识及把问题的解决方法用程序语言来表达。在设计程序的同时也增长了翻阅有关文献的能力,加强了实践能力及自学能力,培养了分析问题 、编程和动手能力,掌握了程序设计基本技能。 好的排版比较利于别人对代码进行阅读和修改。虽然这是一小问题,但也不容忽视。代码不仅要运行正确

21、,还要比较高的运行效率。其原则是通过对系统数据结构的划分与组织的改进,以及对程序算法的优化来提高时间和空间上的效率。我在做以后的项目过程中会更加的注意,并积极的提高程序运行的效率。 C语言语法结构很简洁精妙,写出的程序也很高效 。C语言能够让你深入系统底层。同时,我也清楚地知道21世纪挑战与机遇并存,没有足够的知识储备必将被时代所抛弃。C语言作为国际上广泛流行的通用程序设计语言,在计算机的研究和应用中已展现出强大的生命力。C语言兼顾了诸多高级语言的特点,是一种典型的结构化程序设计语言,它处理能力强,使用灵活方便,应用面广,具有良好的可移植性。虽然我们C语言已有四个月,但一直都重概念、轻实践,这

22、次设计对我们来说是千载难逢的机会,无论如何都要好好把握。 生活就是这样,汗水预示着结果也见证着收获。劳动是人类生存生活永恒不变的话题。通过实习,我才真正领略到“艰苦奋斗”这一词的真正含义,通过实践的学习,我认到学好计算机要重视实践操作,不仅仅是学习C语言,还是其它的语言,以及其它的计算机方面的知识都要重在实践,所以后在学习过程中,我会更加注视实践操作,使自己便好地学好计算机。 十一,参考资料 C语言之家() C语言教室(http:/www.vcok.coC语言程序设计案例教程 张基温 编著 清华大学出版社C程序设计 (第三版) 谭浩强 著 清华大学出版社 C语言课程设计案例精编 中国水利水电出

23、版社附件#include #include #include void main() int simple(); int mix(); void exchange(int *p1,int *p2,int *p3); struct team char name;/*定义字符量name*/ int score;/*定义整型score*/ tea3=A,0,B,0,C,0;/*定义没个人的初始分为0*/ int i,p,j,t,k,n,m;/*定义整型*/ int a,b,c;/*定义整型*/ int result1,answer1,result2,answer2;/*定义整型*/ int *q1,

24、*q2,*q3;/*定义指针q1,q2,q3*/ char ch1,ch2; printf( *n); printf( $ $n); printf( $ $n); printf( $ welcome jion in this competition!$n); printf( $ $n); printf( $ $n); printf( *n); /*在屏幕上打出所需图文*/ for(i=0;i10;i+) printf(n); printf(input simple count number n:);/*输入简单题目的数量*/ scanf(%d,&n); printf(ninput mix co

25、unt number m:);/*输入较难题目的数量*/ scanf(%d,&m); printf(n); printf( press any key to begain ! n); getch(); printf(Begain!n); printf(The first turn.n); printf(This is simple count.n); printf(Please look at the question:n); for(p=0;pn;p+) result1=simple(); printf(Please input one team name:); getchar(); sca

26、nf(%c,&ch1); printf(ninput your answer:); scanf(%d,&answer1); for(k=0;k3;k+) t=k; if(ch1=teak.name) if(result1=answer1) teat.score+=5;/*如果简单题目回答正确,答题者score+5*/ else printf(This answer is wrong.n); printf(The right answer is %dn,result1); teat.score-=5;/*如果简单题目回答错误,答题者score-5*/ for(i=0;i3;i+) printf(

27、%c%dn,teai.name,teai.score); printf(This turn is end.n); printf(nnnnn); printf(The second turn begain!n); printf(This is mix count!n); printf(Please look at the question:n); for(j=0;jm;j+) result2=mix(); printf(please input one team:); getchar(); scanf(%c,&ch2); printf(ninput your answer:); scanf(%d

28、,&answer2); for(i=0;i3;i+) t=i; if(ch2=teai.name) if(result2=answer2) teat.score+=10;/*如果较难题目回答正确,答题者score+10*/ else printf(nyour answer is wrong.n); printf(The right answer is %dn,result2);/*输出正确答案result2*/ teat.score-=10;/*如果较难题目回答错误,答题者score-10*/ for(i=0;ib&bc) printf(%c %c %cn,A,B,C); if(ab&ca) printf(%c %c %c,C,A,B); if(ab&ac&cb) printf(%c %c %cn,A,C,B); if(ca&cb&ba) printf(%c %c %cn,C,B,A); if(ba&ca&bc) printf(%c %c %cn,B,C,A); if(ba&ac) printf(%c %c %cn,B,A,C);/*按分数大小打印出A,B,C*/ q1=&tea0.score; q2=&tea1.score; q3=&tea2.score;

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1