《软件算法分析与设计》课程设计任务书 (1)
计算机算法设计与分析课程设计

计算机算法设计与分析课程设计成绩评定表课程设计任务书算法分析是对一个算法需要多少计算时间和存储空间作定量的分析。
算法(Algorithm)是解题的步骤,可以把算法定义成解一确定类问题的任意一种特殊的方法。
在计算机科学中,算法要用计算机算法语言描述,算法代表用计算机解一类问题的精确、有效的方法。
分治法字面上的解释是“分而治之”,就是把一个复杂的问题分成两个或更多的相同或相似的子问题,再把子问题分成更小的子问题……直到最后子问题可以简单的直接求解,原问题的解即子问题的解的合并。
在一个2^k*2^k的棋盘上,恰有一个放歌与其他方格不同,且称该棋盘为特殊棋盘。
回溯法的基本做法是深度优先搜索,是一种组织得井井有条的、能避免不必要重复搜索的穷举式搜索算法。
数字拆分问题是指将一个整数划分为多个整数之和的问题。
利用回溯法可以很好地解决数字拆分问题。
将数字拆分然后回溯,从未解决问题。
关键词:分治法,回溯法,棋盘覆盖,数字拆分1分治法解决期盼覆问题 (1)1.1问题描述 (1)1.2问题分析 (1)1.3算法设计 (1)1.4算法实现 (2)1.5结果分析 (3)1.6算法分析 (4)2回溯法解决数字拆分问题 (6)2.1问题描述 (6)2.2问题分析 (6)2.3算法设计 (7)2.4算法实现 (7)2.5结果分析 (8)参考文献 (9)1分治法解决期盼覆问题1.1问题描述在一个2k×2k(k≥0)个方格组成的棋盘中,恰有一个方格与其他方格不同,称该方格为特殊方格。
显然,特殊方格在棋盘中出现的位置有4k中情形,因而有4k中不同的棋盘,图(a)所示是k=2时16种棋盘中的一个。
棋盘覆盖问题要求用图(b)所示的4中不同形状的L型骨牌覆盖给定棋盘上除特殊方格以外的所有方格,且热河亮哥L型骨牌不得重复覆盖1.2问题分析用分治策略,可以设计解决棋盘问题的一个简介算法。
当k>0时,可以将2^k*2^k棋盘分割为4个2^k-1*2^k-1子棋盘。
算法设计与分析实验指导书

算法设计与分析实验指导书. . .. . .算法设计与分析实验指导书东北大学软件学院2012年.. .专业. .目录算法设计与分析 (1)实验指导书 (1)前言 (3)实验要求 (4)实验1 分治法的应用(2学时) (5)1.实验目的 (5)2.实验类型 (5)3.预习要求 (5)4.实验基本要求 (5)5.实验基本步骤 (7)实验2动态规划(2学时) (9)1.实验目的 (9)2.实验类型 (9)3.预习要求 (9)4.实验基本要求 (9)5.实验基本步骤 (10)实验3 回溯法(4学时) (12)1.实验目的 (12)2.实验类型 (12)3.预习要求 (12)4.实验基本要求 (12)5.实验基本步骤 (13)前言《算法设计与分析》是一门面向设计,处于计算机科学与技术学科核心地位的教育课程。
通过对计算机算法系统的学习,使学生理解和掌握计算机算法的通用设计方法,培养对算法的计算复杂性正确分析的能力,为独立设计算法和对算法进行复杂性分析奠定基础。
要求掌握算法复杂度分析、分治法、动态规划法、贪心法、回溯法、分支限界法等算法的设计方法及其分析方法。
能将这些方法灵活的应用到相应的问题中,并且能够用C++实现所涉及的算法,并尽量做到低复杂度,高效率。
通过本课程的实验,使学生加深对课程容的理解,培养学生严密的思维能力,运用所学知识结合具体问题设计适用的算法的能力;培养学生良好的设计风格,激励学生创造新算法和改进旧算法的愿望和热情。
希望同学们能够充分利用实验条件,认真完成实验,从实验中得到应有的锻炼和培养。
希望同学们在使用本实验指导书及进行实验的过程中,能够帮助我们不断地发现问题,并提出建议,使《算法设计与分析》课程成为对大家有益的课程。
实验要求《算法设计与分析》课程实验的目的是为了使学生在课堂学习的同时,通过一系列的实验,使学生加深理解和更好地掌握《算法设计与分析》课程教学大纲要求的容。
在《算法设计与分析》的课程实验过程中,要求学生做到:(1)仔细观察调试程序过程中出现的各种问题,记录主要问题,做出必要说明和分析。
2010计算机算法分析与设计任务书

2010计算机算法分析与设计任务书算法分析与设计任务书1 课程设计的目的《算法分析与设计》是信息与计算科学专业集中实践性环节之一,是学习完《算法分析与设计》课程后进行的一次全面的综合练习。
其目的是:(1)要达到理论与实际应用相结合,使学生能够学会常用的几种算法思想以及对算法进行分析,能把现实世界中的实际问题在计算机内部表示出来,并培养良好的程序设计技能。
(2)在实践中认识为什么要学习算法分析与设计,掌握算法的设计思想与程序设计语言之间的关系,是前面所学知识的综合和回顾。
2 课程设计的基本要求(1)了解并掌握数据结构与算法的设计方法,具备初步的独立分析和设计能力;(2)初步掌握软件开发过程的问题分析、系统设计、程序编码、测试等基本方法和技能;(3)提高综合运用所学的理论知识和方法独立分析和解决问题的能力;(4)训练用系统的观点和软件开发一般规范进行软件开发,培养软件工作者所应具备的科学的工作方法和作风;(5)设计的题目要求达到一定工作量,并具有一定的深度和难度;(6)编写出课程设计说明书。
3 课程设计内容及安排(1)问题分析和任务定义:根据设计题目的要求,充分地分析和理解问题,明确问题要求做什么?(而不是怎么做?)限制条件是什么?(2)逻辑设计:对问题描述中涉及的操作对象定义相应的数据类型,并按照以数据结构为中心的原则划分模块,定义主程序模块和各抽象数据类型。
逻辑设计的结果应写出每个抽象数据类型的定义(包括数据结构的描述和每个基本操作的功能说明),各个主要模块的算法,并画出模块之间的调用关系图;(3)详细设计:定义相应的存储结构并写出各函数的伪代码算法。
在这个过程中,要综合考虑系统功能,使得系统结构清晰、合理、简单和易于调试,抽象数据类型的实现尽可能做到数据封装,基本操作的规格说明尽可能明确具体。
详细设计的结果是对数据结构和基本操作进行进一步的求精,写出数据存储结构的类型定义,写出函数形式的算法框架;(4)程序编码:把详细设计的结果进一步求精为程序设计语言程序。
《计算机算法设计与分析》课程设计

用分治法解决快速排序问题及用回溯法解决0-1背包问题一、课程设计目的:《计算机算法设计与分析》这门课程是一门实践性非常强的课程,要求我们能够将所学的算法应用到实际中,灵活解决实际问题。
通过这次课程设计,能够培养我们独立思考、综合分析与动手的能力,并能加深对课堂所学理论和概念的理解,可以训练我们算法设计的思维和培养算法的分析能力。
二、课程设计内容:1、分治法:(2)快速排序;2、回溯法:(2)图的着色。
三、概要设计:●分治法—快速排序:分治法的基本思想是将一个规模为n的问题分解为k个规模较小的子问题,这些子问题互相独立且与原问题相同。
递归地解这些子问题,然后将各个子问题的解合并得到原问题的解。
分治法的条件:(1) 该问题的规模缩小到一定的程度就可以容易地解决;(2) 该问题可以分解为若干个规模较小的相同问题,即该问题具有最优子结构性质;(3) 利用该问题分解出的子问题的解可以合并为该问题的解;(4) 该问题所分解出的各个子问题是相互独立的,即子问题之间不包含公共的子子问题。
抽象的讲,分治法有两个重要步骤:(1)将问题拆开;(2)将答案合并;●回溯法—0-1背包问题回溯法的基本思想是确定了解空间的组织结构后,回溯法就是从开始节点(根结点)出发,以深度优先的方式搜索整个解空间。
这个开始节点就成为一个活结点,同时也成为当前的扩展结点。
在当前的扩展结点处,搜索向纵深方向移至一个新结点。
这个新结点就成为一个新的或节点,并成为当前扩展结点。
如果在当前的扩展结点处不能再向纵深方向移动,则当前的扩展结点就成为死结点。
换句话说,这个节点,这个结点不再是一个活结点。
此时,应往回(回溯)移动至最近一个活结点处,并使这个活结点成为当前的扩展结点。
回溯法即以这种工作方式递归的在解空间中搜索,直到找到所要求的解或解空间中以无活结点为止。
四、详细设计与实现:分治法—快速排序快速排序是基于分治策略的另一个排序算法。
其基本思想是,对于输入的子数组[]r p a :,按以下三个步骤进行排序:(1)、分解(divide) 以元素[]p a 为基准元素将[]r p a :划分为三段[]1:-q p a ,[]q a 和,[]r q a :1+使得[]1:-q p a 中任何一个元素都小于[]q a ,而[]r q a :1+中任何一个元素大于等于[]q a ,下标q 在划分过程中确定。
《计算机算法设计与分析》课程设计

《计算机算法设计与分析》课程设计用分治法解决快速排序问题及用动态规划法解决最优二叉搜索树问题及用回溯法解决图的着色问题一、课程设计目的:《计算机算法设计与分析》这门课程是一门实践性非常强的课程,要求我们能够将所学的算法应用到实际中,灵活解决实际问题。
通过这次课程设计,能够培养我们独立思考、综合分析与动手的能力,并能加深对课堂所学理论和概念的理解,可以训练我们算法设计的思维和培养算法的分析能力。
二、课程设计内容:1、分治法:(2)快速排序;2、动态规划:(4)最优二叉搜索树;3、回溯法:(2)图的着色。
三、概要设计:分治法—快速排序:分治法的基本思想是将一个规模为n的问题分解为k个规模较小的子问题,这些子问题互相独立且与原问题相同。
递归地解这些子问题,然后将各个子问题的解合并得到原问题的解。
分治法的条件:(1) 该问题的规模缩小到一定的程度就可以容易地解决;(2) 该问题可以分解为若干个规模较小的相同问题,即该问题具有最优子结构性质;(3) 利用该问题分解出的子问题的解可以合并为该问题的解;(4) 该问题所分解出的各个子问题是相互独立的,即子问题之间不包含公共的子子问题。
抽象的讲,分治法有两个重要步骤:(1)将问题拆开;(2)将答案合并;动态规划—最优二叉搜索树:动态规划的基本思想是将问题分解为若干个小问题,解子问题,然后从子问题得到原问题的解。
设计动态规划法的步骤:(1)找出最优解的性质,并刻画其结构特征;(2)递归地定义最优值(写出动态规划方程);(3)以自底向上的方式计算出最优值;(4)根据计算最优值时得到的信息,构造一个最优解。
●回溯法—图的着色回溯法的基本思想是确定了解空间的组织结构后,回溯法就是从开始节点(根结点)出发,以深度优先的方式搜索整个解空间。
这个开始节点就成为一个活结点,同时也成为当前的扩展结点。
在当前的扩展结点处,搜索向纵深方向移至一个新结点。
这个新结点就成为一个新的或节点,并成为当前扩展结点。
算法设计与分析课程设计任务书

《算法设计与分析》课程设计任务书学院名称:数学与计算机学院专业:信息与计算科学专业年级:2007一、设计题目用回溯法求解一般哈密尔顿回路问题二、主要内容给出内存分类法的多种应用,给出这些应用对应的算法并编程实现。
三、具体要求(1)给出各种分类法的求解算法;(2)编程实现各种分类法的算法;(3)对所写的每个算法给出时空复杂性分析。
四、主要技术路线提示1、回溯法的主要思想是每次只构造解的一个分量,然后按照下面的方法来评估这个部分构造解。
如果一个部分构造解可以进一步构造而不会违反问题的约束,我们就接受对解的下一个分量所做的第一个合法选择。
如果无法对下一个分量进行合法选择,就不必对剩下的任何分量再做任何选择了。
在这种情况下,该算法进行回溯,把部分构造解的最后一个分量替换为他的下一个选择。
2、设计回溯法的步骤(1)对所做的选择构造一棵所谓的状态空间数。
(2)如果一个部分构造解仍然有可能导致一个完整解,我们说这个部分解在树中的相应结点是有希望的;否则,我们说他是没希望的。
(3)一个回溯法的状态空间树是按照深度优先的方式来构造的。
(4)最后,如果该算法找到了问题的一个完整解,它要么就停止了,要么继续查找其他可能的解。
3、哈密顿路径问题在上世纪七十年代初,终于被证明是“NP完备”的。
据说具有这样性质的问题,难于找到一个有效的算法。
实际上对于某些顶点数不到100的网络,利用现有最好的算法和计算机也需要比较荒唐的时间(比如几百年)才能确定其是否存在一条这样的路径。
从图中的任意一点出发,路途中经过图中每一个结点当且仅当一次,则成为哈密顿回路。
要满足两个条件:1.封闭的环2.是一个连通图,且图中任意两点可达经过图(有向图或无向图)中所有顶点一次且仅一次的通路称为哈密顿通路。
经过图中所有顶点一次且仅一次的回路称为哈密顿回路。
具有哈密顿回路的图称为哈密顿图,具有哈密顿通路但不具有哈密顿回路的图称为半哈密顿图。
平凡图是哈密顿图。
教学计划编制问题-软件算法分析与设计课程设计

信息与电气工程学院课程设计说明书(2015/2016学年第一学期)课程名称:软件算法分析与设计题目:教学计划编制专业班级:计算机1401学生姓名:李丹丹学号:140210132指导教师:陈丽设计周数:一周设计成绩:2016年1月13日目录一、课题的主要功能 (3)1.1程序的功能 (3)1.2.输入输出的要求 (3)1.3运行环境 (3)1.4开发工具 (3)二、概要设计 (4)2.1程序的模块组成 (4)2.2模块的层次结构及调用关系 (4)2.3模块的主要功能 (4)2.4数据结构和数据库结构 (5)三.主要功能的实现 (5)3.1采用C语言定义相关的数据类型。
(5)3.2主要函数的流程图 (5)3.3画出各函数的调用关系图 (12)四、程序调试 (13)4.1测试数据: (13)4.2使用说明 (14)五.心得体会 (17)六、附录 (15)6.1参考书目 (15)6.2源程序清单(带注释) (16)一、课题的主要功能1.1程序的功能大学的每个专业都要制订教学计划。
假设任何专业都有固定的学习年限,每学年含两学期,每学期的时间长度和学分上限均相等。
每个专业开设的课程都是确定的,而且课程在开设时间的安排必须满足先修关系。
每门课程有哪些先修课程是确定的,可以有任意多门,也可以没有。
每门课恰好占一个学期。
试在这样的前提下设计一个教学计划编制程序。
本程序针对本科的学期内容,通过输入实际的课程及先后关系。
结合每学期的学分及课程数,制定好学习计划。
在输入相关数据后,程序会安排好每学期的课程。
1.2.输入输出的要求输入参数包括:学期总数,一学期的学分上限,每门课的课程号(固定占3位的字母数字串)、学分和直接先修课的课程号。
输出要求输出各门课程所对应的学分,以及每学期各门课程的安排。
1.3运行环境1.WINDOWS7系统2.Vc++6.0编译环境1.4开发工具C语言二、概要设计2.1所负责的程序的模块LocateVex():图的邻接表存储的基本操作CreateGraph():构造生成树Display():输出图的邻接矩阵FindInDegree():求顶点的入度2.2模块的层次结构及调用关系Main()函数Topological Sort()输出G顶点的拓扑Display()输出图的邻接矩阵CreateGraph()生成图2.3模块的主要功能见“详细设计”-“主要函数流程图”2.4数据结构和数据库结构储存的数据为结构体类型数组,以及结构体单链表结点类型。
算法设计与分析课程设计

算法设计与分析 课程设计一、课程目标知识目标:1. 让学生掌握基本的算法设计原理,包括贪心算法、分治算法、动态规划等,并能够运用这些原理解决实际问题。
2. 使学生了解不同算法的时间复杂度和空间复杂度分析方法,能够评估算法的效率。
3. 引导学生理解算法的优缺点,并能针对具体问题选择合适的算法进行解决。
技能目标:1. 培养学生运用所学算法原理设计解决实际问题的算法,提高编程实现能力。
2. 培养学生通过分析算法的时间复杂度和空间复杂度,对算法进行优化和改进的能力。
3. 提高学生运用算法思维解决问题的能力,培养逻辑思维和创新能力。
情感态度价值观目标:1. 激发学生对算法学习的兴趣,培养主动探索、积极思考的学习态度。
2. 培养学生团队协作精神,学会与他人分享算法设计心得,共同解决问题。
3. 使学生认识到算法在现实生活中的重要性,提高对计算机科学的认识和兴趣。
课程性质:本课程为计算机科学领域的一门核心课程,旨在培养学生的算法设计与分析能力。
学生特点:学生已经具备一定的编程基础和逻辑思维能力,但对复杂算法的设计与分析仍需加强。
教学要求:结合实际案例,注重理论与实践相结合,引导学生通过自主探究、团队合作等方式,达到课程目标。
在教学过程中,注重分解目标,将目标具体化为可衡量的学习成果,以便于教学设计和评估。
二、教学内容1. 算法基本原理:- 贪心算法:介绍贪心算法原理及其应用场景,结合实际案例进行分析。
- 分治算法:阐述分治算法的设计思想及其应用,举例说明。
- 动态规划:讲解动态规划的基本概念、原理和应用,分析典型问题。
2. 算法分析:- 时间复杂度分析:介绍大O表示法,分析常见算法的时间复杂度。
- 空间复杂度分析:阐述空间复杂度的概念,分析常见算法的空间复杂度。
3. 算法优化与改进:- 针对典型问题,分析现有算法的优缺点,探讨优化方向。
- 引导学生通过算法分析,提出改进方案,并进行实现。
4. 教学大纲安排:- 第一章:算法基本原理(贪心算法、分治算法、动态规划)- 第二章:算法分析(时间复杂度、空间复杂度)- 第三章:算法优化与改进5. 教材章节和内容列举:- 教材第3章:贪心算法及其应用- 教材第4章:分治算法及其应用- 教材第5章:动态规划及其应用- 教材第6章:算法分析(时间复杂度、空间复杂度)- 教材第7章:算法优化与改进教学内容确保科学性和系统性,结合实际案例进行讲解,使学生能够逐步掌握算法设计与分析的方法。
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
《软件算法分析与设计》课程设计任务书一、课程基本信息1、课程设计编号:2、课程设计名称:软件算法分析与设计3、课程设计周数(学时):1周(40学时)4、课程设计授课单位:计算机科学与技术系5、指导方式:集体辅导和个别辅导相结合6、适用专业:计算机科学与技术7、课程设计教材及主要参考资料:[1] 严蔚敏,吴伟民编著.数据结构(C语言版).清华大学出版社,1997.4[2] 严蔚敏,吴伟民编著.数据结构习题集 . 清华大学出版社,1997.4二、教学目的和基本要求1、了解并掌握数据结构和算法设计的方法,具备初步的独立分析和设计能力。
2、初步掌握软件开发过程的问题分析分析、系统设计、程序编码和测试等基本方法和技能。
3、提高综合运用所学的理论只是和方法,独立分析和解决问题的能力。
4、训练用系统的观点和软件开发一般规范进行软件的开发,培养软件工作着所具备的科学工作方法和作风。
三、课程设计的内容和安排1、问题分和任务定义:根据设计题目的要求,充分地分析和理解问题,明确问题要求做什么,限制的条件是什么。
2、逻辑设计:对问题中涉及到的操作对象定义相应的数据类型,并按照以数据结构为中心的原则划分模块,定义主程序和各抽象数据类型,逻辑设计的结果应写出每个抽象数据类型的定义(包括数据结构的描述和每个基本操作的功能说明),各个主要模块的算法,并画出模块之间的调用关系图。
3、物理设计:定义相应的存储结构并写出个函数的伪码算法。
在这个过程中,要综合考虑系统功能,使得系统结构清晰、合理、简单和易于调试,抽象数据类型的实现尽可能做到数据封装,基本操作的规格说明尽可能明确具体。
详细设计的结果是对数据结构和基本操作做出进一步的求精,写出数据结构存储结构的类型定义,写出函数形式的算法框架。
4、程序编码:把详细设计的结果进一步求精为程序设计语言。
同时加入一些注解和断言,使程序中逻辑概;念清晰。
5、程序调试和测试:采用自底向上,分模块进行,即先调试低层函数。
能够熟练掌握调试工具的各种功能,设计测试数据确定疑点,通过修改程序来证实它或绕过它。
调试正确后,认真整理源程序和注释,形成格式和风格良好的源程序清单和结果。
6、结果分析:程序运行结果包括正确的输入及其输出结果、含有错误的输入和输出结果、算法时间复杂度和空间复杂度分析。
7、撰写课程设计报告:总结和提升上述过程和步骤,写出结构严谨、表述清楚、符合设计规范的报告。
四、课程设计的题目本课程设计题目共13个,每个同学可以根据自身实际情况进行选择。
最后需要对所做系统书写实验报告一份,格式见附页。
五、考核的方法和成绩的评定考核成绩分为两个部分:(1)验收程序部分:占50%。
按照以下几个指标进行验收:①程序的正确性;②程序的运行和存储效率;③程序代码编写规范程度,代码的可读性高;④界面是否友好;⑤程序设计的创新性;(2)实验报告(50%)①实验报告结构是否清晰,问题叙述是否具有逻辑性;②关键代码设计是否正确无误;③程序设计的时间、空间复杂性分析是否正确。
六、时间的安排共1周,5天。
题目共14个,每个同学可以根据自身实际情况掌握进度,最后一天验收程序,也可以分部分验收。
七、课程设计报告的格式(1)问题的概述、分析和研究意义;(2)数据结构的逻辑设计和物理存储设计;(3)重要算法的设计、流程描述和代码描述;(4)数据结构的时间、空间复杂性分析和重要算法的复杂度分析;(5)程序的最终实现结果(包括重点界面的抓取,能说明问题的重要实验结果数据的打印或其可视化结果);(6)参考文献;(7)附录:关键数据结构的定义及关键算法的源代码。
八、课程设计结果的提交(1)课程设计报告(一份、A4纸打印,同时包括一份电子文档)。
(2)完整的程序系统(电子方式提交),能够对输入产生相应的输出,同时尽量完成可视化演示。
(3)源程序文档(电子方式提交),源程序代码要求适当缩进编排、结构清晰、可读性好,对源程序的类说明(如采用面向对象方法设计)、函数说明、接口说明、关键变量说明等要进行注释。
(4)答辩报告(制作PPT报告,电子方式提交),要求重点突出,思路清晰,同时就此报告准备答辩。
所有电子方式提交的文件全部存放在一个目录中,并对其进行压缩,压缩后的文件按规定格式进行命名,命名格式为:班级号+学号+姓名。
九、课程设计题目说明1.运动会分数统计(限3人完成)任务:参加运动会有n个学校,学校编号为1……n。
比赛分成m个男子项目,和w个女子项目。
项目编号为男子1……m,女子m+1……m+w。
不同的项目取前五名或前三名积分;取前五名的积分分别为:7、5、3、2、1,前三名的积分分别为:5、3、2;哪些取前五名或前三名由学生自己设定。
(m<=20,n<=20)功能要求:1)可以输入各个项目的前三名或前五名的成绩;2)能统计各学校总分;3)可以按学校编号或名称、学校总分、男女团体总分排序输出;4)可以按学校编号查询学校某个项目的情况;可以按项目编号查询取得前三或前五名的学校;5)数据存入文件并能随时查询;6)规定:输入数据形式和范围:可以输入学校的名称,运动项目的名称。
输出形式:有合理的提示,各学校分数为整形。
界面要求:有合理的提示,每个功能可以设立菜单,根据提示,可以完成相关的功能要求。
存储结构:学生自己根据系统功能要求自己设计,但是要求运动会的相关数据要存储在数据文件中。
(数据文件的数据读写方法等相关内容在c语言程序设计的书上,请自学解决)请在最后的上交资料中指明你用到的存储结构。
测试数据:要求使用1、全部合法数据;2、整体非法数据;3、局部非法数据。
进行程序测试,以保证程序的稳定。
测试数据及测试结果请在上交的资料中写明。
2.飞机订票系统(限3人完成)任务:通过此系统可以实现如下功能:录入:可以录入航班情况(数据可以存储在一个数据文件中,数据结构、具体数据自定)。
查询:可以查询某个航线的情况(如,输入航班号,查询起降时间,起飞抵达城市,航班票价,票价折扣,确定航班是否满仓);可以输入起飞抵达城市,查询飞机航班情况。
订票:(订票情况可以存在一个数据文件中,结构自己设定)可以订票,如果该航班已经无票,可以提供相关可选择航班。
退票:可退票,退票后修改相关数据文件。
客户资料有姓名,证件号,订票数量及航班情况,订单要有编号。
修改航班信息:当航班信息改变可以修改航班数据文件。
要求:根据以上功能说明,设计航班信息,订票信息的存储结构,设计程序完成功能。
3.文章编辑(限3人完成)功能:输入一页文字,程序可以统计出文字、数字、空格的个数。
静态存储一页文章,每行最多不超过80个字符,共N行;要求(1)分别统计出其中英文字母数和空格数及整篇文章总字数;(2)统计某一字符串在文章中出现的次数,并输出该次数;(3)删除某一子串,并将后面的字符前移。
存储结构使用线性表,分别用几个子函数实现相应的功能。
输入数据的形式和范围:可以输入大写、小写的英文字母、任何数字及标点符号。
输出形式:(1)分行输出用户输入的各行字符;(2)分4行输出"全部字母数"、"数字个数"、"空格个数"、"文章总字数"(3)输出删除某一字符串后的文章。
4.宿舍管理查询软件(限3人完成)1)任务:为宿舍管理人员编写一个宿舍管理查询软件, 程序设计要求:A.采用交互工作方式;B.建立数据文件,数据文件按关键字(姓名、学号、房号)进行排序(冒泡、选择、插入排序等任选一种);2)查询菜单: (用二分查找实现以下操作);A.按姓名查询;B.按学号查询;C.按房号查询;3)打印任一查询结果(可以连续操作)。
5.校园导航问题(限3人完成)设计要求:设计你的学校的平面图,至少包括10个以上的场所,每两个场所间可以有不同的路,且路长也可能不同,找出从任意场所到达另一场所的最佳路径(最短路径)。
6.教学计划编制问题(限3人完成)设计要求:针对计算机系本科课程,根据课程之间的依赖关系(如离散数学应在数据结构之前开设)制定课程安排计划,并满足各学期课程数目大致相同。
7.图书借阅管理系统(限3人完成)主要分为两大功能:1)图书管理(增加图书、查询图书、删除图书、图书借阅、还书);2)会员管理(增加会员、查询会员、删除会员、借书信息)。
8.学生成绩管理(限3人完成)实现功能:输入、输出、插入、删除、查找、追加、读入、显示、保存、拷贝、排序、索引、分类合计、退出。
9.通讯录的制作(限3人完成)设计目的:用〈〈数据结构〉〉中的双向链表作数据结构,结合C语言基本知识。
编写一个通讯录管理系统。
以把所学数据结构知识应用到实际软件开发中去。
设计内容:本系统应完成一下几方面的功能:1)输入信息——enter();2)显示信息———display( );3)查找以姓名作为关键字———search( );4)删除信息———delete( );5)存盘———save ( );6)装入———load( ) ;设计要求:1)每条信息至包含:姓名(NAME )街道(STREET)城市(CITY)邮编(EIP)国家(STATE)几项;2)作为一个完整的系统,应具有友好的界面和较强的容错能力;3)上机能正常运行,并写出课程设计报告;10.图书管理系统(限3人完成)【问题描述】设计一个计算机管理系统完成图书管理基本业务。
【基本要求】1)每种书的登记内容包括书号、书名、著作者、现存量和库存量;2)对书号建立索引表(线性表)以提高查找效率;3)系统主要功能如下:采编入库:新购一种书,确定书号后,登记到图书帐目表中,如果表中已有,则只将库存量增加;借阅:如果一种书的现存量大于0,则借出一本,登记借阅者的书证号和归还期限,改变现存量; *归还:注销对借阅者的登记,改变该书的现存量。
【进一步完成内容】1)系统功能的进一步完善;2)索引表采用树表;3)设计内容;4)程序流程图;5)源程序;6)软件测试报告(包括所用到的数据及结果)。
11.猴子吃桃子问题(限3人完成)有一群猴子摘了一堆桃子,他们每天都吃当前桃子的一半且再多吃一个,到了第10天就只余下一个桃子。
用多种方法实现求出原来这群猴子共摘了多少个桃子。
要求:1)采用数组数据结构实现上述求解;2)采用链数据结构实现上述求解;3)采用递归实现上述求解。
12.数制转换问题(限3人完成)任意给定一个M进制的数x ,请实现如下要求:1)求出此数x的10进制值(用MD表示);2)实现对x向任意的一个非M进制的数的转换;3)至少用两种或两种以上的方法实现上述要求(用栈解决,用数组解决,其它方法解决)。
13.排序综合(限3人完成)利用随机函数产生N个随机整数(20000以上),对这些数进行多种方法进行排序。