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. 解决yum安装 openssl-devel时产生的Multilib version problems found错误(转)

    Error: Multilib version problems found. This often means that the root cause is something else and m ...

  2. oracle什么时候须要commit

    今天在oracle的SQL plus 中运行了删除和查询操作,然后在PL/SQL中也运行查询操作,语句一样,结果却不一样,让我大感郁闷,后来才突然想到可能是两边数据不一致造成的,可是为什么不一致呢,就 ...

  3. Eclipse开发工具常用快捷键的使用技巧

      Eclipse作为软件开发的常用工具,被很多的人所欢迎,尤其是丰富的快捷键,可以极大的提高编码的效率,下面将常用的快捷键做了整理,便于大家学习和使用. Eclipse常用快捷键 1代码提示 Alt ...

  4. 在windows上安装不同(两个)版本的Mysql数据库

    1.起因: 需要导入一个sql文件,发现死活导不进去.当执行到这一句时,就有问题.经过一番搜索,原来是我的数据库版本(原先Mysql版本5.5)低了,而支持该语句的版本应该是至少要5.7.那我索性就去 ...

  5. 关于:url、视图函数、模板3者之间参数传递的理解

    url获取参数的途径有2个: 1.url中的变量,设置在URL地址中. 2.url中添加字典,设置在URL地址外. urlpatterns = [ path('<year>/<int ...

  6. 大数据入门第二天——基础部分之zookeeper(下)

    一.集群自启动脚本 1.关闭zk [root@localhost bin]# jps Jps QuorumPeerMain [root@localhost bin]# //kill或者stop都是可以 ...

  7. MacOS下netstat和lsof使用的若干问题

    [-= 博客目录 =-] 1-相关说明 1.1-博客介绍 1.2-netstat和lsof 2-学习过程 2.1-netstat 2.2-lsof 2.3-netstat和lsof区别和关联 3-资料 ...

  8. 02-web框架

    1 while True: print('server is waiting...') conn, addr = server.accept() data = conn.recv(1024) prin ...

  9. 4008: [HNOI2015]亚瑟王

    4008: [HNOI2015]亚瑟王 链接 分析: 根据期望的线性性,直接求出每张牌出现的概率,最后乘以攻击力就是答案. 每张牌出现的概率只与它前面的牌有关,与后面的没有关系,于是按顺序考虑每张牌. ...

  10. jQuery中attr()函数 VS prop()函数

    http://www.365mini.com/page/jquery-attr-vs-prop.htm 在jQuery中,attr()函数和prop()函数都用于设置或获取指定的属性,它们的参数和用法 ...