zoukankan      html  css  js  c++  java
  • 基于控制台的四则运算

    一、题目要求:完成一个基于控制台的四则运算程序,实现一个自动生成小学四则运算题目的命令行程序

    满足以下需求:

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

       2、运算符为 +, −, ×, ÷

       3、并且要求能处理用户的输入,并判断对错,打分统计正确率。

       4、要求能处理用户输入的真分数, 如 1/2, 5/12 等

       5、使用 -n 参数控制生成题目的个数,例如执行下面命令将生成10个题目

          Myapp.exe -n 10

    二、需求分析

      能够自动生成四则运算题目,由人解答,并打印正确率。

    三、功能设计与实现

      用C语言编写函数,使用switch结构进行四则运算题的随机生成和正确率的计算。

    四、部分代码展示(完整代码:https://git.coding.net/lz201421/yunsuan.git)

    运算题生成部分

    int k=(int)rand()%8;
            switch(k)
            {
                case 0:
                    printf("%d/%d*%d/%d=",i,j,x,y);
                    scanf("%d%c%d",&a[0],&l,&a[1]);
                    f=i*x;
                    
                    g=j*y;
                    if(a[0]/a[1]==f/g)
                    {
                        printf("答对
    ");
                        c=c+1;}
                    else printf("答错
    ");
                    break;
                case 1:
                     printf("%d/%d÷%d/%d=",i,j,x,y);
                 
                    scanf("%d%c%d",&a[0],&l,&a[1]);
                    f=i*y;
                    
                    g=j*x;
                    if(a[0]/a[1]==f/g)
                    {
                        printf("答对
    ");
                        c=c+1;}
                    else printf("答错
    ");
                    break;
                case 2:
                     printf("%d/%d+%d/%d=",i,j,x,y);
                  
                    scanf("%d%c%d",&a[0],&l,&a[1]);
                    f=i*y+j*x;
                    
                    g=j*y;
                    if(a[0]/a[1]==f/g)
                    {
                        printf("答对
    ");
                         c=c+1;
                    }
                    else printf("答错
    ");
                    break;
                case 3:
                    printf("%d/%d-%d/%d=",i,j,x,y);
                   
                    scanf("%d%c%d",&a[0],&l,&a[1]);
                        f=i*y-j*x;
                    
                    g=j*y;
                    if(a[0]/a[1]==f/g)
                    {
                        printf("答对
    ");
                         c=c+1;
                    }
                    else printf("答错
    ");
                    break;
                case 4:
                    printf("%d+%d=",s,o);
                  
                    scanf("%d",&w);
                    f=s+o;
                    if(w==f)
                    {
                        printf("答对
    ");
                         c=c+1;
                    }
                    else printf("答错
    ");
                    break;
                case 5:
                    printf("%d-%d=",s,o);
                  
                    scanf("%d",&w);
                    f=s-o;
                    if(w==f)
                    {
                        printf("答对
    ");
                         c=c+1;
                    }
                    else printf("答错
    ");
                    break;
                case 6:
                    printf("%d*%d=",s,o);
                  
                    scanf("%d",&w);
                    f=s*o;
                    if(w==f)
                    {
                        printf("答对
    ");
                         c=c+1;
                    }
                    else printf("答错
    ");
                    break;
                case 7:
                    printf("%d÷%d=",s,o);
                  
                    scanf("%d",&w);
                    f=s/o;
                    if(w==f)
                    {
                        printf("答对
    ");
                         c=c+1;
                    }
                    else printf("答错
    ");
                    break;
    结果实例:

     

    PSP2.1

    Personal Software Process Stages

    Estimated time(min)

    actual time(min)

    Planning

    计划

    90

    120

    · Estimate

    估计这个任务需要多少时间

    90

    120

    Development

    开发

    90

    120

    · Analysis

    需求分析 (包括学习新技术)

    10

    10

    · Design Spec

    生成设计文档

    10

    10

    · Design Review

    设计复审

    10

    15

    · Coding Standard

    代码规范

    10

    15

    · Design

    具体设计

    10

    15

    · Coding

    具体编码

    80

    100

    · Code Review

    代码复审

    10

    10

    · Test

    测试(自我测试,修改代码,提交修改)

    10

    10

    Reporting

    报告

    10

    15

    ·

    测试报告

    5

    5

    ·

    计算工作量

    5

    3

    ·

    并提出过程改进计划

    5

    10

     

     

     

     

     

     

     

     

     

     

     

     

     

     

  • 相关阅读:
    Nginx系列p5:进程管理(信号)
    Nginx系列p4:进程结构
    one_day_one_linuxCmd---crontab 命令
    Nginx系列p3:实现一个具有缓存功能的反向代理服务器
    Nginx系列p2:重载,热部署,日志分割
    Nginx系列p1:安装
    数据链路层
    物理层习题与真题
    物理层
    计算机网络体系结构习题与真题
  • 原文地址:https://www.cnblogs.com/lzz21/p/6512430.html
Copyright © 2011-2022 走看看