ME.kkkK

一、预估与实际

PSP2.1 Personal Software Process Stages 预估耗时(分钟) 实际耗时(分钟)
Planning 计划 50 40
• Estimate • 估计这个任务需要多少时间 500 750
Development 开发 50 60
• Analysis • 需求分析 (包括学习新技术) 40 55
• Design Spec • 生成设计文档 30 40
• Design Review • 设计复审 30 40
• Coding Standard • 代码规范 (为目前的开发制定合适的规范) 30 35
• Design • 具体设计 150 200
• Coding • 具体编码 150 200
• Code Review • 代码复审 50 35
• Test • 测试(自我测试,修改代码,提交修改) 20 15
Reporting 报告 30 20
• Test Repor • 测试报告 20 20
• Size Measurement • 计算工作量 30 20
• Postmortem & Process Improvement Plan • 事后总结, 并提出过程改进计划 20 20
合计 1050

二、需求分析

我通过网络查询的方式了解到,小学一年级数学有如下的几个特点:

  • 特点1:差或和必须是小于100的自然数
  • 特点2:两个加数都小于100的自然数
  • 特点3:被减数和减数也是小于100的自然数

经过分析,我认为,这个程序应当:

  • 使用的数字小于100
  • 减速要小于被减数
  • 和或差都是小于100的自然数

三、设计

1. 设计思路

实验1:

  • 先确定输入的值是否符合题意
  • 然后设计加减法的函数
  • 带入一些特殊的数字是否成立

    实验2:
  • 在加减法的函数中添加乘除法
  • 带入一些特殊的数字是否成立

2. 实现方案

具体实现的步骤

  • 准备工作:先在Github上创建仓库,克隆到本地...
  • 技术关键点:在函数接口和内部类的规则设定

四、编码

  • 先确定“n”值的取值范围,在确定加数,减数,被减数,除数,乘数都要小于100的自然数
  • 和,差,积,商都小于100的自然数

1. 调试日志

记录编码调试的日志,请记录下开发过程中的 debug 历程

  • 字符串无法写入到txt文本,用byte转出字节流写入

  • 数组越界,扩大数组

  • 无法用命令行直接传参,用args数组解决

  • 在代码的什么位置,代码出现了什么问题,问题会导致什么结果,怎么解决的

2. 关键代码


private static void generatingTopic(int len,int grade) {
for (int i = 1; i <= len; i++) { int a = (int) (Math.random() * 100);
int b = (int) (Math.random() * 100);
int n = 0;
if(n%1!=0)
System.out.println("error"+"输入的值必须是正整数");
if(n<0 || n==0)
System.out.println("error"+"输入的值必须是正整数");
// 获取两个符合要求的数
int index = (1 == grade) ? ((int) (Math.random() * 10)) % 2 : ((int) (Math.random() * 10)) % 4;
String symbol = Operator[index]; //确保和不超过100
while(0 == index && a + b >= 100) {
a = (int) (Math.random() * 100);
b = (int) (Math.random() * 100);
} // 计算结果
int sum = 0;//和
int job = 0;//差
int merchant = 0;//商
int ji = 0;//积
int remainder = 0; // 余数

3. 代码规范

请给出本次实验使用的代码规范:

  • 第一条:编码的字母大小写需要规范
  • 第二条:大小括号的添加,中英文输出的符号
  • 第三条:每个定义的函数和需要输出的函数

五、测试

实验一:

输入:0 输出:请输入参数(1为起始)!

输入:1 1 输出:至多输入1个参数!

输入:99......999 输出: 输入的第一个参数数值太大!

输入:2ab3 输出:请输入正整数!

输入:a 输出:请输入正整数!

实验二:

输入:1 输出: 请输入2个参数!

输入:1 2 3 输出:最多两个参数!

输入:100000000 1 输出:输入的第一个参数数值太大!

输入:a a 输出:请输入正整数!

输入:2a 1 输出:请输入正整数!

输入:0 2 输出:请输入参数(1为起始)!

输入:10 3 输出:第二个参数请输入1或2!

六、总结

一 开始看到这个题目的时候一点思路都没有,感觉是自己大一大二给自己挖的坑太大了,所以根本一点想法都没有,但是还是想办法想将这一份作业完成,一开始寻求百度的力量但是百度的提醒比较抽象不具体于是和舍友以及问了班级里java编程的功力强的人的帮助,然后合理的参考别人提供的方法,最后勉勉强强的完成了这份作业,希望下次可以做得更好

ME.kkkK的更多相关文章

  1. MElv2.kkkK

    MElv2.kkkK 一.预估与实际 PSP2.1 Personal Software Process Stages 预估耗时(分钟) 实际耗时(分钟) Planning 计划 • Estimate ...

  2. kkkK的随笔

    自我介绍 学号:211606310 姓名:柯伟敏 爱好:篮球,足球 最爱的菜:4堂的饺子 最想说的话:一切都是最好的安排 初入大学 -------------------- 选择 选择软件工程这个专业 ...

  3. kkkk

    monkey -p com.alfl.www  -v -v -v  --throttle 50 --pct-touch 30 --pct-motion 15 --pct-nav 15 --pct-ma ...

  4. 缓存、队列(Memcached、redis、RabbitMQ)

    本章内容: Memcached 简介.安装.使用 Python 操作 Memcached 天生支持集群 redis 简介.安装.使用.实例 Python 操作 Redis String.Hash.Li ...

  5. 编写高质量代码:改善Java程序的151个建议(第6章:枚举和注解___建议88~92)

    建议88:用枚举实现工厂方法模式更简洁 工厂方法模式(Factory Method Pattern)是" 创建对象的接口,让子类决定实例化哪一个类,并使一个类的实例化延迟到其它子类" ...

  6. Python 【第六章】:Python操作 RabbitMQ、Redis、Memcache、SQLAlchemy

    Memcached Memcached 是一个高性能的分布式内存对象缓存系统,用于动态Web应用以减轻数据库负载.它通过在内存中缓存数据和对象来减少读取数据库的次数,从而提高动态.数据库驱动网站的速度 ...

  7. 缓存、队列(Memcached,Redis,rabbitMQ)

    一.Memcached Memcached 是一个高性能的分布式内存对象缓存系统,用于动态Web应用以减轻数据库负载.它通过在内存中缓存数据和对象来减少读取数据库的次数,从而提高动态.数据库驱动网站的 ...

  8. memcached

    Memcached 是一个高性能的分布式内存对象缓存系统,用于动态Web应用以减轻数据库负载.它通过在内存中缓存数据和对象来减少读取数据库的次数,从而提高动态.数据库驱动网站的速度.Memcached ...

  9. 2016 Multi-University Training Contest 1 F.PowMod

    PowMod Time Limit: 3000/1500 MS (Java/Others)    Memory Limit: 262144/262144 K (Java/Others)Total Su ...

随机推荐

  1. P1120 小木棍 [数据加强版]

    题目描述 乔治有一些同样长的小木棍,他把这些木棍随意砍成几段,直到每段的长都不超过50. 现在,他想把小木棍拼接成原来的样子,但是却忘记了自己开始时有多少根木棍和它们的长度. 给出每段小木棍的长度,编 ...

  2. 为Python加入默认模块搜索路径

    为Python加入默认模块搜索路径 方法一:函数加入 1) import sys 2) 查看sys.path 3) 加入sys.path.append("c:\\") 方法二:改动 ...

  3. cmd导出oracle数据库数据

    今天弄了下oracle数据库导入导出命令exp,imp 首先这个命令是在cmd直接执行,不是sqlplus登录后再执行,见下图: 再次,注意结尾不能有分号(;): exp scott/scott@su ...

  4. 部署MongoDB复制集(副本集)

    环境 操作系统:Ubuntu 18.04 MongoDB: 4.0.3 服务器 首先部署3台服务器,1台主节点 + 2台从节点 3台服务器的内容ip分别是: 10.140.0.5 (主节点) 10.1 ...

  5. PHP分行打印数组-php输出数组方法大全

    我们都知道php有两种方式可以打印数组 $arr = array( "a"=>"orange", "b"=>"bana ...

  6. 深入理解PHP 数组之count 函数

    count()PHP count() 函数用于计算数组中的单元数目或对象中的属性个数,返回数组的单元个数或对象中的属性个数.语法:int count( mixed var [, int mode] ) ...

  7. VIM - tab 相关的简单配置

    1. 概述 vim 是强大的文本编辑器 使用 vim 前, 需要做些简单配置, 来让 vim 更符合自己的操作习惯 想看配置项的, 直接到最后 2. 准备 安装 vim 略 配置文件 位置 /etc/ ...

  8. 大数据入门第一天——基础部分之Linux基础(环境准备与先导知识)

    一.Linux环境安装 1.VM的安装 参考Linux环境搭建随笔:http://www.cnblogs.com/jiangbei/p/7248054.html 2.CentOS的安装 同参考上述随笔 ...

  9. 20145234黄斐《java程序设计》实验四—Android程序设计

    实验过程: JDK.Android Studio的安装: 参见卢晓明博客:http://www.cnblogs.com/lxm20145215----/p/5444207.html 注意事项:解决Fe ...

  10. PostgreSQL内存结构图示

    磨砺技术珠矶,践行数据之道,追求卓越价值 回到上一级页面:PostgreSQL内部结构与源代码研究索引页    回到顶级页面:PostgreSQL索引页 作者:高健@博客园 luckyjackgao@ ...