.小学生计算机辅助系统(computer-aided instruction,cia)
前言:我知道大家不会看到后面,所以在前面写了,我是个初学者,学了有俩年了。学了几门语言却没有一门精通,c++语言复杂的语法让我始终入不了门。然后我发现了c语言,大家不要看不起这些题目。虽然他真的不难并且很无聊,但他真的很重要。我一直嫌弃课本无法传递思想,那些帖子经常把代码打出是错误的。直到我一边学一边写帖子,这真的挺难的,表述思想要一个很长的字数。我又怕太长了大家看的累,我想向大家呈现从下向上编程的考虑,对于入口出口流程控制的思考,来表达我在想啥。我会再改进,因为我也是学习无法停下来不停琢磨。大家有不对的可以在评论里打出。(ps以下代码均在小龙Dev c++实现过)
题目(总):
(ps怕大家找不到放前面了)
任务1:首先产生两个随机数,在1-10的乘法,在屏幕上打出题目,如6*7=?不停让学生回答直到对了为止
任务2:在一的基础上,学生回答错误,给三次机会,超过三次显示“you have tried three times test over!"程序结束
任务3:在任务一的基础上,连续做10道乘法运算,不给机会重做,,若学生回答正确,则显示“right”否则显示否则显示“wrong!10道题全部做完后,按每题10分统计并输出总分,同时为了记录学生能力提高的过程,再输出学生回答的正确率
任务 4:计算机随机产生10道四则运算题,两个操作数为1-10之间的随机数,运算类型为随机产生的加减乘除的任意一个,不给机会重做,如果学生回答正确,则显示”right!“否则显示”wrong"
任务 5:在任务4的基础上,在学生回答正确率低于75%,则重新做10道题,如果正确率低于75%,重做10道,直到回答正确率高于75%才退出程序。
任务6:开发CAI系统有解决的另一个问题是学生的疲劳问题。消除学生疲劳的一种 办法是改变人机对话界面来吸引学生注意力。在任务5的基础上,使用随机数产生一个1-4之间的随机数,配合使用switch和printf 函数调用,为学生输入的每个个正确或者错误答案输出不同的评价。
任务1:
题目:
首先产生两个随机数,在1-10的乘法,在屏幕上打出题目,如6*7=?,在屏幕上显示,正确或者错误,不停让学生回答直到对了为止。
思路 输入:是一个数 输出:正确则结束,错误接着进行需要有个生成随机变量的函数rand(),一个判断函数,一个控制流程让错误的学生继续进行回答,这里循环结构用do..while控制(ps:if 需要封装。:)
需要对输入数字进行防御性检查。对于错误的数字用getchar()函数去掉。
思维导图:
代码:
#include <stdio.h>
#include <stdlib.h>
#include <time.h>
main()
{
int a, b, answer;
int ret;//字符是否合法的标识,0是错误,1是对
=== int flag = 0;//是否答对的标识
srand (time(NULL));
a = rand() % 10 + 1;
b = rand() % 10 + 1;
do
{
printf("%d*%d = ?\n", a, b);
ret = scanf("%d", &answer);
while (ret != 1)
{
while (getchar() != '\n');
printf("请输入正确数字 ");
ret = scanf("%d", &answer);
}
if (answer == a * b)
{
printf("%Right!\n");
flag = 1;
}
else
{
printf("Wrong !Please try again.\n");
}
}
while (flag != 1 )