• 2020软件工程作业03


    2020软件工程作业03

    这个作业属于那个课程 https://edu.cnblogs.com/campus/zswxy/software-engineering-2017-1
    这个作业的要求在哪里 https://edu.cnblogs.com/campus/zswxy/software-engineering-2017-1/homework/10494
    这个作业的目标 https://edu.cnblogs.com/campus/zswxy/software-engineering-2017-1/homework/10494
    作业正文 https://i-beta.cnblogs.com/posts/edit
    其他参考文献 www.baidu.com

    一、GitHub url

    https://github.com/Firaymin/20177655

    二、PSP表格

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

    三. 解题思路

    题目:玩家需要根据9×9盘面上的已知数字,推理出所有剩余空格的数字,并满足每一行、每一列、每一个同色九宫内的数字均含1-9,不重复。数独的答案都是唯一的,所以,多个解也称为无解。
    看到题目,什么东西???这么多?直接退出浏览器
    过了一会又默默打开了博客园。。。

    看到题目的第一反应就是深搜和回溯然后就开始了漫长而又美妙的百度之旅
    还去哔哩哔哩看了数独怎么玩,我以前觉得数独超级难来着。(现在也觉得)

    四. 设计实现过程

    DFS
    对当前递归状态进行判断
    对当前坐标格状态进行判断
    根据不同条件进行递归
    验证失败时,回溯

    check
    用于循环中,如果条件不成立则结束下面的操作直接进入下一次循环

    流程图

    五. 改进程序性能

    输出

    代码静态检测及分析

    六. 主要代码

    ### void DFS(int x, int y) { //深度优先搜索
    if (x > 8) { //排除不符合条件的   
    	for (int i = 0; i < 9; i++) {
    		for (int j = 0; j < 9; j++) {
    			cout << num[i][j];  //满足条件输出   
    		}
    		cout << endl;
    	}
    	return;
    }
    
    if (num[x][y] != '0') {
    	DFS(x + (y + 1) / 9, (y + 1) % 9);
    
    }
    else {
    	for (int i = 1; i <= 9; i++) {
    		if (check(x, y, i)) {//check 用于循环中,如果条件不成立则结束下面的操作直接进入下一次循环 
    			num[x][y] = i + '0';
    			DFS(x + (y + 1) / 9, (y + 1) % 9);
    			num[x][y] = '0';
    		}
    	}
    }
    

    七. 心历路程与收获

    软件真的多,每一个都学到吐血,一个GitHub创建文件夹里面再创个文件夹再加入一些文件就搞了几个小时,才明白了为什么有的年纪稍微大一些的人刚开始接触手机,开始学习用那些软件需要研究那么久了。我研究GITHUB的时候我就感觉我已经80了。VS输出命令框总是一闪而过,各种百度各种修改设置,过了一天之后惊奇的发现只要按F5的同时要把Fn键一起按了就可以了,我:???

    收获就是:尽管我学地慢了点,懂的少了点,脑子笨了点。为此付出了很多的时间和精力,但是得到回报的时候是真的很开心。笨鸟先飞勤能补拙的道理这不就体现出来了吗。还有我发现有些问题在网上搜不到,你重组一下你的词语就能搜到了。

    八. 总结:

    • 写代码的时候不要钻牛角尖

    • 不会就问问不到就换一种方法问

    • 多花时间,总比啥也不干坐着忧虑强

    • 勇敢地走出第一步,你会发现,第二步也很难。。。

    • 不轻易放弃,放弃了还是要重来,还不如一做到底

    • 战胜困难最好的方法就是面对困难,奥利给

    九. 自我评估

    学号 姓名 作业头 Github地址 消除警告 PSP表格 设计实现过程 改进程序性能 代码说明 解题思路描述 结合构建执法谈心路历程和感想 总分
    2 1 2 1 2 1 1 1 1 12
    20177655 刘敏 2 1 0.5 1 0.5 0 0.5 1 1 7.5
  • 相关阅读:
    paste 合并文件
    split 分割文件
    cut 从文本中提取一段文字并输出
    tailf 跟踪日志文件
    tail 显示文件内容尾部
    给Linux系统新增加一块硬盘
    Centos7+httpd+fastcgi安装提示错误
    Redhat 7使用CentOS 7的Yum网络源
    windows7下cmd窗口使用ssh命令
    PHP set_error_handler() 函数
  • 原文地址:https://www.cnblogs.com/Fairy-min/p/12594197.html
Copyright © 2020-2023  润新知