zoukankan      html  css  js  c++  java
  • 个人项目--多元四则运算

    作业要求来源:https://edu.cnblogs.com/campus/gzcc/GZCC-16SE2/homework/2186

    github地址:https://github.com/timchan1997/mygit


    一、题目要求:

    像《构建之法》的人物阿超那样,写一个能自动生成小学四则运算题目的命令行 “软件”。具体要求:任何编程语言都可以,命令行程序接受一个数字输入,然后输出相应数目的四则运算题目和答案。例如输入数字是 30, 那就输出 30 道题目和答案。 运算式子必须至少有两个运算符,运算数字是在 100 之内的正整数,答案不能是负数。 如:23 - 3 * 4 = 11

    扩展要求:

    1) 要求能出和真分数 (二分之一, 十二分之五,等)相关的练习题。

    2) 并且要求能处理用户的输入,并判断对错,打分统计。 要求能处理用户输入的真分数, 如 1/2, 5/12 等。


    二:设计思路:

    工具:visual c++

    语言:C语言

    思路:先有主函数去输入题目的数量,然后产生随机数目和运算符,再去计算,最后比较实际的值与输入的值是否一样,并统计答题情况。

    函数:main()函数;

              


    三:代码(部分)

    srand((unsigned)time(NULL));  //初始化随机数

    for (i = 0; i < 4; i++)  //产生随机数

    {

    n = rand() % 5 + 1;   //rand()%10表示取1-10的随机数,即取了随机数后再对10取余   rand()%10 是取0到9的随机数

    num[i] = n;

    }

    srand((unsigned)time(NULL));

    for (j = 0; j < 4; j++)  //从给定的四个运算符中随机产生三个相同或不同的运算符

    {

    op = rand() % 4;

    operate[j] = operate[op];

    }

    strcpy(opt, operate);

    printf("%d%c%d%c%d%c%d= ", num[0], opt[0], num[1], opt[1], num[2], opt[2], num[3]);

    if (opt[0] == '*' || opt[0] == '/')

    {

    if (opt[0] == '*')

    {

    r1 = num[0] * num[1];

    if (opt[1] == '*')

    {

    r2 = r1 * num[2];

    if (opt[2] == '*')

    r3 = r2 * num[3];

    else if (opt[2] == '/')

    r3 = r2 / num[3];

    else if (opt[2] == '+')

    r3 = r2 + num[3];

    else

    r3 = r2 - num[3];

    }

    else if (opt[1] == '/')

    {

    r2 = r1 / num[2];

    if (opt[2] == '*')

    r3 = r2 * num[3];

    else if (opt[2] == '/')

    r3 = r2 / num[3];

    else if (opt[2] == '+')

    r3 = r2 + num[3];

    else

    r3 = r2 - num[3];

    }

    else if (opt[1] == '+')

    {

    if (opt[2] == '*')

    r2 = num[2] * num[3];

    else if (opt[2] == '/')

    r2 = num[2] / num[3];

    else if (opt[2] == '+')

    r2 = num[2] + num[3];

    else

    r2 = num[2] - num[3];

    r3 = r1 + r2;

    }

    else

    {

    if (opt[2] == '*')

    {

    r2 = num[2] * num[3];

    r3 = r1 - r2;

    }

    else if (opt[2] == '/')

    {

    r2 = num[2] / num[3];

    r3 = r1 - r2;

    }

    else if (opt[2] == '+')

    {

    r2 = num[2] + num[3];

    r3 = r1 - r2;

    }

    else

    r3 = r1 - num[2] - num[3];

    }

    }

     

    if (opt[0] == '/')

    {

    r1 = num[0] / num[1];

    if (opt[1] == '*')

    {

    r2 = r1 * num[2];

    if (opt[2] == '*')

    r3 = r2 * num[3];

    else if (opt[2] == '/')

    r3 = r2 / num[3];

    else if (opt[2] == '+')

    r3 = r2 + num[3];

    else

    r3 = r2 - num[3];

    }

    else if (opt[1] == '/')

    {

    r2 = r1 / num[2];

    if (opt[2] == '*')

    r3 = r2 * num[3];

    else if (opt[2] == '/')

    r3 = r2 / num[3];

    else if (opt[2] == '+')

    r3 = r2 + num[3];

    else

    r3 = r2 - num[3];

    }

    else if (opt[1] == '+')

    {

    if (opt[2] == '*')

    r2 = num[2] * num[3];

    else if (opt[2] == '/')

    r2 = num[2] / num[3];

    else if (opt[2] == '+')

    r2 = num[2] + num[3];

    else

    r2 = num[2] - num[3];

    r3 = r1 + r2;

    }

    else

    {

    if (opt[2] == '*')

    r2 = num[2] * num[3];

    else if (opt[2] == '/')

    r2 = num[2] / num[3];

    else if (opt[2] == '+')

    r2 = num[2] + num[3];

    else

    r2 = num[2] - num[3];

    r3 = r1 - r2;

    }

    }

    }

    四:结果展示


    五:主要问题:

    琮大一到现在,已经很久没有用过c语言去写程序了,在编辑的时候遇到了一些问题。都是逻辑错误和比较细节的东西,好比如随机数的产生,,感觉很多都忘了,因此花了很多时间去改正这些错误!

    六:时间估计

     

    PSP2.1 Personal Software Process Stages Time Senior Student Time
    Planning 计划 8 6
    · Estimate 估计这个任务需要多少时间 8 6
    Development 开发 82 88
    · Analysis 需求分析 (包括学习新技术) 6 10
    · Design Spec 生成设计文档 5 6
    · Design Review 设计复审 4 6
    · Coding Standard 代码规范 3 3
    · Design 具体设计 10 12
    · Coding 具体编码 36 21
    · Code Review 代码复审 7 9
    · Test 测试(自我测试,修改代码,提交修改) 13 21
    Reporting 报告 9 6
    · 测试报告 3 2
    · 计算工作量 2 1
    · 并提出过程改进计划
  • 相关阅读:
    IOS性别
    IOS生命周期
    读书的作用
    Core Data
    解析Json数据
    sicily Knight Moves
    sicily 简单魔板2
    Sum of Consecutive Primes
    [OI笔记]杂题整理1(基础篇~)
    [IOI1994]The Castle
  • 原文地址:https://www.cnblogs.com/timchan/p/9787813.html
Copyright © 2011-2022 走看看