zoukankan      html  css  js  c++  java
  • 第二次作业——个人项目实战

    代码相关

    github地址https://github.com/NCPM/homework_sudoku

    解题思路:一开始拿到题目的时候就想,肯定是一个函数先打印一个随机的数组,然后再循环。然后就开始想,上数据结构的时候的
    学过的深度搜索遍历,填进去一个数,判断是否与同行、同列、同九宫格的相同,相同则不能填次数,后一步与这步相同,基本有这个思想,然后为了加快速度进行一些修改,加入函数等。

    设计实现:一个valid函数判定填入的数是否与同行、同列同宫有冲突。一个create函数调用valid函数构造正确的数独并输出。主函数中随机将1-9赋给九宫格里的数,调用create函数,create函数调用valid函数。函数之间的关系如上。

    关键代码和注释

    //构造数组并输出
    int main(int argc, char *argv[])
    {
    	//传入参数
    	int D = atoi(argv[argc-1]);
    	if (D>1000000||D<1)
    	{
    		cout<<"error"<<endl;
    		return 0;
    	}
    	else
    		cout <<""<<endl;
    	//写入文件
    	freopen("sudoku.txt","w",stdout);
    	int i, t;
    	int sudoku[9][9]={0};
    	sudoku[0][0]=9;
    	srand((unsigned)time(0));
    	for(i=1;i<=9;i++)
    	{
    		t=rand()%81;
    		if(t==0)
    		{
    			++t;
    		}
    		sudoku[t/9][t%9]=i;
    	}
    	for(i=0;i<D;i++)
    	{
    		create_sudoku(sudoku);
    		printf("
    ");
    	}
    	int a=0;
    	cin>>a;
    	return 0;
    }
    

    测试运行截图


    预计时间和实际时间表格:

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

    感想

    • 执行力、泛泛而谈的理解
      执行力就是能够基本完成自己的计划,把时间控制在计划之内也是一种执行力。泛泛而谈就是写代码的时候不知道为什么这么写,只是写代码。我觉得自己的执行力不够,实际用时=计划用时*3.6。

    • 遇到的困难以及解决方案
      遇到的困难挺多的。
      1.忘记了怎么写入文件,去翻了c语言
      2.没接触过命令行传入参数,上网搜索教程,很多都不对,最后是与同学一起讨论并实践了每一种网上可行的方法,改了几小时。
      3.没用过cmd运行可执行文件,百度了,这个解决很快。
      4.一开始写的程序是只能输出一个数独,然后加上for循环输出多个数独,然后将数独的左上角固定为一个数。一开始完全不知道怎么固定数,因为原理并不是像换魔方那样行列变换,后面问了学姐说了思路,才有现在的这个。
      5.提交之前遇到了最大的问题,在dev里面编译通过的代码却无法在vs中生成性能分析。这个问题我接下来找找解决办法。

  • 相关阅读:
    Three.js基础探寻六——文字形状与自定义形状
    Three.js基础探寻五——正二十面体、圆环面等
    Three.js基础探寻四——立方体、平面与球体
    Three.js基础探寻三——透视投影照相机
    Three.js基础探寻二——正交投影照相机
    Three.js基础探寻一
    js 基础 函数传值
    jQuery 判断页面元素是否存在的代码
    手机端点解链接有外框的问题
    团队博客冲刺第七天
  • 原文地址:https://www.cnblogs.com/NCPM/p/7502583.html
Copyright © 2011-2022 走看看