• 第三次作业:个人项目-小学四则运算 “软件”之初版


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

    Github地址:https://github.com/P-and-A/learningGit

    一、题目要求

    像《构建之法》的人物阿超那样,写一个能自动生成小学四则运算题目的命令行 “软件”。


    具体要求:任何编程语言都可以,命令行程序接受一个数字输入,然后输出相应数目的四则运算题目和答案。例如输入数字是 30, 那就输出 30 道题目和答案。 运算式子必须至少有两个运算符,运算数字是在 100 之内的正整数,答案不能是负数。 如:

    23 - 3 * 4 = 11

    扩展要求:

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

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

    初步拟定要实现的功能后,估计一下自己需要花多长时间。编程过程中记录自己实际用了多长时间。

    然后和同学们比较一下各自程序的功能、实现方法的异同等等。

    二、构思

      这个程序主要有两大模块组成

      1)出题模块

        这个模块主要是生成运算式,我决定用读取文件,把预先写好的运算式全部读取出来,再采用随机选取题目。

      2)运算模块

        这个模块主要采用栈和运算符优先级表来进行运算式计算。

    三、设计

      1.先在txt文件上写一些运算式以#号结尾,程序运行时全部读取到运算式数组中。

      2.在运算数组中随机抽取题目

      3.将抽取的题目放进运算模块中进行计算

      4.打分模块

        

      5.统计模块

      

      6.运算模块

      

    四、遇到的问题及解决方案

      1.随机选题选中相同的题目

      有两个原因,一个是题库太少题目,二是没有去重算法,适当增加题目,写个去重算法(类似java的set)可避免重复。

    五、不足之处

      1.还没实现分数计算

      2.有时会出现相同的题目

      3.题目还需要自己录入(如果需要的话也可以实现自动生成题目)

    六、亮点

      1.可以计算带有括号的运算式

      2.可以不限运算符号的数量

      3.计算结果可以是小数

      4.可以通过更换题目文件调整题目难度

    七、运行效果图

     项目过程预估与耗时记录

    PSP2.1

    Personal Software Process Stages

    Time Senior Student

    Time

    Planning

    计划

    0.5h

    1h

    · Estimate

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

    0.5h

    1h

    Development

    开发

    18h

    26h

    · Analysis

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

    2h

    3h

    · Design Spec

    生成设计文档

    3h

    5h

    · Design Review

    设计复审

    0.5h

    0.5h

    · Coding Standard

    代码规范

    0.5h

    1h

    · Design

    具体设计

    8h

    12h

    · Coding

    具体编码

    4h

    5h

    · Code Review

    代码复审

    0.5h

    0.5h

    · Test

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

    1.5h

    2h

    Reporting

    报告

    2h

    1h

    ·

    计算工作量

    1h

    0.5h

    ·

    并提出过程改进计划

    1h

    0.5h

  • 相关阅读:
    制作图片自转的效果
    随机摆放文字带飞入飞出的效果
    Spinner的样式大致简介
    Android视图SurfaceView的实现原理分析
    Android应用程序与SurfaceFlinger服务的关系概述和学习计划
    分享两篇关于ActionBar样式设置的博客
    RMI(远程接口调用)
    j建立一个小的servlet小程序
    eclipse上ndk环境的搭建&&so文件的生成&&jni文件的调用
    Java 过滤器实现(登录) + 拦截器(两种方法)
  • 原文地址:https://www.cnblogs.com/grate/p/9763615.html
Copyright © 2020-2023  润新知