AloneQIan---第一次作业
小学生的噩梦
一、估计与实际
| PSP2.1 | Personal Software Process Stages | 预估耗时(分钟) | 实际耗时(分钟) |
|---|---|---|---|
| Planning | 计划 | 600 | 720 |
| • Estimate | • 估计这个任务需要多少时间 | 600 | 720 |
| Development | 开发 | 600 | 900 |
| • Analysis | • 需求分析 (包括学习新技术) | 30 | 40 |
| • Design Spec | • 生成设计文档 | 30 | 40 |
| • Design Review | • 设计复审 | 30 | 40 |
| • Coding Standard | • 代码规范 (为目前的开发制定合适的规范) | 30 | 40 |
| • Design | • 具体设计 | 60 | 70 |
| • Coding | • 具体编码 | 300 | 400 |
| • Code Review | • 代码复审 | 10 | 30 |
| • Test | • 测试(自我测试,修改代码,提交修改) | 20 | 40 |
| Reporting | 报告 | 10 | 40 |
| • Test Repor | • 测试报告 | 30 | 40 |
| • Size Measurement | • 计算工作量 | 30 | 40 |
| • Postmortem & Process Improvement Plan | • 事后总结, 并提出过程改进计划 | 20 | 40 |
| 合计 | 900 |
二、需求分析
我通过上网查百度和回忆自己的小学经历得到,小学一年级数学有如下特点:
- 学习100以内的加减法
- 100以内的比大小
经过分析,我认为,这个程序应当: - 将输入数据控制在100以内
三、设计
1、设计思路
- 要首先考虑用户输入数据在100以内
- 在其中的判断语句中是否正确
- 在不同的年级需要用什么语句去判断
- 是否可以自己生成TXT文件
- 要进行计算以及输出
2. 实现方案
- 准备工作1:先下一个QQ浏览器(具备整张网页翻译功能)
- 准备工作2:将老师的repository中的Fork项目,将其Clone至本地
- 在本地创建个人文件夹:
文件夹名称:PSP6375
源文件:MathExam6375 - 技术关键点:Random,File,BufferedWriter
四、编码
- 生成随机数Manth.random()
- 语句判断年级,符号,题目规范
- IO流写入
1. 调试日志
- 输入除法是,输出错误
解决方案:在生成数时+1 - 输入减法是,输出有负数
解决方案:判断第一个传入的数是否大于第二个数,如果小于,则符号“-”变为“+” - 输入负数时会报错
解决方案:判断是否大于0且个数不超过9999,否则重新输入 2. 关键代码
for (int i = 0; i < n ; i++) {
x = (int)(Math.random()100);//随机生成0-100的数
y = (int)(Math.random()100);
f = (int)(Math.random()*2);//随机生成0,1。0代表加号1代表减号
// 判断加法和减法 0为加法
if ( f == 0) {
System.out.println("(" + (i+1) + ")" +" " + x + "+" + y + " " + "=" + " ");
str[i] = "(" + (i+1) + ")" +" " + x + "+" + y + " " + "=" + " " + (x+y);//存入数组
}
else{
if (x-y < 0) {//若差为0减数被减数交换位置
System.out.println("(" + (i+1) + ")" +" " + y + "-" + x + " " + "=" + " ");
str[i] = "(" + (i+1) + ")" +" " + y + "-" + x + " " + "=" + " " + (y-x);//存入数组
}
else {
System.out.println("(" + (i+1) + ")" +" " + x + "-" + y + " " + "=" + " ");//若差为0减数被减数交换位置
str[i] = "(" + (i+1) + ")" +" " + x + "-" + y + " " + "=" + " " + (x-y);//存入数组
}
}
}3. 代码规范
- 常量命名全部大写,单词键用下划线隔开,力求语义表达完整,不要嫌名字长。
- 杜绝完全不规范的缩写,避免忘文不知义。
- 不要使用一个常量类维护所有常量,按常量功能进行归类,分开维护
五、测试
- 输入5 2 预计显示二年级题目
- 输入 5 1 预计显示一年级题目
- 输入10 10 提示“”程序员能力有限,高年级还未完成”
六、总结
- 在写代码的时候要考虑到用户的使用感受以及用户的需求
- 在写代码的过程中再清楚自己现在在写的是哪一步,下一步需要做什么
- 要将“分而治之”的软件工程的思想运用进去,这样会使问题简单化
AloneQIan---第一次作业的更多相关文章
- C 语言学习 第一次作业总结
第一次的作业是冯老师布置的练习题,需要在pta平台上完成.我这边看不到结果,但是透过冯老师给出的截图,同学们都还是认真的去做的.同时,我这边也布置了一个持续 3 周的作业:熟悉 git 的使用.因为后 ...
- 耿丹CS16-2班第一次作业汇总
第一次作业统计完成. 注:1.作业顺序:取最早交作业的前3名,依次拿5,2,1分,前提是作业质量较高,否则轮至下一名同学得分,其余同学得0分:2.作业情况:满10分,空一题扣2分,心得写得好的有额外加 ...
- 软件工程(QLGY2015)第一次作业小结(含成绩)
相关博文目录: 第一次作业点评 第二次作业点评 第三次作业点评 Github项目提交 github的代码提交,大部分人都只是提交了单个文件,存在几个问题 请提交完整的项目文件到github 问题:为什 ...
- 2015级软工实践k班第一次作业-准备
第一次作业-准备······ 几篇文章阅读下来发现一个事实,还是要有明确的目标,清楚自己需要做什么最为重要.然后根据目标确定需要为之所做的准备工作,考研也好,工作也罢,都是服务于自己的目标. 问题答应 ...
- java第一次作业0
lsl321 java第一次作业 #1. 本章学习总结 你对于本章知识的学习总结 本章我们学习了各种java相关文件的使用,以及码云,博客,pat等程序辅助软件,这些对于我们专业的学习有非常大的帮助, ...
- 集大1513 & 1514班 软件工程第一次作业评分与点评
谢谢大多数同学按时完成了作业,同学态度都比较端正,没有为了完成作业或者讨好老师而说一些假话空话. 很多同学选择CS之前并没有从兴趣或者擅长出发.这是一个普遍的现象,十年前我们是这样,十年后的孩子们还是 ...
- OO第一次作业总结
OO第一次学习总结 1.第一次作业:多项式加法 从未接触过java的我,在从输入输出开始学了几天后,按照C语言的思路,写出了一个与面向过程极其接近的程序. 在这个程序中,存在两个类:一个是Comput ...
- # C语言程序设计第一次作业1234
---恢复内容开始--- C语言程序设计第一次作业 1.求圆面积和周长 输入圆的半径,计算圆的周长和面积 (1)流程图 (2)测试数据及运行结果 测试数据r=3 运行结果 2.判断闰年 输入一个四位年 ...
- 构建之法助教园地第一次作业--点评<西北师范大学|李晓婷>
一 博客点评 第一次作业--准备篇:https://www.cnblogs.com/Mookiepiece/p/10464606.html#4192515 点评内容: 首先,你对电脑很感兴趣,兴趣就是 ...
- Android第一次作业
Android第一次作业——天气预报界面 成果图: 思路: 运用RelativeLayout布局管理器来设计整体布局,在其中插入需要的图片和文本框,并设置其字体格式和背景.最后用HorizontalS ...
随机推荐
- MHA实践操作
1.MHA部署解读: 1.1MHA Manager可以部署在一台slave上.MHA Manager探测集群的node节点,当发现master出现故障的时候,它可以自动将具有最新数据的slave提升为 ...
- 渲染引擎,HTML解析
这是how browser to work 的翻译 转自:携程设计委员会 渲染引擎 渲染引擎的职责是……渲染,也就是把请求的内容显示到浏览器屏幕上. 默认情况下渲染引擎可以显示HTML,XML文档以及 ...
- MAC mojave版本系统 破解软件
MAC mojave版本系统 破解软件 1 :Adobe Photoshop CC 2019.0.1 Mac中文破解版 2 :Office 2019 16.19 Mac中文破解版 3 :Paralle ...
- 关于mysql-mybatis批量添加
mybatis怎么实现一次插入多条数据 以后从新浪博客转到博客园这边来记录把. 这篇地址:http://blog.sina.com.cn/s/blog_13e9702640102ysho.ht ...
- Yii2 查询条件
Model::find() 字符串格式,例如:'status=1' 哈希格式,例如: ['status' => 1, 'type' => 2] 操作符格式,例如:['like', 'nam ...
- Hadoop源码学习笔记之NameNode启动场景流程一:源码环境搭建和项目模块及NameNode结构简单介绍
最近在跟着一个大佬学习Hadoop底层源码及架构等知识点,觉得有必要记录下来这个学习过程.想到了这个废弃已久的blog账号,决定重新开始更新. 主要分以下几步来进行源码学习: 一.搭建源码阅读环境二. ...
- 用uliweb 创建项目
创建项目 ***@Android:~# uliweb makeproject ablog ***@Android:~# cd ablog/ ***@Android:~/ablog# ls apps f ...
- django学习笔记(1)
Django 特点 强大的数据库功能 用python的类继承,几行代码就可以拥有一个丰富,动态的数据库操作接口(API),如果需要你也能执行SQL语句 自带的强大的后台功能 几行简单的 ...
- CF1017G The Tree 树链剖分
CF1017G The Tree LG传送门 树链剖分好题. 乍一看还以为是道沙比题,然后发现修改操作有点不一样. 但是如果你对基本操作还不太熟练,可以看看我的树链剖分总结 有三个操作: 从一个点往下 ...
- 实现后门程序以及相应的rootkits,实现对后门程序的隐藏
iptables的一些命令: a. a) 使用规则实现外网不能访问本机,但是本机主动发起的连接正常进行. sudo iptables –A INPUT -p tcp —tcp —syn -j D ...