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. cocoaPods 创建自己的依赖库

    1.先在github上创建一个仓库 和一般创建一样,就是证书一定要选,我选的是MIT,不要问我因为啥, 我也不知道, 哈哈 2.check到本地或者本地创建,反正最后都要上传到这个仓库,以个人习惯吧 ...

  2. 中国气象网 气象数据开放平台 API用法 (Android)

    因为要做个天气应用.须要找个天气的API.上网上搜了下都是那几个,并且基本都过时了.百度有个天气API,只是貌似仅仅能提供当天的.网上提到的中国气象接口的文章,大都用的时旧API,有的被封了,有的永远 ...

  3. 浅谈基于FormsAuthentication的认证

    一般情况下,在我们做访问权限管理的时候,会把用户的正确登录后的基本信息保存在Session中,以后用户每次请求页面或接口数据的时候,拿到 Session中存储的用户基本信息,查看比较他有没有登录和能否 ...

  4. Mybatis联合查询记录,左连接参数操作

    公司业务需求要做个列表的排序 而实际排序的字段不再本库中,需要跨库去拿到字段,因为是微服务体系架构,不可能Left join跨库的表,所以决定调用一次跨服务的API拿到排序相关的对象,里面包含需要排序 ...

  5. HTML5 新增内容

    1. 新增标签 音频 <audio> <source src=""/> </audio> 视频 <video> <source ...

  6. day 86 Vue学习之五DIY脚手架、webpack使用、vue-cli的使用、element-ui

      本节目录 一 vue获取原生DOM的方式 二 DIY脚手架 三 vue-cli脚手架的使用 四 webpack创建项目的玩法 五 element-ui的使用 六 xxx 七 xxx 八 xxx 一 ...

  7. 在vivado中自定义编辑器

    在 Tools - Options - Text Editor 中选择 Custom Editor 这里我用的gvim,在Editor文本框中输入: C:/Vim/vim80/gvim.exe --r ...

  8. 2017-2018-1 20155220 《信息安全系统设计基础》课下实践——实现mypwd

    学习pwd命令 输入pwd命令 于是man 1 pwd查看pwd详细 然后查看pwd实现需要的系统调用man -k; grep 在这发现了一个功能相同的内核函数getcwd 到这步就很简单了,先查看这 ...

  9. OSG漫游到指定坐标点位置

    OSG中从当前场景位置漫游到指定点坐标位置,osg中场景的视口状态包括如下参数: 1.视点的位置 2.参考点的位置,该点通常为场景中的中心轴上的点 3.视点向上的方向向量 ( const osg::V ...

  10. 【JLOI2013】卡牌游戏

    题面 题解 概率$dp$ 设$f[i][j]$表示还剩$i$个人时,第$j$个人获胜的概率. 边界$f[1][1] = 1$ 转移: 枚举庄家抽到的卡牌$k$,得到这一轮被淘汰的位置$c$. 可以知道 ...