四则运算3(四则运算2程序的扩展)

题目:选一个方向,将四则运算2程序进行扩展;

方向:让程序能够接受用户输入的答案,并判定对错,最后输出做对题的数量;

思路:将每道题的正确结果保存在数组daan[]中,将用户给出的答案定义为result.当(result==daan[])时,输出“用户所给答案正确”,否则输出“答案错误,正确答案为daan[]”

具体程序代码为:

  1 #include<iostream.h>
  2 #include<stdlib.h>//使用随机函数
  3 #include<time.h>//题目避免重复
  4 #include<conio.h>
  5 int x1[100],x2[100],op,i;
  6 int daan[100];
  7 void yunsuan1()
  8 {
  9     if(op==0)
 10     {
 11         cout<<x1[i]<<"+"<<x2[i]<<"="<<endl;
 12         daan[i]=x1[i]+x2[i];
 13     }
 14     if(op==1)
 15     {
 16         cout<<x1[i]<<"-"<<x2[i]<<"="<<endl;
 17         daan[i]=x1[i]-x2[i];
 18     }
 19     if(op==2)
 20     {
 21         cout<<x1[i]<<"*"<<x2[i]<<"="<<endl;
 22         daan[i]=x1[i]*x2[i];
 23     }
 24     if(op==3)
 25     {
 26         cout<<x1[i]<<"/"<<x2[i]<<"="<<endl;
 27         daan[i]=x1[i]/x2[i];
 28     }
 29 }
 30 void yunsuan2()
 31 {
 32     if(op==0)
 33         cout<<x1[i]<<"+"<<x2[i]<<"="<<"\t";
 34     if(op==1)
 35         cout<<x1[i]<<"-"<<x2[i]<<"="<<"\t";
 36     if(op==2)
 37         cout<<x1[i]<<"*"<<x2[i]<<"="<<"\t";
 38     if(op==3)
 39         cout<<x1[i]<<"/"<<x2[i]<<"="<<"\t";
 40 }
 41
 42
 43 int main()
 44 {
 45     srand(time(NULL));//题目避免重复
 46     int num,temp;//题目的数量num
 47     int fanwei,out,div,fushu,jixu;//数值的范围,输出方式,是否有乘除运算,加减法是否有负数
 48     int result;//用户输入的答案
 49     //int score=0;//用户得分,初始化为0
 50     int t=0;//用户答对题的数量
 51     cout<<"********欢迎使用小学四则运算定制系统********"<<endl;
 52     cout<<"本系统支持定制,祝您使用愉快!"<<endl;
 53     cout<<"请输入题目的数量num:(最大数量为100)"<<endl;
 54     cin>>num;
 55     cout<<"请选择数值范围(0--*)fanwei"<<endl;
 56     cin>>fanwei;
 57     cout<<"请选择打印方式out(0,空行打印 1,空格打印)"<<endl;
 58     cin>>out;
 59     cout<<"请选择有无乘除运算div(0,没有乘除运算 1,有乘除运算)"<<endl;
 60     cin>>div;
 61     cout<<"请选择加减运算有无负数fushu(0,没有负数 1,有负数)"<<endl;
 62     cin>>fushu;
 63     for(i=1;i<=num;i++)
 64     {
 65         x1[i]=rand()%fanwei;//输出两个用户制定范围内的数
 66         x2[i]=rand()%fanwei;//输出两个用户制定范围内的数
 67         op=rand()%4;
 68         if(out==0)
 69         {
 70             if(div==0&&fushu==0)
 71             {
 72                 if(op>=2)
 73                 {
 74                     op=op-2;
 75                     yunsuan1();
 76                 }
 77                 else
 78                 {
 79                     yunsuan1();
 80                 }
 81             }
 82             if(div==1&&fushu==1)
 83             {
 84                 if(x1[i]>x2[i])
 85                 {
 86                     temp=x1[i];
 87                     x1[i]=x2[i];
 88                     x2[i]=temp;
 89                 }
 90
 91                 yunsuan1();
 92             }
 93             if(div==0&&fushu==1)
 94             {
 95
 96                    if(op>=2)
 97                 {
 98                     op=op-2;
 99                     yunsuan1();
100                 }
101                 else
102                 {
103                     yunsuan1();
104                 }
105             }
106             if(div==1&&fushu==0)
107             {
108               yunsuan1();
109             }
110         }
111         else if(out==1)
112         {
113             if(div==0&&fushu==0)
114             {
115                 if(op>=2)
116                 {
117                     op=op-2;
118                     yunsuan2();
119                 }
120                 else
121                 {
122                     yunsuan2();
123                 }
124             }
125             if(div==1&&fushu==1)
126             {
127                   if(x1[i]>x2[i])
128                 {
129                     temp=x1[i];
130                     x1[i]=x2[i];
131                     x2[i]=temp;
132                 }
133
134
135                 yunsuan2();
136             }
137             if(div==0&&fushu==1)
138             {
139                 if(op>=2)
140                 {
141                     op=op-2;
142                     yunsuan2();
143                 }
144                 else
145                 {
146                     yunsuan2();
147                 }
148
149             }
150             if(div==1&&fushu==0)
151             {
152                 yunsuan2();
153             }
154         }
155
156     }
157
158     cout<<"请输入你的答案(result):"<<endl;
159     for(int j=1;j<=num;j++)
160     {
161     cin>>result;
162     if(result==daan[j])
163     {
164         t=t+1;
165         cout<<"答对,请继续作答"<<endl;
166
167     }
168     else
169     {
170         cout<<"第"<<j<<"题回答有误,正确结果为:"<<daan[j]<<endl;
171     }
172
173
174     }
175     cout<<"每道题目一分,您答对的题数为:"<<t<<"总得分为"<<t<<endl;
176     cout<<"要继续吗?jixu(0, 退出 1,继续)"<<endl;
177     cin>>jixu;
178     if(jixu==1)
179     {
180         cout<<endl;
181         main();
182     }
183     else
184     {
185         return 0;
186     }
187     getch();
188     return 0;
189
190 }

程序运行结果为:

总结:一开始程序代码有错误:1,程序智能存储最后一道题的答案;

2,输出的题号总是比正确的题号小1;

解决方案:1,将题的答案保存在数组daan[]中;

        2,发现变量j的初始值应该设为1,才能符合题目的要求。

时间: 2024-08-06 17:34:49

四则运算3(四则运算2程序的扩展)的相关文章

《C++ Primer》P314中使用insert重写单词统计程序的扩展

编写程序统计并输出所读入的单词出现的次数 想与习题10-1相结合,也就是先输入几组 map<string, int>类型,存入vector中. 再输入单词word,如果已经存在则在key对应的value+1 如果不存在,则插入并使得其value为1. 之前的问题是->输入了一次之后,再要输入单词word,读不进.(呵呵 果然小白) 看到11章之后,知道要用语句cin.clear;使得输入流重新有效. 再然后 重新熟悉了iterator对map的操作. #include <iostr

教你在你的应用程序中扩展使用dynamic类型

教你在你的应用程序中扩展使用dynamic类型 相信大家在开发中经常会接触到mvc中的ViewBag,有心的同学会,发现这就是一个dynamic类型,查看源码一谈究竟,本文也是根据dynamic来扩展一些实际中的应用,方便开发过程中使用,来提高大家的工作效率等.这里我给大家介绍一个简单的,解析xml的扩展类. 先新建一个类,DynamicXmlNode 继承自DynamicObject,然后我们输入override,看一下,都有哪些方法可以重写的: 看到其中有2个方法,感觉很接近我们要用的,我这

用C++编写一个随机产生多个两位数四则运算式子的简单程序

一 设计思想: 1.首先可以想到一个四则运算式子的组成:两个运算数和一个运算符: 2.两个运算数的随机由调用随机函数产生,其中可以设定运算数的范围: 3.一个运算符的随机产生可以分为加减乘除四种情况,分别通过产生四个随机数来决定哪种运算符: 4.最后两者结合起来完成随机式子的产生: 二 程序代码: #include "stdafx.h" #include "stdlib.h" //调用其中随机函数 #include "iostream.h" #i

自动生成简单四则运算的C语言程序

该程序是在博客园里面找的,具体是谁的找了半天没找到,无法提供它原本的链接.由于自己写的过于简单,且有一些功能暂时无法实现,所以就找了一个来应付作业,望原谅.在这个程序的源码中我改了一个错误的地方,源码中有这样一个随机数发生器的初始化函数的语句:"srand((unsigned)time(NULL))".srand函数是随机数发生器的初始化函数.但是正确的写法应该是:srand(unsigned( time(NULL))):为了防止随机数每次重复,常常使用系统时间来初始化,即使用time

新增四则运算用户选择功能小程序

一 设计思想 1.因为要设定许多可控参数,可以把这些参数构成一个数组,也就是一个参数集,然后对每个参数分情况进行设定: 2.数组中包括题目数量.乘除控制.数值范围.分数控制.正负控制.打印列数共6个元素: 3.对于控制变量,可以设置为1和0 控制: 二 程序代码 #include "stdafx.h" #include "stdlib.h" //调用其中随机函数 #include "iostream.h" #include "time.

四则运算程序扩展:将程序改为java语言,并允许用户输入,对输入结果进行验证

题目 每个同学选一个方向,把程序扩展一下:1.让程序能接受用户输入答案,并判定对错.最后给出总共对/错 的数量.2.把程序变成一个网页程序,用户通过设定参数,就可以得到各种题目.3.把程序变成一个Windows 图形界面的程序.4.把程序变成一个智能手机程序 (你正在用什么手机, 就写那个手机的程序).(可以延期3周后)5.选一个你从来没有学过的编程语言,试一试实现基本功能. 设计思想 本次程序采用数组记录答案,包含输入数组和正确结果保存数组,进行比较 源代码 package minirisof

用C++实现简单的生成随机数目的四则运算的题目的程序

private void button1_Click(object sender, EventArgs e)        {            double n = Convert.ToDouble(textBox3.Text);            double m = Convert.ToDouble(textBox2.Text);            double q = Convert.ToDouble(textBox1.Text);            richTextBo

容器和应用程序:扩展、重构或重建?

技术领域是不断变化的,因此,任何应用程序都可能在很短时间内面临过时甚至淘汰,更新换代的速度之快给人的感觉越来越强烈,我们如何使传统应用程序保持活力不落伍?工程师想的可能是从头开始重建传统应用程序,这与公司的业务目标和产品时间表通常是相悖的.如果现阶段正在运行的应用程序是正常工作的,这时候你很难找到正当而充分的理由让技术人员花六个月重写应用程序.代码债似乎注定意味着失败. 众所周知,产品开发向来都不是非黑即白那么简单,必须要权衡各方妥协折衷进行,虽然完全重写的可行性不大,但应用程序现代化的长远利益

Android蓝牙聊天程序的扩展开发(基于Google Sample,类QQ设计)

首先看看程序的效果: 在整个开发过程中涉及的几个关键步骤 1)判断蓝牙设备是否可用 2)若蓝牙设备可用,判断是否开启 是:则不操作 否:开启蓝牙设备 3)让设备可见(在一定的时间范围内) 4)查看已经连接过的设备 5)扫描附近的设备 6)连接设备 7)建立socket连接,读写消息 8)退出程序时结束扫描和连接 程序架构: ChatActivity:UI的变化 接收(发送)来自BluetoothChatService的消息,接收         DeviceListActivity的消息 Dev