c语言小学生测验.docx
- 文档编号:28915616
- 上传时间:2023-07-20
- 格式:DOCX
- 页数:11
- 大小:123.72KB
c语言小学生测验.docx
《c语言小学生测验.docx》由会员分享,可在线阅读,更多相关《c语言小学生测验.docx(11页珍藏版)》请在冰豆网上搜索。
c语言小学生测验
1设计目的
(1)进一步巩固和复习C程序设计的基础知识;
(2)培养学生结构化程序、模块化程序设计的方法和能力;
(3)了解软件的编制过程及各环节的具体内容;
(4)提高学生程序调试技巧、软件设计能力和代码规范化等素质;
提高学生分析问题、解决问题以及实际运用能力。
2任务概述
面向小学1~2年级学生,随机选择两个整数和加减法形成算式要求学生解答。
功能要求:
(1)电脑随机出10道题,每题10分,程序结束时显示学生得分;
(2)确保算式没有超出1~2年级的水平,只允许进行50以内的加减法,不允许两数之和或之差超出0~50的范围,负数更是不允许的;
(3)每道题学生有三次机会输入答案,当学生输入错误答案时,提醒学生重新输入,如果三次机会结束则输出正确答案;
(4)对于每道题,学生第一次输入正确答案得10分,第二次输入正确答案得7分,第三次输入正确答案得5分,否则不得分;
(5)总成绩90以上显示“SMART”
80-90显示“GOOD”,70-80显示“OK”,60-70显示“PASS”,60以下“TRYAGAIN”
3模块划分
小学生测验系统包括系统出题,判断题目是否合规,学生答题,判断正误计算得分
,输出等级退出系统几个功能,功能模块图如图3.1所示。
图3.1小学生测验系统功能模块图
4主要函数说明及其N-S
(1)小学生测验系统main()函数的N-S图,如图4.1所示
定义变量
i=1
i<=10
a=rand()%51b=rand()%51c=rand()%2
Td==0F
c=a+bc=a-b
c<0||c>50
输出回答第几题和对应的算式
k=3
k>=1
输入答案result
result==c
TF
输出回答正确输出回答错误
grade+=score[k-1]
break
k--
Tk==0F
下一道
i++
Grade(grade)getch()
图4.1main()函数N-S图
定义主函数main()的功能是:
随机选择0~50之间的两个数进行随机加减法运算,共出10道题目,确保答案在0~50之间,同时保证所出题目不重复,让学生回答,每道题有三次机会,第一次回答正确得10分,第二次回答正确得7分,第三次回答正确得5分,否则不得分,最后算出总得分划分等级
5程序运行数据及其结果
图5.1答错一题一次得分图
图5.2答错一题两次得分图
图5.3答错一题三次得分图
图5.4全部答对得分图
6课程设计心得
通过这次课程设计我学到了许多。
同时也巩固了许多C语言的知识。
但我觉得最重要的是在这个课程设计中看到了自己许多的不足,在许多方面都有所欠缺,对一些函数理解的不透彻,不能熟练的编写有关代码。
除了知识储备的不足之外,还有一些不良的编码习惯,时常导致掉写漏写,编写出来的没有做到美观整洁。
本次实验所写的小学测验系统,与以往编写的小程序相比更加复杂,功能也更多,自动出题
自动判卷,划分等级等每一个模块的编写都不得马虎,一有错误就会导致程序运行出错,所以困难较大,所以在编写代码的时候遇到了许多困难,例如如何保证系统给出的随机数不同,为了解决这个问题映入了srand((unsigned)time(NULL))方法,这些新的东西开拓了我的眼界,同时丰富了知识,潜移默化中提高了自己独立解决问题的能力。
虽然编码的过程略显枯燥,特别是当有困难的时候,而且当久久不能解决的时候就会特别心烦意乱,但每当解决一个问题后就有一种特别的快感,就会激发一股探索的精神而继续编写。
所以编写代码的过程虽然有些坎坷,但编写成功以后会感到十分快乐,看着自己的杰做会感到欣慰。
当作一件事情花费了一万个小时,那么你就会成功。
我想编写代码也是这样,当让编码成为
一种生活习惯的时候,当自己专业技能不断提高的时候,就会发现生活离不开编码,编码也是一种
可以令人愉悦的事情。
与此同时还可以让自己的思维变得更加缜密,更具创造性。
附录:
#include
#include
#include
#include
#include
intmain()
{
printf("******************1-2年级小学生数学测验******************\n");
printf("开始答题:
\n");
intnum=0,grade=0;
intscore[3]={10,7,5};
charstr[100],str1[10][100];
while
(1)
{
inta=0,b=0,d,c,k=0,i,j=-1,result;
charop[2]={'+','-'};
//系统出题
while
(1)
{
a=rand()%51;
srand((unsigned)time(NULL));
b=rand()%51;
srand((unsigned)time(NULL));
d=rand()%2;
if(d==0){
c=a+b;}
else{
c=a-b;}
//判断题目
if(c>=0&&c<=50){
sprintf(str,"%d%c%d=\n",a,op[d],b);
strcpy(str1[num],str);
if(num==0)
break;
j=-1;
for(i=0;i if(strcmp(str,str1[i])==0){ j=1; break; } } if(j<0) break; } } printf("第%d题: \n",num+1); printf("%s\n",str); //学生回答 printf("输入计算结果: \n"); while (1) { scanf("%d",&result); k++; if(result==c) { printf("回答正确! 棒棒哒~\n"); grade+=score[k-1]; break; } elseif(k<3) { printf("答案错啦,请认真思考后回答O(∩_∩)O: \n"); } else {printf("好可惜答错了,正确答案: %d\n",c); break; } } num++; if(num==10)break; } if(grade>=90)printf("%d******************SMART******************",grade); elseif(grade>=80)printf("%d******************GOOD******************",grade); elseif(grade>=70)printf("%d******************OK******************",grade); elseif(grade>=60)printf("%d******************PASS******************",grade); elseprintf("%d******************TRYAGAIN******************",grade); getch(); }
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 语言 小学生 测验