软件工程作业03

软件工程https://edu.cnblogs.com/campus/zswxy/software-engineering-2017-1
作业要求 https://edu.cnblogs.com/campus/zswxy/software-engineering-2017-1/homework/10458
作业目标
完成一个数独命程序
作业正文  
参考文献
CSDN,脚本之家

GitHub地址:

 

PSP2.1Personal Software Process Stages预估耗时(分钟)实际耗时(分钟)
Planning 计划    
Estimate 估计这个任务需要多少时间    
Development 开发    
Analysis 需求分析 (包括学习新技术)    
Design Spec 生成设计文档    
Design Review 设计复审    
Coding Standard 代码规范 (为目前的开发制定合适的规范)    
Design 具体设计    
Coding 具体编码    
Code Review 代码复审    
Test 测试(自我测试,修改代码,提交修改)    
Reporting 报告    
Test Repor 测试报告    
Size Measurement

计算工作量

   
Postmortem & Process Improvement Plan 事后总结, 并提出过程改进计划    
合计  

 

 接题思路:看到题目就瞬间想到了——啥都没想到,萎了,数独每行每列,不允许出现同样的数,每行每列之间1到9数值加起来总和相等;

好吧,看到题目我就知道,以我的菜鳖技术是做不出来的,想到这里就突然有了底气了,反正做不出来,就不做算了,但是秉承着良好青年的良好品质,没有百度,直接拿最普通的思路来实现;

首先定义数组,假设数组为a[3][3],根据题目要求,需要实现,a[0][i]+a[0][i+1]+a[0][i+2]=a[j][0]+a[j+1][0]+a[j+2][0];以此类推,既然要实现,那么怎么实现呢?刚开始想的是直接用数组中的值来实现,

然后动了下脑筋,实现这个功能我们需要不断重复数值的加法运算来判断是否正确,并且还要求,行列相等,怎么来设置这个判断条件呢?for ,while ,do while?想了想我觉得设置死循环,比较好,直接while(1),这样子的话,我就可以直接过了循环条件,思考判断条件就好,只要判断合格,我们就跳出循环,进行输出,判断条件怎么设置呢?进行加法实现,来让行列相等,这样一想我们就又碰到了难题,怎么去实现这个加法运算?直接一个一个加?从0开始?在加一个总和相等的判断条件?怎么来实现呢?我会的不多,这个又比较绕,怎么来让这个简单?迭代实现?好吧,会迭代的都是神,我是凡人,凡人会什么?对哦,刚好最近把指针学完了用指针实现啊,指针指向数组的都是第一个元素,我们只需要设置两个指针元素,分别指向行列的第一个元素,然后设置,指针++;通过挑件循环就好了,这个怎么来实现呢,首先我们需要一个指针循环,每行每列只有三个元素/指针只需要在0 3之间即可,那么加法实现呢,数值有1到9,且不能重复,那么除去数值从1++到9之外还要来判断是否重复,假设不重复,那么我们就需要来设置一个判断条件来进行输出,然后等等。。。。。这是我的大概思路,打开编译器之后  EMMMM..........算了,点开百度,谷歌,搜索,好吧,网上不愧都是大牛,都直接是9*9的,这个可真难为我了,不过好像就算是9*9的我这个思路好像也没毛病啊,设置一个9*9的数组,指针不动,条件改一下好像没毛病,好吧其实我觉得是不太行的;

代码如下

好吧其实我编不出代码。。。。。。。

posted @ 2020-03-29 19:56  无敌臭弟弟  阅读(139)  评论(1编辑  收藏  举报