zoukankan      html  css  js  c++  java
  • 软件工程实践2019第三次作业

    一·github项目地址

    https://github.com/clown888mob/031702609

    二·PSP表格

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

    三·设计思路

    看到题目的第一瞬间,有点儿晕厥,说实话因为代码能力不太行,所以遇到题干长材料多的题目,第一反应就是害怕!看了半天的题目,发现我还是只能停留在很早以前的题目基础,之前做的训练题有用二维数组来输出倒三角正三角的题目。我感觉有一点点共同性,于是就从二维数组着手,先从三宫格开始,三宫格的话就比较简单了,基本思路都在代码里有注释.这个解题思路其实是依靠了同学的思路,我自己的总是出错甚至形不成完整的代码,所以最后采用了她的解题大纲,目前的代码能力只允许用最简单的基础代码和最笨拙的方式来解决问题。

    
    /*#define _CRT_SECURE_NO_DEPRECATE*/
    #include<iostream>
    
    using namespace std;
    int main()
    {
    	int a[3][3], n = 0;
    	for (int i = 0; i < 3; i++)/*定义二维数组输入盘面*/
    	{
    		for (int j = 0; j < 3; j++)
    
    		{
    			cin >> a[i][j];
    
    			if (a[i][j] == 0)/*n记录0的个数*/
    
    			{
    
    				n++;
    
    			}
    
    		}
    
    	}
    
    	for (int an = 0; an < n; an++)/*n的大小及循环的次数*/
    
    	{
    
    		for (int i = 0; i < 3; i++)
    
    		{
    
    			for (int j = 0; j < 3; j++)
    
    			{
    
    				if (a[i][j] == 0)
    
    				{
    
    					int b[5], k = 0;/*b数组中存放目前该格子里已有的数值*/
    
    					for (int x = 0; x < 3; x++)/*盘面的纵向已有值*/
    
    					{
    
    						if (a[x][j] != 0)
    
    						{
    
    							b[k] = a[x][j];
    
    							k++;
    
    						}
    
    					}
    
    					for (int y = 0; y < 3; y++)/* 盘面的横向已有值 */
    
    					{
    
    						if (a[i][y] != 0)
    
    						{
    
    							b[k] = a[i][y];
    
    							k++;
    
    						}
    
    					}
    
    					int c[3] = { 1,2,3 }, x1 = 3;/*x1表示目前该格数值的可能情况*/
    
    					for (int c1 = 0; c1 < 3; c1++)
    					{
    
    						for (int c2 = 0; c2 < k; c2++)
    
    						{
    
    							if (c[c1] == b[c2] && c[c1] != 0)
    
    							{
    
    								c[c1] = 0;
    
    								x1--;
    
    							}
    
    						}
    
    					}
    
    					if (x1 == 1)/*x1=1表示目前该格子的数值只有一种可能*/
    
    					{
    
    						for (int s = 0; s < 3; s++)
    
    						{
    
    							if (c[s] != 0)
    
    							{
    
    								a[i][j] = c[s];
    
    							}
    
    						}
    
    
    
    					}
    
    				}
    
    			}
    
    		}
    
    	}
    
    
    
    	cout << endl;
    
    	for (int i = 0; i < 3; i++)/*输出*/
    
    	{
    
    		for (int j = 0; j < 3; j++)
    
    		{
    
    			cout << a[i][j] << " ";
    
    		}
    
    		cout << endl;
    
    	}
    
    	cout << endl;
    }
    

    测试实例:



    作业要求用Visual Studio来进行测试和运行,但是我运行的结果一直出错,对这个软件用的还不是很熟练,还在摸索阶段,有点儿艰难,学东西有点儿慢

    四·心得体会

    完整的代码依靠扎实的语言功底和清晰的数学解题方式,一直以来代码都是比较害怕的课程,有在努力学习,但是很多时候心有余而力不足,完成一道复杂完整的代码对于我来说尚且存在难度,不过在解题的过程中还是能够学到一些新的东西的,希望可以越来越进步吧。

  • 相关阅读:
    我罗斯方块
    《程序设计语言综合设计》第四周上机练习——5 好吃的巧克力
    《程序设计语言综合设计》第四周上机练习——4 特殊的翻译
    《程序设计语言综合设计》第四周上机练习——3 开机方案
    《程序设计语言综合设计》第三周上机练习——3 不诚实的卖家
    《高级语言程序设计实践》期末考试复现——9 丢手绢
    《高级语言程序设计实践》期末考试复现——7 芽衣的厨房
    《高级语言程序设计实践》期末考试复现——5 圣诞老人的糖果
    《高级语言程序设计实践》期末考试复现——4 希儿的日记本
    FZU_DS_2019_SequenceList
  • 原文地址:https://www.cnblogs.com/clown123/p/11588170.html
Copyright © 2011-2022 走看看