C语言课程设计-心算抢答系统_(2).doc_第1页
C语言课程设计-心算抢答系统_(2).doc_第2页
C语言课程设计-心算抢答系统_(2).doc_第3页
C语言课程设计-心算抢答系统_(2).doc_第4页
C语言课程设计-心算抢答系统_(2).doc_第5页
已阅读5页,还剩21页未读 继续免费阅读

下载本文档

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

文档简介

应用技术学院课 程 设 计 报 告课程名称 C语言课程设计 课题名称 心算抢答系统 专 业 机械制造设计与自动化 班 级 0781 学 号 200713090122 姓 名 刘 洋 指导教师 王 颖 2008年7 月8日湖南工程学院课 程 设 计 任 务 书课程名称 C语言程序设计 课 题 心算抢答系统 专业班级 机设0781 学生姓名 刘 洋 学 号 2 2 指导老师 王 颖 审 批 任务书下达日期:2008 年6月20日任务完成日期:2008 年7月8日C语言课程设计任务书 一、目的全面熟悉、掌握C语言基本知识,掌握C程序设计中的顺序、分支、循环三种结构及数组、函数和C语言基本图形编程等方法,把编程和实际结合起来,增强对不同的问题运用和灵活选择合适的数据结构以及算法描述的本领,熟悉编制和调试程序的技巧,掌握分析结果的若干有效方法,进一步提高上机动手能力,培养使用计算机解决实际问题的能力,养成提供文档资料的习惯和规范编程的思想,为以后在专业课程中应用计算机系统解决计算、分析、实验和设计等学习环节打下较扎实的基础。二、时间安排时间 任务2008-6-20 上午9:40-10:40知道老师给学生布置课程设计的任务及要求2008-6-20到2008-6-30学生根据设计任务及要求,对系统进行需求分析、概要设计和详细设计,并在此基础上编写程序代码学生提交系统程序清单初稿上机调试程序。修改并完善程序并上机调试程序。2008-7-4接受指导老师的验收。2008-7-4到2008-7-8书写课程设计报告。提交课程设计报告。三、基本情况课程类别:必修课课程学分:1学分课程学时;1周课程对象:机械设计0781、0782、0783、0784。四、设计和调试过程规范化要求需求分析分析系统功能需求以及用户操作流程。1) 概要设计在需求分析的基础上,确定系统总体框架(系统功能结构图)。2) 详细设计定义数据存储结构,并设计实现系统功能的具体算法,画出各算法的工作流程图。3) 代码设计根据所设计的算法,定义相应函数分别实现系统的各子功能块,同时由主程序提供友好的用户界面,使用户可通过选择主菜单来调用课程设计中要求完成的各个功能模块,子程序执行完后还可以返回到主菜单,继续选择其他功能执行。源程序要求书写规范,结构清晰。重点函数的重点变量,重点功能部分均要求给出清晰的程序注释。4) 程序调试程序编译、链界成功后,自己设计实现程序功能的一组或多组测试数据,并严格按照此测试数据进行测试,然后分析测试结果。如果程序不能正常运行或结果不正确,则需对程序进行单步调试,在调试过程中认真查找算法实现中存在的问题,并加以分析和改正。如果程序能够基本正确地运行,可考虑增加若干基本的容错功能(如避免用户操作错误时程序出现死循环等);另外尽量对现有算法给出改进方案,并比较不同算法之间的优缺点。 五、设计报告及书写内容要求课程设计任务完成后,每位同学必须独立书写一份课程设计报告,注意:不得抄袭他人的报告(或给他人抄袭),一旦发现,成绩为零分。课程设计报告的内容应包括一下五个部分:1) 需求分析:包括设计题目、设计要求以及系统功能需求分析;2) 概要设计:包括系统总体设计框架和系统功能模块图;3) 详细设计:包括主要功能模块的算法设计思路以及对应的工作流程图;4) 主要源程序代码:包括储存结构设计说明,以及完整源程序清单;5) 调试分析过程描述:包括测试数据、测试输出结果,以及对程序调试过程中存在问题的思考(列出主要问题的出错现象、出错原因、解决方法及效果等);6) 总结:包括课程设计过程中的学习体会与收获、对C语言和本课程设计的认识以及自己的建议等内容;7) 书写格式严格按所附要求书写。附:课程设计报告装订顺序:c 语言课程设计任务书 题目 报告规范 前言 目录(A4大小的图纸及程序清单)。 正文的格式:一级标题用3号黑体,二级标题用四号宋体加粗,正文用小四号宋体;行距为22。正文的内容:一、课题的主要功能;二、课题的功能模块的划分(要求画出模块图);三、主要功能的实现(至少要有一个主要模块的流程图);四、程序调试;五、总结;六、附件(所有程序的原代码,要求对程序写出必要的注释)。正文总字数要求在5000字以上(不含程序原代码)。六、考核方式 指导老师负责验收程序的运行结果,并结合学生的工作态度、实际动手能力、创新精神和设计报告等进行综合考评,并按优秀、良好、中等、及格和不及格五个等级给出每位同学的课程设计成绩。具体考核标准包含以下几个部分:1) 平时出勤 (占10%)2) 系统需求分析、功能设计、数据结构设计及程序总体结构合理与否(占10%)3) 程序能否完整、准确地运行、个人能否独立、熟练地调试程序(占40%)4) 设计报告 (占30%)5) 独立完成情况 (占10%)。 题目1、问题描述:适用于小学生数学心算抢答赛。比赛题型分为两种:“四则简单运算”和“四则混合运算”,计算机随机出题,选手抢答。要求进入每种题型比赛时,计算机均有提示,每队的记分窗口随得分情况而更新。2、功能描述: 1、显示如下画面:欢迎参加小学生心算抢答赛按任意键开始比赛2、举办单位确定参赛的队数,每队分配一个记分窗口,底分均为100分。3、比赛题型分为两种:“四则简单运算”(N道题)和“四则混合运算”(M道题),N、M由举办单位确定,计算机随机出题,先出“四则简单运算”题,每出一道 ,选手抢答,做对一题加5分,做错一题减5分。后出“四则混合运算”,做对一题加10分,做错一题减10分。要求进入每种题型比赛时,计算机均有提示,每队的记分窗口随得分情况而更新。4、根据最后总分,由高到低宣布比赛名次,按任意键退出比赛系统。5、要求整个设计以人为本,用户界面友好。3、算法提示:1、 用简单的程序设计方法2、 一定的窗口设计技巧3、 简单的数据类型4、测试数据:随机函数产生5、其它:对该系统有兴趣的同学可以在实现上述基本功能后,完善系统的其它功能。如底分的设置、每种类型题目的加、减分的多少均可由举办方设定。课程设计报告规范需求分析程序的功能输入输出要求概要设计 程序又那些模块组成以及一个模块之间的层次结构、模块的调用关系;每个模块的功能。 课题的总体数据结构和数据库结构;即要储存什么样的数据,这些数据是什么结构,它们之间有什么关系等。详细设计 采用C语言定义相关的数据类型。写出各模块的类C码算法。画出函数的调用关系图。调试设计以及设计体会1试数据:准备典型的测试数据和测试方案,包括正确的输入及输出结果 和含有错误的输入及输出结果。程序调试中遇到的问题以及解决问题的方法。3程设计过程中的经验教训、心得体会。使用说明用户使用手册:说明如何使用你编写的程序,详细列出每一步的操作步骤。书写格式设计报告要求用A4纸打印成册:2.标题和正文要求见附13.封面格式如下附 录1 参考书目 C语言程序设计案例教程 张基温 编著 清华大学出版社C程序设计 (第三版) 谭浩强 编著 清华大学出版社C语言程序设计方法 邓文新 张宏烈 编著 哈尔滨工业大学出版社附1: 课程设计报告装订顺序:封面、任务书、目录、正文、评分、附件、(A4大小的图纸及程序清单)。 正文的格式:一级标题用3号黑体,二级标题用四号宋体加粗,正文用小四宋体;行距为22。 正文的内容:一、课题的主要功能;二、课题的功能模块的划分(要求画出模块图);三、主要功能的实现(至少要有一个主要模块的流程图);四、程序调试;五、总结;六、附件(所有程序的原代码要求对程序写出必要的注释)。 正文总字数要求在5000字以上(不含程序原代码)。 前 言课程设计是对学生的一种全面综合训练,它包括问题分析,总体结果设计,用户界面设计,程序设计基本技能和技巧,多人合作,一以至一整套软件工作规范的训练和科学作风的培养.是与课堂听讲、自学和练习相辅相成的必不可少的一个教学环节.通常,课程设计的课题比平时的习题复杂得多,也更接近实际.课程设计着眼于应用的结合点,使学生学会如何把书上的知识用于解决实际问题,培养软件工作所需的动手能力;另一方面,能使书上的知识变”活”,使学生更好的深入理解和灵活掌握教学内容.为了达到上叙目的,本课程设计安排了八个设计课题,训练重点在于基础的程序设计方法和分析问题的能力,而不强调面面俱到.学生可任选一个课题,设计完毕写出课程设计报告,用A4纸打印成册;并将课程设计的报告与原程序存盘.学习委员将课程设计报告与磁盘收齐后交给指导老师.目录C语言课程设计任务书2一、目的2二、时间安排2三、基本情况3四、设计和调试过程规范化要求3五、设计报告及书写内容要求4六、考核方式4题目51、问题描述:52、功能描述:53、算法提示:64、测试数据:65、其它:6课程设计报告规范6需求分析6概要设计6详细设计7 采用C语言定义相关的数据类型。7调试设计以及设计体会7使用说明7书写格式7附 录7附1:8前 言8课程设计主文档101课程设计题目102. 内容摘要103. 关键字104. 总体设计方案的选定10概要设计111. 程序的模块组成112. 函数的主要功能113. 相关的数据类型114. *函数间的调用关系图如下12流程图13源程序15心得体会21总结23应用技术学院课程设计评分表24课程设计主文档1课程设计题目 小学生心算抢答系统2. 内容摘要 该系统是一个简单的心算系统,能够使选手实现抢答,了解自己的得分及排名情况,同时也减少了工作人员的工作量其功能包括:选手抢答、四则简单计算、四则混合计算、显示选手得分、选手排名等。3. 关键字抢答系统4. 总体设计方案的选定 程序的功能:要实现对心算抢答进行统一有效的管理需要通过用函数、数据类型、语言(控制语句、函数调用语句、表达式语句等)来实现由于是计算,很自然的要建立一个题库,而这个题库的题目是通过函数之间的调用来实现的概要设计1. 程序的模块组成 主菜单函数、主函数:void main():自定义子菜单函数:void f();void p();void p2();自定义清屏函数:void my_clear();自定义输入函数:void my_print();自定义第一轮测试函数:void test_1();自定义第二轮测试函数:void test_2();2. 函数的主要功能主函数:显示主菜单:自定义子菜单函数:显示子菜单:自定义清屏函数:设置颜色:自定义输入函数:输入“”、“”;自定义第一轮测试函数:随机出题,并输入选手的选号及答案,同时输入成绩,显示名次。3. 相关的数据类型 int algType_1=0,algType_2;/*计算类型*/int i,j,n,m;/*循环变量*/int points_1PN+1,point_2PN+1; /*选手得分*/int num1=0,num2=0,num_1,num_2,num_3; /*操作变量*/int result=0; /*结果*/int answer_1PN+1,answer_2PN+1; /*选手答案*/int max_1,temp_1,max_2,temp_2; int total4; 4. *函数间的调用关系图如下(1) mian 函数的下属子功能函数及其调用示意图 void mian my_clear()f()函数(2) 子功能函数及其调用示意图Mian() P2()函数F()函数P1()函数My_clear() ( 1 )P1函数F()函数 P11()函数Test-1()函数 ( 2 )F()函数P2()函数 P21()函数Test-2()函数 ( 3 )流程图 开始主菜单选择功能 退出系统进入系统 选择功能返回第一流比赛第二流比赛 选择功能 选择功能能选择功能能 返 回四则简单运算四则混合运算返回测试返回主菜单结束源程序#include stdio.h#include conio.h#include time.h#define PN 3#define N 10#define M 10int total4; /*自定义清屏函数*/ void my_clear(int fg_color,int bg_color) textbackground(bg_color); textcolor(fg_color); clrscr(); /*第一轮测试函数*/ void test_1() int algType_1=0, /*计算类型*/ i,j,points_1PN+1, /*循环变量*/ /*选手得分*/ num1=0,num2=0, /*操作得分*/ result=0, /*结果*/ answer_1PN+1, totalPN+1; /*选手得分*/ for(i=1;i=PN;i+) totali=100; points_1i=100; /*设置底分*/ answer_1i=0; printf(现在开始抢答, 请看题: ); for(i=1;i=num2) /*减法运算*/ result=num1-num2; printf(n%d-%d,num1,num2);break; else result=num2-num1; printf(n%d-%d,num2,num1);break; case 3:result=num1*num2; /*乘法运算*/ printf(n%d*%d,num1,num2);break; case 4:result=num1/num2; /*除法运算*/ printf(n%d/%d,num1,num2);break; printf(=?); scanf(%d%d,&j,&answer_1j); if(answer_1j=result) points_1j+=5; /*积分*/ else points_1j-=5; printf(你现在的得分: ); printf(%d%5d,j,points_1j); /*输出得分*/ for(i=1;i=PN;i+) totali=points_1i; main(); /*第二轮测试函数*/ void test_2() int algType_2=0,m,n,points_2PN+1,num_1=0,num_2=0,num_3=0, result=0,answer_2PN+1; for(m=1;m=PN;m+) points_2m=100; answer_2m=0;totalm=100; printf(现在开始抢答, 请看题: ); for(m=1;mnum_3) result=num_1+num_2-num_3; printf(n%d+%d-%d,num_1,num_2,num_3); else result=num_3-(num_1+num_2); printf(n%d-(%d+%d),num_3,num_1,num_2); break; case 3: if(num_1*num_2num_3) result=num_1*num_2-num_3; printf(n%d*%d-%d,num_1,num_2,num_3); else result=num_3-num_1*num_2; printf(n%d-%d*%d,num_3,num_1,num_2); break; printf(=?); scanf(%d%d,&n,&answer_2n); if(answer_2n=result) points_2n+=10; /*积分*/ else points_2n-=10; printf(你现在的得分是: ); printf(%d%5d,n,points_2n); /*输出得分*/ totaln=points_2n; main(); /*主函数*/ main() int choice; void f(); void p1(); void p11(); void p2(); void p21(); my_clear(1,6); printf(* 谢 谢 使 用 本 系 统*n); printf( #*#*#*#*#*#* 设计人 刘洋 机设0781#*#*#*#*#*#*n ); printf( *n ); printf( * *n ); printf( * 欢迎参加小学生心算系统 *n ); printf( * *n ); printf( *n ); printf( 1.进入系统n ); printf( 2.成绩查询n ); printf( 0.退出系统n ); printf(n请在上述功能中选择(0-1): ); do scanf(%d,&choice); switch(choice) case 1: f();break; case 2: mark();break; case 0: exit(0); while(1); /*子函数*/ void f() int _choice; my_clear(1,6); gotoxy(15,6); printf(1. 第一轮抢答); gotoxy(15,8); printf(2. 第二论抢答); gotoxy(15,10); printf(0. 返回); gotoxy(15,14); printf(请在上述功能中选择(0-2); do scanf(%d,&_choice); switch(_choice) case 1:p1();break; case 2:p2();break; case 0:main();break; while(1); void p1() int ch_1; my_clear(1,6); printf( 1# 四则简单计算 #); gotoxy(15,6); printf( 0. 返回); gotoxy(15,15); printf(请在上述功能中选择(0-1); do scanf(%d,&ch_1); switch(ch_1) case 0:main();break; case 1:p11();break; while(1); void p11() clrscr(); textbackground(BLUE); test_1(); void p2() int ch_2; my_clear(1,6); printf( 1# 四则混合计算 #); gotoxy(15,8); printf( 0. 返回); gotoxy(15,15); printf(请在上述功能中选择(0-1); do scanf(%d,&ch_2); switch(ch_2) case 0:main();break; case 1:p21();break; while(1); void p21() clrscr(); textbackground(BLUE); test_2(); mark() int i, clscr(); for(i=1;i=PN;i+) printf(n 成绩分布是队伍 %d的成绩是 %dn,i,totali); getch(); main();心得体会 C语言是一门非常深奥而又重要的课程,它不仅与我们的生活紧密联系在一起,而且将来可能普遍被学习.我虽是初次接触,但有深深的体会.我们现在接触的只是一些基础知识,还是感觉有些难以正确的运用,我相信以后一定能学好它,慢慢去探索其中的奥妙! 通过一个星期的折腾,总算把课程设计给完成了,这是一个坚苦而又漫长的过程。是啊,读了那么多年的书,课程设计可是第一次。看着劳动成果,很欣慰!虽然这不是我一个人做的,是大家的共同努力得来的。 “也许完成不了!”以前我们这样说,“完成他没问题!”一个星期前我们这样说,现在我们可以说:“哈哈,完成啦”! 刚开始,可以说是没有头绪,于是就去图书馆找资料,找到了一些关于画图方面的,可是这点小进展远远不够,这只是一个小小的开始。下一步是上网查,找到了些与我们题目相似的,那时我们每个人都很高兴,可是那还不是我们要的,于是又上网查到了些有关的函数等等,终于在我们大家的努力下,完成了这个程序。 虽然对着电脑做程序,有点累有点热,可是当看到劳动成果时,真是别有一番滋味在心头啊!世上无难事,只怕有心人,的确如此。做完这个程序最大的收获就是感受到了集体的力量,当然个人的智慧也是很重要的哦! 做完这个课程设计,我们的自信一下子提高了,我们也会写程序了;尽管对于有些人这种程序会很简单,可对我们C语言初学者来说,已经很不容易了。这次体验为以后的学习计算机的我们增强了信心。享受劳动成果的滋味实在很美妙啊! 同时,我也清楚地知道21世纪挑战与机遇并存,没有足够的知识储备必将被时代所抛弃。C语言作为国际上广泛流行的通用程序设计语言,在计算机的研究和应用中已展现出强大的生命力。C语言兼顾了诸多高级语言的特点,是一种典型的结构化程序设计语言,它处理能力强,使用灵活方便,应用面广,具有良好的可移植性。虽然我们C语言已有四个月,但一直都重概念、轻实践,这次设计对我们来说是千载难逢的机会,无论如何都要好好把握。心态一转变,整个人的精神状态都非同寻常,而且这种程序设计课比一般的课堂教学更具灵活性,它可以始终使人处于兴奋之中。高中的教育模式化倾向太强,整齐划一的教育模式使学校变成“工厂”,学生 成为统一式模子加工出来的“标准件”。但大学的程序设计实践课促进我们的个性充分、健康地发展,最大限度地激发我们的学习热情和创造热情。我可以说若你一一欣赏我们的设计,你一定会眼花缭乱,因为它们各种各样、各有千秋。并且,它无形中促进我们自主学习,使我们对C语言有了更深刻地了解,对程序设计有了更高的操作水平。 通过这次实践我明白:人是在与他人交往中认识世界,在交流中不断调整和修正自己的错误,从而使之更全面,更透彻。这套运算器的程序都由我们自己互相帮助,经过无数次的修改而成,老师只是辅导。我们知道老师不再是全知全能的权威,不再是知识的来源,他们只是学生的协作和促进者,只有我们才是学习的主人。请允许我把这种课堂模式称作“放水养鱼”模式,它很自由,有利与培养我们的独立思考、求异思维,创新能力,使我们获得更多的知识和更强的能力。 我觉得这次程序设计课相当成功,学校应多多开展。C语言是一门计算机基础语言,通过这一学期的学习,对于它的一些特点和算法有了一定程度的了解,并能够做一些中等的题目,但并没有完全掌握。这两周的课程设计正是让我们巩固以前的知识并在此基础上能够有所突破。 这次做的是计算器,对于我来说有一定困难,因为我的C语言基础并不是很过硬,所以在前三天我的程序并没有太大的进展,除了一个框架外并无其他任何功能,每天别人在绞尽脑汁想如何做程序的时候,我都会看着自己写的框架发呆,或者做一些与课程无关的事情,那几天过的蛮无聊,蛮郁闷的,心情也不是很好。几天的煎熬终于过去了,终于有了让我喘息的机会。周四的时候,拿出了网上找到的计算器的程序,静下心来认真的研究别人的算法,终于初步看懂了那些在我看来深奥的一塌糊涂的语言。接下来又要上机,不过这次情况有所改善,毕竟有了一点小头绪了,当然趁热打铁,把那个程序中有用的部分COPY了一下,就变成了自己的计算器程序啦。运行了一下也成功了。虽然程序有的是COPY的,外形也不如别人的美观,可其中包含了我的心血,应该并不算盗用吧。 C语言是一门较难的语言,我感觉学的蛮累的,尤其是这两周的课程设计,我更体会到了这一点,虽然我

温馨提示

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

评论

0/150

提交评论