zoukankan      html  css  js  c++  java
  • 软件工程2017第2次作业—— 个人项目:四则运算题目生成程序(基于控制台)

    Deadline:2017-12-29(周五) 21:00

    :以下内容参考 武汉大学高级软件工程课程博客 )

    1、阅读

    阅读《构建之法》第二章至第三章的内容,并在下方作业里体现出阅读后的成果。特别是第2章中的个人软件开发流程(PSP)及单元测试。

    2、题目描述

    从《构建之法》第一章的 “程序” 例子出发,完成一个能自动生成小学四则运算题目的命令行 “软件”,满足以下需求:

    1. 参与运算的操作数(operands)除了100以内的整数以外,还要支持真分数的四则运算,例如:1/6 + 1/8 = 7/24。操作数必须随机生成
    2. 运算符(operators)为 +, −, ×, ÷ (如运算符个数固定,则不得小于3)运算符的种类和顺序必须随机生成
    3. 要求能处理用户的输入,并判断对错,打分统计正确率。
    4. 使用 -n 参数控制生成题目的个数,或通过用户交互过程确定题目个数,例如执行下面命令将生成5个题目
      • (以C/C++/C#为例) calgen.exe -n 5
      • (以python为例) python3 calgen.py -n 5

    附加功能(算附加分)

    1. 运算符个数随机生成(考虑小学生运算复杂度,范围在1~10)
    2. 设计并实现一种合理的根据题目难度分配不同分值的方案
    3. 设计并实现一种计时机制,能够实现超时停止答题,或者根据答题用时调整分数
    4. 防止随机生成的题目发生重复
    输出示例1

    基本功能

    3、要求与说明

    • 【编程语言】不限
    • 【项目设计】分析并理解题目要求,独立完成整个项目,并将最新项目发布在Github上。
    • 【项目测试】使用单元测试对项目进行测试,并使用插件查看测试分支覆盖率等指标。
    • 【源代码管理】在项目实践过程中需要使用Github管理源代码,代码有进展即签入Github。签入记录不合理的项目会被抽查询问项目细节。
    • 【博客发布】按照要求发布博客,利用在构建之法中学习到的相关内容,结合个人项目的实践经历,撰写解决项目的心路历程与收获。博客与Github项目明显不符的作业将取消作业成绩。

    4、博文规范

    1. 在文章开头给出Github项目地址。(1分)

    2. 在开始实现程序之前,PSP表格(参加附录1)记录下你估计将在程序的各个模块的开发上耗费的时间。(1分)

    3. 解题思路描述。即刚开始拿到题目后,如何思考,如何找资料的心路历程。(3分)

    4. 设计实现过程。设计包括代码如何组织,比如会有几个类,几个函数,他们之间关系如何,关键函数是否需要画出流程图?(5分)

    5. 代码说明。展示出项目关键代码,并解释思路与注释说明。(4分)

    6. 测试运行。程序必须是可运行的,展示出程序运行的截图。PS:如果有扩展需求或者更高级的需求,请秀出来,有额外加分。(3分)

    7. 在你实现完程序之后,在PSP表格记录下你在程序的各个模块上实际花费的时间。(1分)

    8. 项目小结。结合PSP表格总结项目的成败得失,分享经验,总结教训。(2分)

    博客参考模板 http://www.cnblogs.com/vertextao/p/7469789.html

    5、评分规则

    本次个人项目分数由两部分组成,分别是

    1. 博客 — 20分,分数组成在博文规范中。
    2. 程序 — 40分(附加分40分)
      • 10分为源代码管理评分,该评分主要通过源代码管理中的commit注释信息,增量修改的内容,是否有运行说明等给分。
      • 10分为正确性评分,按要求输入参数后,程序能够正确运行。
      • 20分为功能评分,完全满足需求1-4。
      • 附加分40分,实现附加需求1-4各得10分
    3. 注意事项:
    • 按时间完成并提交——正常评分
    • 晚交一周以内——0分
    • 晚交一周以上或不交——倒扣本次作业分数
    • 抄袭——倒扣2倍本次作业分数【严禁代码与博客等一切形式的抄袭!博客园支持了对博客的查重功能,我们也有专用的代码查重系统进行代码查重。请各位同学千万不要触碰底线,勿谓言之不预也!】

    附录

    1. PSP2.1表格

    PSP2.1

    Personal Software Process Stages

    预估耗时(分钟)

    实际耗时(分钟)

    Planning

    计划

    · Estimate

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

    Development

    开发

    · Analysis

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

    · Design Spec

    · 生成设计文档

    · Design Review

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

    · Coding Standard

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

    · Design

    · 具体设计

    · Coding

    · 具体编码

    · Code Review

    · 代码复审

    · Test

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

    Reporting

    报告

    · Test Report

    · 测试报告

    · Size Measurement

    · 计算工作量

    · Postmortem & Process Improvement Plan

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

    合计

    2. 参考资料

  • 相关阅读:
    2-6 R语言基础 缺失值
    2-5 R语言基础 factor
    2-4 R语言基础 列表
    2-3 R语言基础 矩阵和数组
    2-2 R语言基础 向量
    【转】Python操作MongoDB数据库
    Python程序的执行原理
    数据分析的职业规划
    自定义菜单 开发 服务器繁忙
    微信自定义菜单
  • 原文地址:https://www.cnblogs.com/zhiyonghe/p/8033052.html
Copyright © 2011-2022 走看看