软件工程个人作业01

Posted 张晓晨的技术博客

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了软件工程个人作业01相关的知识,希望对你有一定的参考价值。

before:写一个能自动生成三十道小学四则运算题目的“软件”,要求:除了整数以外,还要支持真分数的四则运算

一,程序的设计思想

  利用时间做种,分别随机产生运算的两个数字,运算符号,其中运算符号可以存在一个字符数组里,对数组下标随机。然后可以有一个判定机制,防止出现零做被除数的情况出现。最后就是为了以后好扩展一些,我把主要的功能放到另外的函数里了,主函数里写了一个时间种子,这样每次产生的题目都不一样。

二,源程序代码

#include<iostream>
using namespace std;
#include<time.h>
#include<string>
void intCal()//产生整数计算
{
     
    int shu1=0,shu2=0;
    //随机数产生0-100
    //shu1=srand(1000)
    shu1=0+rand()%100;
    shu2=0+rand()%100;

    int sum=0;
    int fushu=0;
    string fuhao[4]={"+","-","*","/"};
    fushu=((0+rand()%4)+4)%4;
    //cout<<fushu<<endl;
    //判断shu2是否为0和是否为除法 若为则重新生成
    while(shu2==0&fushu==3)
    {
        shu2=0+rand()%100;
    }
    //随机产生的符号
    switch(fushu)
    {
        case 0:cout<<shu1<<fuhao[fushu]<<shu2<<"="<<endl;break;
        case 1:cout<<shu1<<fuhao[fushu]<<shu2<<"="<<endl;break;
        case 2:cout<<shu1<<fuhao[fushu]<<shu2<<"="<<endl;break;
        case 3:cout<<shu1<<fuhao[fushu]<<shu2<<"="<<endl;break;
    }
}
void fract()//产生分数运算
{
    int zhenfens1_m=0,zhenfens1_z=0,zhenfens2_m=0,zhenfens2_z=0;

    zhenfens1_m=0+rand()%100;
    zhenfens1_z=0+rand()%100;

    //判断产生的真分数正确性
    while(zhenfens1_m<zhenfens1_z)
    {
    zhenfens1_m=0+rand()%100;
    zhenfens1_z=0+rand()%100;
    }

    zhenfens2_m=0+rand()%100;
    zhenfens2_z=0+rand()%100;

    //判断产生的真分数正确性
    while(zhenfens2_m<zhenfens2_z)
    {
    zhenfens2_m=0+rand()%100;
    zhenfens2_z=0+rand()%100;
    }

    string fuhao[4]={"+","-","*","/"};
    int fushu=((0+rand()%4)+4)%4;
    //cout<<fushu<<endl;

    //判断shu2是否为0和是否为除法 若为则重新生成
    //随机产生的符号
    switch(fushu)
    {
        case 0:cout<<"("<<zhenfens1_z<<"/"<<zhenfens1_m<<")"<<fuhao[fushu]<<"("<<zhenfens2_z<<"/"<<zhenfens2_m<<")"<<"="<<endl;break;
        case 1:cout<<"("<<zhenfens1_z<<"/"<<zhenfens1_m<<")"<<fuhao[fushu]<<"("<<zhenfens2_z<<"/"<<zhenfens2_m<<")"<<"="<<endl;break;
        case 2:cout<<"("<<zhenfens1_z<<"/"<<zhenfens1_m<<")"<<fuhao[fushu]<<"("<<zhenfens2_z<<"/"<<zhenfens2_m<<")"<<"="<<endl;break;
        case 3:cout<<"("<<zhenfens1_z<<"/"<<zhenfens1_m<<")"<<fuhao[fushu]<<"("<<zhenfens2_z<<"/"<<zhenfens2_m<<")"<<"="<<endl;break;
    }
}
void main()
{
    srand(time(NULL));//用系统当前时间设置rand()随机序列种子,保证每次运行随机序列不一样
    char ch=a;//选择运算种类
    int i;//选择产生题目的个数
    int c=1;
    while(c)
    {
        cout<<"请选择运算种类:(输入a或A将打印整数运算,输入b或B将打印假分数运算:)"<<endl;
        cin>>ch;
        cout<<"请选择要打印题目的数量:"<<endl;
        cin>>i;
        if(ch==a||ch==A)
        {
            int j;//计数器
            for(j=0;j<i;j++)
            {
                intCal();
            }
        }
        else if(ch==b||ch==B)
        {
            int j;//计数器
            for(j=0;j<i;j++)
            {
                fract();
            }
        }
        cout<<"继续请输入1,否则请输入0"<<endl;
        cin>>c;
    }
    cout<<"OVER!"<<endl;
}

 

三、运行结果截图

技术分享

四、个人上课未按时完成的原因

时间短,人比较笨。

以上是关于软件工程个人作业01的主要内容,如果未能解决你的问题,请参考以下文章

软件工程个人作业01

软件工程个人作业01

软件工程个人作业01

软件工程个人作业01

软件工程个人作业01

软件工程个人作业01