news 2026/4/28 6:18:22

利用C++实现计算机辅助教学系统

作者头像

张小明

前端开发工程师

1.2k 24
文章封面图
利用C++实现计算机辅助教学系统

我们都知道计算机在教育中起的作用越来越大。

下面编写一个程序,帮助小学生学习乘法。利用rand函数产生两个一位的正整数。接着应该显示诸如6乘7等于多少的问题?学生然后输入答案。

程序会检查学生的答案。

计算机助教学环境中出现的一个问题是学生容易疲劳。这是可以消除的,通过变换计算机的对话来保持学生的注意力。要求对于每个正确的答案和不正确的答案,应该打印出不同的评语,如下所示:正确答案的评语:

Very good!
Excellent!
Nice work!
Keep up the good work!
错误答案的评语:
No. Please try again.
Wrong.
Try once more.
Don't give up!
No. Keep trying.

利用随机数生成器在1~4之间选择一个数,用它为每个答案选择相应的评语。使用switch语句发出响应。

先复习一下rand()函数的用法:

rand()函数用法:(转载)

1、rand()不需要参数,它会返回一个从0到最大随机数的任意整数,最大随机数的大小通常是固定的一个大整数。

2、如果你要产生0~99这100个整数中的一个随机整数,可以表达为:int num = rand() % 100;

这样,num的值就是一个0~99中的一个随机数了。

3、如果要产生1~100,则是这样:int num = rand() % 100 + 1;

4、总结来说,可以表示为:int num = rand() % n +a;

其中的a是起始值,n-1+a是终止值,n是整数的范围。

5、一般性:rand() % (b-a+1)+ a ; 就表示 a~b 之间的一个随机整数。

6、若要产生0-1之间的小数,则可以先取得0-10的整数,然后均除以10即可得到“随机到十分位”的10个随机小数。

若要得到“随机到百分位”的随机小数,则需要先得到0~100的10个整数,然后均除以100,其它情况依 此类推。

1

2

3

4

5

6

7

8

9

10

11

12

13

14

15

16

17

18

19

20

21

22

23

24

25

26

27

28

29

30

31

32

33

34

35

36

37

38

39

40

41

42

43

44

45

46

47

48

49

50

51

52

53

54

55

56

57

58

59

60

61

/*

rand()函数用法:(转载)

1、rand()不需要参数,它会返回一个从0到最大随机数的任意整数,最大随机数的大小通常是固定的一个大整数。

2、如果你要产生0~99这100个整数中的一个随机整数,可以表达为:int num = rand() % 100;

这样,num的值就是一个0~99中的一个随机数了。

3、如果要产生1~100,则是这样:int num = rand() % 100 + 1;

4、总结来说,可以表示为:int num = rand() % n +a;

其中的a是起始值,n-1+a是终止值,n是整数的范围。

5、一般性:rand() % (b-a+1)+ a ; 就表示 a~b 之间的一个随机整数。

6、若要产生0-1之间的小数,则可以先取得0-10的整数,然后均除以10即可得到“随机到十分位”的10个随机小数。

若要得到“随机到百分位”的随机小数,则需要先得到0~100的10个整数,然后均除以100,其它情况依 此类推。

*/

#include<iostream>

#include<cmath>

#include <stdlib.h>

usingnamespacestd;

intmain()

{

intx,y,a;//x和y是两个随机生成的数,a为学生输入的答案

intsum=0;//sum是两个数相乘的结果

intcount=0;//count为计数器

intright=0;//记录对的题数

floats;//计算正确率

do

{

count++;

x=rand()%10;//随机数

y=rand()%10;

sum=x*y;

cout << x <<" * "<< y <<" = "<< endl;

cout <<"Please enter the answer :"<< endl;

cin >> a;

if(a==sum)

{

right++;

switch(rand()%4)

{

case0: cout <<"Very good!"<< endl << endl;break;

case1: cout <<"Excellent!"<< endl << endl;break;

case2: cout <<"Nice work!"<< endl << endl;break;

case3: cout <<"Keep up the good work!"<< endl << endl;break;

}

}

else

{

switch(rand()%4)

{

case0: cout <<"No. Please try again."<< endl << endl;break;

case1: cout <<"Wrong. Try once more."<< endl << endl;break;

case2: cout <<"Don't give up!"<< endl << endl;break;

case3: cout <<"No. Keep trying."<< endl << endl;break;

}

}

}while(count<10);

s=right*1.0/count;//计算正确率

if(s<0.75)

{

cout <<"Please ask your instructor foe extra help"<< endl;

}

return0;

}

上面的程序还是不够完善,下面增强前面的程序功能。

a)修改程序,允许用户输入能力等级。等级1表示在问题中只能使用一位数,等级2表示最大只能使用2位数,等等。b)修改程序,增加算术问题的类型,允许用户选择他或者她希望学习的算术问题的类型。选项1表示只是加法问题,2表示只是减法问题,3表示只是乘法问题,4表示只是除法问题。

版权声明: 本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若内容造成侵权/违法违规/事实不符,请联系邮箱:809451989@qq.com进行投诉反馈,一经查实,立即删除!
网站建设 2026/4/28 6:13:26

五国朋友齐聚这里周五静安英语角

&#x1f236;有没有一个地方可以遇到好几个国家的外国人&#x1f236; 有没有下班去班味儿 的轻松愉快的语言交换&#x1f236;有没有让我喊你来 Happy Friday night&#x1f389;上海这个英语角第十年了 得到广大群众支持&#x1f389;上海这个周五一定会让你觉得精彩&#x…

作者头像 李华
网站建设 2026/4/28 6:10:46

华硕笔记本性能优化利器:G-Helper开源控制工具全攻略

华硕笔记本性能优化利器&#xff1a;G-Helper开源控制工具全攻略 【免费下载链接】g-helper Lightweight, open-source control tool for ASUS laptops and ROG Ally. Manage performance modes, fans, GPU, battery, and RGB lighting across Zephyrus, Flow, TUF, Strix, Sca…

作者头像 李华
网站建设 2026/4/28 6:10:23

模板工具进阶用法:构建高辨识度自媒体视觉体系的系统方法

自媒体内容竞争进入精细化运营阶段。视觉辨识度已成为账号差异化的核心识别要素。模板工具的价值不仅在于快速出图&#xff0c;更在于构建可复用、可演进的视觉体系。多数创作者停留在基础套用层面&#xff0c;导致内容同质化严重&#xff0c;难以形成稳定的记忆点。真正的进阶…

作者头像 李华
网站建设 2026/4/28 6:09:26

持久内存编程实战:从PMem原理到键值存储应用开发

1. 项目概述与核心价值最近在折腾一个需要处理海量实时数据的项目&#xff0c;数据量一大&#xff0c;传统的内存和磁盘方案就开始捉襟见肘。内存快&#xff0c;但容量小、成本高&#xff0c;而且掉电就丢数据&#xff0c;不敢放太关键的东西&#xff1b;SSD容量大、数据持久&a…

作者头像 李华