基础题_2.由计算机生成简单的四则运算题
2.1 需求分析:
本程序主要解决的是: 由计算机随机生成的简单的四则运算题,包括加,减,乘,除;用户根据程序的提示,指定出加、减、乘、除中的哪一种运算题,以及指出是一位数还是两位数的运算,并且输入自己的计算结果, 由程序判断结果的正确性,并给出提示,而且本程序能够给出用户的最终成绩.
2.2 概要设计:
本程设计思路: 本程序主要分为四大模块分别表示加、减、乘、除四种运算的处理过程,通过主函数的switch开关语句和一个while(1)循环来调用,本程序的关键是通过使用“rand()%10”或“rand()%100”来获得一个0到9的一位整数随机值或得到0到99的两位整数随机值来为用户出题,。
程序流程图(如下图):
2.3 详细设计与编码:
见上传程序。
2.4 调试分析:
在调试过程中程序使用“rand()%10”或“rand()%100” 获得的返回随机数往往不随机,即获得的随机数不变,经过查阅资料和详细分析,将rand()的形参分别采用引用后解决了这一问题。对于除法运算还要注意分母为零的情况。对于成绩count定义为全局变量才能实现正确的递加。
程序执行的结果:
2.5 用户使用说明:
用户根据程序的提示指出是一位数还是两位数的运算,然后指定出加、减、乘、除中的哪一种运算题,以及,选择时,输入要进行操作的前面的整数确定即可,输入算式的结果后程序回验证结果的正确性。
2.6 设计心得:
本次实验主要涉及到函数的调用问题及循环语句中开关语句的使用。在函数的定义中,对形参的定义方法要有较详细的了解,例如此例中rand()中形参采用引用的方法,而其他函数可采用简单的值传递。感觉到自己对程序设计中的一些细节问题还比较模糊。
#include<iostream>
#include <time.h>
#include<stdlib.h>
#include<stdio.h>
using namespace std;
int count=0;
/*声明调用的函数*/
void random1(int &a,int &b);
void random2(int &a,int &b);
int add(int& a,int& b);
int subtract(int& a,int& b);
int cheng(int& a,int& b);
int chu(int& a,int& b);
/*调用主函数*/
void main(){
int q,choice,num1,num2;
cout<<"/根据电脑提示,计算给出的随机数,每答对一题,成绩加一/"<<endl;
cout<<"/**********************************************************************/"<<endl;
while(1){
cout<<"请选择操作的数据位数:1:一位数 2:两位数"<<endl;
cin>>q;
cout<<"请选择你要进行的四则运算:1:求和 2:求差 3:求积"<<endl;
原文请找腾讯752018766辣,文-论'文.网http://www.751com.cn random2(num1,num2);
while(choice==4 && num2==0) random2(num1,num2); //排除分子为零的情况
}
switch(choice)
{
case 1: add(num1,num2);break;
case 2: subtract(num1,num2);break;
case 3: cheng(num1,num2);break;
case 4: chu(num1,num2);break;
case 5: cout<<"count="<<count<<endl;break;
case 6: exit(0);
default: cout<<"error"<<endl;
}
}
}
void random1(int &a,int &b) //产生一位随机数
{
time_t t; //时间变量1832