教学文库网 - 权威文档分享云平台
您的当前位置:首页 > 精品文档 > 互联网资料 >

C语言课程设计#汉诺塔#(2)

来源:网络收集 时间:2026-05-26
导读: C程序设计课程设计报告 类TowerPoint 成员变量描述 位置 查看是否有盘子 创建盘子 创建塔 变量类型 Int boolean Disk HannoiTower 变量类型 int boolean 变量名 X,Y 有盘子 盘子 con 变量名 number 上方有盘 类Dis

C程序设计课程设计报告

类TowerPoint

成员变量描述 位置 查看是否有盘子 创建盘子 创建塔 变量类型 Int boolean Disk HannoiTower 变量类型 int boolean 变量名 X,Y 有盘子 盘子 con 变量名 number 上方有盘 类Disk

成员变量描述 数目 上方有无盘子 类Time

成员变量描述 时间 计时器 显示时间 计时器是否启动 变量类型 int javax.swing.Timer JTextField boolean 变量名 time 计时器 显示时间 计时器是否启动

四 总结

这次对于汉诺塔的课程设计我有很多心得和体会,课程设计所设计制作出来的汉诺塔游戏总体符合设计要求,但也有一些缺点和不足,没能完全达到预期的要求。通过课程设计,我们对C语言的掌握提高到了一个新的水平,能够应用C语言编写出一个实用的程序,很大程度上提高了程序综合设计能力、分析能力和编程能力。掌握了很多新的编程技巧,积累了一些编程经验这些技巧和经验对于以后的课程都是很重要的。因此我觉得这次课程设计虽然困难不小,但收获很大。编写程序其中最重要的一个方面就是要认真,认真编写代码可。以大大减少错误的出现;其次是要有耐心,勇于克服困难,不断解决问题,面对困难要永不退缩,迎难而上;再次是要有清晰的思维,能够理清各个函数之间的关系,明确各个函数的职能;最后还要和同学多交流合作,多参考书籍。

参考文献

【01】谭浩强 《C程序设计》第4版 清华大学出版社 2010 【02】C语言程序设计精品课程网站 汉诺塔程序设计 2012.6

【03】覃征,王志敏 《程序设计方法与优化》 西安交通大学出版社 2004 【04】彭四伟,赵彤洲,高巍 《C语言程序设计》 清华大学出版社 2002

第6页 共10页

C程序设计课程设计报告

附 录

#include #include #include #include #include struct T {

char hnt[18][79]= int n; int sum=0;

int computerorpeople=1; int speed=0;

第7页 共10页

{\ \{\ 汉诺塔动画演示 \{\ \{\ ╔════════════════════════════════════╗\ {\ ║ ║\ {\ ║ ║\ {\ ║ ║\ {\ ║ ▆ ║\ {\ ║ ▆▆ ║\ {\ ║ ▆▆▆ ║\ {\ ║ ▆▆▆▆ ║\ {\ ║ ▆▆▆▆▆ ║\ {\ ║ ▆▆▆▆▆▆ ║\ {\ ║ ▆▆▆▆▆▆▆ ║\ {\ ║ ▆▆▆▆▆▆▆▆ ║\ {\ ║ ▆▆▆▆▆▆▆▆▆ ║\ {\ ║ ▆▆▆▆▆▆▆▆▆▆ ║\ {\ ╚════════════════════════════════════╝\ int h; int x; int l;

//塔的高度

//塔的第一个盘的x坐标,y坐标等于(7+n-塔的高度h) //塔的第一个盘的长度

}ta[3]={{10,15,2},{0,0,0},{0,0,0}};

C程序设计课程设计报告

void count_ta_1(int ta_1) { }

void move(int ta_1,int ta_3) { }

第8页 共10页

int i; sum++; ta[ta_3].h++;

ta[ta_3].x=ta[ta_1].x+(ta_3-ta_1)*24; ta[ta_3].l=ta[ta_1].l; for(i=0;i

{ }

hnt[7+n-ta[ta_3].h][ta[ta_3].x+i]=hnt[7+n-ta[ta_1].h][ta[ta_1].x+i]; hnt[7+n-ta[ta_1].h][ta[ta_1].x+i]=' ';

int i; int j; int k=0;

for(i=7;i<7+n;i++)

for(j=4+ta_1*24;j<28+ta_1*24;j++)

{ }

if(hnt[i][j]!=' ')

{ }

for(;hnt[i][j+k]!=' ';k++); ta[ta_1].x=j; ta[ta_1].l=k; return;

ta[ta_1].h--; count_ta_1(ta_1); system(\for(i=0;i<7+n;i++)

printf(\printf(\

printf(\ 从%c塔移动一个盘到%c塔\\n\printf(\ 步数:%d\\n\\n \if(computerorpeople==2) else

for(i=0;i<200000*speed;i++);

system(\

C程序设计课程设计报告

void hanoi(int ta_1,int ta_2,int ta_3,int m) //递归,ta_1/ta_2/ta_3分别为座塔的代号,m为盘子数 {

if(m==1)

move(ta_1,ta_3); else {

hanoi(ta_1,ta_3,ta_2,m-1); move(ta_1,ta_3); } } int main() { }

第9页 共10页

int i;

printf(\请输入汉诺塔的高度(范围->10):\scanf(\

printf(\请选择:输入由电脑自动控制;\\n\printf(\ 输入由人控制。\\n\printf(\请输入:\

scanf(\

if(computerorpeople!=1&&computerorpeople!=2) { }

if(n<1||n>10)

n=10; ta[0].h=n; system(\for(i=0;i<7+n;i++)

printf(\printf(\ \system(\hanoi(0,1,2,n);

if(computerorpeople==1)

return 0;

printf(\请输入移动盘的速度(例如:输入则代表秒):\scanf(\computerorpeople=1; if(computerorpeople==1)

hanoi(ta_2,ta_1,ta_3,m-1);

//将塔座A的前m-1个盘子移到塔座B

//将塔座A的第m个盘子移到塔座C

//将塔座B的m-1个盘子移到塔座C

//如果盘子为,将这个盘子从塔座A移动到塔座C

C程序设计课程设计报告

【小组分工合作情况】

本次实验课题的完成分为以下几个步骤: 一 汉诺塔课题的选择以及编写程序之前的准备; 二 实验程序的编写及运行测试; 三 程序的修改与完善;

四 程序的运行及对运行结果的分析; 五 课程设计实验报告的编写更正。

***负责的有:对于编写游戏程序之前准备资料的查询与记录;

汉诺塔程序的编写与检验;

课程设计报告中课题分析、整体设计部分的编写; 课程设计实验报告的整理。

***负责的有:实验课题的选择与分析; 汉诺塔程序的编写与运行;

课程设计报告中详细设计部分的编写。

其中共同完成的有:汉诺塔程序的编写与运行、课程设计报告的编写与整理。

第10页 共10页

…… 此处隐藏:1330字,全部文档内容请下载后查看。喜欢就下载吧 ……
C语言课程设计#汉诺塔#(2).doc 将本文的Word文档下载到电脑,方便复制、编辑、收藏和打印
本文链接:https://www.jiaowen.net/wendang/442695.html(转载请注明文章来源)
Copyright © 2020-2025 教文网 版权所有
声明 :本网站尊重并保护知识产权,根据《信息网络传播权保护条例》,如果我们转载的作品侵犯了您的权利,请在一个月内通知我们,我们会及时删除。
客服QQ:78024566 邮箱:78024566@qq.com
苏ICP备19068818号-2
Top
× 游客快捷下载通道(下载后可以自由复制和排版)
VIP包月下载
特价:29 元/月 原价:99元
低至 0.3 元/份 每月下载150
全站内容免费自由复制
VIP包月下载
特价:29 元/月 原价:99元
低至 0.3 元/份 每月下载150
全站内容免费自由复制
注:下载文档有可能出现无法下载或内容有问题,请联系客服协助您处理。
× 常见问题(客服时间:周一到周五 9:30-18:00)