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

    逻辑错误

  • 相关阅读:
    学了N年英语,你学会翻译了吗?——最基本的数据库连接
    混编,还是会犯错~
    call dword prt[eax]
    时间复杂度和空间复杂度1 数据结构和算法03
    call dword prt[eax+5]
    地址反向增长(栈底为大地址,栈顶为小地址)
    OD使用教程3(上) 调试篇03|解密系列
    call dword prt[eax+5]
    时间复杂度和空间复杂度1 数据结构和算法03
    call dword prt[eax]
  • 原文地址:https://www.cnblogs.com/dlyxx/p/4356148.html
Copyright © 2011-2022 走看看