四则运算出题器3

一、实验题目

这次我的程序,是对四则运算2的进一步扩展

我选的是第一个方向:程序能够接受用户输入的答案,并能判定对错,最后还可以给出总共对/错的数量。

二、实验扩展思想

1、因为我给每个题目都编了序号,所以再输入答案的时候只需按着题目的顺序输入就可以了。

2、判断对错,我是事先定义了一个数组,来存放正确答案,最后把用户输入的答案和正确答案做比较即可

3、给出对/错的数量,这个比较容易,只需要设计两个变量,一个用来计算正确的个数,一个用来计算错误的个数,最后给出答案即可。

三、实验代码

//作者: 信1201-2班  司新红
#include<iostream.h>
#include<stdlib.h>
#include<time.h>

void hycc()
{
	int f;//定义要测试的是四则运算是几进制
	cout<<"请输入要测试的四则运算是几进制?"<<endl;
	cin>>f;
	int x,y,z,t;   //x,y分别表示所产生的两个数,z来控制做加减乘除
	int e;//输入每行算数题的个数
	srand(time(NULL));
	int n;
	int b;//表示有无负数
	int a;//用来输入行间距
	int d;//代表输入的答案
	float daan[100];//代表正确答案
	int zq=0;//用来表示正确答案的个数
	int cw=0;//用来表示错误答案的个数
	cout<<"需要列出多少到数学题?"<<endl;
	cin>>n;      //n代表出题的个数
	cout<<"加减有无负数?(0代表有负数,1代表无负数)"<<endl;
	cin>>b;
	cout<<"每行需要打印几个算数题?"<<endl;
	cin>>e;
	cout<<"打印时行间距是多少?"<<endl;
	cin>>a;

	cout<<"********************************"<<endl;
	for(int i=0;i<n;i++)
	{
		x=rand()%f;
		y=rand()%f;
		z=rand()%4;
		switch(z)
		{
		case 0:
			cout<<i+1<<"、 "<<x<<"+"<<y<<"="<<"     ";
			daan[i+1]=x+y;
			break;

		case 1:
			if(b==1)
			{
			if(x<y)
			{
				t=x;
				x=y;
				y=t;
			}
			cout<<i+1<<"、 "<<x<<"-"<<y<<"="<<"     ";

			}
			else if(b==0)
			{
			cout<<i+1<<"、 "<<x<<"-"<<y<<"="<<"     ";
			}
			daan[i+1]=x-y;
			break;
		case 2:
			cout<<i+1<<"、 "<<x<<"*"<<y<<"="<<"     ";
			daan[i+1]=x*y;
			break;
		case 3:
			if(y!=0)
			{
			cout<<i+1<<"、 "<<x<<"÷"<<y<<"="<<"     ";
			}
			else
			{
				i=i-1;
			}
			daan[i+1]=(float)x/y;
			break;
		default:
			cout<<"超出测试范围"<<endl;
			break;
		}
		if((i+1)%e==0)
		{
			for(int c=0;c<=a;c++)
			{
				cout<<endl;
			}
		}
		if((i+1)==n)
		{
			cout<<endl;
		}
	}
	for(i=1;i<=n;i++)
	{
		cout<<"请作答:"<<endl;
		cout<<i<<"、";
		cin>>d;
		if(d==daan[i])
		{
			cout<<"恭喜您,回答正确!"<<endl;
			cout<<endl;
			zq=zq+1;
		}
		else
		{
			cout<<"回答错误,正确答案为:"<<"  "<<daan[i]<<endl;
			cout<<endl;
			cw=cw+1;
		}
	}
	cout<<"回答正确的数量为:"<<" "<<zq<<"个"<<endl;
	cout<<"回答错误的数量为:"<<" "<<cw<<"个"<<endl;
}

void bhycc()
{

	int f;
	cout<<"请输入要测试的四则运算是几进制?"<<endl;
	cin>>f;
	int e;//输入每行算数题的个数
	int x,y,z,t;   //x,y分别表示所产生的两个数,z来控制做加减乘除
	srand(time(NULL));
	int n;//n代表出题个数
	int b;//代表加减有无负数
	int a;//用来输入行间距
	int d;//代表输入的答案
	int daan[100];//代表正确答案
	int zq=0;//用来表示正确答案的个数
	int cw=0;//用来表示错误答案的个数
	cout<<"需要列出多少到数学题"<<endl;
	cin>>n;      //n代表出题的个
	cout<<"加减有无负数?(0代表有负数,1代表无负数)"<<endl;
	cin>>b;
	cout<<"每行需要打印几个算数题?"<<endl;
	cin>>e;
	cout<<"打印时行间距是多少?"<<endl;
	cin>>a;
	cout<<"********************************"<<endl;
	for(int i=0;i<n;i++)
	{
		x=rand()%f;
		y=rand()%f;
		z=rand()%2;
		switch(z)
		{
		case 0:
			cout<<i+1<<"、 "<<x<<"+"<<y<<"="<<"     ";
			daan[i+1]=x+y;
			break;
		case 1:
			if(b==1)
			{
			if(x<y)
			{
				t=x;
				x=y;
				y=t;
			}
			cout<<i+1<<"、 "<<x<<"-"<<y<<"="<<"     ";
			}
			else if(b==0)
			{
				cout<<i+1<<"、 "<<x<<"-"<<y<<"="<<"     ";
			}
			daan[i+1]=x-y;
			break;
		default:
			cout<<"超出测试范围"<<endl;
			break;
		}
		if((i+1)%e==0)
		{
			for(int c=0;c<=a;c++)
			{
				cout<<endl;
			}
		}
		if((i+1)==n)
		{
			cout<<endl;
		}
	}
		for(i=1;i<=n;i++)
	{
		cout<<"请作答:"<<endl;
		cout<<i<<"、";
		cin>>d;
		if(d==daan[i])
		{
			cout<<"恭喜您,回答正确!"<<endl;
			cout<<endl;
			zq=zq+1;
		}
		else
		{
			cout<<"回答错误,正确答案为:"<<"  "<<daan[i]<<endl;
			cout<<endl;
			cw=cw+1;
		}
	}
	cout<<"回答正确的数量为:"<<" "<<zq<<"个"<<endl;
	cout<<"回答错误的数量为:"<<" "<<cw<<"个"<<endl;
}

int main()
{
	int c;//c代表输入是否继续的数字
	char ch;
	cout<<"是否支持乘除?(Y/N)"<<endl;
	cin>>ch;
	if(ch==‘Y‘||ch==‘y‘)
	{
		hycc();
		cout<<"********************************"<<endl;
	}

    else if(ch==‘N‘||ch==‘n‘)
	{
		bhycc();
		cout<<"********************************"<<endl;
	}
	else
	{
		cout<<"输入错误,无法为您出题!"<<endl;
	}

	cout<<"要继续答题吗?(0:继续  1:退出)"<<endl;
	cin>>c;
	if(c==0)
	{
		cout<<endl;
		main();
	}
	else
	{
		cout<<endl;
		return 0;
	}

	return 0;
}

四运行结果

五、PSP

学生     司新红

日期  2014.3.17

教师  王建民

程序号_______________

项目计划总结


编程


阅读书籍


课后复习


日总计


周日


周一


周二


30


30


90


150


周三


90


30


120


周四


120


30


150


周五


周六


周总计


240


90


90


420

时间记录总结


日期


开始


结束


中断时间


净时间


活动


备注


C


U


3月17日


4:00


5:00



160


编程


8:00


9:30


30


60


复习


写作业


10:00


10:30



30


阅读书籍


3月18日


10:00


11:30


15


75


编程


休息


10:00


10:30



30


阅读书籍


3月19日


7:00


9:00



120


编程

缺陷记录日志


日期


编号


类型


引入阶段


排除阶段


修复时间


修复缺陷


3月17日


01


程序


编码


编译


20min


求几个数中最大值时一直报错,最后我把所求的和放在了一个数组中


3月18日


02


程序


编码


编译


10min


忘记给正确答案的个数和错误答案的个数赋值


03


程序


编码


编译


30min


计算除法的正确答案时,不能是浮点型,然后我就把答案这个数组定义成了浮点型


3月19日


04


程序


编码


编译


10min


在不含有乘除的函数中,忘了给正确答案赋值,导致结果报错


05


程序


编码


编译


10min


变量用错,运行时运行无响应了。

时间: 2024-10-16 13:48:30

四则运算出题器3的相关文章

C++四则运算出题器---有答案版

一.实验题目 四则运算扩展----能接受答案并判断对错然后给出成绩. 二.实验思路 在每次输出算式后面输入答案,然后判断对错,对则统计. 稍微优化了一下界面. 三.代码 1 // 12345.cpp : 定义控制台应用程序的入口点. 2 // 3 4 #include "stdafx.h" 5 #include"iostream" 6 #include<stdlib.h> 7 #include<time.h> 8 #include<ma

多功能四则运算出题器

一.设计思想 1.为了保证题目避免重复,我采用了srand函数来实现: 2.可定制(数量/打印方式) 定制数量:手动输入一个数n,然后把原来循环中的固定的数30,改成n,然后自动出题. 打印方式:可以自己选择每行可以打印几个 3.可以控制下列参数: (1)是否有乘除法:通过编写两个函数来实现,一个函数带乘除,另一个函数不带乘除.通过提示来选择是否有乘除即可. (2)数值范围:可以控制出的四则运算的题目是几进制的,就用rand()%f,通过输入f的值来实现. (3)加减有无负数:保证减法无负数,就

四则运算出题器(c++)

一.设计思路 这次版本加入了一下功能: 可定制题目的数量:修改循环次数: 可以定制每行打印的题目数和行间距的大小(当前题目序号可以整除定制数时输出输入的行间距个换行符): 可以定制算式的范围(修改随机数的最大值): 可以选择有无乘除法(没有乘除法即修改符号的情况,有四种改为两种): 可以选择减法中得数是否可以为负(不要负数的情况即比较减式中俩数大小,大数放前面). 二.代码 1 #include<iostream.h> 2 #include<stdlib.h> 3 #include

《结对-四则运算出题器-测试过程》

为了对这个计算器进行有效地检验,设计了几组测试案例,测试结果如下: Test No.1: (1.11) = 1.110000 Test No.2: 1.11+2.22-3.33*4.44/5.55 = 0.666000 Test No.3: 1.11+(2.22-3.33)*4.44/5.55 = 0.222000 Test No.4: 1.11+(2.22-3.33)*(4.44+5.55)/6.66 = -0.555000 Test No.5: 1.11*((2.22-3.33)*(4.44

结对-四则运算答题器-需求分析

四则运算答题器-需求分析 编写目的 本需求分析文档说明描述了四则运算答题器项目的要求,描述了用户对功能的需求. 任务概述 四则运算答题器可以根据用户选择的难度,为其展示相应难度的题目,并在最后显示正确题目数量和错误题目数量. 项目功能 用户可以自由选择四则运算答题器的难度,难度分为简单.困难和极难.每种难度都有10道题(无重复的题目),都有做题所用的时间. 参考资料 四则运算出题器 随机四则运算的出题程序java

实现“小学生算术题出题器”(第一次作业)

本次作业要求:(1)出题器可以随机出四则运算.(2)真分数的运算.以下为程序运行截图: 根据使用说明来输入整数题目的数量,以及分数题目的数量,这里分别以5道题为例. 如果回答正确就会提示“回答正确”,回答错误则会提示“回答错误”.所有题目全部回答完毕将会给出得分情况. 为了便于打印,将所有的算术题存到了文本中. 以上为该程序的内容和使用详情,以下为程序源代码: #include <stdio.h>#include <stdlib.h>#include <time.h>

结对-四则运算答题器-结对项目总结

项目地址:https://github.com/xyhcq/calc 结对成员: 学号:2015035107136 张良 学号:2015035107128 邢云淇 本次结对项目历时2个月,2位成员都是第一次从事结对编程,我们都能感到自己有了很大的收获,在结对编程的过程中,我们交换了一些自己的想法,发现了对方的一些想法优于自己的想法,互相学习了一番. 我们的结对项目为:四则运算答题器,能够根据用户输入的数值来界定出题的算数的最大值,同时可以控制生成计算题的数目,在生成题目后,由用户输入算式的答案来

结对-四则运算答题器-开发环境搭建过程

成员: 0:2015035107136-张良 1:2015035107128-邢云淇 结对项目:四则运算答题器 本次结对编程和团队项目我们都需要用python环境,为了便于书写代码,因此都选择了用pycharm这款ide 先准备好了Python和pycharm社区版安装包(社区版是免费的,功能够用了) 首先安装python2.7.5,一路下一步到finish结束,安装完成,环境变量已经自动配置好了,win+r运行python,成功运行,python环境搭建完毕. 选择安装路径 运行Python,

四则运算出题4

1.题目要求: 将之前的四则运算出题,做成手机APP 或以网页版发布,可以让用户答题,并提示结果正确与否. 2.实现思路: 出题思路不变,将开发工具改到eclipse 上,开发成安卓程序: 3.思路整理(实现步骤): 出题步骤不变,按照之前的四则运算程序的思路,将出题结果显示在textview ,用户输入,并可以判断是否正确,并弹出对话框,提示正确与否,并对每一次的判断进行计数,结束时,提示计数结果. 4.源代码: MainActivity.java文件: package com.er.er0;