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

一.实验题目

四则运算扩展----能接受答案并判断对错然后给出成绩。

二.实验思路

在每次输出算式后面输入答案,然后判断对错,对则统计。

稍微优化了一下界面。

三.代码

  1 // 12345.cpp : 定义控制台应用程序的入口点。
  2 //
  3
  4 #include "stdafx.h"
  5 #include"iostream"
  6 #include<stdlib.h>
  7 #include<time.h>
  8 #include<math.h>
  9 using namespace std;
 10 int main()
 11 {
 12     cout<<endl;
 13     cout<<"***************好***好***学***习   天***天***向***上****************"<<endl;
 14     cout<<endl;
 15     cout<<endl;
 16 Again:
 17     double Ques1=1;
 18     int Ques01;
 19     int Ques2=1;
 20     int Ques3=100;
 21     char Ques4=‘y‘;
 22     int Ques5=1;
 23     char Ques6=‘n‘;
 24     char Ques7=‘n‘;
 25     double ans=0;
 26     int right=0;
 27     cout<<"                      一.请输入题目数量:";
 28     cin>>Ques1;
 29     Ques01=floor(Ques1);
 30 //    cout<<"请输入每行打印题目数(1-5):";
 31 //    cin>>Ques2;
 32     cout<<"                      二.行间距(正整数):";
 33     cin>>Ques5;
 34     cout<<"                      三.请输入算式中数值的最大值:";
 35     cin>>Ques3;
 36     while(1)
 37     {
 38         cout<<"                      四.运算中需要乘除法吗?y:需要;n:不需要";
 39         cin>>Ques4;
 40         cout<<"                      五.减法中需要有负数吗?y:需要;n:不需要";
 41         cin>>Ques7;
 42         cout<<"`````````````````````````````````````````````````````````````````````````"<<endl;
 43         cout<<"开始答题:"<<endl;
 44         srand(time(NULL));
 45         if(Ques4==‘y‘)
 46         {
 47             while(1)
 48             {
 49                 if(Ques1<1)
 50                 {
 51                     cout<<"输入有误,请重新输入题目数量:";
 52                     cin>>Ques1;
 53                     Ques01=floor(Ques1);
 54                 }
 55                 else
 56                 {
 57                     for(int j=0;j<Ques01;j++)
 58                     {
 59                         if(j!=0&&j%Ques2==0)
 60                         {
 61                             for(int i=0;i<Ques5;i++)
 62                             {
 63                                 cout<<endl;
 64                             }
 65                         }
 66                         int num1=rand()%Ques3;
 67                         int num2=rand()%Ques3;
 68                         int sign=rand()%4;
 69                         switch(sign)
 70                         {
 71                         case 0:
 72                             cout<<j+1<<":"<<" "<<num1<<"+"<<num2<<"="<<"\t";
 73                             cin>>ans;
 74                             if(ans==num1+num2)
 75                             {
 76                                 cout<<"正确"<<endl;
 77                                 right++;
 78                             }
 79                             else
 80                             {
 81                                 cout<<"答错了!"<<endl;
 82                                 cout<<"正确答案是:"<<num1+num2<<endl;
 83                             }
 84                             break;
 85                         case 1:
 86                             if(Ques7==‘y‘)
 87                             {
 88                                 cout<<j+1<<":"<<" "<<num1<<"-"<<num2<<"="<<"\t";
 89                                 cin>>ans;
 90                                 if(ans==num1-num2)
 91                                 {
 92                                     cout<<"正确"<<endl;
 93                                     right++;
 94                                 }
 95                                 else
 96                                 {
 97                                     cout<<"答错了!"<<endl;
 98                                     cout<<"正确答案是:"<<num1-num2<<endl;
 99                                 }
100                             }
101                             else
102                             {
103                                 if(num1>num2)
104                                 {
105                                     cout<<j+1<<":"<<" "<<num1<<"-"<<num2<<"="<<"\t";
106                                     cin>>ans;
107                                     if(ans==num1-num2)
108                                     {
109                                         cout<<"正确"<<endl;
110                                         right++;
111                                     }
112                                     else
113                                     {
114                                         cout<<"答错了!"<<endl;
115                                         cout<<"正确答案是:"<<num1-num2<<endl;
116                                     }
117                                 }
118                                 else
119                                 {
120                                     cout<<j+1<<":"<<" "<<num2<<"-"<<num1<<"="<<"\t";
121                                     cin>>ans;
122                                     if(ans==num2-num1)
123                                     {
124                                         cout<<"正确"<<endl;
125                                         right++;
126                                     }
127                                     else
128                                     {
129                                         cout<<"答错了!"<<endl;
130                                         cout<<"正确答案是:"<<num2-num1<<endl;
131                                     }
132                                 }
133                             }
134                             break;
135                         case 2:
136                             cout<<j+1<<":"<<" "<<num1<<"*"<<num2<<"="<<"\t";
137                             cin>>ans;
138                             if(ans==num1*num2)
139                             {
140                                 cout<<"正确"<<endl;
141                                 right++;
142                             }
143                             else
144                             {
145                                 cout<<"答错了!"<<endl;
146                                 cout<<"正确答案是:"<<num1*num2<<endl;
147                             }
148                             break;
149                         case 3:
150                             if(num2!=0)
151                             {
152                                 cout<<j+1<<":"<<" "<<num1<<"/"<<num2<<"="<<"\t";
153                                 cin>>ans;
154                                 if(ans==num1/num2)
155                                 {
156                                     cout<<"正确"<<endl;
157                                     right++;
158                                 }
159                                 else
160                                 {
161                                     cout<<"答错了!"<<endl;
162                                     cout<<"正确答案是:"<<num1/num2<<endl;
163                                 }
164                             }
165                             else
166                             {
167                                 j--;
168                             }
169                             break;
170                         }
171                     }
172                     break;
173                 }
174             }
175             cout<<"共答对"<<right<<"道题;"<<"答错"<<Ques01-right<<"道题。";
176             cout<<"继续努力!"<<endl;
177             break;
178         }
179         if(Ques4==‘n‘)
180         {
181             while(1)
182             {
183                 if(Ques01<1)
184                 {
185                     cout<<"输入有误,请重新输入题目数量:";
186                     cin>>Ques1;
187                     Ques01=floor(Ques1);
188                 }
189                 else
190                 {
191                     for(int j=0;j<Ques01;j++)
192                     {
193                         if(j!=0&&j%Ques2==0)
194                         {
195                             for(int i=0;i<=Ques5;i++)
196                             {
197                                 cout<<endl;
198                             }
199                         }
200                         int num1=rand()%Ques3;
201                         int num2=rand()%Ques3;
202                         int sign=rand()%2;
203                         switch(sign)
204                         {
205                         case 0:
206                             cout<<j+1<<":"<<" "<<num1<<"+"<<num2<<"="<<"\t";
207                             cin>>ans;
208                             if(ans==num1+num2)
209                             {
210                                 cout<<"正确"<<endl;
211                                 right++;
212                             }
213                             else
214                             {
215                                 cout<<"答错了!"<<endl;
216                                 cout<<"正确答案是:"<<num1+num2<<endl;
217                             }
218                             break;
219                         case 1:
220                             if(Ques7==‘y‘)
221                             {
222                                 cout<<j+1<<":"<<" "<<num1<<"-"<<num2<<"="<<"\t";
223                                 cin>>ans;
224                                 if(ans==num1-num2)
225                                 {
226                                     cout<<"正确"<<endl;
227                                     right++;
228                                 }
229                                 else
230                                 {
231                                     cout<<"答错了!"<<endl;
232                                     cout<<"正确答案是:"<<num1-num2<<endl;
233                                 }
234                                 break;
235                             }
236                             else
237                             {
238                                 if(num1>num2)
239                                 {
240                                     cout<<j+1<<":"<<" "<<num1<<"-"<<num2<<"="<<"\t";
241                                     cin>>ans;
242                                     if(ans==num1-num2)
243                                     {
244                                         cout<<"正确"<<endl;
245                                         right++;
246                                     }
247                                     else
248                                     {
249                                         cout<<"答错了!"<<endl;
250                                         cout<<"正确答案是:"<<num1-num2<<endl;
251                                     }
252                                     break;
253                                 }
254                                 else
255                                 {
256                                     cout<<j+1<<":"<<" "<<num2<<"-"<<num1<<"="<<"\t";
257                                     cin>>ans;
258                                     if(ans==num2-num1)
259                                     {
260                                         cout<<"正确";
261                                     }
262                                     else
263                                     {
264                                         cout<<"答错了!"<<endl;
265                                         cout<<"正确答案是:"<<num2-num1<<endl;
266                                     }
267                                     break;
268                                 }
269                             }
270                             break;
271                         }
272                     }
273                 }
274                 break;
275             }
276             cout<<"共答对"<<right<<"道题;"<<"答错"<<Ques01-right<<"道题。"<<endl;
277             cout<<"继续努力!"<<endl;
278             break;
279         }
280
281         else
282         {
283             cout<<"输入有误,请按要求输入!"<<endl;
284         }
285     }
286     cout<<endl;
287     while(1)
288     {
289         cout<<"还需要继续出题还是退出?(y:继续出题;n:退出)";
290         cin>>Ques6;
291         if(Ques6==‘y‘)
292         {
293             goto Again;
294         }
295         if(Ques6==‘n‘)
296         {
297             goto Exit;
298         }
299         else
300         {
301             cout<<"输入有误,请重新输入:";
302         }
303     }
304 Exit:
305     return 0;
306 }

四.运行结果

五.

缺陷日志表

学生  梁世豪

日期  2014.3.21_______

教师  王建民


日期


编号


类型


引入阶段


排除阶段


修复时间


修复缺陷

程序号_______________

项目计划总结表

姓名:梁世豪                                                  日期:2015/3/21


上课


编程


看书


日总计


周日


周一


周二


100


60


160


周三


60


60


120


周四


周五


100


60


60


周六


120


120


周总计


200


240


120


560

时间记录总结表

姓名:梁世豪                                                  日期:2015/3/21


日期


开始


结束


中断时间


净时间


活动


备注


C


U


3.17


8:00


9:50


10


100


上课


3.17


19:00


20:20


20


60


编程


3.18


14:30


16:00


30


60


编程


3.18


16:00


17:00


60


看书


3.20


8:00


9:50


10


100


上课


3.20


21:00


22:00


60


看书


3.16


20:00


22:30


30


120


编程

 
时间: 2024-08-02 14:48:50

C++四则运算出题器---有答案版的相关文章

四则运算出题器3

一.实验题目 这次我的程序,是对四则运算2的进一步扩展 我选的是第一个方向:程序能够接受用户输入的答案,并能判定对错,最后还可以给出总共对/错的数量. 二.实验扩展思想 1.因为我给每个题目都编了序号,所以再输入答案的时候只需按着题目的顺序输入就可以了. 2.判断对错,我是事先定义了一个数组,来存放正确答案,最后把用户输入的答案和正确答案做比较即可 3.给出对/错的数量,这个比较容易,只需要设计两个变量,一个用来计算正确的个数,一个用来计算错误的个数,最后给出答案即可. 三.实验代码 //作者:

多功能四则运算出题器

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

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

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

结对项目-四则运算出题程序(GUI版)

目录: 一.致搭档(含项目地址) 二.PSP(planning) 三.结对编程中对接口的设计 四.计算模块接口的设计与实现过程 五.计算模块接口部分的性能改进 六.计算模块部分单元测试展示 七.计算模块部分异常处理说明 八.界面模块的详细设计过程 九.界面模块与计算模块的对接 十.结对过程的描述 十一.结对编程的优缺点 十二.PSP(actual) 一.致搭档:     队友:李庭娟(我很喜欢把这位队友叫娟子,感觉很亲切) 首先非常非常感谢这位结对搭档--娟子,从最初组队到如今合作,始终非常信任

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

为了对这个计算器进行有效地检验,设计了几组测试案例,测试结果如下: 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

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

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

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

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

网页版的四则运算出题

用javaweb编写的网页版的四则运算出题 这个网页自己可以控制总的出题数目,以及自己所要要求的每行输出的个数, 之后再出题中应用到了随机数,并且在代码中,保证每一道题不是重复的,在一次做题中仅仅出现一次,并且自己还设定了相应的出题规则. 主要代码如下主要分为四个界面. 界面1: <%@ page language="java" contentType="text/html; charset=UTF-8" pageEncoding="UTF-8&qu

四则运算出题4

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