zoukankan      html  css  js  c++  java
  • 结对作业1

    211606317林泽宇 211606388尹海川

    一、预估与实际

    PSP2.1 Personal Software Process Stages 预估耗时(分钟) 实际耗时(分钟)
    Planning 计划
    • Estimate • 估计这个任务需要多少时间 30 30
    Development 开发
    • Analysis • 需求分析 (包括学习新技术) 30 30
    • Design Spec • 生成设计文档 20 40
    • Design Review • 设计复审 10 10
    • Coding Standard • 代码规范 (为目前的开发制定合适的规范) 20 20
    • Design • 具体设计 30 40
    • Coding • 具体编码 500 720
    • Code Review • 代码复审 20 30
    • Test • 测试(自我测试,修改代码,提交修改) 30 40
    Reporting 报告
    • Test Repor • 测试报告 20 20
    • Size Measurement • 计算工作量 10 10
    • Postmortem & Process Improvement Plan • 事后总结, 并提出过程改进计划 5 10
    合计 990

    二、需求分析

    我通过百度的方式了解到,四则运算有如下的几个特点:

    • 加法、减法、乘法和除法统称四则运算。
    • 在没有括号的算式里,如果只有加、减法或者只有乘、除法,都要从左往右按顺序计算。
    • 在没有括号的算式里,既有乘、除法又有加、减法的,要先算乘除法,再算加减法。
    • 算式有括号,要先算括号里面的,再算括号外面的;大、中、小括号的计算顺序为小→中→大。括号里面的计算顺序遵循以上1、2、3条的计算顺序。

    三、设计

    1. 设计思路

    • 首先生成随机数
    • 生成随机四则算式
    • 计算
    • 输出到txt文件

    2. 实现方案

    写出具体实现的步骤

    • 准备工作:先在Github上创建仓库,克隆到本地...
    • 正则表达式拆分
    • 逆波兰表达式

    四、编码

    • 计算符号,生成随机数
    • 循环遍历生成随机四则算式
    • 将算式传入数组或集合
    • 需要分成两个数组,一个存放符号,一个存放数字
    • 计算结果
    • 将答案打印输出到txt文本

    1. 调试日志

    • 和结对伙伴总结了如下调试问题:
    • 输出到文本的时候遇到了问题,使用System.setOut(ps); 可以输出到out.txt文本中,但是不能输出到命令窗口中;使用System.out.println(ps); 则相反
    • 用一个中间变量temp交换n和grade的值后,输入 -n -grade 可以正常运行,输入 -grade -n 则无法正常运行,解决办法:查阅资料后,发现要用args[x].equals(“xxx”)才能判断是否符合情况,结论是:基础知识还是不扎实!
    • 当 grade = 3 时,程序无法正常运行,解决办法也还没找到...

    2. 关键代码

    public static void gradeThree(int n) {
    // TODO Auto-generated method stub
    str = new String[n];
    String s[] = {"+","-","×","÷"};
    //生成题目
    for (int i = 1; i <= n; i++) {
    //生成四个0~100的随机数
    int num1 = (int)(Math.random()100+1);
    int num2 = (int)(Math.random()
    100+1);
    int num3 = (int)(Math.random()*100+1);

    		//生成随机运算符号
    		String sigh[] = null;
    		for (int j = 0; j < 2; j++) {
    			int sighNum = (int)(Math.random()*4);
    			sigh[j] = s[sighNum];
    		}
    		//生成题序和题目
    		System.out.println("("+ i +") " + num1 + sigh[0] + num2 + sigh[1] + num3 );
    		
    		int answer = 0;
    		//第一个运算符号**************************************************************
    		//先乘除
    		if(sigh[0] == s[2] || sigh[0] == s[3]) {
    			if(sigh[0] == s[2]) {//乘
    				answer = num1*num2;
    			}
    			else {//除
    				answer = num1/num2;
    			}
    		}
    		//后加减
    		if(sigh[0] == s[0] || sigh[0] == s[1]) {
    			if(sigh[0] == s[2]) {//加
    				answer = num1+num2;
    			}
    			else {//减
    				answer = num1-num2; 
    			}
    		}
    		//第二个运算符号**************************************************************
    		//先乘除
    		if(sigh[1] == s[2] || sigh[1] == s[3]) {
    			if(sigh[1] == s[2]) {//乘
    				answer = answer*num3;
    			}
    			else {//除
    				answer = answer/num3;
    			}
    		}
    		//后加减
    		if(sigh[1] == s[0] || sigh[1] == s[1]) {
    			if(sigh[1] == s[2]) {//加
    				answer = answer+num3;
    			}
    			else {//减
    				answer = answer-num3;
    			}
    		}
    		str[i-1] = ("("+ i +") " + num1 + sigh[0] + num2 + sigh[1] + num3 + "=" + answer);
    		//*************************************************************************
    	}
    	System.out.println();
    	//输出答案
    	for(String a:str)
    		System.out.println(a);
    	//输出日期和学号姓名
    	SimpleDateFormat sdf = new SimpleDateFormat("yyyy年MM月dd日 HH:mm");
    	System.out.println();
    	System.out.println("211606317 林泽宇  &  211606388 尹海川  " +sdf.format(new Date()));
    }//gradeThree
    

    3. 代码规范

    请给出本次实验使用的代码规范:

    • 未定义的常量不可使用在代码中
    • 左大括号前不换行。左大括号后换行。右大括号前换行。右大括号后还有 else 等代码则不换行;表示终止的右大括号后必须换行。
    • 在 if/else/for/while/do 语句中必须使用大括号,且保留字与括号之间都必须加空格。

    五、测试

    • 测试两种输入方式
    • 测试三个年段

    六、总结

    • 看到题目一遍就关掉了页面,然后又打开了...真的很头疼啊哈哈
    • 体会到了两个人结队的好处,不管有什么问题两个人都能一起解决,虽然快提交了还是没解决问题,争取这两天解决掉
  • 相关阅读:
    Java transient 关键字
    Android学习资料收集
    mac 关闭&&显示隐藏文件命令
    Android 学习资源收集
    Android Studio 快捷键
    Volley框架使用笔记
    Jni :三维数组处理方法 ,以整形三维数组为例 C++实现
    Git使用- 基本命令
    Jni 调试 : eclipse + Vs 联合调试
    Java 调用 C++ (Java 调用 dll)康哥手把手教你
  • 原文地址:https://www.cnblogs.com/Yinhaichuan/p/9671990.html
Copyright © 2011-2022 走看看