C++项目参考解答——小学生算术能力测试系统

【项目-小学生算术能力测试系统】通过本题学习一些系统函数。

  设计一个程序,用来实现帮助小学生进行算术运算练习,它具有以下功能:提供10道加、减、乘、除四种基本算术运算的题目,每道题中的操作数是随机产生的,且操作数不超过2位数的正整数;练习者根据显示的题目输入自己的答案,程序自动判断输入的答案是否正确并显示出相应的信息。最后显示做对了几道题。

参考解答:

#include <iostream>
#include<ctime>
#include<cstdlib>
int qa(); //函数声明,完成一道题的测试并返回评判结果,正确1为,错误为0
using namespace std;
int main()
{
    int sum=0;//学生得分
    for(int i=0; i<10; i++)
    {
        cout<<"第"<<i+1<<"题:"<<endl;
        sum+=qa();
        cout<<endl;
    }
    cout<<"共答对了"<<sum<<"道题,得分"<<sum*10<<endl;
    return 0;
}

int qa()
{
    srand(time(0)); //初始化随机种子
    int a,b,c,d,t;
    a=rand()%100+1;
    b=rand()%100+1;
    c=rand()%4;
    if(a<b&&(c==1||c==3)) //给小学生的题,减和除运算保证大减小和大除以小(额外增加的需求,并非原题中提及)
    {
        d=a;
        a=b;
        b=d;
    }
    if(c==3)//对于除法,调整被除数,以保证能整除(额外增加的需求,并非原题中提及)
        a=(a/b)*b;
    switch(c)
    {
    case 0:
        d=a+b;
        cout<<a<<"+"<<b<<"=";
        break;
    case 1:

        d=a-b;
        cout<<a<<"—"<<b<<"=";
        break;
    case 2:
        d=a*b;
        cout<<a<<"×"<<b<<"=";
        break;
    case 3:
        d=a/b;
        cout<<a<<"÷"<<b<<"=";
        break;
    }
    cin>>t;
    if(t==d)
        cout<<"    right! ";
    else
        cout<<"    wrong! ";
    return t==d;
}
时间: 2024-08-03 21:01:06

C++项目参考解答——小学生算术能力测试系统的相关文章

2013-C++第12周项目参考解答链接集

课程首页在:http://blog.csdn.net/sxhelijian/article/details/11890759 [项目1-当年第几天] 定义一个函数,其参数为年.月.日的值,返回这一天为该年的第几天.要求在main函数中输入年月日,然后调用这个函数求值,并在main函数中输出结果. 参考解答在:http://blog.csdn.net/sxhelijian/article/details/16330759 [项目2-太乐了]先听故事,再编程序. 故事是这样的:话说sin和cos是一

c++-求助。关于小学生算数四则运算能力测试系统

问题描述 求助.关于小学生算数四则运算能力测试系统 题目描述:利用栈设计一个"小学生算术四则运算能力测试系统",系统可模仿老师给学生布置和批改作业,并能记录学生的历史成绩,以检测学生的学习效果. 功能要求及说明: 系统要求实现以下的操作: (1)为学生出题.题目可包含的运算符号有:+,-,*,%, (, ),参与运算的数值范围可由学生自动选择难易程度,初级:可计算个位数的算术运算:中级:可计算多位数的算术运算:高级:可计算小数和负数的算术运算. (2)学生做题后为学生评阅.评阅结果为&

C++程序设计实践学材系列(27)——1.8 实践“项目”参考解答

回到系列文章的目录--[系列文章目录] 回到本章目录--[第1章目录] 1.8 实践"项目"参考解答 本节与前面各节相关性极大,建议由前面各节看清项目要求,必要时再阅读本节. [项目1.1] #include <iostream> using namespace std; int main( ) { cout<<"C++,我会爱上你!"<<endl; return 0; } [项目1.2] #include <iostrea

C++项目参考解答-求最大公约数

[项目-求最大公约数](1)输入两个数,并求出其最大公约数 #include <iostream> using namespace std; //自定义函数的原型(即函数声明) int main() { int a,b,g; cin>>a>>b; g=gcd(a,b); cout<<"最大公约数是: "<<g; return 0; } int gcd(int x,int y) //定义用于求两数的最大公约数的函数,函数只管求值

2013-C++第11周项目参考解答链接集

课程首页在:http://blog.csdn.net/sxhelijian/article/details/11890759 完整题目见:http://blog.csdn.net/sxhelijian/article/details/14109337 [项目1-调用函数输出星号图] 参考解答见:http://blog.csdn.net/sxhelijian/article/details/14548417 [项目2-求最大公约数]输入两个数,并求出其最大公约数 [项目2扩展-求四数的最大公约数]

2013-C++第8周项目参考解答链接集

课程首页在:http://blog.csdn.net/sxhelijian/article/details/11890759 完整题目见:http://blog.csdn.net/sxhelijian/article/details/12709601 [项目1:分段函数求值]编程序,计算下面函数的值并输出 参考解答见:http://blog.csdn.net/sxhelijian/article/details/12902985 [项目2:分段函数求值]从键盘输入x的值(要求为实型),根据公式1

2013-C++第15周项目参考解答链接集

课程主页在:http://blog.csdn.net/sxhelijian/article/details/11890759 [项目1-折腾二维数组]创建一个长度为5行4列的二维整型数组,通过初始化,为数组中的前两列的10个元素赋初值,然后通过键盘输入,使后两列的10个元素获得值,将所有元素值乘以3后保存在数组中.输出数组时,按行序优先输出,再按列序优先输出(输出的第一行是数组中的第一列--,其实输出的就是"转置"),再将数组"倒"着输出(即最后一行最后一列的最先输

C++项目参考解答:求Fibonacci数列

[项目:求Fibonacci数列] Fibonacci数列在计算科学.经济学等领域中广泛使用,其特点是:第一.二个数是1,从第3个数开始,每个数是其前两个数之和.据此,这个数列为:1 1 2 3 5 8 13 21 34 55 89 --,请设计程序,输出这个数列,直到这个数字超过10000. [提示]数列可以表示为: {f1=f2=1fn=fn−1+fn−2,n>2 [参考解答] #include <iostream> using namespace std; int main( )

C++项目参考解答:累加求圆周率

[项目-累加求圆周率] 用如下公式求π的近似值(计算直到最后一项的绝对值小于10−5) π4=1−13+15−17+... [参考解答] #include <iostream> using namespace std; int main( ) { int n,sign; double total,f; n=1; total=0; sign=1; f=1; //用f代表待累加的每一项的绝对值 while(f>1e-5) { total+=(sign*f); n+=2; f=1.0/n; s