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的更多相关文章

  1. ME.kkkK

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

  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. Appium+python自动化(二)- 环境搭建—下(超详解)

    简介 宏哥的人品还算说得过去,虽然很久没有搭建环境了,但是换了新电脑设备,一气呵成,将android的测试开发环境已经搭建准备完毕.上一篇android测试开发环境已经准备好, 那么接下来就是appi ...

  2. opencv旋转图像

    #include <opencv2\opencv.hpp> /* @param o The customer origin @param x The customer x @Note Th ...

  3. 海量数据MySQL项目实战

    主要内容包含 MySQL 典型数据库架构介绍.MySQL 主流数据库架构对比等理论性知识,然后从“订单.用户”两个项目实战,抛砖引玉,介绍亿级互联网业务数据库项目如何设计. MySQL 典型数据库架构 ...

  4. 2019 AI 100 Startups

  5. (转)Tomcat与Jetty区别

    一.简介 Tomcat: Tomcat是Apache软件基金会(Apache Software Foundation)的Jakarta项目中的一个核心项目,由Apache.Sun和其他一些公司及个人共 ...

  6. MySQL使用的几条注意事项和1449错误解决方案

    一.如何在Windows终端连接MySQL? 使用cmd进入终端,然后要进入到你安装MySQL的bin目录下(如果没有的话,会出现该命令无效之类的错误),然后使用命令mysql -u root -p, ...

  7. [LeetCode] 82. Remove Duplicates from Sorted List II 移除有序链表中的重复项之二

    Given a sorted linked list, delete all nodes that have duplicate numbers, leaving only distinct numb ...

  8. PKUWC2020游记

    PKUWC2020在2019年举行是真的沙雕 晚个两星期我就能逃掉期末考了 Day \(-\infty\) 开始停课训练,和ntf.lzy一起. atcoder真好玩,只可惜我没脑子-- kenkoo ...

  9. 【Arch安装】

    [Arch安装]不完整,凭记忆补充 1,制作安装介质(请跳转链接:https://www.archlinux.org/download/) 2,从UEFI模式启动后,按照官方WIKI向导操作(http ...

  10. idea找不到tomcat,找不到Tomcat server

    打开settings  添加即可 如果再没有,可能需要先安装timcat插件