• 软件工程--------第三次作业


    软件工程https://edu.cnblogs.com/campus/zswxy/software-engineering-2017-1
    作业要求 https://edu.cnblogs.com/campus/zswxy/software-engineering-2017-1/homework/10494
    作业目标 实现一个数独命令行程序
    作业正文 见下文
    其他参考文献 百度

            PSP是卡耐基梅隆大学(CMU)的专家们针对软件工程师所提出的一套模型:Personal Software Process (PSP, 个人开发流程,或称个体软件过程)。

    PSP2.1

    Personal Software Process Stages

    预估耗时(分钟)

    实际耗时(分钟)

    Planning

    计划

    40

    45

    Estimate

    估计这个任务需要多少时间

    35

       40

    Development

    开发

    50

    45

    Analysis

    需求分析 (包括学习新技术)

    30

    35

    Design Spec

    生成设计文档

    20

    25

    Design Review

    设计复审

    25

    20

    Coding Standard

    代码规范 (为目前的开发制定合适的规范)

    40

    30

    Design

    具体设计

    60

    65

    Coding

    具体编码

    120

    160

    Code Review

    代码复审

    30

    45

    Test

    测试(自我测试,修改代码,提交修改)

    120

    125

    Reporting

    报告

    45

    40

    Test Repor

    测试报告

    30

    30

    Size Measurement

    计算工作量

    20

    25

    Postmortem & Process Improvement Plan

    事后总结, 并提出过程改进计划

    30

    30

    合计

       570                600

    1.解题思路

    首先我们要了解什么是数独。数独盘面是个九宫,每一宫又分为九个小格。在这八十一格中给出一定的已知数字和解题条件,利用逻辑和推理,在其他的空格上填入1-9的数字。使1-9每个数字在每一行、每一列和每一宫中都只出现一次,所以又称“九宫格”。我们可以先从三宫格开始,然后进阶到九宫格。其中三宫格,五宫格,七宫格可以不用考虑宫,但四宫格,六宫格,八宫格,九宫格需要考虑宫,宫中的每一个数字不能重复。每两个盘一间空格分开,每两个小格之间空格分开。代填入格子用零代替。输出有两种可能,有答案,和无解。

     

     

    心路历程:

            在两天之内做完三次的作业,对我来说还是不太理想,所以这次作业只做到一半,后面的代码检测由于自己能力的问题,没有完成。

    这个数独的代码是以前老师布置作业的时候完成的,在进行代码检测的时候,下载Visual studio是花费时间过多,而且后续实验过程难度

    超出了我的能力范围之外,所以没能完成自己的作业,还请老师见谅。这几天的经历很是刻骨铭心,一边要准备考试,还有各科的实验报

    告,我的个人作业还有团队作业加在一起,每天做到凌晨四五点,一直不停的在写作业。之前从来没有过的事情,算是一种新的体验吧,

    不过我以后真的不想再体验一次了。

    附录:

    数独代码

     #include<stdio.h>
    #include<string.h>
    int maze[10][10];
    int count = 0, min = 0, l = 0;
    int n;
    int flag;
    int zou(int x, int y)
    {
        if (x == n - 2 && y == n - 2)
        {
            flag = 1;
            if (l == 0)//记录第一次走到终点路线的长度,将他赋值给min。 
            {
                min = count;
            }
            if (count < min)//将走到终点的长度与min来对比 
            {
                min = count;
            }
            l++;
            printf("%d", min);
            return 0;
        }
        maze[x][y] = 1;
        if (flag)return 0;
        if (maze[x][y - 1] == 0)
        {
            count++;
            zou(x, y - 1);
            count--;
        }
        if (maze[x + 1][y] == 0)
        {
            count++;
            zou(x + 1, y);
            count--;
        }
        if (maze[x - 1][y] == 0)
        {
            count++;
            zou(x - 1, y);
            count--;
        }
        if (maze[x][y + 1] == 0)
        {
            count++;
            zou(x, y + 1);
            count--;
        }
        return 0;
    }
    int main()
    {

        scanf_s("%d", &n);
        for (int i = 0; i < n; i++)
        {
            for (int j = 0; j < n; j++)
            {
                scanf_s("%d", &maze[i][j]);
            }
        }
        flag = 0;
        zou(1, 1);
        if (!flag)
            printf("No solution");
        return 0;
    }

  • 相关阅读:
    [转载]http://bbs.theithome.com/readhtmtid123.html
    普通软件项目开发过程规范(二)—— 启动和计划阶段 (转)
    项目感悟:项目中的利益权衡 (转)
    普通软件项目开发过程规范(三)—— 执行阶段 (转)
    从研发经理到部门经理——一个新经理的困惑与求解 (转)
    软件开发中的冲突
    项目管理中的法治和人治
    一位技术人员成长的烦恼及我的分析(转)
    普通软件项目开发过程规范(五)—— 总结 (转)
    普通软件项目开发过程规范(四)—— 控制和结束阶段 (转)
  • 原文地址:https://www.cnblogs.com/Iwannseeyouagain/p/13217008.html
Copyright © 2020-2023  润新知