• 2016012000小学四则运算练习软件项目报告


    目录

    一、    需求分析

    二、    功能设计

    三、    设计实现

    四、    算法详解

    五、    测试运行

    六、    代码展示

    七、    总结

    八、    展示PSP

    一、   需求分析

    1、  程序可接收一个输入参数n,然后随机产生n道加减乘除(分别使用符号+-*÷来表示)练习题,每个数字在 0 和 100 之间,运算符在3个到5个之间。

    2、  为了让小学生得到充分锻炼,每个练习题至少要包含2种运算符。同时,由于小学生没有分数与负数的概念,你所出的练习题在运算过程中不得出现负数与非整数,比如不能出 3÷5+2=2.6,2-5+10=7等算式。

    3、  将学号与生成的n道练习题及其对应的正确答案输出到文件“result.txt”中

    4、  支持有括号的运算式,包括出题与求解正确答案。注意,算式中存在的括号必须大于2个,且不得超过运算符的个数。

    5、  扩展程序功能支持真分数的出题与运算(只需要涵盖加减法即可

    二、   功能设计

     

    基本功能

    1、实现三到五个字符的四则运算

    2、数字大小在0至100之间

    3、没有负数和非整数

    拓展功能

    1、支持有括号的运算

    2、支持真分数的出题与运算

    三、   设计实现

    1、使用main类:接受用户给的参数

    2、使用calculater类:生成练习题并计算答案

    使用random产生随机数,使用calculate计算答案

    四、   算法详解

     

    1、产生随机数

     int number = 0;
            Random num = new Random();
            number = num.nextInt(max + 1);
            return number

    2、使用逆波兰表达式

    五、   测试运行

     

    六、   代码展示

     

    #include <iostream>#include<stdio.h>
    #include<math.h>using namespace std; //http://noi.openjudge.cn/ch0202/1696/char a[100];
    double f(){    cin>>a;  
      switch(a[0]){        case '+':return f()+f();   
         case '-':return f()-f();      
      case '*':return f()*f();   
         case '/':return f()/f();   
         default:return atof(a);  
      }}int main(int argc, char *argv[]) {    double ans=0.0;    ans=f();
    printf("%f
    ",ans);    return 0;}
     

     

    七、   总结

     

    个人认为这次作业难度较大,个人水平不足,花了许多时间,但是也掌握了一定的知识,还是非常值得和满足的,以后也会继续努力学习,争取能敲更多的代码。

    八、   展示PSP

     

    PSP2.1

    任务内容

    计划共完成需要的时间(min)

    实际完成需要的时间(min)

    Planning

    计划

    10

    30

    ·        Estimate

    ·   估计这个任务需要多少时间,并规划大致工作步骤

    10

    30

    Development

    开发

    204

    406

    ·        Analysis

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

    5

    8

    ·        Design Spec

    ·         生成设计文档

    5

    6

    ·        Design Review

    ·         设计复审 (和同事审核设计文档)

    4

    6

    ·        Coding Standard

    ·         代码规范 (为目前的开发制定合适的规范)

    5

    9

    ·        Design

    ·         具体设计

    15

    22

    ·        Coding

    ·         具体编码

    120

    300

    ·        Code Review

    ·         代码复审

    20

    15

    ·        Test

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

    30

    40

    Reporting

    报告

    11

    18

    ·         Test Report

    ·         测试报告

    5

    7

    ·         Size Measurement

    ·         计算工作量

    3

    6

    ·         Postmortem & Process Improvement Plan

    ·         事后总结, 并提出过程改进计划

    3

    5

  • 相关阅读:
    WebApi开启CORS支持跨域POST
    VueJs生产环境部署
    VueJs开发笔记—IDE选择和优化、框架特性、数据调用、路由选项及使用
    微信分享JSSDK-invalid signature签名错误的解决方案
    关于后台系统自动生成的一点思考
    编写高质量代码改善C#程序的157个建议[为类型输出格式化字符串、实现浅拷贝和深拷贝、用dynamic来优化反射]
    编写高质量代码改善C#程序的157个建议[10-12]
    编写高质量代码改善C#程序的157个建议[4-9]
    编写高质量代码改善C#程序的157个建议[正确操作字符串、使用默认转型方法、却别对待强制转换与as和is]
    Oracle初级索引学习总结
  • 原文地址:https://www.cnblogs.com/isccA/p/8647398.html
Copyright © 2020-2023  润新知