zoukankan      html  css  js  c++  java
  • 2016012066+小学四则运算练习软件项目报告

    代码:https://git.coding.net/Thomaskang/sizeyunsuan.git

    先来一张图片缓解下鸭力。

    1、需求分析

    做一个小学生四则运算

    (1)接受需要的题目数量

    (2)0到100之间的整数

    (3)每个题至少两种运算符

    (4)不能出现负数和非整数

    (5)输出到一个txt文件中

    2、功能设计

      用户交互功能:用于用户输入题目数量和获得运行后的题目文件(包括答案)的文件下载按钮

      后台功能:实现各类实际的需求分析得用户需求

          接受需要的题目数量

          0到100之间的整数

          每个题至少两种运算符

          不能出现负数和非整数

    前后台交互功能:怎样连接前后台

    错误提示功能:在用户输入不规范等情况下提示错误信息

    3、设计实现

    用户交互功能:简单的前台页面html+css

    后台功能:

    (1)接受题目数量,前台jsp传递通过servlet跳转传递到后台,java类通过参数接收

    (2)产生四个随机数类,得保证在0到100之间,不能有负数和非整数

    (3)产生四个随机字符类,并且对个数和种类得有限制

    (4)计算类,运用Java的String中的eval方法进行计算,避免优先级判断

    (5)运用io流文件输出到一个txt文件中

    前后台连接:jsp+servlet

    错误提示功能:用前台js正则表达式进行限制提醒

    4、算法详解:

    对于优先级问题没必要去讨论,java提供了对于Sting里面的数字运算的方法,自动处理里面的优先级,eval()方法,把计算表达式转换成string进行计算出结果再输出。这是我原本的想法。接下来,想讲下我的辛酸历程。

    有一句话是理想很丰满,现实很骨感。最后我没有实现这个功能的全部,仅仅实现了它的一部分,因为在我测试运行的时候出错了。

    在这儿我纠结了将近半天,翻了各种博客,做各种测试,最后的结果是,在一到两条数据的时候是可以运算的,但当数据循环多了反而不行了,真的很懵。

    简述下关于这点的想法,引入JavaScript的 各种包,然后用eval方法。

    将每次拼接的表达式放在字符串里面。用ArrayList包容,然后遍历的去计算,计算后再用ArrayList去接收。

    之后用io类进行输出。

    5、测试运行

      1、接收题目数量和学号:通过servlet传递跳转,有点多次一举,原本是想要为了更好的用户体验。

      

      

       2、产生四个随机数;

       

       3、运算符,这点我觉得写得不错,我考虑到了每个运算符出现的概率应该相等。

        

      4.计算结果,虽然没有完全做完,但我认为我的想法是没错的。也贴一些我的运行结果。

      

    5、出题:

        

    7、io输出:

          

      

    6、满意代码片段

    敲了的代码都挺满意的。

    最满意的可能就是考虑到了运算符的出现概率和用户体验那一块。

    7、总结

      总得来说,整个敲代码的过程其实不是很难,有想法,而且做起来逻辑挺清晰的。

      但最后没有完成的原因,一是因为忙工作室和其他事情把作业拖到了最后时间不够,二是自己对于某些函数的了解程度和编码程度都还不够。

      也算是给自己一个警示吧,做一个东西得做好准备,而且得要对面临的问题又应对措施。

      在计算那一步花了很多时间还没弄出来的时候就应该换思路了,不能钻牛角尖下次。

      给自己留够时间。

    8、展示PSP

     

    任务内容

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

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

    计划

    30

    60

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

    800

    900

    开发

    200

    300

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

    300

    400

    ·         生成设计文档

    30

    30

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

    0

    0

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

    0

    20

    ·         具体设计

    30

    30

    ·         具体编码

    100

    150

    ·         代码复审

    60

    0

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

    60

    80

    报告

    30

    60

    ·         测试报告

    0

    0

    ·         计算工作量

    840

    1200

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

    0

     

     30

    关于博客的修改和补充:

              在学姐的提醒下,我对我没有完成的功能进行了再次修改,最终完成了整个项目。

              原因在我考虑除号的时候没有过多的考虑它产生结果的类型。

      找了半天终于找到了自己的问题出在了哪里,原来是在对象转int型的时候马虎大意出了问题。然后进行了修改。并且将有除号和没有除号的算式分版块进行计算。

     

     

     

  • 相关阅读:
    UV有问题?
    利用GPU实现翻页效果(分享自知乎网)
    Directx 9 VS2015环境搭建
    DirectX 读书笔记(14) Cube mapping之SkyBox[转]
    vertex shader must minimally write all four components of POSITION
    unity shader 内置变量
    Real-Time Rendering (2)
    矩阵变换:沿任意轴旋转及其推导
    Python爬虫教程-33-scrapy shell 的使用
    Python爬虫教程-32-Scrapy 爬虫框架项目 Settings.py 介绍
  • 原文地址:https://www.cnblogs.com/thomaskang/p/8642437.html
Copyright © 2011-2022 走看看