• 201571030312/201571030313《小学四则运算》软件工程结对项目


    一、项目源码

     https://github.com/Klausmajing/jiedui.git

    二、项目报告

    1、需求分析

    (1)由计算机从题库文件中随机选择20道加减乘除混合算式,用户输入算式答案,程序检查答案是否正确,每道题正确计5分,错误不计分,20道题测试结束后给出测试总分;

    (2)题库文件可采用实验二的方式自动生成,也可以手工编辑生成,文本格式如下:

     

    (3)程序为用户提供三种进阶四则运算练习功能选择:百以内整数算式(必做)、带括号算式、真分数算式练习;

    (4)程序允许用户进行多轮测试,提供用户多轮测试分数柱状图,示例如下:

     

    (5)程序记录用户答题结果,当程序退出再启动的时候,可为用户显示最后一次测试的结果,并询问用户可否进行新一轮的测试;

    (6)测试有计时功能,测试时动态显示用户开始答题后的消耗时间。

    (7)程序人机交互界面是GUI界面(WEB页面、APP页面都可),界面支持中文简体(必做)/中文繁体/英语,用户可以进行语种选择。

    2、涉及的变量

    //定义全局的分数
    static int score=0;
    //定义全局的value结果0
    static float currValue;
    //定义全局运算式的字符串
    static String currString;
    //定义全局时间
    static String currTime;
    //定义全局题目数

    3、核心代码

    3.1在线答题界面

    等等......

    3.2生成四则运算

    这里operation()方法是被下面的答题方法内部调用,这里是随机生成一个0-99的四则运算,并且保留一位小数,这里使用Map集合进行封装数据并返回。

    3.3登录界面

    登录界面输入用户名和密码,如果错误,则不调用exercise()方法,两栏自动清空。只有用户名密码都正确的时候,调用exercise()方法,进入答题界面。(用户名为MJ,密码为123456)

    3.4答题系统

    代码中的主要逻辑层,exercise()方法在login方法成功登陆时被调用,俭朴的UI界面。

    点击计时,系统开始计时,然后点击开始,随机生成一个四则运算式,计算出来答案后,点击暂停,输入答案,按回车(Enter)键,中间文本框显示详细信息。

    点击结束,显示详细信息,一道题对应5分,答错不扣分。

    4、结对编程

    这是第一次和小伙伴一起完成实验项目,我发现在结对编程的时候,我们可以互相帮助,互相教对方,可以得到能力上的互补。可以让编程环境有效地贯彻Design。一边编程,一边共享知识和经验,有效地在实践中进行学习。在编程中,我们相互讨论,可以更快更有效地解决问题。

    5、PSP展示

    PSP2.1

    任务内容

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

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

    Planning

    计划

    60

    100

    ·       Estimate

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

    50

    70

    Development

    开发

    600

    720

    ··       Analysis

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

    30

    40

    ·       Design Spec

    ·  生成设计文档

    20

    25

    ·       Design Review

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

    20

    30

    ·       Coding Standard

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

    30

    40

    ·       Design

      具体设计

    50

    70

    ·       Coding

      具体编码

    300

    360

    ·       Code Review

    ·  代码复审

    30

    45

    ·       Test

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

    20

    30

    Reporting

    报告

    30

    40

    ··       Test Report

    ·  测试报告

    20

    20

    ·       Size Measurement

      计算工作量

    5

    5

    ·       Postmortem & Process Improvement Plan

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

    45

     

    45

    7、评价小伙伴

         在这次结对编程的过程我收获颇多,我觉得结对编程有好有坏,但是好处远远大于的不好的地方。两个人难免会遇到意见不同的时候,关键是看此时如何协调、如何沟通、如何采纳。如果团队内部不能很好地处理这些分歧,那么非但不能提高效率,反而会拖慢工作的进程。如果团队协调得很好,那么两个人的力量是绝对大过一个人的。当然我的小伙伴还是很给力的,在实验的过程中给了我很多建议和帮助,在我没有想法的时候总是会提点我一下,令我茅塞顿开。我觉得一个人的想法始终有限,两个人或者一群人合作,说不定还能擦出思想的火花。以前都喜欢一个人闷头闷脑的敲代码,就觉得两个人想法太多太麻烦,现在看来,合作更加有效率呢。

    8、项目总结

      由于水平问题,我就直接将登录校验写死到代码中,而没有通过Mysql数据库,搭建DAO持久层和领域对象,建立数据库连接池,来动态的校验用户以及分步的进行完成。答题界面,随机生成一个四则运算式,点击计时,系统开始计时,点击开始,随机生成四则运算,当你计算出来答案后,点击暂停,填入答案,回车,下面的文本框就会显示当前计算式以及你的结果以及当前的分数。最后,当你学习答完了,点击结束,文本框会输出你的用时,总题数目,总得分。大体就这么多。还有一些细节,就是页面布局问题,比如说刚开始设置的FlowLayout流式布局的管理器,这个布局让我调了半天的文本框宽度,在花了一个小时啃了GridLayout,BorderLayout,BoxLayout,以及FlowLayout四大布局以及用法,经过我的深思熟虑,我成功的选择了将布局设置为null,我自己自定义布局。事实证明我是对的,这里的一些宽高你是不能一步到位的,这些模块之间你需要不停的调节,磨合,最后达到一个良好的效果。

     

  • 相关阅读:
    mysql DCL(数据控制语句)
    sybase 脚本建表和删除表
    mysql DML(数据操纵语句)
    delphi fastmm4 调试
    delphi class of 类引用
    DELPHI SetLocaleInfo 设置本地时间
    DELPHI 去字符串中所有空格
    SUSE 11 安装MongoDB
    suse下 登录mongodb
    DELPHI 的 {$M +} 和{$M -}
  • 原文地址:https://www.cnblogs.com/Klausmj/p/8711580.html
Copyright © 2020-2023  润新知