个人作业-四则运算生成

  软工的第一次作业在规定时间内并没有完成所有要求的任务还是比较遗憾,预计还需要2-3天才能完善。

  • 实验之前估计耗费时间

PSP2.1


Personal Software Process Stages


Time


Planning


计划


· Estimate


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


3-4days


Development


开发


· Analysis


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


10h


· Design Spec


· 生成设计文档


2h


· Design Review


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


1h


· Coding Standard


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


2h


· Design


· 具体设计


12h


· Coding


· 具体编码


12h


· Code Review


· 代码复审


4h


· Test


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


4h


Reporting


报告


· Test Report


· 测试报告


2h


· Size Measurement


· 计算工作量


4h


· Postmortem & Process Improvement Plan


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


3h

 
合计

  • 实际的时间是这样的:

PSP2.1


Personal Software Process Stages


Time


Planning


计划


· Estimate


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


4-5days


Development


开发


· Analysis


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


4h


· Design Spec


· 生成设计文档


3h


· Design Review


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


0h


· Coding Standard


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


1h


· Design


· 具体设计


5h


· Coding


· 具体编码


20h


· Code Review


· 代码复审


0h


· Test


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


2h


Reporting


报告


· Test Report


· 测试报告


1h


· Size Measurement


· 计算工作量


0h


· Postmortem & Process Improvement Plan


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


1h

 
合计

可以看得出来,整体时间上面差不太多,实际的时间甚至更少一些,这就是我为什么没有完全实现所有功能的主要原因,这也是我自己在之后的收获中要剖析的一部分。

  • 改进程序性能

  我的程序写得很仓促,实际上我认为自己还没有到改进性能的进度,鉴于我还处于完善功能阶段。所以,并没有性能分析的图。

  但是我的程序确实经过了几个过程。

  由于开始得仓促,我并没有在纸上或者脑中进行非常详细的模拟,所以经过了C++面向过程-》C++面向对象-》C#面向对象的过程,基本上可以算是返工了2次。

  • 测试用例&正确性

  我的程序分散性不够,测试用例并没有实际操作过,但是个人想到一些用例:

  1.( 9 - 5 ) - ( 1 - 3 ) =  //针对过程中不能出现负数

  2. 1‘1/2 * 2‘3/5 = //针对带分数的乘法

  3. 1‘1/2 / 2‘3/5 = //针对带分数的除法

  4. ( 3 ) + 4 =

  5.  ( 3 + 4 ) * (5 - 6 ) =

  6.  1/2 * 3/9 + 6/7 * 2/3 =

  7.  1 - 2 - 3 + 9 =

  8.  7 / 4 =

  9. 1 + 3 + 4 * 5 =

  10.  9 =

  至于正确性,我还是介绍一下自己程序的目前情况吧

  已经实现的有:
    ·生成规定数目和范围和运算表达式
    ·生成运算表达式的答案
  待实现的有:
    ·产生不重复的随机数的问题
    ·将生成的表达式和答案放入.txt 文件中
    ·对于做出的题进行批改
    ·更多的样例测试运算答案的准确性

   预计还需要的完善时间:2-3天

  程序目前的一些特点:
    ·数字有3中类型:自然数、真分数、带分数,为了方便起见,三者的随机比例为4:2:1
    ·加括号随机策略:对每一个运算符都进行都进行判断是否加括号,数组计数进行,加一个括号相应位置上数字加1,然后按照单双数决定,单数加括号双数不加括号。
    ·输入,第一个数是题目的个数,第二个数是题目中数字的范围

  • 我的收获

  1)不要妄自估计时间

    我的个人作业准确地说是从周日开始的,因为我在很早之前报名了周六的TOEFL考试,使得我的开学第一周都在学习英语的过程中而无暇估计其他。而报名考试这一决定现在看来有点草率,因为自己妄自估计时间,认为开学第一周还在调整步入正轨的过程中,然而事实并不是这样。在软件工程中时间更是重要。

  2)先收集资料再着手

    信息的重要性不是第一次知道,但是在时间紧迫的条件下确实做出了一些冲动的事情。所以,重要的事情说三遍:信息!信息!信息!尽管我真正做作业的时间只有4天左右,但是我认为自己本应该做的更好。这次的不完整很大程度上跟之前的2次返工有很大的关系。我应该先调查清楚,这次的作业适合用什么语言、什么结构,更重要的是详尽的设计,这样可以避免走很多弯路。放到软件工程中,就是在工程进行前一定要做好足够的调研和设计准备工作。

  3)模块化思维

    这次的作业中还有一点做的不好的地方,就是分块。个人体会软工应该是遵从这种将需求分类、任务分阶段的模式。不要为了整体的全面而放弃牺牲掉单独的需求的独立性。这次的需求,应该是生成表达式+根据表达式算出答案+批改;但是由于我的仓促,误将生成表达式和生成答案放在了一起,这使得单独功能测试异常困难(当然了我也没有时间测试),可是这对于一个工程来说是灾难性的。

时间: 2024-10-12 19:10:49

个人作业-四则运算生成的相关文章

软件工程结对编程第2次作业 - 图形界面四则运算生成工具

图形界面的四则运算生成工具 一个简单的图形界面四则运算生成工具 by Linaria with ?? 环境 操作系统:Windows 10 语言:C++ / XML 集成开发环境:Visual studio 2017 界面 主界面 关于页面 界面设计基于开源UI库 duilib 代码实现 全部代码托管在Coding 题目生成 int PrintQuestions(int amount, int symbolCount, int maxNumber, bool haveBrackets, bool

第一次作业——四则运算小程序

这是第一次作业,而且是个人项目,说实话一开始得到作业还是很紧张的.虽然题目比较简单,但是由于自身动手能力很差,所以还是慌得要死. 经过思考和审题,我渐渐有了思路.四则运算主要的难点在于选取数是否是随机数而且是否能保证整数相除能否除尽. 一开始关于选取数是否随机我很苦恼,因为从前写程序变量基本都是自己赋值,没想到怎么随机取数.后来经过同学的点拨,我想到了随机选取函数.比如十以内的四则运算就将0-9赋给a1 再加1就变成1-10了.而保证除尽的问题也很快想到了解决方案,只需要添加一个判断两数相除记过

四则运算生成

1 #include <stdio.h> 2 #include <stdlib.h> 3 #include <time.h> 4 main(){ 5 char i; 6 int a,b,c,d,e,f,g,n,m; 7 printf("四则运算\n"); 8 printf("1.开始\n"); 9 printf("2.退出\n") ; 10 printf("请选择:\n"); 11 scan

结对作业——四则运算 Part3. 对于结对编程的总结与思考

结对作业--四则运算 Part3. 对于结对编程的总结与思考 PB15061303 刘梓轩PB16061489 艾寅中 GITHUB 地址 戳这里 目录 Part 1. Core代码编写部分 Part 2. 封装与对接相关问题 Part 3. 对于结对编程的总结与思考 关于结对 View:(From 艾中) 不得不说,结对编程给笔者带来了一次全新的编程体验.就领航员与驾驶员的分工而言,刘承担了生成和计算的大部分任务,笔者(艾)负责了显示和输出部分的函数. 首先我作为领航员的时候,实际上是有点懵的

软件工程项目之二:结对编程——四则运算生成计算程序

0x01 :简介 本次的编程任务是完成一个具有UI界面的,具备四则运算生成.计算.判断对错功能的程序.本次程序使用C#语言编写,用时为2周. 0x02 :软件工程和PSP表格记录 PSP 2.1 Persinal Software Process Stages Time(Estimated) Time(Real) Planning 计划     Estimate 估计这个任务需要多少时间 24h 36h Development 开发     Analysis 需求分析(包括学习新技术) 8~10

软件工程启程篇章:C#和四则运算生成与运算

0x01 :序言 I leave uncultivated today, was precisely yestoday perishes tomorrow which the person of the body implored “看不清楚的时光印痕,像是泛黄的底片,明明还记得那个故事,却忘了故事里的风月”,不知如今因为生成规则.词法排序或效率而争执地面红耳赤的少年们,多少岁月走过重新翻阅看着七零八落的注释和代码段,是否只得慨叹岁月这把最锋利的杀猪刀,然而,即便最终能停留在代码段的注释行不过寥

软件工程结对作业 四则运算界面设计

软件工程结对作业 四则运算界面设计 康鑫  PB16060203 娄雨禛  PB16060356 一.项目分析 二.进度规划与完成情况 三.主要函数 四.简单的数据测试 五.编程困惑与心得 原文地址:https://www.cnblogs.com/RainLou/p/8735480.html

结对作业——随机生成四则运算

结对作业 UI 第三组 朱池苇 PB16150206 刘鼎乾 PB16070837 Github 地址: 项目简介 这次软件工程结对项目为制作一个给小学生用的四则运算出题软件,然后我们抽到的是UI组,也就是负责人机交互--随机生成四则运算--使用Core组封装好的dll模块. 需求分析 对上述各属性参数(生成题目的数量,操作数的数量,题目及答案中的数值的范围--)进行设置 调用Core模块得到题目和运算结果,显示题目,接受输入,并能判断答案是否正确 增加"倒计时"功能,每个题目必须在2

第一次作业-自动生成四则运算的题目

<一>网上借鉴源代码,源代码地址:http://www.yaoguangkeji.com/a_nkmXDZo3.html 1.运行结果截图: 2.运行效果分析:该程序可以自己选择生成加减乘除的题目,可以实现查看答案和做下一题目的功能,但是不能支持人为输入答案,代码太冗余,而且效率低,可读性差. <二>修改后的代码,github:https://github.com/Meihh/sp-first/tree/master 1.修改后的代码代码更加简洁,在前一个项目代码实现的功能下还可以