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://www.cnblogs.com/xinz/archive/2011/10/22/2220872.html

Github项目地址

https://github.com/neuf99/20177568/blob/master/sudoku.cpp

PSP表格

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

问题描述

数独盘面是个九宫,每一宫又分为九个小格。在这八十一格中给出一定的已知数字和解题条件,利用逻辑和推理,在其他的空格上填入1-9的数字。使1-9每个数字在每一行、每一列和每一宫中都只出现一次,所以又称“九宫格”。
三宫格:盘面是33。使1-3每个数字在每一行、每一列中都只出现一次,不考虑宫;
四宫格:盘面是2
2四个宫,每一宫又分为22四个小格。使1-4每个数字在每一行、每一列和每一宫中都只出现一次;
五宫格:盘面是5
5。使1-5每个数字在每一行、每一列中都只出现一次,不考虑宫;
六宫格:盘面是23六个宫,每一宫又分为32六个小格。使1-6每个数字在每一行、每一列和每一宫中都只出现一次;
七宫格:盘面是77。使1-7每个数字在每一行、每一列中都只出现一次,不考虑宫;
八宫格:盘面是4
2八个宫,每一宫又分为24八个小格。使1-8每个数字在每一行、每一列和每一宫中都只出现一次;
九宫格:盘面是3
3九个宫,每一宫又分为3*3九个小格。使1-9每个数字在每一行、每一列和每一宫中都只出现一次;

思路描述

在一个9x9的方格中,有81个小方格组成,然后又分9个大块,每块由3x3的方格组成,就是中国的九宫图,大九宫里面再套9个小九宫,共九九八十一个小格子,游戏开始前会有一些格子上写好了数,你需要在剩下的格子里填数,真到把所有格子填满,并且要求,任何一行或一列或者一个小九宫中没有相同的数字,只能用1-9之间的9个数字

代码实现

性能改进

测试结果

posted @ 2020-03-29 19:56  neuf  阅读(163)  评论(0编辑  收藏  举报