欢迎来到天天文库
浏览记录
ID:41226843
大小:16.77 KB
页数:5页
时间:2019-08-19
《2019c语言课程设计报告 数独》由会员上传分享,免费在线阅读,更多相关内容在应用文档-天天文库。
1、c语言课程设计报告数独 C语言课程设计报告 设计名称 C语言课程设计 专业班级 姓 名 学 号 指导教师 实习时间 成 绩 目录 一、设计目的.............................................................................................2二、设计内容....................................................................................
2、.........3三、详细设计说明.....................................................................................4四、软件使用说明.....................................................................................6五、设计总结................................................8六、附录1: 2.数独游戏流程图 5
3、 四、软件使用说明 1)系统要求:win98以上操作系统; 2)语言平台:tc++或vc++;运行程序看到如下界面: 6 输入数据 运行结果 7 五、设计总结 通过第18周这个星期的程序设计,我从中得到了许多的经验以及软件设计的一些新的思路;从数独游戏的设计以及分析中,本人从中理解到了数据结构对于计算机软件设计的重要性,它的使用,可以改变一个软件的运行周期,也可以将软件的思路从繁化简,并且都能够通过数据结构的相关引导,将本身以前编程思想进行扩充,发展;这也是在这次课程设计中我所获益的地方。 随着时间的推移,课程设计也即将
4、结束了,但这个学期数据结构的学习还是具有相当大的意义,它从一个程度上改变了我们的编程思想,如何将一个程序快速而又准备的进行编写,进行编译,都成为了我们思考的重点,也通过这一个学期的学习,我们将数据结构的思想带入到了我们以后的编程学习中去。在这个阶段,我也明白了,好的思想,不能提留于字面上的认知,还需要的是平时多练多写一些相关的程序,并且通过修改,加入新的算法去尝试改变自己的一些编程思想。保持更新算法的速度,这才是关键。 课程设计已经接近尾声了,但它给我的不只是程序设计上的满足,更重要的是对自己编程思想的一次更新,以及对算法的一个全新的认识
5、! 8 六、附录1: 七、附录2:部分程序清单 intresult=0;//结果数{ inta[9][9];for(inti=0;i<9;i++) {printf(请输入第%d行的9个数:for(intj=0;j<9;j++)scanf(} printf(数独的解为:\Sudoku(a,0);if(result==0) printf(此数独无解!return0;} //输出可行的解voidprint(inta[9][9]) boolcheck(inta[9][9],inti,intj,intk){
6、intm,n;//判断行for(n=0;n<9;n++) 10 {if(a[i][n]==k)returnfalse;}//判断列 for(m=0;m<9;m++){if(a[m][j]==k)returnfalse;}//判断所在小九宫格intt1=(i/3)*3,t2=(j/3)*3;for(m=t1;m7、9],intn){inttemp[9][9];inti,j;for(i=0;i<9;i++){for(j=0;j<9;j++) 11 temp[i][j]=a[i][j];} i=n/9;j=n%9;//求出第n个数的行数和列数if(a[i][j]!=0)//已经有原始数据 {if(n==80)//是最后一个格子,输出可行解print(temp); else//不是最后一个格子,求下一个格子Sudoku(temp,n+1);} else//没有数据{for(intk=1;k<=9;k++){boolflag=check(temp8、,i,j,k);if(flag)//第i行、第j列可以是k{temp[i][j]=k;//设为kif(n==80)print(temp); elseSudoku(temp,n+
7、9],intn){inttemp[9][9];inti,j;for(i=0;i<9;i++){for(j=0;j<9;j++) 11 temp[i][j]=a[i][j];} i=n/9;j=n%9;//求出第n个数的行数和列数if(a[i][j]!=0)//已经有原始数据 {if(n==80)//是最后一个格子,输出可行解print(temp); else//不是最后一个格子,求下一个格子Sudoku(temp,n+1);} else//没有数据{for(intk=1;k<=9;k++){boolflag=check(temp
8、,i,j,k);if(flag)//第i行、第j列可以是k{temp[i][j]=k;//设为kif(n==80)print(temp); elseSudoku(temp,n+
此文档下载收益归作者所有