您好,欢迎访问三七文档
当前位置:首页 > 机械/制造/汽车 > 机械/模具设计 > 《C语言》课程设计任务书(标准)
课程设计报告课程名称《C语言程序设计》课题名称小学生心算CAI系统专业计算机科学与技术班级计算机1002班学号201003010223姓名谭华雄指导教师李珍辉、李杰君、冯剑2011年6月30日2湖南工程学院课程设计任务书课程名称《C语言程序设计》课题小学生心算CAI系统专业班级计算机科学与技术学生姓名谭华雄学号201003010223指导老师李珍辉、李杰君、冯剑审批任务书下达日期2011年6月25日任务完成日期2011年6月30日3一、设计内容与设计要求1.课程设计目的:全面熟悉、掌握C语言基本知识,增强对不同的问题运用和灵活选择合适的数据结构以及算法描述的本领,熟悉编制和调试程序的技巧,掌握分析结果的若干有效方法,进一步提高动手能力,培养使用计算机解决实际问题的能力,养成提供文档资料的习惯和规范编程的思想,为后继课程(数据结构、数据库和汇编语言等课程)的实验以及课程设计打下较扎实的基础。2.课题题目:小学生心算CAI系统3.设计要求:掌握结构化程序设计的主体思想,以自顶向下逐步求精的方法编制程序以解决一些实际问题,为将来开发软件积累一些典型的案例处理经验。具体要求如下:⑴设计课题题目:每位同学根据自己学号除以8,将所得的余数加一选择相应题号的课题。原则上不予换提,私自换题者不记成绩。⑵根据自己对应的课题完成以下主要工作:①完成系统需求分析:包括系统设计目的与意义;系统功能需求;输入输出的要求。②完成系统概要设计:程序由哪些模块组成以及模块间的层次结构、各模块的调用关系;每个模块的功能;课题涉及的数据结构和数据库结构;即要存储什么数据,这些数据是什么样的结构,它们之间有什么关系。③完成系统详细设计:包括采用C语言定义相关的数据类型;写出各模块的类C码算法;画出函数的调用关系图。④调试分析、设计体会、测试数据:准备典型的测试数据和测试方案,包括正确的输入输出结果和含有错误的输入输出结果;程序调试中遇到的问题以及解决问题的方法;课程设计过程经验教训、心得体会。⑤关键源程序(带注释)。⑶按规定格式完成课程设计报告,将其打印稿(A4纸)上交给存档。⑷不得抄袭他人程序、课程设计报告,每个人应体现自己的个性计。4设计课题八:小学生心算CAI系统一、问题描述:本系统可以用来进行单独的的加、减、乘、除心算练习,也可综合心算的速度与正确率进行测试。当用户在进行简单的四则运算时运算速度和正确率都较高时,可以进入四则混合运算,借此来进一步提高自己的心算能力。二、功能描述:1、用户可以通过两种方法来选择功能,既可以按相应的数字键进入相应的心算练习,也可以按光标键来选择功能项。2、计算机自动出题,用户进入每项练习时,屏幕上会显示用户所做的相应的题数,如果不想继续可以随时退出,只需按ESC键。3、设计的系统完全适合用户,比如除法时考虑到小学生的水平问题,只允许出现整除情况。4、用户输入的答案不对时,计算机会发出声音报警,用户输入的结果如果连续两次不对,计算机会自动给出正确答案,供用户参考。5、界面设计友好。三、算法提示:1、用简单的程序设计方法2、一定的窗口设计技巧3、简单的数据类型四、测试数据:计算机随机产生五、其它:对该系统有兴趣的同学可在实现系统基本功能后完善系统其它功能。5课程设计主文档一.系统需求分析:1.课程设计题目:小学生心算CAI系统。2.主要功能描述:本系统可以用来进行加、减、乘、除及四则混合运算心算练习,并统计出正确率和计算速度,当用户输入答案连续两次不对时,计算机给出正确答案,供用户参考,从而提高小学生的心算能力。二.总体设计:1.功能设计:用户可以通过按相应的数字键进入相应的心算练习。计算机自动出题,用户进入每一项练习时。设计的系统完全适合用户,除法考虑到小学生的水平问题,只出现整除情况。用户输入的答案不对时,计算机会发出声音,用户输入的结果如果连续两次不对,计算机会自动给出正确答案,供用户参考。2.程序模块组成:1.主函数main();随机取整函数rand();加法运算函数jiafa();减法运算函数jianfa();乘法运算函数chengfa()除法运算函数chufa();混合运算函数mix();2.各个函数的功能:随机取整函数:给出比较简单的数字,供用户进行运算。加法运算函数:单独进行加法运算。减法运算函数:单独进行减法运算。乘法运算函数:单独进行乘法运算。除法运算函数:单独进行除法运算。混合运算函数:以固定混合运算公式进行运算。6三.详细设计:1.在主函数中进行多项选择,用户根据需要进入不同的训练项目。第一次调用加法函数,用户进行加法运算:在加法函数中,通过IF语句选择自己所在的年级,计算机根据用户的年级来确定出题的范围。选择之后,用户进入训练模式。当用户的正确率较高及答一题所花费的时间较少时,用户可以进行下一个训练,即减法运算。此时,系统调用减法函数,用户如果不想进入也可以退出。由此类推,一直到系统调用混合运算函数而截止。程序编译、链接成功后,自己设计实现程序功能的一组或多组测试数据,并严格按照此测试数据进行测试,然后分析测试结果。如果程序不能正常进行或结果不正确,则需对程序进行单步调试,在调试过程中认真查找算法实现中存在的问题,并加以分析和改正。如果程序能够基本正确地运行,可考虑增加若干基本的容错功能;另外尽量对现有的算法给出改进方案,并比较不同算法之间的优缺点。72.主控模块和各子模块的设计框图:1.main函数的下属子功能函数及其调用示意图。chufa()函数chengfa()函数jianfa()函数mix()函数rand()函数jiafa()函数Mian()函数82.流程图:乘法除法减法加法混合输入年级输入题数进入运算输入答案计算正确率和速度判断选择开始选择项目结束9四.系统调试:1.主函数欢迎界面。2.用户选择进入加法训练。3.系统对用户的正确率进行分析:104进行减法练习5.进入混合运算11五.结果分析:开始进入界面时,用户通过从键盘上输入字母来选择相应的训练模式。如前所述,用户输入a进入加法训练。计算机出题时,时间函数开始工作,统计做题目花费的时间。同时,系统统计答对的题目数和答错的题目数,到用户做完所有题目时,计算出用户的正确率和所用的时间,并进行判断用户是否已经达到了进入下一运算的要求。运行程序,输出正确率和错误率及答题时间。用户通过考验,就可以来到混合运算,然后通关。系统首先对用户的输入字符进行分析,判断出用户的要求,进而进入相应的四则运算。当用户选择进入加法运算时,系统自动出有关加法运算的题目,用户输入答案,计算机进行判断是否正确,正确就进入下一题的计算,错误就让用户重新做,如果用户再一次做错的话,计算机就会自动给出答案。最后,计算机自动统计出用户的正确题目数和做错的题目数,再根据这些数据计算出用户的正确率和错误率,从而对用户有一个实质性的帮助。12六.源程序清单:#includestdio.h#includestdlib.h#includetime.h#defineN5intmain(){srand((unsigned)time(NULL));intjiafa();/*函数定义*/intjianfa();intchengfa();intchufa();charp;printf(***************************************\n);/*开始界面*/printf(*********欢迎进入小学生心算系统********\n);printf(***************************************\n);printf(请选择:'a'是加法,'b'是减法,'c'是乘法,'d'是除法!);printf(\n);p=getchar();/*多向选择*/switch(p){case'a':printf(***进入小学生加法训练***\n);jiafa();break;case'b':printf(***进入小学生减法训练***\n);jianfa();break;13case'c':printf(***进入小学生乘法训练***\n);chengfa();break;case'd':printf(***进入小学生除法训练***\n);chufa();break;}printf(---谢谢使用本系统---\n);return0;}intjiafa()/*加法函数*/{intjianfa();inta,b,c,q,m,grade;doubled,e,o,h,u=0;inti;intright=0,error=0,num=0;intcomputer1,computer2;A1:printf(enteryourgrade:);scanf(%d,&grade);if(grade==1||grade==2)m=10;elseif(grade==3||grade==4)m=50;elseif(grade==5||grade==6)m=100;for(i=1;i=N;i++){computer1=rand()%m;computer2=rand()%m;a=computer1+computer2;printf(请输入你的答案\n);printf(%d+%d=,computer1,computer2);o=clock()/CLK_TCK;scanf(%d,&b);if(b==a)14{printf(你很棒,答对了\n);printf(进行下一题\n);right++;num++;}else{printf(你答错了\n);error++;num++;a=computer1+computer2;printf(请重新输入你的答案\n);printf(%d+%d=,computer1,computer2);scanf(%d,&c);if(c==a){printf(这次对了,继续加油\n);right++;num++;}else{printf(你又错了,正确答案是%d\n,a);error++;num++;}}}o=clock()/CLK_TCK-o;u=u+o;printf(你做的正确题目数是%d:,right);printf(\n);15printf(你做错的题目数是%d:,error);printf(\n);d=(right+0.0000)/(num+0.0000);e=(error+0.0000)/(num)+0.0000;printf(你的正确率是%0.2lf%%:,d*100);printf(\n);printf(你的错误率是%0.2lf%%:,e*100);printf(\n);printf(答题速度是%4.2lf秒每题.\n,u/num);h=u/num;printf(\n);if(d=0.8&&h=2.0000){printf(你做的很不错\n);printf(是否进入减法运算,'1'是进入,'2'是继续\n);scanf(%d,&q);if(q==1)returnjianfa();elseif(q==2)gotoA1;}elseprintf(你失败了,请重新开始\n);return0;}intjianfa()/*减法函数*/{intchengfa();inti;inta,b,c,q,m,grade;intright=0,error=0,num=0;doubled,e,o,h,u=0;intcomputer1,computer2;16A2:printf(enteryourgrade:);scanf(%d,&grade);if(grade==1||grade==2)m=10;elseif(grade==3||grade==4)m=50;elseif(grade==5||grade==6)m=100;for(i=1;i=N;i++){computer1=rand()%m;computer2=rand()%m;a=computer1-computer2;printf(请输入你的答案\n);printf(%d-%d=,computer1,co
本文标题:《C语言》课程设计任务书(标准)
链接地址:https://www.777doc.com/doc-3294522 .html