c语言小学生测验.docx

上传人:b****8 文档编号:28915616 上传时间:2023-07-20 格式:DOCX 页数:11 大小:123.72KB
下载 相关 举报
c语言小学生测验.docx_第1页
第1页 / 共11页
c语言小学生测验.docx_第2页
第2页 / 共11页
c语言小学生测验.docx_第3页
第3页 / 共11页
c语言小学生测验.docx_第4页
第4页 / 共11页
c语言小学生测验.docx_第5页
第5页 / 共11页
点击查看更多>>
下载资源
资源描述

c语言小学生测验.docx

《c语言小学生测验.docx》由会员分享,可在线阅读,更多相关《c语言小学生测验.docx(11页珍藏版)》请在冰豆网上搜索。

c语言小学生测验.docx

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();

}

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

当前位置:首页 > 农林牧渔 > 畜牧兽医

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1