《C语言》课程设计任务书(标准).doc_第1页
《C语言》课程设计任务书(标准).doc_第2页
《C语言》课程设计任务书(标准).doc_第3页
《C语言》课程设计任务书(标准).doc_第4页
《C语言》课程设计任务书(标准).doc_第5页
已阅读5页,还剩23页未读 继续免费阅读

下载本文档

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

文档简介

课 程 设 计 报 告课程名称 C语言程序设计 课题名称 小学生心算CAI系统 专 业 计算机科学与技术 班 级 计算机1002班 学 号 201003010223 姓 名 谭华雄 指导教师 李珍辉、李杰君、冯剑 2011年6月30日湖南工程学院课 程 设 计 任 务 书课程名称 C语言程序设计 课 题 小学生心算CAI系统 专业班级 计算机科学与技术 学生姓名 谭华雄 学 号 201003010223 指导老师 李珍辉、李杰君、冯剑 审 批 任务书下达日期 2011年 6月 25 日任务完成日期 2011年 6月30 日一、设计内容与设计要求1.课程设计目的:全面熟悉、掌握C语言基本知识,增强对不同的问题运用和灵活选择合适的数据结构以及算法描述的本领,熟悉编制和调试程序的技巧,掌握分析结果的若干有效方法,进一步提高动手能力,培养使用计算机解决实际问题的能力,养成提供文档资料的习惯和规范编程的思想,为后继课程(数据结构、数据库和汇编语言等课程)的实验以及课程设计打下较扎实的基础。2.课题题目:小学生心算CAI系统3.设计要求:掌握结构化程序设计的主体思想,以自顶向下逐步求精的方法编制程序以解决一些实际问题,为将来开发软件积累一些典型的案例处理经验。具体要求如下:设计课题题目:每位同学根据自己学号除以8,将所得的余数加一选择相应题号的课题。原则上不予换提,私自换题者不记成绩。根据自己对应的课题完成以下主要工作:完成系统需求分析:包括系统设计目的与意义;系统功能需求;输入输出的要求。完成系统概要设计:程序由哪些模块组成以及模块间的层次结构、各模块的调用关系;每个模块的功能;课题涉及的数据结构和数据库结构;即要存储什么数据,这些数据是什么样的结构,它们之间有什么关系。完成系统详细设计:包括采用C语言定义相关的数据类型;写出各模块的类C码算法;画出函数的调用关系图。调试分析、设计体会、测试数据:准备典型的测试数据和测试方案,包括正确的输入输出结果和含有错误的输入输出结果;程序调试中遇到的问题以及解决问题的方法;课程设计过程经验教训、心得体会。关键源程序(带注释)。按规定格式完成课程设计报告,将其打印稿(A4纸)上交给存档。不得抄袭他人程序、课程设计报告,每个人应体现自己的个性计。设计课题八:小学生心算CAI系统一、问题描述:本系统可以用来进行单独的的加、减、乘、除心算练习,也可综合心算的速度与正确率进行测试。当用户在进行简单的四则运算时运算速度和正确率都较高时,可以进入四则混合运算,借此来进一步提高自己的心算能力。二、功能描述:1、 用户可以通过两种方法来选择功能,既可以按相应的数字键进入相应的心算练习,也可以按光标键来选择功能项。2、 计算机自动出题,用户进入每项练习时,屏幕上会显示用户所做的相应的题数,如果不想继续可以随时退出,只需按ESC键。3、 设计的系统完全适合用户,比如除法时考虑到小学生的水平问题,只允许出现整除情况。4、 用户输入的答案不对时,计算机会发出声音报警,用户输入的结果如果连续两次不对,计算机会自动给出正确答案,供用户参考。5、 界面设计友好。三、算法提示:1、 用简单的程序设计方法2、 一定的窗口设计技巧3、 简单的数据类型四、测试数据:计算机随机产生五、其它:对该系统有兴趣的同学可在实现系统基本功能后完善系统其它功能。课程设计主文档一系统需求分析:1课程设计题目:小学生心算CAI系统。2主要功能描述:本系统可以用来进行加、减、乘、除及四则混合运算心算练习,并统计出正确率和计算速度,当用户输入答案连续两次不对时,计算机给出正确答案,供用户参考,从而提高小学生的心算能力。二总体设计:1.功能设计:用户可以通过按相应的数字键进入相应的心算练习。计算机自动出题,用户进入每一项练习时。设计的系统完全适合用户,除法考虑到小学生的水平问题,只出现整除情况。用户输入的答案不对时,计算机会发出声音,用户输入的结果如果连续两次不对,计算机会自动给出正确答案,供用户参考。2.程序模块组成:1.主函数 main();随机取整函数 rand();加法运算函数 jiafa( );减法运算函数 jianfa( );乘法运算函数 chengfa( )除法运算函数 chufa( );混合运算函数 mix( );2.各个函数的功能:随机取整函数:给出比较简单的数字,供用户进行运算。加法运算函数:单独进行加法运算。减法运算函数:单独进行减法运算。乘法运算函数:单独进行乘法运算。除法运算函数:单独进行除法运算。混合运算函数:以固定混合运算公式进行运算。三详细设计: 1.在主函数中进行多项选择,用户根据需要进入不同的训练项目。第一次调用加法函数,用户进行加法运算:在加法函数中,通过IF语句选择自己所在的年级,计算机根据用户的年级来确定出题的范围。选择之后,用户进入训练模式。当用户的正确率较高及答一题所花费的时间较少时,用户可以进行下一个训练,即减法运算。此时,系统调用减法函数,用户如果不想进入也可以退出。由此类推,一直到系统调用混合运算函数而截止。程序编译、链接成功后,自己设计实现程序功能的一组或多组测试数据,并严格按照此测试数据进行测试,然后分析测试结果。如果程序不能正常进行或结果不正确,则需对程序进行单步调试,在调试过程中认真查找算法实现中存在的问题,并加以分析和改正。如果程序能够基本正确地运行,可考虑增加若干基本的容错功能;另外尽量对现有的算法给出改进方案,并比较不同算法之间的优缺点。 2. 主控模块和各子模块的设计框图: 1. main函数的下属子功能函数及其调用示意图。Mian()函数rand()函数jiafa()函数mix()函数chufa()函数chengfa()函数jianfa()函数2流程图:选择项目开始结束乘法除法减法加法混合输入年级输入题数进入运算输入答案计算正确率和速度判断选择四系统调试: 1.主函数欢迎界面。 2.用户选择进入加法训练。3.系统对用户的正确率进行分析:4进行减法练习5.进入混合运算五结果分析:开始进入界面时,用户通过从键盘上输入字母来选择相应的训练模式。如前所述,用户输入a进入加法训练。计算机出题时,时间函数开始工作,统计做题目花费的时间。同时,系统统计答对的题目数和答错的题目数,到用户做完所有题目时,计算出用户的正确率和所用的时间,并进行判断用户是否已经达到了进入下一运算的要求。运行程序,输出正确率和错误率及答题时间。用户通过考验,就可以来到混合运算,然后通关。系统首先对用户的输入字符进行分析,判断出用户的要求,进而进入相应的四则运算。当用户选择进入加法运算时,系统自动出有关加法运算的题目,用户输入答案,计算机进行判断是否正确,正确就进入下一题的计算,错误就让用户重新做,如果用户再一次做错的话,计算机就会自动给出答案。最后,计算机自动统计出用户的正确题目数和做错的题目数,再根据这些数据计算出用户的正确率和错误率,从而对用户有一个实质性的帮助。六源程序清单:#include#include#include#define N 5int main()srand(unsigned)time(NULL);int jiafa(); /*函数定义*/int jianfa();int chengfa();int chufa ();char p;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;case c:printf(*进入小学生乘法训练*n);chengfa();break;case d:printf(*进入小学生除法训练*n);chufa();break;printf(-谢谢使用本系统-n);return 0;int jiafa() /*加法函数*/int jianfa();int a,b,c,q,m,grade;double d,e,o,h,u=0;int i;int right=0,error=0,num=0;int computer1,computer2;A1: printf(enter your grade:); scanf(%d,&grade); if(grade=1|grade=2)m=10; else if(grade=3|grade=4)m=50; else if(grade=5|grade=6)m=100;for(i=1;i=0.8&h=2.0000)printf(你做的很不错n);printf(是否进入减法运算,1是进入,2是继续n);scanf(%d,&q);if(q=1)return jianfa();else if(q=2)goto A1;elseprintf(你失败了,请重新开始n);return 0;int jianfa() /*减法函数*/int chengfa();int i; int a,b,c,q,m,grade;int right=0,error=0,num=0;double d,e,o,h,u=0;int computer1,computer2;A2: printf(enter your grade:); scanf(%d,&grade); if(grade=1|grade=2)m=10; else if(grade=3|grade=4)m=50; else if(grade=5|grade=6)m=100;for(i=1;i=0.8&h=2.0000)printf(你做的很不错n);printf(是否进入乘法运算,1是进入,2是继续n);scanf(%d,&q);if(q=1)return chengfa();else if (q=2)goto A2;elseprintf(你失败了,请重新开始n);return 0;int chengfa() /*乘法函数*/int chufa();int i; int a,b,c,q,m,grade; int right=0,error=0,num=0;double d,e,o,h,u=0;int computer1,computer2;A3: printf(enter your grade:); scanf(%d,&grade); if(grade=1|grade=2)m=10; else if(grade=3|grade=4)m=50; else if(grade=5|grade=6)m=100;for(i=1;i=0.8&h=2.0000)printf(你失败了,请重新开始n);printf(是否进入除法运算,1是进入,2是继续n);scanf(%d,&q);if(q=1)return chufa();else if(q=2)goto A3;elseprintf(你失败了,请重新开始n);return 0;int chufa() /*除法函数*/int i;int mix(); int a,b,c,q,m,grade;int right=0,error=0,num=0;double d,e,o,h,u=0;int computer1,computer2;A4: printf(enter your grade:); scanf(%d,&grade); if(grade=1|grade=2)m=10; else if(grade=3|grade=4)m=50; else if(grade=5|grade=6)m=100;for(i=1;i=0.8&h=2.0000)printf(你做的很不错n);printf(是否进入混合运算,1是进入,2是继续n);scanf(%d,&q);if(q=1)return mix();else if(q=2)goto A4;elseprintf(你失败了,请重新开始n);return 0;int mix() /*混合运算函数*/int a,b,c,d,j,i,t; int right=0,error=0,num=0; double k,n,p,m,q,o,h,u=0;int computer1,computer2;printf(欢迎进入混合运算!n);A5:for(i=1;i=0.8&h=2.0000)printf(你做的很不错n);printf(是否继续:继续请按1n);scanf(%d,&t);if(t=1)goto A5; else printf(谢谢使用!n);return 0;七总结:经过一周的C语言课程设计,我不但实践了课本的知识,还制作了自己的小程序,感觉自己对C语言有了更深入的了解。在实践中,自己编程常会犯错误,并总结一些克服缺点的方法。深刻体会到程序设计中最重要的一调试程序,我们才能掌握正确的语法知识及把问题的解决方法用部分不是编写源程序,而是调试过程。只有经过程序语言来表达。在设计程序的同时也增长了翻阅有关文献的能力,加强了实践能力及自学能力,培养了分析问题 、编程和动手能力,掌握了程序设计基本技能。但也遇到了不少的挫折,有时遇到了一个错误怎么找也找不到原因所在,找了老半天结果却是一个函数放错了地方所致,有时一个功能不知道怎么实现找这个、找那个。有所编到最后一运行却告诉我错误,那真的很烦人。以前上课都是学一些最基本的东西,觉得很枯燥,而现在却可

温馨提示

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

评论

0/150

提交评论