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

软件工程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;
}

posted on 2020-07-01 00:59  九七千  阅读(83)  评论(0编辑  收藏  举报

导航