C语言课程设计#汉诺塔#
毕业设计c语言课程设计

毕业设计c语言课程设计一、课程目标知识目标:1. 理解C语言在毕业设计中的应用场景,掌握C语言的基本语法和编程技巧。
2. 学会使用C语言进行数据结构的设计与实现,如链表、树、图等。
3. 掌握C语言在嵌入式系统、算法竞赛等领域的实际应用。
技能目标:1. 能够运用C语言编写具有实际意义的程序,解决实际问题。
2. 能够分析并优化C语言程序的运行效率,提高编程质量。
3. 培养良好的编程习惯,编写规范、易读、高质量的C语言代码。
情感态度价值观目标:1. 培养学生积极主动探索新知识的精神,提高学生的自主学习能力。
2. 增强学生的团队协作意识,培养良好的沟通与协作能力。
3. 使学生认识到C语言在计算机科学领域的重要地位,激发学生对编程的兴趣。
分析课程性质、学生特点和教学要求:1. 课程性质:本课程为毕业设计前的预备课程,旨在帮助学生掌握C语言编程技能,为毕业设计奠定基础。
2. 学生特点:学生已具备一定的计算机基础,了解编程基本概念,但实际编程能力较弱,需要加强实践操作。
3. 教学要求:注重理论与实践相结合,强调实际编程能力的培养,以项目驱动教学,提高学生的实践操作能力。
1. 独立完成C语言基础语法的学习,并能运用所学知识编写简单程序。
2. 掌握常见数据结构在C语言中的实现与应用,能够解决实际问题。
3. 编写具有一定规模的C语言项目,具备初步的软件设计能力。
4. 养成良好的编程习惯,具备团队协作能力和沟通能力。
二、教学内容1. C语言基础语法:变量定义、数据类型、运算符、表达式、控制语句(顺序、选择、循环)、函数、数组、指针。
2. 常见数据结构:链表、栈、队列、树(二叉树、查找树)、图(邻接矩阵、邻接表)。
3. 编程技巧与优化:算法复杂度分析、递归与迭代、内存管理、程序调试与优化。
4. C语言项目实践:学生信息管理系统、简易计算器、文件压缩与解压缩、小型游戏等。
5. 教学内容安排与进度:- 第一周:C语言概述、基础语法、数据类型与运算符。
c语言毕业设计课程设计

c语言毕业设计课程设计一、课程目标知识目标:1. 学生能够掌握C语言的基本语法和程序结构,理解指针、数组、函数等核心概念。
2. 学生能够运用C语言进行数据结构的设计与实现,如链表、树、图等。
3. 学生能够运用C语言编写具有一定复杂度的程序,解决实际问题。
技能目标:1. 学生能够独立设计并完成一个小型的C语言项目,包括需求分析、设计、编码、测试等过程。
2. 学生能够运用所学知识,分析并解决项目中遇到的问题,提高编程能力和问题解决能力。
3. 学生能够通过课程学习,掌握C语言项目开发的基本方法和技巧,为毕业设计做好准备。
情感态度价值观目标:1. 学生在学习过程中,培养良好的编程习惯,注重代码规范和注释,提高代码质量。
2. 学生能够主动探究问题,发挥团队协作精神,共同解决项目中的难题。
3. 学生通过课程学习,认识到编程在现实生活中的应用价值,激发对计算机科学的兴趣和热情。
课程性质:本课程为毕业设计前的专业实践课程,旨在帮助学生巩固C语言知识,提高编程能力,为毕业设计奠定基础。
学生特点:学生已具备一定的C语言基础,具有一定的编程能力和问题解决能力。
教学要求:教师需结合实际项目案例,引导学生主动学习,注重理论与实践相结合,培养学生的编程兴趣和动手能力。
在教学过程中,关注学生的个体差异,给予个性化指导,确保学生能够达到课程目标。
通过课程学习,使学生具备独立完成毕业设计的能力。
二、教学内容1. C语言基础语法复习:包括数据类型、运算符、控制语句、函数等基本概念,参考教材相关章节,巩固学生基础知识。
2. 数据结构实现:教授学生运用C语言实现常见的数据结构,如链表、栈、队列、二叉树等,结合教材相关内容,讲解数据结构在实际项目中的应用。
3. 指针与数组:深入讲解指针的概念及其运用,数组与指针的关系,提高学生运用指针解决问题的能力。
4. 文件操作:介绍C语言文件操作的基本方法,包括文件的打开、读写、关闭等,结合实际案例,让学生掌握文件操作技巧。
实用C语言程序设计教程课程设计

实用C语言程序设计教程课程设计一、课程设计介绍本课程设计旨在提高学生对于C语言程序设计的实际应用能力,让学生通过编写有实际用途的程序来掌握C语言的基本语法和编程思想。
通过本课程设计的学习,学生将能够掌握C语言的基本语法、流程控制语句、函数等知识点,并能够熟练使用这些知识点进行程序开发。
二、课程设计目标•掌握C语言的基本语法•熟练应用C语言的流程控制语句和函数•能够独立设计、开发、测试C语言程序•能够处理简单的C语言程序调试和错误处理三、课程设计内容1. 认识C语言本章主要介绍C语言的概述、发展历史、优缺点等方面的内容,让学生了解C语言的基本情况。
2. 基本语法本章主要介绍C语言中的基本语法要点,包括数据类型、运算符、表达式、控制语句、循环语句等等。
3. 函数本章主要介绍C语言中的函数定义和调用、函数的返回值、参数传递等相关内容。
4. 文件操作本章主要介绍C语言中的文件读写操作、文件指针、文件操作函数等相关内容,让学生了解如何进行文件读写操作。
5. 数据结构本章主要介绍C语言中的结构体和指针等相关内容,让学生了解如何使用结构体和指针进行程序开发。
6. 综合项目本章将要求学生利用所学知识进行实际程序的开发,在本章中完成的综合项目可作为课程设计的结题项目。
四、课程设计要求1. 软硬件要求•操作系统:Windows或者Linux•编译器:GCC或者Clang2. 实践要求•学生需要完成本课程设计的所有练习题目,课程设计的结题项目需要具有一定的实际应用场景•学生需要在课程设计期间积极参与课堂讨论和活动,并提交相关的实验报告•学生需要按时完成实验报告和结题项目的提交,如有特殊原因请提前与任课老师联系,并及时提交请假手续3. 成绩评定要求•实验报告成绩占总成绩的50%•结题项目成绩占总成绩的50%五、结语C语言是一门非常实用的编程语言,在很多领域都有其实践价值。
通过本课程设计的学习,相信学生们能够熟练掌握C语言的基本语法和编程思想,同时也能够更好地应用C语言进行实践开发。
大一学生c语言课程设计

大一学生c语言课程设计一、课程目标知识目标:1. 掌握C语言的基本语法结构,包括变量定义、数据类型、运算符和表达式;2. 学会使用C语言控制结构,如顺序、选择和循环结构;3. 理解函数的定义和调用,能编写简单的自定义函数;4. 了解数组、字符串和指针的概念及应用。
技能目标:1. 能运用C语言编写简单的程序,解决实际问题;2. 培养良好的编程习惯,如规范命名、合理注释和模块化设计;3. 学会使用调试工具,如gcc和gdb,进行程序调试和错误排查;4. 提高逻辑思维能力,分析并解决程序中的问题。
情感态度价值观目标:1. 培养对编程的兴趣和热情,树立计算机科学的学习信心;2. 树立团队合作意识,学会与他人共同解决问题;3. 培养严谨、细致的学习态度,注重程序的正确性和可靠性;4. 增强自主学习能力,主动探索C语言的深入学习。
本课程针对大一学生,以C语言为基础,注重理论与实践相结合。
课程设计旨在帮助学生掌握C语言的基本知识,培养编程技能,同时激发学生的学习兴趣,提高逻辑思维和团队协作能力。
通过本课程的学习,学生能够具备初步的编程能力,为后续计算机专业课程打下坚实基础。
二、教学内容1. C语言概述:介绍C语言的发展历史、特点和应用领域,引导学生了解C语言的重要性。
教材章节:第一章2. 基本语法和数据类型:讲解变量定义、数据类型、常量和变量,以及基本输入输出函数。
教材章节:第二章3. 运算符和表达式:介绍各类运算符,包括算术、关系、逻辑运算符等,以及表达式的求值规则。
教材章节:第三章4. 控制结构:讲解顺序、选择(if、switch)和循环(for、while、do-while)结构,引导学生学会程序流程控制。
教材章节:第四章5. 函数:介绍函数的定义、声明和调用,重点讲解传值调用和引用调用,以及递归函数。
教材章节:第五章6. 数组与字符串:讲解一维数组、二维数组的概念和应用,以及字符串的基本操作。
教材章节:第六章7. 指针:介绍指针的概念、定义和使用,包括指针与数组、指针与字符串、指针与函数的关系。
c语言课程设计

课程设计报告正文1、目的:1) 对C各部分知识的综合应用能力2) 提咼程序设计的能力3) 提升对于较大程序的抽象分析设计能力4) 学习调试和测试的技巧2、所做题目的意义:通讯录管理系统在当今这个信息发达的社会是必不可少的,这个通讯录管理系统可以方便的为我们添加、管理联系人,不必一定要记住这些庞大的信息,可以很方便的调用出自己所需要的信息,随时的修改这些信息,这些在这个时代是非常的必要的。
3、本人所作的工作:(1)、写出了预习报告。
从图书馆搜集了些这方面的资料(2)、想好思路,写出了程序代码(3)、调试程序,找出其中的错误,最终成功的运行出程序(4)、写出课程设计报告4、系统的主要功能:该系统的是一个小型的通讯系统,它具有一般的通讯系统都具有的功能该程序具有查找、添加、修改、删除功能,其讯录包括:街道,城市,省,邮编。
5、、系统的总体设计:系统的基本要求和容:该系统要求具有查找,添加,修改,删除功能,其讯录包括:、,街道,城市,省,邮编。
但在实际设计中增加了一项,那就是末尾添加,可以在已有的记录末尾再次添加,不必每次都重新添加,方便用户描绘及绘制出系统的功能结构框图、程序设计组成框图,流程图等:此系统共分为九大模块,分别为以下的模块:第一模块:主函数ma in ()的功能是:根据选单的选项调用各函数,并完成相应的功能。
第二模块:quitRec()的功能是:退出选单。
第三模块:createRec()的功能是:创建新的通讯录。
第四模块:addRec()的功能是:在通讯录的末尾写入新的信息,并返回选单第五模块:findRec()的功能是:查询某人的信息,如果找到了,则显示该人的信息,如果未找到,则提示通讯录中没有此人的信息,并返回选单。
第六模块:alterRec()的功能是:修改某人的信息,如果未找到要修改的人,则提示通讯录中没有此人的信息,并返回。
第七模块:deleteRec()的功能是:删除某人的信息,如果未找到要删除的人,则提示通讯录中没有此人的信息,并返回选单。
大一c语言程序课程设计

大一c语言程序课程设计一、课程目标知识目标:1. 理解C语言程序设计的基本概念,掌握数据类型、变量、运算符、表达式等基础知识;2. 学会使用顺序结构、分支结构、循环结构进行程序设计;3. 掌握数组和函数的使用,理解指针的概念及其应用;4. 了解结构体、联合体和枚举类型的使用。
技能目标:1. 能够运用C语言编写简单的程序,解决问题;2. 能够分析问题,运用逻辑思维进行程序设计;3. 能够阅读和理解他人编写的C语言程序;4. 能够对程序进行调试和优化,提高程序效率。
情感态度价值观目标:1. 培养学生的编程兴趣,激发学习积极性;2. 培养学生的团队合作意识,学会与他人共同解决问题;3. 培养学生的创新精神,敢于尝试新思路和方法;4. 培养学生严谨的学术态度,遵循编程规范。
课程性质:本课程为大一C语言程序设计的基础课程,旨在使学生掌握C语言的基本知识和编程技能,为后续专业课程打下坚实基础。
学生特点:大一学生刚接触编程,对编程知识有一定好奇心,但缺乏实际操作经验。
教学要求:结合学生特点,注重理论与实践相结合,通过案例分析和实际操作,使学生熟练掌握C语言编程技巧。
在教学过程中,注重培养学生的编程兴趣和创新能力,提高学生分析问题和解决问题的能力。
将课程目标分解为具体的学习成果,以便进行后续的教学设计和评估。
二、教学内容1. C语言概述:介绍C语言的发展历程、特点和应用领域,理解编程的基本概念。
相关教材章节:第一章2. 数据类型与运算符:讲解基本数据类型、变量定义、常量声明,运算符及其优先级。
相关教材章节:第二章3. 顺序结构程序设计:学习基本输入输出函数,编写简单的顺序结构程序。
相关教材章节:第三章4. 分支结构程序设计:介绍if语句、switch语句,学会编写分支结构程序。
相关教材章节:第四章5. 循环结构程序设计:讲解for循环、while循环、do-while循环,掌握循环结构编程。
相关教材章节:第五章6. 数组:介绍一维数组、二维数组的使用,学会存储和操作批量数据。
c语言课课程设计

c语言课课程设计一、教学目标本节课的教学目标是让学生掌握C语言的基本语法和编程思想,培养学生编写简单程序的能力。
具体目标如下:1.知识目标:–了解C语言的发展历史和特点。
–掌握C语言的数据类型、变量、运算符和表达式。
–熟悉C语言的控制结构,包括条件语句和循环语句。
–理解函数的定义和调用。
2.技能目标:–能够使用C语言编写简单的程序,实现基本的输入输出、计算和控制流程。
–能够阅读和理解简单的C语言程序。
–能够对程序进行简单的调试和优化。
3.情感态度价值观目标:–培养学生对计算机科学的兴趣和好奇心。
–培养学生解决问题的能力和创新精神。
–培养学生团队合作和分享的意识。
二、教学内容根据教学目标,本节课的教学内容主要包括以下几个部分:1.C语言的发展历史和特点:介绍C语言的起源、发展和特点,让学生了解C语言的重要性和应用领域。
2.数据类型、变量、运算符和表达式:讲解C语言的基本数据类型、变量的声明和使用、运算符的用法和表达式的计算。
3.控制结构:讲解条件语句和循环语句的用法,让学生能够编写简单的分支和循环程序。
4.函数的定义和调用:讲解函数的定义、声明和调用方式,让学生了解函数的基本概念和使用方法。
5.编程实践:通过编写简单的程序,让学生实践和巩固所学的知识。
三、教学方法为了达到教学目标,本节课将采用以下几种教学方法:1.讲授法:教师讲解C语言的基本概念和语法,引导学生理解和掌握相关知识。
2.案例分析法:通过分析典型的C语言程序,让学生了解编程思想和方法。
3.实验法:让学生动手编写和运行C语言程序,培养学生的编程能力和实践能力。
4.讨论法:鼓励学生之间的交流和讨论,培养学生的团队合作和沟通能力。
四、教学资源为了支持教学内容和教学方法的实施,本节课将准备以下教学资源:1.教材:选用权威、实用的C语言教材,为学生提供系统的学习资料。
2.参考书:提供一些经典的C语言编程书籍,供学生课后阅读和参考。
3.多媒体资料:制作精美的PPT和教学视频,提高学生的学习兴趣和效果。
c语言课程设计的内容

c 语言课程设计的内容一、课程目标知识目标:1. 理解C语言的基本语法和结构,掌握变量定义、数据类型、运算符和表达式等基础知识;2. 学会使用C语言进行顺序、选择和循环结构的编程,并能运用逻辑判断和循环控制解决实际问题;3. 掌握C语言中的数组和字符串操作,能够运用数组进行批量数据处理;4. 了解函数的定义和调用方法,能够编写简单的自定义函数。
技能目标:1. 能够运用C语言编写简单的程序,解决实际问题;2. 培养良好的编程习惯,编写规范、可读性强的代码;3. 学会使用调试工具,能够调试并修复程序中的错误;4. 提高逻辑思维能力,学会分析问题、设计算法并转化为C语言程序。
情感态度价值观目标:1. 培养学生对编程的兴趣和热情,激发学生的创新意识;2. 培养学生严谨、细心的学习态度,提高团队协作能力;3. 使学生认识到编程在现代社会中的重要作用,树立正确的价值观;4. 引导学生遵守编程道德规范,遵循国家法律法规,养成良好的社会责任感。
课程性质:本课程为C语言编程入门课程,旨在让学生掌握C语言的基本知识和编程技能,为后续学习打下基础。
学生特点:学生处于初中或高中年级,具有一定的逻辑思维能力和数学基础,对编程感兴趣,但可能缺乏实际编程经验。
教学要求:结合学生特点,采用任务驱动的教学方法,注重实践操作,让学生在动手实践中掌握编程技能。
同时,注重培养学生的编程兴趣和团队协作能力,提高学生的综合素质。
通过本课程的学习,使学生能够达到上述课程目标,并在后续的学习中不断提高。
二、教学内容1. C语言基础知识:变量、数据类型、常量、运算符、表达式;2. 控制结构:顺序结构、选择结构(if、switch)、循环结构(for、while、do-while);3. 数组:一维数组、二维数组、字符数组与字符串;4. 函数:函数定义、函数调用、函数声明、局部变量与全局变量;5. 编程实践:编写简单的计算器程序、排序算法实现、字符串处理等;6. 调试与优化:使用调试工具(如Turbo C)、程序错误类型及解决方法、代码优化。
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
汉诺塔动态演示一课题分析1.1 设计要求在Visual c++环境下编写汉诺塔的程序并运行出汉诺塔游戏。
能够改变汉诺塔塔盘的数量。
可以电脑演示移动过程,也可以人为移动,并且能够控制塔盘移动速度。
实现汉诺塔的简单动态演示。
1.1.1 目的了解在开发环境中如何编辑,编译,连接和运行一个C语言程序。
通过运行汉诺塔的程序,初步了解C语言程序的结构特点。
掌握C语言数据类型的概念,学会使用C语言的相关运算符构成表达式。
1.1.2 背景世界范围内信息技术迅猛发展,新的技术和方法层出不穷。
C语言在计算机应用中发挥着重要作用,并且在全世界普及推广。
作为当代大学生,有必要掌握和会运用C语言。
1.1.3 意义这次课程设计,可以培养我们独立自主的学习能力,实事求是的学习态度,严谨治学的学习作风,通过实践,建立系统设计的整体思想,锻炼编写程序、调试程序的能力,学习文档编写规范,吸取他人经验、探索前言知识的习惯,树立团队协作精神。
同时课程设计还可以弥补我们自身在实践时所缺少的经验。
这次对于汉诺塔这个问题的研究是我在C 语言课程学习中递归函数的一次实际运用,对我的递归函数的理解会有更多的帮助。
1.2 实现功能运用数据结构的相关知识,利用一定的算法制作出汉诺塔程序。
能输入塔盘的数量(10以内)和塔盘移动速度,支持人和电脑操作,并且显示移动过程和移动次数,实现汉诺塔的动态演示。
图1 汉诺塔功能结构图二整体设计2.1 框架设计图2 汉诺塔流程图三详细设计3.1问题描述假设有三个分别命名为A,B和C的塔座,在塔座B上插有n个直径大小各不相同、从小到大编号为1,2,…,n的圆盘。
现要求将塔座B上的n个圆盘移至塔座A上并仍按同样顺序叠排,圆盘移动时必须遵守以下规则:(1)每次只能移动一个圆盘;(2)圆盘可以插在A,B和C中任一塔上;(3)任何时刻都不能将一个较大的圆盘压在较小的圆盘之上。
要求:用程序模拟上述问题解决办法,并输出移动的总次数,圆盘的个数从键盘输入;并想办法计算出程序运行的时间。
3.2 算法思路3.2.1建立数学模型这个问题可用递归法解决,并用数学归纳法又个别得出普遍解法:假设塔座B上有3个圆盘移动到塔座A上:(1)将塔座B上2个圆盘借助塔座A移动到塔座C上;(2)将塔座B上1个圆盘移动到塔座A上;(3)将塔座C上2个圆盘借助塔座B移动到塔座A上。
其中第2步可以直接实现。
第1步又可用递归方法分解为:1.1"将塔座B上1个圆盘从塔座X移动到塔座A;1.2"将塔座B上1个圆盘从塔座X移动到塔座C;1.3"将塔座A上1个圆盘从塔座Z移动到塔座C。
第3步可以分解为:将塔座C上1个圆盘从塔座Y移动到塔座B;将塔座C上1个圆盘从塔座Y移动到塔座A;将塔座B上1个圆盘从塔座X移动到塔座A。
综上所述:可得到移动3个圆盘的步骤为B->A,B->C, A->C, B->A, C->B, C->A, B->A,3.2.2 算法设计将n个圆盘由B依次移到A,C作为辅助塔座。
当n=1时,可以直接完成。
否则,将塔座B 顶上的n-1个圆盘借助塔座A移动到塔座C上;然后将圆盘B上第n个圆盘移到塔座A上;最后将塔座C上的n-1个圆盘移到塔座A上,并用塔座B作为辅助塔座。
3.2 运用类的介绍主类Tower类HannoiTower类TowerPoint类Disk类Time四总结这次对于汉诺塔的课程设计我有很多心得和体会,课程设计所设计制作出来的汉诺塔游戏总体符合设计要求,但也有一些缺点和不足,没能完全达到预期的要求。
通过课程设计,我们对C语言的掌握提高到了一个新的水平,能够应用C语言编写出一个实用的程序,很大程度上提高了程序综合设计能力、分析能力和编程能力。
掌握了很多新的编程技巧,积累了一些编程经验这些技巧和经验对于以后的课程都是很重要的。
因此我觉得这次课程设计虽然困难不小,但收获很大。
编写程序其中最重要的一个方面就是要认真,认真编写代码可。
以大大减少错误的出现;其次是要有耐心,勇于克服困难,不断解决问题,面对困难要永不退缩,迎难而上;再次是要有清晰的思维,能够理清各个函数之间的关系,明确各个函数的职能;最后还要和同学多交流合作,多参考书籍。
参考文献【01】谭浩强《C程序设计》第4版清华大学出版社 2010【02】C语言程序设计精品课程网站汉诺塔程序设计 2012.6【03】覃征,王志敏《程序设计方法与优化》西安交通大学出版社 2004【04】彭四伟,赵彤洲,高巍《C语言程序设计》清华大学出版社 2002附录#include<stdio.h>#include<stdlib.h>#include<conio.h>#include<string.h>#include<math.h>struct T{int h; //塔的高度int x; //塔的第一个盘的x坐标,y坐标等于(7+n-塔的高度h) int l; //塔的第一个盘的长度}ta[3]={{10,15,2},{0,0,0},{0,0,0}};char hnt[18][79]={" "},{" 汉诺塔动画演示"},{" "},{" ╔════════════════════════════════════╗"},{" ║ ║"},{" ║ ║"},{" ║ ║"},{" ║ ▆║"},{" ║ ▆▆║"},{" ║ ▆▆▆║"},{" ║ ▆▆▆▆║"},{" ║ ▆▆▆▆▆║"},{" ║ ▆▆▆▆▆▆║"},{" ║ ▆▆▆▆▆▆▆║"},{" ║ ▆▆▆▆▆▆▆▆║"},{" ║ ▆▆▆▆▆▆▆▆▆║"},{" ║ ▆▆▆▆▆▆▆▆▆▆║"},{" ╚════════════════════════════════════╝"}};int n;int sum=0;int computerorpeople=1;void count_ta_1(int ta_1){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;}}}void move(int ta_1,int ta_3){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<ta[ta_1].l;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]=' ';}ta[ta_1].h--;count_ta_1(ta_1);system("cls");for(i=0;i<7+n;i++)printf("%s\n",hnt[i]);printf("%s",hnt[17]);printf("\n\n 从%c塔移动一个盘到%c塔\n",ta_1+65,ta_3+65);printf("\n 步数:%d\n\n ",sum);if(computerorpeople==2)system("pause");elsefor(i=0;i<200000*speed;i++);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); //如果盘子为,将这个盘子从塔座A移动到塔座C else{hanoi(ta_1,ta_3,ta_2,m-1); //将塔座A的前m-1个盘子移到塔座Bmove(ta_1,ta_3); //将塔座A的第m个盘子移到塔座Chanoi(ta_2,ta_1,ta_3,m-1); //将塔座B的m-1个盘子移到塔座C}}int main(){int i;printf("请输入汉诺塔的高度(范围->10):");scanf("%d",&n);printf("请选择:输入由电脑自动控制;\n");printf(" 输入由人控制。
\n");printf("请输入:");scanf("%d",&computerorpeople);if(computerorpeople!=1&&computerorpeople!=2)computerorpeople=1;if(computerorpeople==1){printf("请输入移动盘的速度(例如:输入则代表秒):");scanf("%d",&speed);}if(n<1||n>10)n=10;ta[0].h=n;system("cls");for(i=0;i<7+n;i++)printf("%s\n",hnt[i]);printf("%s\n\n ",hnt[17]);system("pause");hanoi(0,1,2,n);if(computerorpeople==1)return 0;}【小组分工合作情况】本次实验课题的完成分为以下几个步骤:一汉诺塔课题的选择以及编写程序之前的准备;二实验程序的编写及运行测试;三程序的修改与完善;四程序的运行及对运行结果的分析;五课程设计实验报告的编写更正。
***负责的有:对于编写游戏程序之前准备资料的查询与记录;汉诺塔程序的编写与检验;课程设计报告中课题分析、整体设计部分的编写;课程设计实验报告的整理。