zoukankan      html  css  js  c++  java
  • 软件工程课堂训练——随机四则运算升级版

    一,设计思路

    请参考上篇博客

    二,代码

    // 123.cpp : 定义控制台应用程序的入口点。
    //
    
    #include "stdlib.h"  
    #include "time.h"   //调用随机函数
    #include "iostream"
    using namespace std;
    int main()
    {  
        int a,b;    //a,b为两个随机整数
        int g;    //g为随机产生四种运算符的情况
        int j;  //j为用户想要的题目数量
        int c,d,f; //c,d,f用户的选择
        cout<<"******欢迎进入随机产生四则运算程序******"<<endl;
        cout<<"****************************************"<<endl;
        cout<<"       是否有乘除法运算?(是->1,否->0)"<<endl;
        cin>>c;
        while(c!=0&&c!=1)
        {
            cout<<"请输入“0”或“1”"<<endl;
            cin>>c;
        }
    
        cout<<"       减法结果有无负数?(有->1,无->0)"<<endl;
        cin>>d;
        while(d!=0&&d!=1)
        {
            cout<<"请输入“0”或“1”"<<endl;
            cin>>d;
        }
        
        cout<<"       随机数数值范围是(100以内->1,随机->0)"<<endl;
        cin>>f;
        while(f!=0&&f!=1)
        {
            cout<<"请输入“0”或“1”"<<endl;
            cin>>f;
        }
    
        cout<<"****************************************"<<endl;
        
        
        
        cout<<"请输入题目数量:";
        cin>>j;
        while(j<=0)
        {
            cout<<"请输入大于0的数"<<endl;
            cin>>j;
        }
        for(int i=0;i<j;i++)
        {  
        
            if(f==1)//控制随机数的范围
            {
                a=rand()%100;    //产生100以内随机数,将随机数控制在100以内
                b=rand()%100;
            }
            if(f==0)
                {
                    a=rand();
                    b=rand();
                }        
    
            if(c==0)//无乘除法时,输出加减
            {
                g=rand()%2;
                switch(g)
                {
                case 0:
                    cout<<a<<"+"<<b<<"="<<endl;
                    break;
                case 1:
                    if(d==0)//控制减法结果有无负数
                    {
                        if(a<b)
                        {
                            cout<<b<<"-"<<a<<"="<<endl;
                        }
                        else
                        {
                            cout<<a<<"-"<<b<<"="<<endl;
                        }
                
                    }
                        else
                    {
                        cout<<a<<"-"<<b<<"="<<endl;
    
                    }
                    break;
                }
            }
            if(c==1)//允许有乘除法时,输出加减乘除
            {
                g=rand()%4;   //产生随机运算符
                switch(g)
                {
                case 0:
                    cout<<a<<"+"<<b<<"="<<endl;
                    break;
                case 1:
                    if(d==0)
                    {
                        if(a<b)
                        {
                            cout<<b<<"-"<<a<<"="<<endl;
                        }
                        else
                        {
                            cout<<a<<"-"<<b<<"="<<endl;
                        }
    
                    }
                    else
                    {
                        cout<<a<<"-"<<b<<"="<<endl;
    
                    }
                    break;
                case 2:
                    cout<<a<<"*"<<b<<"="<<endl;
                    break;
                case 3:
                    cout<<a<<"/"<<b<<"="<<endl;
                    break;
                }
            }
        }
        system("pause");
        
        return 0;
    }

    三,运行截图

      1,当功能选择不符合规范时出现出错提醒

    2,四个功能,乘除运算,有无负数,随机数范围,题目定制。。。。。

    3,题目定制的边界值无错误,输入小于1的数提醒错误。

    三,心得体会

        在编写程序时,才发现自己的基础太薄弱。只会基本的if-else,switch-case,for,while等,想写个函数调用一下才发现自己根本不知道怎么传参;好在代码都是自己一个一个码上去的,收获和体会还是有的。好多格式出错,比如输入(cin>>),我想输入一个整数却写成cin>>"a"。还有程序运行太快,问同学结尾加了一句system("pause");才使程序能够正常运行。每一次编程都有新的体会,也会发现许多不足。只有多练习,多积累才能出好程序。

    四,PSP0级 记录表

                                                     周活动总结表

                   姓名:焦燕                                                         日期:15/3/15

    日期   任务 听课 编写程序 阅读课本 准备考试 日总计
    周日          
    周一          
    周二 300   20   320
    周三 100   30   130
    周四 200 60 15   275
    周五 200 80 15   295
    周六   100 30   130
    周总结 800 240 110   1150

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

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

    总计                                                                                                                
    平均          
    最大          
    最小          

                 以前各周的累计时间

    总计 800 240 110        1150
    平均 800 240 110   1150
    最大 800 240 110   1150
    最小 800 240 110   1150

                                                 

     

     

                                                    时间记录表

     

                 学生 :   焦燕                                              日期 :15/3/14    

                 教师 :  王建民                                            课程 : PSP       

     

    日期 开始时间 结束时间 中断时间 净时间 活动 备注
    15/3/10 8:00 12:00 40 200

    软件工程

    操作系统上课

    课件休息
      14:20 14:40   20 阅读《梦断代码》  
      16:10 18:00 10 100 《windows高级编程》 课间休息
    3/11 8:00 9:50 10 100 计算机网络上课 课间休息
      10:30 11:00   30 阅读《梦断代码》  
    3/12 10:10 12:00 10 100 计算机技术上课 课间
      14:00 15:50 10 100 嵌入式开发技术 课间
      16:10 17:10   60 四则运算编程  
      22:20 22:35     《梦断代码》  
    3/13 8:00 12:00 40 200

    软件工程

    操作系统上课

    课间休息

    喝水

      14:40 16:00   80 四则运算编程  
      22:10 22:25   15 《梦断代码》  
    3/14 9:20 11:00   100

    编写代码加

    优化代码

     
      21:30 22:00   30 《梦断代码》  
    3/15 12:00 14:00   120 整理资料 上传博客  

                                         

     

     

                                                       缺陷记录日志

         学生 :   焦燕                                                          日期 :    3/15  

         教员 :  王建民                                                       程序号 :     2      

     

    日期

    编号

    类型

    引入阶段

    排除阶段

    修复时间

    修复缺陷

     15/3/12

     1

     

     编码

    编译 

    4min

     

     描述:i   没有定义

     3/13

     2

     

     编码

    编译

     2min

     逻辑错误

     描述:输入整数多加双引号

     3/14

     3

     

     编码

     执行

     20min

     逻辑错误

     描述:加system("pause");从程序里调用“pause”命令;等待键盘响应来继续程序下面部分

  • 相关阅读:
    Linux下使用wireshark权限问题
    Ubuntu关机出错卡死 PCIe Bus Error: severity=Corrected, type=Physical Layer, id=00e5(Receiver ID)
    东南大学《操作系统》课程作业 第二章
    东南大学《操作系统》课程作业 第一章
    东南大学《操作系统》课程作业 第三章
    回溯算法
    拓扑排序之课程表问题
    C++虚函数多态
    JMETER安装及基本使用
    JMETER正则表达式提取器使用
  • 原文地址:https://www.cnblogs.com/123jy/p/4339711.html
Copyright © 2011-2022 走看看