zoukankan      html  css  js  c++  java
  • 软件工程概论第二周综合测验

    1,设计思路和实际偏差总结。

       设计思路如上一个博客,实际偏差有很多,首先,没能处理题目重复,打印方式和有括号的算法,其次是未能实行将这几个部分很好的融合在一起,而是单独实行各个方面的题目,主要是因为我认为这样比较方便而且各函数独立,清楚清晰。

    2,具体程序中出现的错误,出现错误最常见的地方。

      程序出现错误一般都在标识符定义没有定义好,大括号{}不匹配,尤其是实现除法有余数的函数里,总是出现错误,语句顺序没有调整好,循环之类的,导致没法出结果。

      具体程序如下:

    math.h
    
    #pragma once
    #include<cmath>
    #include<iostream>
    using namespace std;
    
    class math
    {
    public:
        math(void);
        void chengchu();
        void kuohao();
        void fushu();
        void yushu();
        void xiaoshu();
        void jiajian();
        ~math(void);
    };
    
    
    
    math.cpp
    
    
    #include "math.h"
    
    math::math(void)
    {
    }
    
    void math::chengchu()
    {
        
        cout<<"有乘除的运算:"<<endl;
        int num,q;//定义题目数量num,数值范围q,打印方式的列数l。
        cout<<"请输入自定义题目数量:"<<endl;
        cin>>num;
        cout<<"请输入自定义数值范围:"<<endl;
        cin>>q;
        int a,b,i,y;    
        for(i=0;i<num;i++)
        {
            a=rand()%q;
            b=rand()%q;
            y=rand()%2;    
            switch(y){
                case 0:
                    cout<<" "<<a<<"*"<<b<<"="<<endl;
                    break;
                case 1:
                    cout<<" "<<a<<"/"<<b<<"="<<endl;
                    break;
            }
    
        }
    
    
    }
    void math::kuohao()
    {
        cout<<"有括号的运算:"<<endl;
        cout<<"暂不支持该运算"<<endl;
    }
    
    void math::fushu()
    { 
        cout<<"有负数的运算:"<<endl;
        int num,q;//定义题目数量num,数值范围q,打印方式的列数l。
        cout<<"请输入自定义题目数量:"<<endl;
        cin>>num;
        cout<<"请输入自定义数值范围:"<<endl;
        cin>>q;
        int a,b,i,y;
        for(i=0;i<num;i++)
        {
            a=-rand()%q;
            b=-rand()%q;
            y=rand()%2;
            switch(y){
                case 0:
                    cout<<" "<<a<<"+"<<"("<<b<<")"<<"="<<endl;
                    break;
                case 1:
                    cout<<" "<<a<<"-"<<"("<<b<<")"<<"="<<endl;
                    break;
            }
        }
    
    }
    
    void math::yushu()
    {
        cout<<"有余数的运算:"<<endl;
        int num,q;//定义题目数量num,数值范围q,打印方式的列数l。
        cout<<"请输入自定义题目数量:"<<endl;
        cin>>num;
        cout<<"请输入自定义数值范围:"<<endl;
        cin>>q;
        int a,b,i;
        for(i=0;i<num;i++)
        {
            a=rand()%q;
            b=rand()%q;
            if(b!=0&&a%b!=0)
                cout<<a<<"/"<<b<<"="<<endl;
        }
    
    
    }
    
    void math::xiaoshu()
    {
        cout<<"有分数的运算:"<<endl;
        int num,q;//定义题目数量num,数值范围q,打印方式的列数l。
        cout<<"请输入自定义题目数量:"<<endl;
        cin>>num;
        cout<<"请输入自定义数值范围:"<<endl;
        cin>>q;
        int a,b,c,d,i,y;
        for(i=0;i<num;i++)
        {
            a=rand()%q;
            b=rand()%q;
            c=rand()%q;
            d=rand()%q;
            y=rand()%2;
            switch(y){
                case 0:
                    if(b!=0&&d!=0)
                    cout<<" "<<a<<"/"<<b<<"+"<<c<<"/"<<d<<"="<<endl;
                    break;
                case 1:
                    if(b!=0&&d!=0)
                    cout<<" "<<a<<"/"<<b<<"+"<<c<<"/"<<d<<"="<<endl;
                    break;
            }
        }
    
    }
    void math::jiajian()
    {
        cout<<"仅加减的运算:"<<endl;
        int num,q;//定义题目数量num,数值范围q,打印方式的列数l。
        cout<<"请输入自定义题目数量:"<<endl;
        cin>>num;
        cout<<"请输入自定义数值范围:"<<endl;
        cin>>q;
        int a,b,i,r,y;
        for(i=0;i<num;i++)
        {
            a=rand()%q;
            b=rand()%q;
            y=rand()%2;
            switch(y){
                case 0:
                    cout<<" "<<a<<"+"<<b<<"="<<endl;
                    break;
                case 1:
                    if(a<b)
                    {
                        r=a;
                        a=b;
                        b=r;
                    }//避免负数
                    cout<<" "<<a<<"-"<<b<<"="<<endl;
                    break;
            }
        }
    }
    
    math::~math(void)
    {
    }
    
    
    main.cpp
    #include"math.h"
    #include<iostream>
    using namespace std;
    
    void main()
    {
        int n;
        math k;
        do
        {
            cout<<"*******************************************"<<endl;
            cout<<"请选择下面的一个项目:"<<endl;        
            cout<<"1 有乘除法         2 有括号"<<endl;
            cout<<"3 加减有负数       4 除法有余数"<<endl;
            cout<<"5 支持分数         6 仅加减法"<<endl;
            cout<<"*******************************************"<<endl;
            cin>>n;
            switch(n)
            {
            case 1:k.chengchu();break;
            case 2:k.kuohao();break;
            case 3:k.fushu();break;
            case 4:k.yushu();break;
            case 5:k.xiaoshu();break;
            case 6:k.jiajian();break;
            }
        }while(n);
    }

    3,感悟。

    一直觉得自己编程不好,看见四则运算2题目就发怵,于是就决定先简化,看自己能做到哪一步,实际上来讲,我的程序还是结构简单,语句冗长,不是一个很好的程序,我也会继续在它的基础上继续改进。只是根据四则运算1来写的这个程序,有的地方虽然不尽如人意。我觉得自己有在编程的路上还是进步了那么一小小点。

    4,时间记录表。

  • 相关阅读:
    【转】Android实战技巧:ViewStub的应用
    3.11 返回数据到前一个Activity
    在用android日志的时候老是弹出一个窗口,内容为:"Copy" did not complete normally. Please see the log 和 什么函数,能达到和android手机上按“返回”键一样的效果?
    Windows下的Android模拟器设置内存大小
    AlertDialog.Builder对话框类的用法(二)
    android版计算器
    【转】Android中字符串的拆分split
    readelf
    6200 uboot 测试版分析(二)
    cpp
  • 原文地址:https://www.cnblogs.com/15732115368zhm/p/4347361.html
Copyright © 2011-2022 走看看