zoukankan      html  css  js  c++  java
  • 第四次作业 运算

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

    GitHub地址:https://github.com/Rozmin/PupilsArithme.git


    一、题目要求:

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

    扩展要求:

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

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

     

    二、个人软件过程耗时估计与统计表

    1. PSP模版表格如下,第3列和第4列分别对应第2列条目的估计时间和真实时间,模版表格里的时间只是示意。

    PSP2.1 Personal Software Process Stages Time Senior Student Time
    Planning 计划 8 6
    · Estimate 估计这个任务需要多少时间 10 15
    Development 开发 82 88
    · Analysis 需求分析 (包括学习新技术) 6 10
    · Design Spec 生成设计文档 5 6
    · Design Review 设计复审 4 6
    · Coding Standard 代码规范 3 6
    · Design 具体设计 10 12
    · Coding 具体编码 36 21
    · Code Review 代码复审 7 9
    · Test 测试(自我测试,修改代码,提交修改) 13 21
    Reporting 报告 9 6
    · 测试报告 3 2
    · 计算工作量 2 1
    · 并提出过程改进计划 3 3

    三、代码提交

    提交你的源代码和可执行程序至你的github上,并在博客中给出你的github地址。

    需要提交的应该有

    • 项目的工程文件,例如Eclipse的项目文件
    • 项目的源代码
    • 一些必要的配置
    • 单独创建一个public子目录,存放编译后的可执行程序,这不是标准的软件发布的做法,但是目前你这样先提交可以。

    四、博文

    1、构思

    开发工具:Code::Blocks

    编程语言:C++

    主要分为三大板块:

    (1)主函数

    (2)运算模块(随机数和随机运算符号->产生随机算式;判断)

    (3)计算模块(加减乘除)

    2、主代码

     1 float createEquation() {
     2     int number1, number2, number3, operation1, operation2;
     3     float input_answer, answer = 0;
     4     do {
     5         srand(time(0));
     6         number1 = rand()%100+1;
     7         number2 = rand()%100+1;
     8         number3 = rand()%100+1;
     9         operation1 = rand()%4+1;
    10         operation2 = rand()%4+1;
    11         if(operation1 == multiplication || operation1 == division) {
    12             answer = calculate(calculate(number1, number2, operation1), number3, operation2 );
    13         }
    14         else {
    15             if(operation2 == multiplication || operation2 == division) {
    16                 answer = calculate(number1 ,calculate(number2, number3, operation1), operation2 );
    17             }
    18             else {
    19                 answer = calculate(calculate(number1, number2, operation1), number3, operation2 );
    20             }
    21         }
    22     }while(answer < 0);
    23     printf("%d %c %d %c %d =",number1, operation(operation1),number2, operation(operation2), number3);
    24     scanf("%f", &input_answer);
    25     if(answer == input_answer) {
    26         printf("对了");
    27     }
    28     else {
    29         printf("正确答案是%f", answer);
    30     }
    31 
    32     printf("
    ");
    33 }

    3、实验结果

    4、遇到的问题

    开始时判断的问题想了很多问题,最后决定通过判断前后运算符来来判断运算顺序,通过answer<0使结果不小于0.

  • 相关阅读:
    英语口语——英语连读、发音、英文音标、语调、语气、节奏等等
    高中语法_句法篇——名词性从句、定语从句、状语从句、被动语态、虚拟语气、倒装句
    高中语法_时态篇——笔记 -五大基本句型,十大单词类型、常用时态。
    《数据结构》 第一章 笔记
    《计算机网络》 第三章 数据链路层
    《计算机网络》第二章 物理层笔记
    《计算机网络》谢希仁版--第一章习题
    我个人的c#入门总结【勿入】
    排序算法总结
    C#基础知识点总结
  • 原文地址:https://www.cnblogs.com/mofan2233/p/yuui4.html
Copyright © 2011-2022 走看看