问题及代码:
运行结果:
知识点总结:
产生0-10的随机数,进行乘法运算,最多有三次答题机会。并记分。
/*
*Copyright (c)2014,烟台大学计算机与控制工程学院
*All rights reserved.
*文件名称:questions.cpp
*作 者:单昕昕
*完成日期:2014年12月9日
*版 本 号:v1.0
*
*问题描述:小学生计算题。产生0-10的随机数,进行乘法运算,最多有三次答题机会。并记分。正确即“Good!”,错误即“Wrong!Try again!”。
*程序输出:答题情况,记分结果。
*/
#include <iostream>
#include <ctime>
#include <cstdlib>
using namespace std;
bool your_answer(int c);
void setdata(int a[2]); //设置随机数
int main()
{
int a[2],c,i=10,score=0;
while(i>0)
{
setdata(a);
cout<<a[0]<<"*"<<a[1]<<"="; //输出随机计算式
if(your_answer(c)) //判断对错
{
score+=10;
cout<<"Good!"<<endl;
}
else
{
cout<<"Keep on struggling!"<<endl;
}
i--;
}
cout<<"你的最终得分为:"<<score<<endl;
return 0;
}
void setdata(int a[2])
{
int i;
srand(time(NULL));//需要用当前时间作“种子”,以便每次运行取得的序列不同
for(i=0; i<2; i++)
a[i]=rand()%11; //产生0-10的随机数
return;
}
bool your_answer(int c) //查验答案功能做成一个bool函数
{
int i=0,a[2]; //i表示可以输入答案的次数,现假定每位用户最多只能三次输入答案
setdata(a);
bool answer=false; //先假设答案不正确,以便能够进入到do-while循环
do
{
cin>>c;
i++; //每输入一次答案,可输入的总次数就减少一次
if(c==a[0]*a[1])
answer=true; //答案正确即为true
else
cout<<"Wrong!Try again!"<<endl;
}
while (c!=(a[0]*a[1])&&i<3); //答案输入不正确而且输入的总次数不足3次
return (answer);
}
运行结果:
知识点总结:
产生0-10的随机数,进行乘法运算,最多有三次答题机会。并记分。
学习心得:
自己做出来的第一个计算题程序,虽然很简单,但是可以作为模板加以改进满足其他要求。