MElv2.kkkK
MElv2.kkkK
一、预估与实际
| PSP2.1 | Personal Software Process Stages | 预估耗时(分钟) | 实际耗时(分钟) |
|---|---|---|---|
| Planning | 计划 | ||
| • Estimate | • 估计这个任务需要多少时间 | 20 | 20 |
| Development | 开发 | ||
| • Analysis | • 需求分析 (包括学习新技术) | 50 | 60 |
| • Design Spec | • 生成设计文档 | 30 | 40 |
| • Design Review | • 设计复审 | 20 | 20 |
| • Coding Standard | • 代码规范 (为目前的开发制定合适的规范) | 20 | 20 |
| • Design | • 具体设计 | 30 | 60 |
| • Coding | • 具体编码 | 600 | 650 |
| • Code Review | • 代码复审 | 20 | 20 |
| • Test | • 测试(自我测试,修改代码,提交修改) | 30 | 40 |
| Reporting | 报告 | 30 | 40 |
| • Test Repor | • 测试报告 | 20 | 25 |
| • Size Measurement | • 计算工作量 | 10 | 10 |
| • Postmortem & Process Improvement Plan | • 事后总结, 并提出过程改进计划 | 10 | 10 |
| 合计 | 1015 |
二、需求分析
我通过上网百度的方式了解到,四则运算数学有如下的几个特点:
- 要判断数的大小是否可以用于计算
- 要注意除数要是大于0的自然数
- 要注意判断结果不能有负数
- 要运用加括号
三、设计
1. 设计思路
- 计算符号判断
- 生成随机数
- 生成随机算式
- 计算最终的结果
- 将结果放入文本中
2. 实现方案
写出具体实现的步骤
比如:
- 准备工作:先在Github上创建仓库,克隆到本地...
- 技术关键点:如何判断符号和添加括号
四、编码
1. 调试日志
- 计算符号判断,生成随机数
- 把符号数字分两个集合
- 利用遍历计算结果
- 将答案打印到文本
2. 关键代码
private static void calculate() {
LinkedList<String> mList=new LinkedList<>();
String[] postStr=sr.toString().split(" ");
for (String s:postStr) {
if (isOperator(s)){
if (!mList.isEmpty()){
int N1=Integer.valueOf(mList.pop());
int N2=Integer.valueOf(mList.pop());
if (s.equals("/") && N1==0){
answer="wrong";
sr.setLength(0);
return;
}
if (s.equals("/")&& (N2%N1!=0)){
answer="wrong";
sr.setLength(0);
return;
}
if (s.equals("-")&& N2<=N1){
answer="wrong";
sr.setLength(0);
return;
}
int newNum=cal(N2,N1,s);
mList.push(String.valueOf(newNum));
}
}
else {
//数字则压入栈中
mList.push(s);
}
}
if (!mList.isEmpty()){
answer=mList.pop();
}
sr.setLength(0);
}
3. 代码规范
请给出本次实验使用的代码规范:
- 第一条驼峰式风格且首字母大写
- 第二条单行字符数限制不超过120个
- 第三条手动处理异常
并人工检查代码是否符合规范
五、测试
|java MathExam6301 1 1 |查找不到-n或者-grade
|java MathExam6301 -n 1 -grade 5 |输入年级应在一到三年级
|java MathExam6301 -n 1000000 -grade 1 |输入题目数量应该在1~1000
|java MathExam6374 -n 100 -grade 2 |请严格按照格式输入
|java MathExam6374 -grade 5000 -, 1 |请严格按照格式输入
六、总结
这次的作业明显比第一次更加艰难,无论是过程还是结果都非常让人煎熬,过程中出现很多难题,如何利用括号,如何判定括号里的值的正负性,如何解决运行不了的问题,一个个问题接种而来,第一次觉得自己有心无力,虽然最后有些问题得到了解决但是还是十分的困难,这次给自己打个60分吧!真的自己基础太差了,很有必要再课余时间加深自己的编辑水平,这次还是要感谢队友和身边的大神不然一个人根本无法解决这些问题,再接再厉吧!

MElv2.kkkK的更多相关文章
- ME.kkkK
ME.kkkK 一.预估与实际 PSP2.1 Personal Software Process Stages 预估耗时(分钟) 实际耗时(分钟) Planning 计划 50 40 • Estima ...
- kkkK的随笔
自我介绍 学号:211606310 姓名:柯伟敏 爱好:篮球,足球 最爱的菜:4堂的饺子 最想说的话:一切都是最好的安排 初入大学 -------------------- 选择 选择软件工程这个专业 ...
- kkkk
monkey -p com.alfl.www -v -v -v --throttle 50 --pct-touch 30 --pct-motion 15 --pct-nav 15 --pct-ma ...
- 缓存、队列(Memcached、redis、RabbitMQ)
本章内容: Memcached 简介.安装.使用 Python 操作 Memcached 天生支持集群 redis 简介.安装.使用.实例 Python 操作 Redis String.Hash.Li ...
- 编写高质量代码:改善Java程序的151个建议(第6章:枚举和注解___建议88~92)
建议88:用枚举实现工厂方法模式更简洁 工厂方法模式(Factory Method Pattern)是" 创建对象的接口,让子类决定实例化哪一个类,并使一个类的实例化延迟到其它子类" ...
- Python 【第六章】:Python操作 RabbitMQ、Redis、Memcache、SQLAlchemy
Memcached Memcached 是一个高性能的分布式内存对象缓存系统,用于动态Web应用以减轻数据库负载.它通过在内存中缓存数据和对象来减少读取数据库的次数,从而提高动态.数据库驱动网站的速度 ...
- 缓存、队列(Memcached,Redis,rabbitMQ)
一.Memcached Memcached 是一个高性能的分布式内存对象缓存系统,用于动态Web应用以减轻数据库负载.它通过在内存中缓存数据和对象来减少读取数据库的次数,从而提高动态.数据库驱动网站的 ...
- memcached
Memcached 是一个高性能的分布式内存对象缓存系统,用于动态Web应用以减轻数据库负载.它通过在内存中缓存数据和对象来减少读取数据库的次数,从而提高动态.数据库驱动网站的速度.Memcached ...
- 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 ...
随机推荐
- eth0: ERROR while getting interface flags: No such device的解决方法、Linux怎么修改IP以及ping不通的处理方法
首先输入ifconfig命令查看当前的ip信息 发现没有eth0这个网卡设备,有ens33 接着输入命令:ifconfig ens33 192.168.2.110 -- 修改临时ip地址,系统 ...
- 莫烦TensorFlow_07 tensorboard可视化
import tensorflow as tf import numpy as np import matplotlib.pyplot as plt def add_layer(inputs, in_ ...
- Dubbo介绍(一)
Dubbo是一个分布式.高性能.透明化的 RPC 服务框架,作用是提供服务自动注册.自动发现等高效服务治理方案. 一.Dubbo架构图 Provider:提供者,服务发布方 Consumer:消费者, ...
- Leetcode148-Sort_List
Sort_List 在LeetCode 里面,因为只有归并排序的时间复杂度为O(1),所以快速排序用不了,前面两个都没用直接看最后一个归并排序. 冒泡排序(超时了) public ListNode s ...
- 【洛谷1829】 [国家集训队] Crash的数字表格(重拾莫比乌斯反演)
点此看题面 大致题意: 求\(\sum_{i=1}^n\sum_{j=1}^mlcm(i,j)\). 推式子 不会莫比乌斯反演的可以先去看这篇博客:初学莫比乌斯反演. 反演题显然就是推式子啊~~~ 考 ...
- [LeetCode] 381. Insert Delete GetRandom O(1) - Duplicates allowed 常数时间内插入删除和获得随机数 - 允许重复
Design a data structure that supports all following operations in average O(1) time. Note: Duplicate ...
- [LeetCode] 76. Minimum Window Substring 最小窗口子串
Given a string S and a string T, find the minimum window in S which will contain all the characters ...
- Nginx配置max_fails fail_timeout
目的: 通过配置max_fails.fail_timeout来达到当一台服务器访问出现非200时可以跳转到另一台服务器 操作: 配置nginx.conf文件 具体配置如下 upstream Site ...
- Zookeeper 运维实践手册
Zookeeper是一个高可用的分布式数据管理与协调框架,该框架能很好地保证分布式环境中数据一致性.一般用来实现服务发现(类似DNS),配置管理,分布式锁,leader选举等. 一.生产环境中Zook ...
- laravel框架中Job和事件event的解析
本篇文章给大家带来的内容是关于laravel框架中Job和事件event的解析,有一定的参考价值,有需要的朋友可以参考一下,希望对你有所帮助. 在做项目的时候,一直对Job和Event有个疑惑.感觉两 ...