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

 更新时间:2023年05月08日 15:04:14   作者:牧童深巷.  
我们都知道计算机在教育中起的作用越来越大。这篇文章主要为大家详细介绍了如何利用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,其它情况依 此类推。

/*
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>
using namespace std;
int main()
{
	int x,y,a;  //x和y是两个随机生成的数,a为学生输入的答案 
	int sum=0;  //sum是两个数相乘的结果
	int count=0;//count为计数器 
	int right=0;//记录对的题数
	float s;    //计算正确率 
	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)
			{
				case 0:	cout << "Very good!" << endl << endl;break;
				case 1:	cout << "Excellent!" << endl << endl;break;
				case 2:	cout << "Nice work!" << endl << endl;break;
				case 3:	cout << "Keep up the good work!" << endl << endl;break;
			}
		}
		else
		{
			switch(rand()%4)
			{	
				case 0:	cout << "No. Please try again." << endl << endl;break;
				case 1:	cout << "Wrong. Try once more." << endl << endl;break;
				case 2:	cout << "Don't give up!" << endl << endl;break;
				case 3:	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;
	}
	return 0;
}

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

a)修改程序,允许用户输入能力等级。等级1表示在问题中只能使用一位数,等级2表示最大只能使用2位数,等等。

b)修改程序,增加算术问题的类型,允许用户选择他或者她希望学习的算术问题的类型。选项1表示只是加法问题,2表示只是减法问题,3表示只是乘法问题,4表示只是除法问题。

#include<iostream>
#include<cmath>
#include <stdlib.h>
using namespace std;
int main()
{
	int x,y,a;  //x和y是两个随机生成的数,a为学生输入的答案 
	int sum=0;  //sum是两个数相乘的结果
	int count=0;//count为计数器 
	int right=0;//记录对的题数
	float s;    //计算正确率 
	int note=0;//记录能力等级 
	int f=0;//记录用户所希望学的问题 
	cout << "Please enter your ability level, 1 or 2" << endl;
	cin >> note; 
	cout << endl;
	cout << "************" << endl;
	cout << "*1:加法问题*" << endl; 
	cout << "*2:减法问题*" << endl; 
	cout << "*3:乘法问题*" << endl;
	cout << "*4:除法问题*" << endl;
	cout << "************" << endl;
	cout << "Please enter the type of arithmetic problem you want to learn" << endl;
	cin >> f;
	do
	{
	        count++;
		if(note==1)
		{			
			x=rand()%10;//随机数 
			y=rand()%10;
		}
		else
		{
			x=rand()%20;//随机数 
			y=rand()%20;
		}
		if(f==1)
		{
			sum=x+y;
			cout << x << " + " << y << " = " << endl;
		}
		else if(f==2)
		{
			sum=x-y;
			cout << x << " - " << y << " = " << endl;
		}
		else if(f==3)
		{
			sum=x*y;
			cout << x << " * " << y << " = " << endl;
		}
		else if(f==4)
		{
			sum=x/y;
			cout << x << " / " << y << " = " << endl;
		}
			cout << "Please enter the answer :" << endl;
			cin >> a;
			if(a==sum)
			{
				right++; 
				switch(rand()%4)
				{
					case 0:	cout << "Very good!            " << endl << endl;break;
					case 1:	cout << "Excellent!            " << endl << endl;break;
					case 2:	cout << "Nice work!            " << endl << endl;break;
					case 3:	cout << "Keep up the good work!" << endl << endl;break;
				}
			}
			else
			{
				switch(rand()%4)
				{	
					case 0:	cout << "No. Please try again." << endl << endl;break;
					case 1:	cout << "Wrong. Try once more." << endl << endl;break;
					case 2:	cout << "Don't give up!       " << endl << endl;break;
					case 3:	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;
	}
	return 0;
}

到此这篇关于利用C++实现计算机辅助教学系统的文章就介绍到这了,更多相关C++计算机辅助教学系统内容请搜索脚本之家以前的文章或继续浏览下面的相关文章希望大家以后多多支持脚本之家!

相关文章

  • C++ Cartographer源码中关于MapBuilder的声明与构造

    C++ Cartographer源码中关于MapBuilder的声明与构造

    这篇文章主要介绍了C++ Cartographer源码中关于MapBuilder的声明与构造,前面已经谈到了Cartographer中添加轨迹的方法和传感器的数据流动走向。在添加轨迹的时候,除了添加位姿估计器还有采样器,订阅回调函数之外,最重要的是通过map_builder_bridge添加了一条轨迹
    2023-03-03
  • C++实现地铁自动售票系统程序设计

    C++实现地铁自动售票系统程序设计

    这篇文章主要为大家详细介绍了C++实现地铁自动售票系统程序设计,文中示例代码介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们可以参考一下
    2022-03-03
  • C 语言关于联合体的相关知识

    C 语言关于联合体的相关知识

    这篇文章主要介绍了C 语言关于联合体的相关知识,文中讲解非常细致,代码帮助大家更好的理解学习,感兴趣的朋友可以了解下
    2020-06-06
  • C++ Futures与Promises线程使用示例讲解

    C++ Futures与Promises线程使用示例讲解

    future和promise的作用是在不同线程之间传递数据。使用指针也可以完成数据的传递,但是指针非常危险,因为互斥量不能阻止指针的访问;而且指针的方式传递的数据是固定的,如果更改数据类型,那么还需要更改有关的接口,比较麻烦
    2022-11-11
  • C语言实现简单计算器功能(2)

    C语言实现简单计算器功能(2)

    这篇文章主要为大家详细介绍了C语言实现简单计算器功能的第二部分,文中示例代码介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们可以参考一下
    2020-02-02
  • C语言自定义类型全解析

    C语言自定义类型全解析

    在C语言中自定义类型主要有结构体类型、位段、枚举类型、联合体类型,自定义类型是面试常会碰到的内容,今天我们来详细了解一下它
    2022-02-02
  • C语言基础文件操作方式超全详解建议收藏

    C语言基础文件操作方式超全详解建议收藏

    这篇文章主要为大家介绍了关于C语言文件操作方式的详细总结,建议收藏随用随看,有需要的朋友可以借鉴参考下,希望能够有所帮助
    2021-10-10
  • C++11各种锁的具体使用

    C++11各种锁的具体使用

    本文主要介绍了C++11各种锁的具体使用,文中通过示例代码介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们可以参考一下
    2021-08-08
  • OpenCV实战之基于Hu矩实现轮廓匹配

    OpenCV实战之基于Hu矩实现轮廓匹配

    这篇文章主要介绍了利用C++ OpenCV实现基于Hu矩的轮廓匹配,文中的示例代码讲解详细,对我们学习OpenCV有一定的帮助,感兴趣的可以学习一下
    2022-01-01
  • C++ Boost MPI接口详细讲解

    C++ Boost MPI接口详细讲解

    Boost是为C++语言标准库提供扩展的一些C++程序库的总称。Boost库是一个可移植、提供源代码的C++库,作为标准库的后备,是C++标准化进程的开发引擎之一,是为C++语言标准库提供扩展的一些C++程序库的总称
    2022-11-11

最新评论