软件工程课堂训练——随机四则运算升级版

一,设计思路

请参考上篇博客

二,代码

// 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”命令;等待键盘响应来继续程序下面部分

 

posted @ 2015-03-15 14:10  就是jy  阅读(152)  评论(0编辑  收藏  举报