zoukankan      html  css  js  c++  java
  • 2020软件工程03作业

    这个作业属于那个课程 https://edu.cnblogs.com/campus/zswxy/software-engineering-2017-1
    这个作业的要求 https://edu.cnblogs.com/campus/zswxy/software-engineering-2017-1/homework/10494
    作业的目标 了解单元测试和算法、类的理解
    作业正文 如下
    参考文献 百度

    GitHub作业地址:https://github.com/zsdm/text

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

    代码

    处理参数部分

    参数一般为-m (m) -n (n) -i (input) -o (output)
    简便处理直接取String数组args第1,3,5,7个元素。

    /* b为x所在的小九宫格左顶点竖坐标 */

    int b = x / m / row * row; /* c为x所在的小九宫格左顶点横坐标 */

    int c = x % m / col * col; for (i = b; i < b + row; i++)

    { for (j = c; j < c + col; j++)

    { if (a[i][j] == key) { return false; }

    }

    }

    return true;

    解题思路

    看到题目为解数独,也不会什么算法就直接暴力解决。
    test方法逻辑

    test方法进行行列测试(当阶数为4,6,8,9时额外进行宫测试)

    public static boolean test(int[][] problem,int x,int y,int rank) {
    	int flagx=0;
    	int flagy=0;
    	int xr=0;
    	int yr=0;
    	int flagr=0;
    	for(int i=0;i<rank;i++) {//行测试
    		if(problem[x][y]==problem[i][y]) {
    			flagx++;
    		}
    	}
    	if(flagx==2) {
    		return false;
    	}
    	for(int i=0;i<rank;i++) {//列测试
    		if(problem[x][y]==problem[x][i]) {
    			flagy++;
    		}
    	}
    	if(flagy==2) {
    		return false;
    	}
    	switch(rank) {//宫测试初始化
    		case 4:
    			xr=2;
    			yr=2;
    			break;
    		case 6:
    			xr=2;
    			yr=3;
    			break;
    		case 8:
    			xr=4;
    			yr=2;
    			break;
    		case 9:
    			xr=3;
    			yr=3;
    			break;
    		default:
     	}
    	if(xr!=0) {//宫测试
    		for(int i=x-x%xr;i<x+xr-x%xr;i++) {
    			for(int j=y-y%yr;j<y+yr-y%yr;j++) {
    				if(problem[x][y]==problem[i][j]) {
    					flagr++;
    				}
    			}
    		}
    		if(flagr==2) {
    			return false;
    		}
    	}
    	return true;
    }

    性能测试

    样例分析

     代码结果

     

    7.总结

    这次作业的体会就是,不懂的还是太多很多都要从零开始,比如说怎么用github,怎么用git等等,所以还需要继续努力。还不这么会用软件,一点点的摸索。用了半天,还需要大佬的领导教教。

     
  • 相关阅读:
    HttpClient使用详解
    JBPM的.jpdl.xml文件中文出现乱码
    maven实现项目热部署
    基于Solr和Zookeeper的分布式搜索方案的配置
    MySQL5.7 多线程复制,配置和测试结果(转)
    重庆--上海手动切换容灾方案执行步骤
    elasticsearch Unassigned 分片解决办法
    基于docker使用elasticsearch-dump,es数据导入导出
    iperf3 测试linux服务器之间带宽
    elasticsearch重庆上海移动切换方案
  • 原文地址:https://www.cnblogs.com/zht6/p/12588667.html
Copyright © 2011-2022 走看看