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. HDU 1203 01背包变形题,(新思路)

    题目链接: http://acm.hdu.edu.cn/showproblem.php?pid=1203 I NEED A OFFER! Time Limit: 2000/1000 MS (Java/ ...

  2. $python爬虫系列(2)—— requests和BeautifulSoup库的基本用法

    本文主要介绍python爬虫的两大利器:requests和BeautifulSoup库的基本用法. 1. 安装requests和BeautifulSoup库 可以通过3种方式安装: easy_inst ...

  3. NRF52832 能烧写代码 但是不运行 ,是因为没有烧写协议栈

    仿真进入的状态 , MOVES R0.R0 请烧写  协议栈 ,自行百度!

  4. ios宏定义学习

    宏简介: 宏是一种批量处理的称谓.一般说来,宏是一种规则或模式,或称语法替换 ,用于说明某一特定输入(通常是字符串)如何根据预定义的规则转换成对应的输出(通常也是字符串).这种替换在预编译时进行,称作 ...

  5. Redis全方位详解--数据类型使用场景和redis分布式锁的正确姿势

    一.Redis数据类型 1.string string是Redis的最基本数据类型,一个key对应一个value,每个value最大可存储512M.string一半用来存图片或者序列化的数据. 2.h ...

  6. PHP+Ajax+plupload无刷新上传头像代码

    很简单的一款PHP+Ajax+plupload无刷新上传头像代码,兼容性很好,可以直接拿来用.你可以自定义各种类型的文件.本实例中只能上传"jpg", "png" ...

  7. django的Session-10

    目录 配置储存引擎 存储在sql数据库 储存在缓存 储存在本地文件 储存在redis session操作 django需要使用一个中间价来实现 session功能, 一般情况下默认启用了该中间价 ,可 ...

  8. springboot-web进阶(三)——统一异常处理

    补充 springboot中也是一样的可以对结果进行统一格式的包装,这样也就方便了前台的统一接收处理了: 1.结果集包装类 package com.example.demo.bean; /** * 结 ...

  9. springboot快速入门(四)——数据库操作

    一.Spring-Data-Jpa的引入 先给出官方文档:https://docs.spring.io/spring-data/jpa/docs/current/reference/html/ IBM ...

  10. 20155307《网络对抗》PC平台逆向破解(二)

    20155307<网络对抗>PC平台逆向破解(二) shellcode注入 什么是shellcode? shellcode是一段代码,溢出后,执行这段代码能开启系统shell. 前期准备- ...