c语言课程设计报告 数独.docx

上传人:b****2 文档编号:156565 上传时间:2023-04-28 格式:DOCX 页数:9 大小:103.62KB
下载 相关 举报
c语言课程设计报告 数独.docx_第1页
第1页 / 共9页
c语言课程设计报告 数独.docx_第2页
第2页 / 共9页
c语言课程设计报告 数独.docx_第3页
第3页 / 共9页
c语言课程设计报告 数独.docx_第4页
第4页 / 共9页
c语言课程设计报告 数独.docx_第5页
第5页 / 共9页
c语言课程设计报告 数独.docx_第6页
第6页 / 共9页
c语言课程设计报告 数独.docx_第7页
第7页 / 共9页
c语言课程设计报告 数独.docx_第8页
第8页 / 共9页
c语言课程设计报告 数独.docx_第9页
第9页 / 共9页
亲,该文档总共9页,全部预览完了,如果喜欢就下载吧!
下载资源
资源描述

c语言课程设计报告 数独.docx

《c语言课程设计报告 数独.docx》由会员分享,可在线阅读,更多相关《c语言课程设计报告 数独.docx(9页珍藏版)》请在冰点文库上搜索。

c语言课程设计报告 数独.docx

c语言课程设计报告数独

C语言课程设计陈说之马矢奏春创作

创作时间:

二零二一年六月三十日

设计名称C语言课程设计

专业班级

姓名

学号

指导教师

实习时间

成果

一、设计目的2

二、设计内容3

三、详细设计说明4

四、软件使用说明6

五、设计总结(课程设计心得与体会)8

六、附录1:

参考文献9

七、附录2:

部份法式清单(带有较详细的注释)10

八、教师评语13

一、设计目的

通过课程设计的实践环节的教学,可以加深学生对课堂所学基础知识的掌握与理解,提高学生对所学内容的综合运用能力;同时也可以通过查询相关资料,培养学生自学能力、接受新知识的能力,提高学习兴趣;增强学生法式设计能力,掌握编程技巧,并可培养学生实际上机调试法式的能力.“理论与实践”相结合,使学生获得很好的熬炼,为以后学习、工作打下坚实的基础.每个学生需要自力完成教师安插的设计题目或由学生自拟实际的设计题目,但自拟自拟题目须经指导教师批准方可生效.

二、设计内容

1、开发一款“数独”小游戏(限最多1人完成)

规则:

将数字1-9放置在每个小格里,使得每一行、没一列、每一个3*3的方框里都没有重复的数字即可.

要求:

(1)、字符界面完成即可(图形界面更好,有加分)

(2)、可以没有表格线

(3)、原有的36个数字及位置随机发生,原有数字越多,游戏越简单.可以由用户输入原有数字的个数,以控制游戏难度;

(4)、其它空格处的数字由玩家从键盘输入,当输入的某个数字违背了规则,则游戏以失败结束,显示“Failure!

“;当所有空格处数字均已经填上,而且没有违背规则,则游戏以胜利结束,显示“Success!

”.

8

2

5

6

3

8

7

5

1

4

8

9

1

7

1

5

3

7

2

8

4

9

7

8

5

5

7

2

4

8

7

1

5

7

8

2

三、详细设计说明

数独游戏在9×9的方格内进行,分为3×3的小方格,被称为“区”:

区数独游戏的目的是根据下列规则,用1至9之间的数字填满空格,一个格子只能填入一个数字.每个数字在每一行只能呈现一次.每个数字在每一列只能呈现一次.每个数字在每一区只能呈现一次

1>发生原始数字:

由系统发生若干数字(1~81),作为游戏的原始数字供玩家进行数独游戏2>退出系统:

用户填完数独,系统判断正误,然后退出系统.

四、软件使用说明

1)系统要求:

win98以上把持系统;

2)语言平台:

tc++或vc++6.0;

运行法式看到如下界面:

输入数据

运行结果

五、设计总结(课程设计心得与体会)

通过第18周这个星期的法式设计,我从中获得了许多的经验以及软件设计的一些新的思路;从数独游戏的设计以及分析中,自己从中理解到了数据结构对计算机软件设计的重要性,它的使用,可以改变一个软件的运行周期,也可以将软件的思路从繁化简,而且都能够通过数据结构的相关引导,将自己以前编程思想进行扩充,发展;这也是在这次课程设计中我所获益的处所.

随着时间的推移,课程设计也即将结束了,但这个学期数据结构的学习还是具有相当年夜的意义,它从一个水平上改变了我们的编程思想,如何将一个法式快速而又准备的进行编写,进行编译,都成了我们思考的重点,也通过这一个学期的学习,我们将数据结构的思想带入到了我们以后的编程学习中去.在这个阶段,我也明白了,好的思想,不能提留于字面上的认知,还需要的是平时多练多写一些相关的法式,而且通过修改,加入新的算法去检验考试改变自己的一些编程思想.坚持更新算法的速度,这才是关键.

课程设计已经接近尾声了,但它给我的不只是法式设计上的满足,更重要的是对自己编程思想的一次更新,以及对算法的一个全新的认识!

六、附录1:

参考文献

[1]谭浩强.C法式设计(第三版).北京:

清华年夜学出书社,2005

[2]谭浩强.C法式设计题解与上机指导(第三版).北京:

清华年夜学

出书社,2005

[3]刘振安,刘燕君,孙忱.C++语言课程设计.北京:

高等教育出书社,2003

[4]陈志泊,张海燕,王春玲.VisualC++法式设计.中国铁道出书社,2005

[5]吕凤哲,C++语言法式设计(第二版).北京:

电子工业出书社,2005

[6]殷人昆,陶永雷等.数据结构(用面向对象方法与C++).北京:

清华年夜学出书社,1999

[7]严蔚敏,吴伟民,数据结构.北京:

清华年夜学出书社,1997

—考研指导.北京:

清华年夜学出书社,2002[9]陈慧南.数据结构—C++语言描述.北京:

人民邮电出书社,

七、附录2:

部份法式清单(带有较详细的注释)

intresult=0;//结果数

{

inta[9][9];

for(inti=0;i<9;i++)

{printf("请输入第%d行的9个数:

",i+1);

for(intj=0;j<9;j++)

scanf("%d",&a[i][j]);

}

printf("数独的解为:

\n\n");

Sudoku(a,0);

if(result==0)

printf("此数独无解!

");

return0;

}

//输出可行的解

voidprint(inta[9][9])

boolcheck(inta[9][9],inti,intj,intk)

{intm,n;

//判断行

for(n=0;n<9;n++)

{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;m

{

for(n=t2;n

{if(a[m][n]==k)

returnfalse;}

}

//可行,返回true

returntrue;

//数独求解函数

voidSudoku(inta[9][9],intn)

{inttemp[9][9];

inti,j;

for(i=0;i<9;i++)

{for(j=0;j<9;j++)

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,i,j,k);

if(flag)//第i行、第j列可以是k

{temp[i][j]=k;//设为k

if(n==80)

print(temp);

elseSudoku(temp,n+1);

temp[i][j]=0;//恢复为0,判断下一个k}

}

}

}

八、教师评语

评阅教师:

评阅日期:

2012年7月日

创作时间:

二零二一年六月三十日

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 人文社科

copyright@ 2008-2023 冰点文库 网站版权所有

经营许可证编号:鄂ICP备19020893号-2