C语言课程设计报告第1页共11页1《C语言课程设计报告》标题:小学生数学测试软件学号:姓名:同组人员:年级专业:09电子信息工程指导老师:完成日期:2010/6/20C语言课程设计报告第2页共11页2目录一、程序的具体分工二、课题要求三、课题分析与设计四、选题背景五、程序介绍六、源程序代码与调试七、流程图八、结语九、参考书目C语言课程设计报告第3页共11页3一、程序的具体分工第一部分包括主函数是由杨威完成,第二部分add函数,sub函数,mul函数的被调函数由我(钟雪冬)完成。二、课题要求1)可选择题型(+,-,×);2)两个数随机产生,若选择加减运算,则产生两位数,且被减数大于减数,若选择乘法运算,则产生一位数;3)每次在输入答案后应判断对错,若答案错误,应给出正确答案;4)最后给出评分。三、课题分析与设计小学生数学测试软件是通过switch函数对add,sub,mul函数进行函数调用,进行各自的函数功能,其中由rand()函数产生随机数。四、选题背景C语言是目前世界上流行、使用最广泛的高级程序设计语言。1972年,C语言在美国贝尔实验室里问世,后来又被多次改进,并出现了多种版本。80年代初,美国国家标准化协会(ANSI),根据C语言问世以来各种版本对C语言的发展和扩充,制定了ANSIC标准。目前,在微机上广泛使用的C语言编译系统有MicrosoftC、TurboC、VisualC++等,这些C语言版本不仅实现了ANSIC标准,而且在此基础上各自作了一些扩充,使之更加方便、完美。C语言是一种结构化语言。它层次清晰,便于按模块化方式组织程序,易于调试和维护。C语言的表现能力和处理能力极强。它不仅具有丰富的运算符和数据类型,便于实现各类复杂C语言课程设计报告第4页共11页4的数据结构。它还可以直接访问内存的物理地址,进行位(bit)一级的操作。由于C语言实现了对硬件的编程操作,因此C语言集高级语言和低级语言的功能于一体。既可用于系统软件的开发,也适合于应用软件的开发。此外,C语言还具有效率高,可移植性强等特点。因此广泛地移植到了各类各型计算机上,从而形成了多种版本的C语言。为了将本学期所学C语言知识应用于实际,加深对C语言的理解与掌握,我院开设了C语言课程设计这门课程。而我们小组选取了小学生测试软件这个课题,以此来锻炼我们编写程序的能力。五、程序介绍小学生数学测试软件由5个函数组成,包括main主函数,rand()函数,add函数,sub函数,mul函数。main主函数对add函数,sub函数,mul函数进行调用。rand()函数产生随机数,其产生的随机数值范围0~65535。add函数执行加法运算。sub函数执行减法运算。mul函数执行乘法运算。六、源程序代码与调试代码:#includestdio.h#definerandom(x)(rand()%x)staticintcount;voidadd(intk){inti,j,m;intans;for(m=1;m=k;m++){i=random(100);C语言课程设计报告第5页共11页5j=random(100);printf(NO.%d:\n,m);printf(%d+%d=,i,j);scanf(%d,&ans);if(ans==(i+j)){count++;printf(congratulate!\n);}elseprintf(Sorry!youarewrong!Theansweris:%d\n,i+j);}}voidsub(intk){inti,j,m;intans;for(m=1;m=k;m++){i=random(100);j=random(100);if(ij)m=m-1;else{printf(NO.%d:\n,m);printf(%d-%d=,i,j);scanf(%d,&ans);if(ans==(i-j)){count++;printf(congratulate!\n);}elseprintf(Sorry!youarewrong!Theansweris:%d\n,i-j);}}}voidmul(intk){inti,j,m;intans;for(m=1;m=k;m++){C语言课程设计报告第6页共11页6i=random(10);j=random(10);printf(NO.%d:\n,m);printf(%d*%d=,i,j);scanf(%d,&ans);if(ans==(i*j)){count++;printf(congratulate!\n);}elseprintf(Sorry!youarewrong!Theansweris:%d\n,i*j);}}voidmain(){inti,k;printf(Input1,Chooseadditionproblems\n);printf(Input2,Choosesubtractionproblems\n);printf(Input3,Choosemultiplicationproblems\n);printf(Inputyouroptions:);scanf(%d,&k);printf(\n);printf(Enterthenumberofquestionstoanswer:);scanf(%d,&i);switch(k){case1:add(i);break;case2:sub(i);break;case3:mul(i);break;default:printf(\nInputerrors!);break;}printf(Youanswerquestionsis:%d\n,count);printf(Yourfinalscoreis:%.2f\n,(float)count/i*100);}C语言课程设计报告第7页共11页7调试:1菜单函数执行结果:进入程序后进入程序主菜单结果如下:输入1进入add函数,输入2进入sub函数,输入3进入mul函数.2add(加法)函数结果:3sub(减法)函数结果:C语言课程设计报告第8页共11页84mul(乘法)函数结果:5成绩的最后评定:C语言课程设计报告第9页共11页9七、流程图开始输入相应的数字调用相应的函数,输入1add函数,输入2调用sub函数,输入3调用mul函数。输入1,选择加法题输入2,选择减法题输入3,选择乘法题输入数字,选择想做的题数输入数字,选择想做的题数输入数字,选择想做的题数进行加法操作进行减法操作进行乘法操作输出结果及成绩评定结束C语言课程设计报告第10页共11页10八、结语通过这次课程设计,我和杨威同学经过共同努力,完成了《小学生数学测试软件》这一课程设计,在这过程中也加深了对课本的认识和了解。同时,我们也会去查资料,学会了我对很多的函数有了新的认识,也学会了运用多种函数,我也明白了写软件的基本过程和基本方法。写软件的过程中我又学到了曾经自己不知道的函数或是自己不会的函数的用法。这次课程设计课总的来说让我受益匪浅。在软件的设计过程中遇到了很多的困难,我们也学会了在困难中解决问题。这次的程序设计过程中,我们受益匪浅,也让我们体会到了失败时的焦急和难受,成功时的兴奋与喜悦。同时我们小组成员互帮互助,让我认识到团队的力量,团结就是力量。九、参考书目[1]谭浩强,C程序设计教程,清华大学出版社,2007年[2]赵永哲,李雄飞,戴秀英编著,《C语言程序设计》,科学出版社,2003年[3]夏宽理,赵子正编著,《C语言程序设计》,中国铁道出版社,2006年[4]谭浩强编著,《C程序设计》,清华大学出版社,1991年[5]GaryJ.Bronson,AFirstBookofANSIC(FourthEdition),PublishingHouseofElectronicsIndustry,2006.[6]AlKelley,IraPohl,ABookonC:ProgramminginC(FourthEdition),ChinaMachinePress,2004.[7]BrianW.Kernighan,DennisM.Ritchie,TheCProgrammingLanguage,ChinaMachinePress,2006.C语言课程设计报告第11页共11页11物理与电子信息学院课程设计评定意见指导教师评语主要内容包括:设计报告内容的完整性和完成情况、报告格式的规范性、通过课程设计取得的收获等。成绩:签名:年月日注:本页与上一页用A3纸套印成封面和封底,课程设计报告正文用A4纸打印然后装订