• 四则运算



    一、作业信息


    作业班级 https://edu.cnblogs.com/campus/ahgc/AHPU-se-JSJ18
    作业要求 https://edu.cnblogs.com/campus/ahgc/AHPU-se-JSJ18/homework/11377
    作业目标 能对需求进行分析并实现;编码格式规范;学习博客撰写
    学号 3180701340

    二、作业要求


    写一个能自动生成小学四则运算题目的程序,然后在此基础上扩展:

    1)除了整数以外,还要支持真分数的四则运算,例如:1/6+1/8=7/24

    2)程序要求能处理用户的输入,判断对错,累积分数

    3)程序支持可以由用户自行选择加、减、乘、除运算

    4)使用-n参数控制生成题目的个数,例如Myapp.exe -n 10,将生成10个题目


    三、代码提交


    
    #include <ctype.h>  
    
    #include <time.h>  
    
    #include <stdlib.h>  
    
    #include <windows.h>  
    
    #define IDNO_LENGTH 6  
    
    #define CALC_KIND 4  
    
    char getSignal();
    int getResult(int,int,char);
    void takeTest();
    void falsePrint(int);
    void correctPrint(int);
    

    3.1 main函数

    int main()
    {
        while(1)
        {
            takeTest();
        }
    }
    

    3.2获取随机运算符

    char getSignal()
    {
        char signal[CALC_KIND]={'+','-','*','/'};
        srand((unsigned)time(NULL));
        return signal[rand()%4];
    }
    

    3.3获取随机数

    int random(double start, double end)
    {
        return (int)(start+(end-start)*rand()/(RAND_MAX+ 1.0));
    }
    

    3.4运算

    int getResult(int num1,int num2,char signal)
    
    {
        int res;
        switch(signal)
        {
        case '+':
            res=num1+num2;break;
        case '-':
            res=num1-num2;break;
        case '*':
            res=num1*num2;break;
        case '/':
            res=num1/num2;break;
        default:
            res=0;
            printf("运算符不符合规则
    ");
        }
        return res;
    }
    

    3.5列出题目

    void takeTest()
    {
        int giveRes;
        int num1;
        int num2;
        char signal;
        int printFlag;
        srand((unsigned)time(NULL));
        signal=getSignal();
        num1=random(0,100);
        num2=random(1,100);
        if(signal=='-')
        {
            if(num1<num2)
            {
                int temp;
                temp=num1;
                num1=num2;
                num2=temp;
            }
        }
        if(signal=='/')
        {
            if(num2==0)
            {
                int temp;
                temp=num1;
                num1=num2;
                num2=temp;
            }
        }
        printf("%d%c%d=",num1,signal,num2);
        scanf("%d",&giveRes);
        fflush(stdin);
        if(getResult(num1,num2,signal)==giveRes)
        {
            printFlag=random(1,5);
            correctPrint(printFlag);
        }
        else
        {
            printFlag=random(1,4);
        	falsePrint(printFlag);
            printf("正确答案:%d
    ",getResult(num1,num2,signal));
        }
    }
    

    3.6回答正确打印信息

    void correctPrint(int num)
    {
        switch(num)
        {
        case 1:
            printf("You're right!
    ");break;
        case 2:
        	printf("It's OK!
    ");break;
        case 3:
            printf("Correct!
    ");break;
        case 4:
            printf("Perfect!
    ");break;
        case 5:
            printf("Good!
    ");break;
        default:
            printf("Powerful!
    ");break;
        }
    }
    

    3.7回答错误打印信息

    void falsePrint(int num)
    {
        switch(num)
        {
        case 1:
            printf("You're lost!");break;
        case 2:
            printf("Failure!");break;
        case 3:
            printf("Come on!");break;
        case 4:
            printf("It's wrong!");break;
        default:
           printf("Incorrect!");break;
        }
    }
    
    

    四、运行截图

    五、个人小结

    此次的博客园注册与作业的完成,都打开了我学习的新大门,了解了另一个学习的窗口,通过博客园可以更好地表达自己所学习到的知识,哪怕知识一点点,都可以更好地分享出去,
    四则运算的编写也是最为基础的算法,但是在写的时候,仍然会出现大量的问题,这些问题有大有小,都是值得自己关注的,还是要不断地来编写代码来提升自己的编程能力。

    附:PSP表格

    psp2.1 任务内容 计划完成需要的时间(min) 实际完成需要的时间(min)
    Planning 计划 15 20
    Estimate 估计这个任务需要多少时间,并规划大致工作步骤 20 24
    Development 开发 200 243
    Analysis 需求分析(包括学习新技术) 15 11
    Design Spec 生成设计文档 7 7
    Design Review 设计复审 6 4
    Coding Standard 代码规范 5 7
    Design 具体设计 30 38
    Coding 具体编码 45 40
    Code Review 代码复审 8 7
    Test 测试(自我测试,修改代码,提交修改) 5 6
    Reporting 报告 6 12
    Test Report 测试报告 5 8
    Size Measurement 计算工作量 3 4
    Size Measurement 事后总结,并提出过程改进计划 4 9
  • 相关阅读:
    遗传算法的几种改进
    python3中让程序暂停运行的语句
    python内存增长问题
    关于编程思路
    关于程序中delay函数带来的繁琐问题
    python一切皆对象的理解
    Inspector did not run successfully.
    ProtocolError: <ProtocolError for 127.0.0.1/RPC2: 401 Unauthor.
    决策树的升入浅出-视频
    -bash: /opt/cslc/jdk1.8.0_144/bin/jps: /lib/ld-linux.so.2: bad ELF interpreter: 没有那个文件或目录
  • 原文地址:https://www.cnblogs.com/tb1314tx/p/13943939.html
Copyright © 2020-2023  润新知