zoukankan      html  css  js  c++  java
  • 四则运算

    这个作业属于哪个课程 <AHPU-软件工程导论-计算机18级>
    这个作业要求在哪里 <四则运算题目生成程序>
    这个作业的目标 四则运算的出题软件,并且拓展了更详细具体的要求
    学号 3180701110

    题目要求

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

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

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

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

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

    代码

    获取随机运算符

    char getSignal()
    {
        char signal[4]={'+','-','*','/'};
        srand((unsigned)time(NULL));
        return signal[rand()%4];
    }
     
    int random(double start, double end)
    {
        return (int)(start+(end-start)*rand()/(RAND_MAX+ 1.0));
    } 
    

    随机运算数字

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

    计算题目结果

    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:
            printf("运算符错误!
    ");
        }
        return res;
    }
    

    题目生成

    int takeTest()
    {
        int get;
        int num1,num2,a;
        char signal;
     
        srand((unsigned)time(NULL));
        signal=getSignal();
        num1=random(0,10);
        num2=random(1,10);
     
        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",&get);
        fflush(stdin);   //清空输入缓冲区
     
        if(getResult(num1,num2,signal)==get)
    	{
            printf("You're right!
    ");
    		a=1;
    	}
        else
        {
            printf("错误!
    ");
            printf("正确答案是: %d
    ",getResult(num1,num2,signal));
    		a=0;
        }
    	return a;
    }
    
    

    主函数

    void main()  
    {
    	int n,a,right=0;
    	double percent;
    	printf("请输入题目数量:");
    	scanf("%d",&n);
    	for(int i=0;i<n;i++)
    	{
    		a=takeTest();
    		right=right+a;
    	}
    	printf("厉害!
    ");
    	printf("正确题数:%d
    ",right);
    	percent=((double)right*100.00)/(double)n;
    	printf("正确率:%0.2f %%
    ",percent);
    }
    

    运行结果

    psp表格

    psp2.1 任务内容 计划完成需要的时间(min) 实际完成需要的时间(min)
    Planning 计划 15 30
    Estimate 估计这个任务需要多少时间,并规划大致工作步骤 20 20
    Development 开发 100 300
    Analysis 需求分析(包括学习新技术) 20 20
    Design Spec 生成设计文档 10 10
    Design Review 设计复审 15 15
    Coding Standard 代码规范 10 10
    Design 具体设计 10 10
    Coding 具体编码 40 40
    Code Review 代码复审 5 5
    Test 测试(自我测试,修改代码,提交修改) 10 10
    Reporting 报告 10 10
    Test Report 测试报告 3 4
    Size Measurement 计算工作量 10 10
    Postmortem & Process Improvement Plan 事后总结,并提出过程改进计划 5 5
    个人小结
    这次随笔,不仅是设计了相应的代码,更多的任务在摸索使用博客园的编辑器上。让我学习到很多。
  • 相关阅读:
    (转)创建DB2实例时出错,请大家帮忙解决
    lscons 命令,设置当前控制台设备的名称写至标准输出
    (转)AIX下修改用户最大进程数
    (转)AIX 5.3 安装中文语言包
    (转)AIX修改系统时区的3种方法和AIX 时间问题(夏令时)
    (转)企业级NFS网络文件共享服务
    一天一个mysql函数(二) FIND_IN_SET()
    sql语句备忘
    一天一个mysql函数(一) cast && convert
    c语言海量数据处理
  • 原文地址:https://www.cnblogs.com/wjhne/p/13943083.html
Copyright © 2011-2022 走看看