zoukankan      html  css  js  c++  java
  • 四则运算2扩展---c++

    题目:让程序能接受用户输入答案,并判定对错。最后给出总共对/错 的数量。

    一、设计思想

    1.存储用户输入答案,与正确答案比较得出总共对错数量。

    二、源程序代码

      1 #include<iostream.h>
      2 #include<stdlib.h>
      3 #include "time.h"
      4 #include<stdio.h>
      5 int main ()
      6 {    
      7     int a,b,c,f,j,i,t,num,l,jj,cc,fw;//i,j,t是计数变量,a,b是运算数。
      8     int r=0;//正确数目。
      9     int e=0;//错误数目。
     10     char daan;
     11     cout<<"-----------------四则运算题----------------------"<<endl;
     12     cout<<endl;
     13     srand( (unsigned)time( NULL ) );//随机数种子为当前计算机时间。
     14     cout<<"*************请填写题目要求:********************"<<endl;
     15     cout<<"*                                               *"<<endl;
     16     cout<<"* 1.请输入要生成题目数num:                      *"<<endl;//选择题目数量。
     17     cout<<"* 2.请输入打印方式(列数l、行间距jj):          *"<<endl;//选择打印方式。
     18     cout<<"* 3.请选择有无乘除法cc(1代表有或0代表无):     *"<<endl;//有无乘除法。
     19     cout<<"* 4.请选择数的范围fw(fw是指该范围内最大的数):   *"<<endl;//选择数的范围。
     20     cout<<"* 5.请选择除法有无余数c(1代表有或0代表无):      *"<<endl;//选择除法有无余数。
     21     cout<<"* 6.请选择加减有无负数f(1代表有或0代表无):      *"<<endl;//选择加减有无负数。
     22     cout<<"*                                               *"<<endl;
     23     cout<<"*************************************************"<<endl;
     24     cout<<"请输入要生成题目数num:"<<endl;
     25     cin>>num;
     26     int a1[100000];//存储用户输入答案。
     27     int b1[100000];//正确答案。
     28     if(num<0)
     29     {
     30         cout<<"错了!  亲! 题目数量不能小于0,请重输:";
     31         cin>>num;
     32     }
     33     cout<<"请输入打印方式  (列数l):"<<endl;
     34     cin>>l;
     35     if(l<=0)
     36     {
     37         cout<<"错了!  亲! 列数不能小于等于0,请重输:";
     38         cin>>l;
     39     }
     40     cout<<"请输入打印方式  (行间距jj):"<<endl;
     41     cin>>jj;
     42     if(jj<=0)
     43     {
     44         cout<<"错了!  亲! 行间距不能小于等于0,请重输:";
     45         cin>>jj;
     46     }
     47     cout<<"请选择有无乘除法cc(1代表有或0代表无): "<<endl;
     48     cin>>cc;
     49     if(cc!=0&&cc!=1)
     50     {
     51         cout<<"错了!  亲! 请重输:";
     52         cin>>cc;
     53     }
     54     cout<<"请选择数的范围fw(fw是指该范围内最大的数):"<<endl;
     55     cin>>fw;
     56     cout<<"请选择除法有无余数c(1代表有或0代表无):"<<endl;
     57     cin>>c;
     58     if(c!=0&&c!=1)
     59     {
     60         cout<<"错了!  亲! 请重输:";
     61         cin>>c;
     62     }
     63     cout<<"请选择加减有无负数f(1代表有或0代表无):"<<endl;
     64     cin>>f;
     65     if(f!=0&&f!=1)
     66     {
     67         cout<<"错了!  亲! 请重输:";
     68         cin>>f;
     69     }
     70     cout<<endl;
     71     if(cc==1)
     72         cc=cc+3;
     73     else
     74         cc=cc+2;
     75     for(j=0;j<num;j++)
     76     {
     77         //产生随机数。
     78         a=rand()%fw;
     79         b=rand()%fw+1;//保证除数不为0。
     80         i=rand()%cc;
     81         cout<<"<"<<j+1<<">: ";
     82         switch(i)
     83         {
     84         case 0:
     85             cout<<a<<"+"<<b<<"=";
     86             b1[j]=a+b;
     87             break;
     88         case 1:
     89             if(f==0&&a<=b)
     90             { 
     91                 cout<<b<<"-"<<a<<"=";
     92                 b1[j]=b-a;
     93             }
     94             else
     95             {
     96                 cout<<a<<"-"<<b<<"=";
     97                 b1[j]=a-b;
     98             }
     99             break;
    100         case 2:
    101             cout<<a<<"*"<<b<<"=";
    102             b1[j]=a*b;
    103             break;
    104         case 3:
    105             if(a%b!=0&&c==0)
    106             {
    107                 cout<<a-a%b<<"/"<<b<<"=";
    108                 b1[j]=(a-a%b)/b;
    109             }
    110             else
    111             {
    112                 cout<<a<<"/"<<b<<"=";
    113                 b1[j]=a/b;
    114             }
    115             break;
    116         }
    117         cin>>a1[j];
    118         if(j%l==l-1)
    119         {
    120             for(t=0;t<jj;t++)
    121             cout<<endl;
    122         }
    123     }
    124     cout<<endl;
    125     for(j=0;j<num;j++)
    126     {
    127         if(b1[j]==a1[j])
    128             r++;
    129         else
    130             e++;
    131     }
    132     cout<<"恭喜你做对了"<<r<<"道题目"<<endl;
    133     cout<<"是否输出正确答案:(Y/N)";
    134     cin>>daan;
    135     if(daan=='Y')
    136             for(j=0;j<num;j++)
    137             {    
    138                 cout<<"<"<<j+1<<">: "<<b1[j]<<endl;
    139             }
    140 
    141     return 0;
    142 }

    三、运行截图

    四、实验心得

    以前写代码不注意添加{}导致修改错误

    如:

     case 1:
     89             if(f==0&&a<=b)
     90             
     91                 cout<<b<<"-"<<a<<"=";
     92                 b1[j]=b-a;
     93             
     94             else
     95 

    习惯真的很重要,设计中出现了逻辑错误,通过测试用例 得到解决。

    五、PSP0级 记录表

                                     周活动记录总表

      姓名:董龙洋                                                   日期:2015.3.21

    日期/任务

    听课

    编程

    阅读

    准备考试

    日总计

    周日

    周一

    周二

    20

    周三

    周四

    75

    周五

    50

    周六

    125

    周总结

    270

    阶段时间和效率                            周数(上一次周活动表的周数+1):1

      不包括上一周在内的累计时间

    总计

    平均

    最大

    最小

      

    以前各周的累积时间

    时间记录表:

    学生:董龙洋                        日期:2015.3.21

    教师:王建民                        课程:psp

    日期

    开始时间

    结束时间

    中断时间

    净时间

    活动

    备注

    3.17

    9:30

    9:50

    0

    20

    课堂练习

    3.19

    16:05

    19:20

    60

    75

    四则运算

    吃饭一小时

    3.20

    9;20

    9:55

    0

    35

    课堂练习

    3.21

    18:23

    20:03

    0

    100

    四则运算

    缺陷记录日志:

    学生:董龙洋

    日期:2015.3.21

    教师:王建民

    程序员:

    日期

    编号

    类型

    引入阶段

    排除阶段

    修复时间

    修复缺陷

    3.20

    1

    写代码

    编译

    2min

    3.21

    2

    写代码

    执行

    30min

    逻辑错误

  • 相关阅读:
    Apache Spark 2.2.0 中文文档
    Apache Spark 2.2.0 中文文档
    Apache Spark 2.2.0 中文文档
    Apache Spark 2.2.0 中文文档
    Apache Spark 2.2.0 中文文档
    Apache Spark RDD(Resilient Distributed Datasets)论文
    Apache Spark 2.2.0 中文文档
    Apache Spark 2.2.0 中文文档
    【机器学习实战】第10章 K-Means(K-均值)聚类算法
    [译]flexbox全揭秘
  • 原文地址:https://www.cnblogs.com/dlyxx/p/4356148.html
Copyright © 2011-2022 走看看