欢迎来到天天文库
浏览记录
ID:37566762
大小:157.50 KB
页数:11页
时间:2019-05-25
《数学软件作业》由会员上传分享,免费在线阅读,更多相关内容在行业资料-天天文库。
1、数学软件(2)课程设计班级:学生姓名:学号:日期:得分:评语:问题1:sudoku生成与求解目录一、程序分析与设计1二、流程图1三、源程序清单1四、调试过程2五、程序有待改进的地方2六、本次编程的收获和建议2七、编程结果截屏3数学软件(2)课程设计一、程序分析与设计(标题四号宋体加黑,正文五号宋体,行间距-固定值18,首行缩进2字符)数独游戏来自日文,但概念源自“拉丁方块”,游戏规则很简单:一个9*9的大棋盘按九宫格的方划分成9个3*3的小棋盘,棋盘上已经填写了1到9若干个数字,每行以及每列以及每宫填的数字没有重复。对于难度的控制主要是由两个
2、条件组合来控制的。a.空格可以添入的数的个数(即空格的自由度)b.空的格子的总数。我们可以写三个bool函数来控制每行每列和每个小九宫格填的数字都没有重复,再利用一个FillNum()函数来填九宫格,主要利用了三个do~while循环和两个for循环来控制使得每行每列和每个小九宫格填的数字没有出现重复再写一个函数Initialize()来初始化九宫格,用Print()函数来显示已经完成的九宫格数组。主要是更好的掌握for循环和if条件语句。尤其在写boolIsExistInCube(intc,intr,intnum)函数时,需要把它分成九个小
3、九宫格来写,更加体现了if条件语句的重要性。9数学软件(2)课程设计二、流程图作用判断每一列1到9都出现IsExistInRow()函数作用判断每一行1到9都出现IsExistInColumn()函数作用IsExistInCube()函数判断每一个小九宫格1到9都出现作用调用填充数组FillNum()函数显示数组作用Print()函数作用初始化数组Initialize()函数main()函数9数学软件(2)课程设计三、源程序清单(此部分采用小五号宋体,行间距-固定值14)#include#includeus
4、ingnamespacestd;constintNUM=9;intcube[NUM][NUM];boolIsExistInRow(intr,intnum){for(intj=0;j5、num){if(cNUM/3&&r<2*NUM/3){for(inti=0;i2*NUM/3){for(inti=0;i6、=2*NUM/3;jNUM/3&&c<2*NUM/3){if(rNUM/3&&r<2*NUM/3){for(inti=NUM/3;i<2*NUM/3;i++){for(intj=NUM/3;j<2*NUM/3;j++)if(cube[i][j]==num)r7、eturntrue;}}if(r>2*NUM/3){for(inti=NUM/3;i<2*NUM/3;i++){for(intj=2*NUM/3;j2*NUM/3){if(rNUM/3&&r<2*NUM/3){for(inti=2*NUM8、/3;i2*
5、num){if(cNUM/3&&r<2*NUM/3){for(inti=0;i2*NUM/3){for(inti=0;i6、=2*NUM/3;jNUM/3&&c<2*NUM/3){if(rNUM/3&&r<2*NUM/3){for(inti=NUM/3;i<2*NUM/3;i++){for(intj=NUM/3;j<2*NUM/3;j++)if(cube[i][j]==num)r7、eturntrue;}}if(r>2*NUM/3){for(inti=NUM/3;i<2*NUM/3;i++){for(intj=2*NUM/3;j2*NUM/3){if(rNUM/3&&r<2*NUM/3){for(inti=2*NUM8、/3;i2*
6、=2*NUM/3;jNUM/3&&c<2*NUM/3){if(rNUM/3&&r<2*NUM/3){for(inti=NUM/3;i<2*NUM/3;i++){for(intj=NUM/3;j<2*NUM/3;j++)if(cube[i][j]==num)r
7、eturntrue;}}if(r>2*NUM/3){for(inti=NUM/3;i<2*NUM/3;i++){for(intj=2*NUM/3;j2*NUM/3){if(rNUM/3&&r<2*NUM/3){for(inti=2*NUM
8、/3;i2*
此文档下载收益归作者所有