电气078321谢挺 心算抢答系统.doc
《电气078321谢挺 心算抢答系统.doc》由会员分享,可在线阅读,更多相关《电气078321谢挺 心算抢答系统.doc(80页珍藏版)》请在淘文阁 - 分享文档赚钱的网站上搜索。
1、Four short words sum up what has lifted most successful individuals above the crowd: a little bit more.-author-date电气078321谢挺 心算抢答系统电气078321谢挺 心算抢答系统应用技术学院课 程 设 计 报 告课程名称: C语言程序设计 课题名称: 心算抢答系统 专 业: 电气工程及自动化 班 级: 0783班 学 号: 21 姓 名: 谢挺 指导教师: 王颖 2008年 3 月 27日湖南工程学院课 程 设 计 任 务 书课程名称: C语言程序设计 课 题: 心算抢答系统
2、 专业班级: 电气工程及自动化 学生姓名: 谢挺 学 号: 21 指导老师: 王颖 审 批: 任务书下达日期:2008 年3月8日任务完成日期:2008年3月27日C语言程序设计课程设计是对学生的一种全面综合训练,它包括问题分析,总体结构设计,用户界面设计,程序设计基本技能和技巧,多人合作,以至一整套软件工作规范的训练和科学作风的培养。是与课堂听讲、自学和练习相辅相成的必不可少的一个教学环节。通常,课程设计的课题比平时的习题复杂得多,也更接近实际。课程设计着眼于与应用的结合点,使学生学会如何把书上学到的知识用于解决实际问题,培养软件工作所需要的动手能力;另一方面,能使书上的知识变“活”,使学生
3、更好地深化理解和灵活掌握教学内容。为了达到上述目的,本课程设计安排了四个设计课题,训练重点在于基本的程序设计方法和分析问题的能力,而不强调面面俱到。学生可任选其中一题进行设计,设计完毕写出课程设计报告,用A4纸打印成册;并将课程设计报告与源程序存盘。学习委员将课程设计报告与磁盘(缺一不可)收齐后交指导老师。一、目的全面熟悉、掌握C语言基本知识,掌握C程序设计中的顺序、分支、循环三种结构及数组、函数和C语言基本图形编程等方法,把编程和实际结合起来,增强对不同的问题运用和灵活选择合适的数据结构以及算法描述的本领,熟悉编制和调试程序的技巧,掌握分析结果的若干有效方法,进一步提高上机动手能力,培养使用
4、计算机解决实际问题的能力,养成提供文档资料的习惯和规范编程的思想,为以后在专业课程中应用计算机系统解决计算、分析、实验和设计等学习环节打下较扎实的基础。二、基本情况课程类别:必修课课程学分:1学分课程学时:1周课程对象:电气工程0781、0782、0783、0784、0785、0786三、时间安排时间任务2008-3-8下午3:40-5:40指导老师给学生布置课程设计的任务及要求2008-3-10到2008-3-15学生根据设计任务及要求,对系统进行需求分析、概要设计和详细设计,并在此基础上编写程序代码学生提交系统程序清单初稿上机调试程序修改并完善程序并上机调试程序2008-3-16接受指导老
5、师的验收2008-3-16到2008-3-22 书写课程设计报告 提交课程设计报告课题要求一、 需求分析分析系统功能需求以及用户操作流程。二、 概要设计在需求分析的基础上,确定系统总体框架(系统功能结构图)。三、 详细设计定义数据储存结构,并设计实现系统功能的具体算法,画出各算法的工作流程图。四、 代码设计根据所设计的算法,定义相应函数分别实现系统的各子功能模块,同时由主程序提供友好的用户界面,使用户可通过选择主菜单来调用课程设计中要求完成的各个功能模块,子程序执行完后还可以返回到主菜单,继续选择其他功能执行。源程序要求书写规范,结构清晰。重点函数的重点变量。重点功能部分均要求给出清晰的程序注
6、释。五、 程序调试程序编译、连接成功后,自己设计实现程序功能的一组或多组测试数据,并严格按照此测试数据进行测试,然后分析测试结果。如果程序不能正常运行或结果不正确,则需对程序进行单步调试,在调试过程中认真查找算法实现中存在的问题,并加以分析和改正。如果程序能够基本正确地运行,可考虑增加若干基本的容错功能;另外尽量对现有的算法给出改进方案,并比较不同算法之间的优缺点五、设计报告及书写内容要求课程设计任务完成后,每位同学必须独立书写一份课程设计报告,注意:不得抄袭他人的报告(或给他人抄袭),一旦发现,成绩为零分。课程设计报告的内容应包括以下五个部分:1) 需求分析:包括设计题目、设计要求以及系统功
7、能需求分析;2) 概要设计:包括系统总体设计框架和系统功能模块图;3) 详细设计:包括主要功能模块的算法设计思路以及对应的工作流程图;4) 主要源程序代码:包括存储结构设计说明,以及完整源程序清单;5) 调试分析过程描述:包括测试数据、测试输出结果,以及对程序调试过程中存在问题的思考(列出主要问题的出错现象、出错原因、解决方法及效果等);6) 总结:包括课程设计过程中的学习体会和收获、对c语言和本次课程设计的认识以及自己的建议等内容。7) 书写格式严格按所附要求书写。附1:l 课程设计报告装订顺序:封面、任务书、目录、正文、评分、附件(A4大小的图纸及程序清单)。 l 正文的格式:一级标题用3
8、号黑体,二级标题用四号宋体加粗,正文用小四号宋体;行距为22。l 正文的内容:一、课题的主要功能;二、课题的功能模块的划分(要求画出模块图);三、主要功能的实现(至少要有一个主要模块的流程图);四、程序调试;五、总结;六、附件(所有程序的原代码,要求对程序写出必要的注释)。l 正文总字数要求在5000字以上(不含程序原代码)。一.问题描述: 适用用于数学心算抢答赛。比赛题型分为两种:“四则简单运算”和“四则混合运算”,计算机随机出题,选手抢答。要求进入每种题型比赛时,计算机均有提示,每队的记分窗口随分的情况而更新。 二.功能要求:1:显示如下画面: welcome jion in this c
9、ompetition!2.举办单位确定参赛的对数,每队分配一个记分窗口,底分均为0分。 3.比赛题型分为两种:“四则简单运算”(N道题)和“四则混合运算” (M道题),N,M由举办单位确定,计算机随机出题,现出:“四则简单运算”题,每出一道,选手抢答,做对一题加5分,做错一题减5分。后出“四则混合运算”,做对一题加10分,做错一题减10分。要求进入每种题型比赛时,计算机均有提示,每队的积分窗口随得分情况而更新。4.根据最后总分,由高到底宣布比赛名次,按任意键退出比赛系统。5.要求整个设计以人为本,用户界面友好。 三.算法提示1.用简单的程序设计方法2.一定的窗口设计技巧3.简单的数据类型:in
10、t,char,4.简单的指针 四、测试数据: 主持人测试五、其他: 对改系统有兴趣的同学可以在实现系统的基本功能后,完善系统的其他功能。如底分的设置,每种类型题目的加,减分的多少和选手的起始均可由举办方设定。课题要求4一、题目6二、内容6三、关键字:6【需求分析】6【概要设计】71)、 程序的模块组成:72)、 各个函数的主要功能:7【详细设计】7算法:8、【代码设计】101主函数 main()102四则简单运算函数simple()104高低分排名函数exchange()11【程序调试】12十、总结13十一,参考资料13附件13一、题目心算抢答系统二、内容该系统是一个简单的心算抢答系统,能够使
11、选手实现抢答,了解自己的得分及排名情况。其功能包括:选手抢答、四则简单计算、四则混合计算、显示选手得分、选手排名等。三、关键字:心算抢答系统【需求分析】1. 开始时主持人可以选择难题与容易题的数目。2. 主持人可以选择先抢答者进行回答问题。3. 参加者的起始分为0。,若难题回答正确则加10分若回答错误则扣10分。若容易回答正确则加5分若回答错误则扣5分。4. 程序能够给出2个数字的加减乘除的容易运算,也可以给出较难的4种其他的难题运算。5. 在题目回答错误之后显示出正确答案。6. 在题目答完之后显示出3人的最终分数,并给出从高到低的排名。主持人宣布开始抢答后开始抢答,主持人选择抢答者回答问题,
12、若难题回答正确则加10分若回答错误则扣10分。若容易回答正确则加5分若回答错误则扣5分。在题目回答错误之后显示出正确答案,回答完题之后显示得分。总体设计方案的选定: 程序的功能:要实现对心算抢答进行统一有效的管理需要通过 用函数、数据类型、C语句(控制语句、函数调用语句、表达式语句、复合语句等)来实现。由于是计算,很自然的要建立一个题库,而这个题库里的题目是随机的。这个系统有很多个界面,这些界面的调用,最终是通过函数之间的调用来实现的。【概要设计】 程序的模块组成以及各个函数的功能: 1)、 程序的模块组成: 主函数: void main() 四则简单运算函数:int simple() 四则混
13、合运算函数: int mix() 高低分排名函数: void exchange() 交换函数:void swap()2)、 各个函数的主要功能: void main():主函数simple(): 四则简单运算函数.mix():四则混合运算函数。void exchange(): 抢答结束后排出名次。 void swap():交换函数为排序函数服务。 【详细设计】 相关的数据类型 队伍信息结构数组 struct team char name; int score; tea3=A,0,B,0,C,0算法:void main():输入难题与容易题的数目。确定扣分加分规则。输出最后得分与排名。simpl
14、e():规定简单题目的类型。mix():规定较难目的类型。void exchange():进行分数比较。void swap():进行排名。函数功能调用关系流程图如下:欢迎界面输入第一轮的次数输入第二轮的次数进入第一轮的抢答进入第二轮的抢答显示各队的得分得到最终总排名退出本系统simple( )srand( )switch( )mix( )return(s )return(t )exchange( )swap( )swap()exit()exchange()mix()simple()main()【代码设计】整个系统除了主函数外,另外还有5个函数,实现三大功能:四则简单运算功能、四则混合运算功能、
15、从高分到低分排序功能。1主函数 main()利用scanf()函数输入第一轮和第二轮抢答的次数。2四则简单运算函数simple()此函数通过随机数和加,减,乘,除,实现四则简单运算。算法:先初始化随机数发生器,得到两个随机数,在利用switch函数选择要进行的运算。N-S流程图如下:srand(unsigned)time(NULL)num1=rand()%100+1;,w+)stpy=rand()%4+1; switch(stpy)switch(stpy)printf(%d-%d”)num2=rand()%100+1;j+,m+=301,m+)printf(%d+%d”)of(struct h
16、k),M*H,fp)printf(%d*%d”)printf(%d/%d”)of(struct hk),M*H,fp)return(s)3.四则混合运算函数 mix()此函数通过随机数和加,减,乘,除,实现四则简单运算。算法:先初始化随机数发生器,得到三个随机数,在利用switch函数选择要进行的运算。N-S流程图如下:srand(unsigned)time(NULL)num1=rand()%100+1;,w+)num3=rand()%4+1; switch(stpy)switch(stpy)printf(%d+%d)*(%d-%d)”)num2=rand()%100+1;j+,m+=301,
17、m+)printf(%d*%d/%d”) hk),M*H,fp)printf(%d*%d-%d/%d”)printf(%d+%d-%d)*%d/%d”) hk),M*H,fp)return(t)4高低分排名函数exchange()此函数建立在四则简单函数和四则混合运算的基础之上,当运算结束时,会执行此函数。算法:通过比较和交换函数,实现高低分排序。N-S流程图如下:swap(int *x,int *y)if(*p1*p2) swap(p1,p2)if(*p1*p3) swap(p1,p3)if(*p2*p3) swap(p2,p3)【程序调试】(1)先进入欢迎界面后,根据提示分别输入第一轮的次
18、数,和第二轮的次数。(2)当输入了次数后,先运行的是简单运算,先输入参赛队伍,再输入答案,如果答案正确则给相应的队伍加分,当错误时,则扣分。(3)当简单运算结束后,出现混合运算的提示,与简单运算的方法一样。(4)在抢答结束后应该会出现各队的得分,并自动对其进行排序。(5)注意要按要求输入数字和字母,否则会得到错误的信息。十、总结 这次课程设计历时一个星期多左右,通过这两个星期的学习,发现了自己的很多不足,自己知识的很多漏洞,看到了自己的实践经验还是比较缺乏,理论联系实际的能力还急需提高。 学习C语言不是一朝一夕的事情。如何以最小的代价学习并精通C语言是本文的主题。即使是“最小的代价”,也绝不是
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 电气078321谢挺 心算抢答系统 电气 078321 谢挺 心算 抢答 系统
限制150内