CAI软件开发:教小学生学算术课—课程设计论文.doc

上传人:仙人指路1688 文档编号:2369810 上传时间:2023-02-16 格式:DOC 页数:42 大小:510.50KB
返回 下载 相关 举报
CAI软件开发:教小学生学算术课—课程设计论文.doc_第1页
第1页 / 共42页
CAI软件开发:教小学生学算术课—课程设计论文.doc_第2页
第2页 / 共42页
CAI软件开发:教小学生学算术课—课程设计论文.doc_第3页
第3页 / 共42页
CAI软件开发:教小学生学算术课—课程设计论文.doc_第4页
第4页 / 共42页
CAI软件开发:教小学生学算术课—课程设计论文.doc_第5页
第5页 / 共42页
点击查看更多>>
资源描述

《CAI软件开发:教小学生学算术课—课程设计论文.doc》由会员分享,可在线阅读,更多相关《CAI软件开发:教小学生学算术课—课程设计论文.doc(42页珍藏版)》请在三一办公上搜索。

1、课程设计(论文)说明书课 题:CAI软件开发:教小学生算数 学 院: 电子工程与自动化 专 业: 测控 学生姓名: 学 号: 指导老师 : 目录1.内容摘要 12.关键字 13.题目与要求 24.设计任务及要求 4.1 分步实施 3 4.2 运行环境 3 4.3 开发工具 35.总体设计 5.1 程序设计组成框图 4 5.2 流程图 56.详细设计 6.1 注册登录系统函数详细说明 6 6.2 菜单界面函数详细说明 7 6.3 加法函数详细说明 8 6.4 减法函数详细说明 10 6.5 乘法函数详细说明 11 6.6 除法函数详细说明 12 6.7 统计信息函数详细说明 14 6.8 信息读

2、取函数详细说明 14 6.9 晋级降级函数详细说明 157.调试与测试 7.1 调试方法 15 7.2 功能模块的调试及测试 16 7.3 测试过程中遇到的主要问题 20 7.4 采取的解决措施 208.总体收获、体会 209.谢辞 2110.参考文献2111.源程序清单 2112.附录 源程序代码 221.内容摘要:现在,信息技术教育在我国中小学中全面开展,计算机在教育事业中的地位越来越重要,其中计算机辅助教学(Computer Aided Instruction ,简称CAI)扮演着重要的角色。本程序是用c语言来编写的具有加减乘除法的小软件,其中用到loop、goto、产生随机数函数、文件

3、操作等,小学生按照提示进行答题,一次答题命中率达到60%可以晋级,同样也会降级,学生可以按照自己的能力来设置题量,答题数量越多通关后获得的奖励越丰厚。本课设是利用计算机辅助教学(CAI)软件开发一款教小学生算术的小游戏,希望帮助小学生更好地练习小学算术,有效地缩短学习时间、提高教学质量和教学效率,实现最优化的教学目标。2.关键字:注册登录系统、加减乘除法、loopgoto、文件操作、产生随机数函数、统计、晋级、降级。3.题目与要求(1)题目及要求: 题目:计算机辅助教学(CAI)软件开发:教小学生算数 功能:可做个位数,十位数的加,减,乘,除。减法不能得负数,除法要除尽,屏幕上随机出现两个数,

4、提示小学生给出答案,答错了提示重新输入,直到答对为止。要统计给分,且累计,够一定分数后可晋级,即从个位进到十位数的运算,同样,也可以降级。(rand(),#include)(2)要求: (1)用C语言实现程序设计; (2)系统的各个功能模块要求用函数的形式实现; (3)界面友好(良好的人机交换),程序加必要的注释。4.设计任务及要求4.1 分步实施:(1)设计登陆界面,具有注册登录功能;(2)初步完成总体设计,搭好框架,确定人机对话的界面,确定函数个数;(3)完成基本要求:能答对各位数的加法和减法,并有统计功能,即一次答对的成功率为60%以上可以晋级,做十位数的减法,成功率低于60%也可以降级

5、;(4)进一步要求:完成乘法和除法的学习,也有晋级功能;(5)挑战的题量越多通关后获得的奖励就越丰厚。4.2 运行环境:(1)win7/XP系统(2)VC6.0编译环境4.3 开发工具:C语言5.总体设计菜单界面函数Cd()4除法函数div()3乘法函数mul()2减法函数sub()0规则函数Jm()5注册登陆界面zcdl()1加法函数add()注册登陆界面函数zcdl()zcdl()5.1 程序设计组成框图主函数main()是否是否是否输入错误重新输入降级返回算法选择通关结束降级返回个位数算法判断加法个位数add()除法个位数div()乘法个位数mul()减法个位数sub()判断开始除法十位

6、数div1()乘法十位数mul1()减法十位数sub1()加法十位数add1()判断输入题量输入题量输入题量输入题量规则函数Case5返回登录界面Case4除法Case3乘法Case2减法Case1加法Case0规则判断菜单登录注册Main()5.2 流程图6.详细设计6.1 注册登录系统函数详细说明 用户首次使用本软件都需要进行注册,然后再登录系统进行答题。开始显示注册登录界面输入命令1.登录3.退出2.注册否是否登录成功注册成功后返回登录界面是进入答题菜单void zcdl()/注册登陆界面 int sel;printf(登陆注册系统!n);printf(1.登陆n);printf(2.注

7、册n);printf(3.退出n);scanf(%d,&sel);switch(sel)case 1:Land();break;/调用登陆函数case 2:Register();break;/调用注册函数case 3:printf(退出n);exit(1);break;6.2菜单界面函数详细说明 登录成功后进入菜单,菜单中有六个选项,0.查看规则,1.加法运算,2.减法运算,3.乘法运算,4.除法运算,5.返回注册登录界面。开始显示菜单界面输入选项Case4除法Case2减法Case1加法Case5返回登录界面Case0规则Case3乘法void choice() /算法选择int ch;cd

8、();/调用菜单函数scanf(%d,&ch);getchar();if(ch=9|ch=9999|k0)printf(输入错误!请重新输入!n);printf(请输入挑战的题量:);scanf(%d,&k);for( i=1 ; i=9999|k=9999|answer=9999|k0)printf(输入错误!请重新输入!n);printf(请输入挑战的题量:);/k输入的题目数量scanf(%d,&k);for( i=1 ; i=rand2)printf(%d-%d=,rand1,rand2);scanf(%f,&answer);getchar();if(k=9999|k=9999|k=9

9、|k0)printf(输入错误!请重新输入!n);printf(请输入挑战的题量:);/k输入的题目数量scanf(%d,&k);for( i=1 ; i=999999|k=999999|k=9999|k0) printf(输入错误!请重新输入!n);printf(请输入挑战的题量:);/k输入的题目数量scanf(%d,&k);for( i=1 ; i=999999|k=999999|k=0.6) /晋级printf(恭喜您晋级了!n);add1();/usb1、mul1、div1else printf(抱歉您未能及格!n);tc();/提示是否继续或者退出7.调试与测试7.1 调试方法(1

10、) VC6.0下主要调试方法:单步,步入,堆栈和寄存器的查看,变量的查看,普通断点,条件断点,内存访问断点。(2) 步骤:A. 保存为c或c+文件B. 根据断点调试找到错误处。C. 采用F10或F11单步调试找到精确的错误处。其中F10是跳过函数盗用,F11是进入函数体调试。一般是先用F10,确定函数输入输出是否正确(与自己想的一样),如不一样,则用F11进入函数体一步一步调试。D. 在调试过程中,肯定得监视程序中的变量。在vc6.0的右下角有一个watch窗口,专门用来设置监视变量。具体怎样设置自己体会吧。在调试过程中,鼠标轻轻放在变量上也会显示该变量的值E. vc6.0专门为调试设置了工具

11、箱以方便调试的进行,打开的方法如下。右键在debug(或调试)选择项的勾勾上。7.2 功能模块的调试及测试(1) 登录注册系统界面和注册模块调试及测试(2) 登录模块函数及函数模块函数调试(3)规则函数模块调试(4) 加法及晋级函数的调试(5)减法及晋级函数的调试(6) 乘法及晋级函数的调试(7)除法及晋级函数的调试(8) 返回登录函数界面函数调试7.3 测试过程中遇到的主要问题 测试结果正确,能否按照要求实现运算,表明程序没有问题,但是其中还有一点bug,在运算输入结果时不能输入多个字符,否则会出现死循环。7.4 采取的解决措施没有注意输入多个字符的情况,需要把字符转换为数字进行判断。8.总

12、体收获、体会 本次课设的程序在刚开始调试时有许多错误,但在我的努力及同学的帮助下都被一一克服,现在在操作本程序时可根据提示进行相关操作,能正确输出结果。在刚开始的几次调试中曾经出现过不能产生十以内随机数字、不能进行循环练习、文件读写错误等等问题。经过我的努力及同学的帮助,这些问题得到克服,并且使程序的功能也得到了一定的完善。最后还能分别输出对错的题数及所得分数,把数据存放到文件中再读取出来。在这次设计过程中,不仅复习课本上所学知识,还通过网上查资料、问同学学到了课本上没有的知识。从而启发我,要想写好程序,在写好课本知识的同时还需要多查找一些有关的书籍,同时还需要多动脑子,尽量把所学的知识综合起

13、来应用,力争写出完美的程序。除此之外,我还得到了一些有用的教训:写程序时必须要细心,不能输错一个字符标点,就连全角半角也得注意。在修改调试时要有耐心,编译出错后必须逐个错误去改正,绝不能心急浮躁,否则修改之后还会有新的错误。 9.谢辞感谢此次课程设计过程中给予我们悉心指导的陈寿宏老师,同时也感谢其他同学,因为有老师和同学的帮助,我才能克服各种各样的难题成功完成了这次课程设计。同时更感谢学校给我们提供的这次课设机会,让我们学到了很多知识,提高我们的动手能力。10.参考文献1C程序设计/谭浩强著.-4版.北京:清华大学出版社,2010.62C语言程序设计,贾宗璞、许合利,江苏:中国矿业大学出版社,

14、2007.63高质量C+/C编程指南,林锐,PDF1.0版,2001.74 11.源程序清单void jm(); /游戏规则函数 void cd(); /菜单void tc(); /退出函数 void choice(); /算法选择void xjsr(); /限制输入函数 void add(); /个位数加法void add1(); /十位数加法 void sub(); /个位数减法void sub1(); /十位数减法 void mul(); /个位数乘法void mul1(); /十位数乘法 void div(); /个位数除法void div1(); /十位数除法 void zcdl()

15、; /注册登录函数void tgxx(); /统计信息函数 void tgyy(); /信息读取函数12.附录 源程序代码/*程序功能:教小学生算数作者:于延文学号:1100820328日期:2013年3月14日*/#include #include #include#includevoid jm(); /游戏规则函数void cd(); /菜单void tc(); /退出函数void choice(); /算法选择void xjsr(); /限制输入函数void add(); /个位数加法void add1(); /十位数加法void sub(); /个位数减法void sub1(); /十

16、位数减法void mul(); /个位数乘法void mul1(); /十位数乘法void div(); /个位数除法void div1(); /十位数除法void zcdl(); /注册登录函数void tgxx(); /统计信息函数void tgyy(); /信息读取函数int sum=0,k;void Register();/注册函数void Land();/登陆函数void zcdl();/注册登陆界面void tgxx();/ 通关信息储存main()zcdl();return 0;void zcdl()/注册登陆界面 int sel;printf(登陆注册系统!n);printf(

17、1.登陆n);printf(2.注册n);printf(3.退出n);scanf(%d,&sel);switch(sel)case 1:Land();break;case 2:Register();break;case 3:printf(退出n);exit(1);break;void Register()/注册函数FILE*fp;char ld50=0,user20,pass20;char usd50=0;fp=fopen(user.dat,at);printf(注册n);printf(请输入用户名 :n);fflush(stdin);gets(user);printf(请输入密码:n);ff

18、lush(stdin);gets(pass);strcpy(ld,user);strcat(ld,);strcat(ld,pass);strcat(ld,n);fputs(ld,fp);fclose(fp);printf(恭喜您,注册成功!n);main();void Land()/登陆函数FILE*fp;int find=0;char usc50=0,user20,pass20;char usd50=0;fp=fopen(user.dat,r);printf(登陆n);printf(请输入用户名:n);fflush(stdin);/释放缓存gets(user);printf(请输入密码:n)

19、;fflush(stdin);gets(pass);strcpy(usc,user);strcat(usc,);strcat(usc,pass);strcat(usc,n);while(!feof(fp)/如果遇到输入文件的结束标志fgets(usd,19,fp);if(strcmp(usd,usc)=0)printf(恭喜您,登陆成功!n);printf(%s您好,欢迎回来!n,user);find=1;choice();/菜单break ;if(!find)printf(密码错误!n);printf(请重新输入:n);Land();fclose(fp);void tgxx()/ 通关信息储

20、存FILE*fp; fp=fopen(data.dat,a+);fprintf(fp,%d,k);/记录答题数fprintf(fp,%d,sum);/记录答对题数 fprintf(fp,%d,k-sum);/记录答错题数fprintf(fp,%.2f,(sum/(float)k*100);/记录答对率fclose(fp);void tgyy()/信息读取 float a , b , c , d ;FILE *fp; fp=fopen(data.dat,r);/*fseek(fp,-12l,2);/标记文件位置 fscanf(fp,%f,&d); printf(答题数为:%1dn,d); fse

21、ek(fp,-10l,2);/标记文件位置 fscanf(fp,%d,&c); printf(答对题数为:%dn,c);fseek(fp,-8l,2);/标记文件位置 fscanf(fp,%d,&b); printf(答错题数为:%dn,b);*/fseek(fp,-6l,2);/标记文件位置 fscanf(fp,%f,&a); printf(答对率为:%4.2f%n,a);fclose(fp);void jm() /游戏规则函数int cha;printf(a3333333333333333333333333333333333333333333333333333333n);printf(a3

22、 游戏规则 3n);printf(a3 1、你可以选择加法,减法,乘法,除法,运算四种运算。3n);printf(a3 2、每种运算分为两个等级,第一和二级。 3n);printf(a3 3、第一级为个位数运算,第二级为十位数运算。 3n);printf(a3 4、做第一级正确率达到60%,将进入第二级。 3n);printf(a3 5、若在第二级的正确率低于60%将会降级。 3n);printf(a3 6、挑战的题量越多通关后获得的奖励就越丰厚。 3n);printf(a3333333333333333333333333333333333333333333333333333333n);printf(an); printf(a输入(0)返回菜单,(1)返回登录注册界面:n);scanf(%d,&cha);getchar();if(cha=9|cha0)printf(输入错误!请重新输入!n);printf( 是否继续挑战?n);printf(Y

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 建筑/施工/环境 > 项目建议


备案号:宁ICP备20000045号-2

经营许可证:宁B2-20210002

宁公网安备 64010402000987号