文档库 最新最全的文档下载
当前位置:文档库 › 课设

课设

课设

《操作系统课程设计》任务书

设计题目:银行家算法通用演示程序

指导老师:赵娟

课程设计的目的:

操作系统课程设计是计算机专业重要的教学环节,它为学生提供了一个既动手又动脑,将课本上的理论知识和实际有机的结合起来,独立分析和解决实际问题的机会。

● 进一步巩固和复习操作系统的基础知识。

● 培养学生结构化程序、模块化程序设计的方法和能力。

● 提高学生调试程序的技巧和软件设计的能力。

● 提高学生分析问题、解决问题以及综合利用C 语言进行程序设计的能力。

设计内容:

设计并实现银行家算法通用演示程序,采用矩阵存储资源的数据,通过对系统资源预分配后检查系统状态,以避免死锁的产生。

设计要求:

1) 资源种类与数目可在界面进行设置,在资源分配过程中可以随时增加进程及其对资

源的需求

2) 可读取样例数据(要求存放在外部文件中)进行资源种类、数目与进程数的初始化

3) 在资源分配过程中可以随时进行系统安全状态检测

4) 如果能够通过系统安全状态检测,则系统对该进程进行资源分配;当进程满足所有

资源分配后能够自行释放所有资源,退出资源竞争

5) 具有一定的数据容错性

设计结束需提交下列资料:

1、课程设计报告。报告中至少应包括:相关操作系统的知识介绍,程序总的功能说明、程序各模块的功能说明、程序设计的流程图、源程序清单。

2、源程序和编译连接后的可执行程序文件。

时间安排:

分析设计贮备阶段(1 天)

编程调试阶段(7 天)

写课程设计报告、考核(2 天)

页面置换算法课程设计

专业计算机科学与技术

目录 1.设计目的 (2) 2.课设要求 (2) 3.系统分析 (3) 4.系统设计 (3) 4.1问题分析 (3) 4.2程序整体框图 (5) 4.3 FIFO算法 (5) 4.4 LRU算法 (6) 4.5 OPT算法 (7) 5.功能与测试 (8) 5.1开始界面 (8) 5.2 FIFO算法 (9) 5.3 LRU算法 (10) 5.4 OPT算法 (10) 6.结论 (11) 7.附录 (12)

1.设计目的 1、存储管理的主要功能之一是合理地分配空间。请求页式管理是一种常用的虚拟存储管理技术。本次设计的目的是通过请求页式存储管理中页面置换算法模拟设计,了解虚拟存储技术的特点,掌握请求页式管理的页面置换算法。 2、提高自己的程序设计能力、提高算法设计质量与程序设计素质; 2.课设要求 设计一个请求页式存储管理方案。并编写模拟程序实现之。要求包含: 1.过随机数产生一个指令序列,共320条指令。其地址按下述原则生成: ①50%的指令是顺序执行的; ②25%的指令是均匀分布在前地址部分; ③25%的指令是均匀分布在后地址部分; 具体的实施方法是: 在[0,319]的指令地址之间随机选区一起点M; 顺序执行一条指令,即执行地址为M+1的指令; 在前地址[0,M+1]中随机选取一条指令并执行,该指令的地址为M’; 顺序执行一条指令,其地址为M’+1; 在后地址[M’+2,319]中随机选取一条指令并执行; 重复A—E,直到执行320次指令。 2.指令序列变换成页地址流 设:(1)页面大小为1K; 用户内存容量为4页到32页; 用户虚存容量为32K。 在用户虚存中,按每K存放10条指令排列虚存地址,即320条指令在虚存中的存放方式为:

算法设计与分析课后部分习题答案

算法实现题3-7 数字三角形问题 问题描述: 给定一个由n行数字组成的数字三角形,如图所示。试设计一个算法,计算出从三角形的顶至底的一条路径,使该路径经过的数字总和最大。编程任务: 对于给定的由n行数字组成的数字三角形,编程计算从三角形的顶至底的路径经过的数字和的最大值。数据输入: 有文件input.txt提供输入数据。文件的第1行是数字三角形的行数n,1<=n<=100。接下来的n行是数字三角形各行的数字。所有数字在0-99之间。结果输出: 程序运行结束时,将计算结果输出到文件output.txt中。文件第1行中的数是计算出的最大值。 输入文件示例输出文件示 例 input.txt output.txt 5 30 7 3 8 8 1 0 2 7 4 4 4 5 2 6 5 源程序: #include "stdio.h" voidmain() { intn,triangle[100][100],i,j;//triangle数组用来存储金字塔数值,n表示行数 FILE *in,*out;//定义in,out两个文件指针变量 in=fopen("input.txt","r"); fscanf(in,"%d",&n);//将行数n读入到变量n中

for(i=0;i=0;row--)//从上往下递归计算 for(int col=0;col<=row;col++) if(triangle[row+1][col]>triangle[row+1][col+1]) triangle[row][col]+=triangle[row+1][col]; else triangle[row][col]+=triangle[row+1][col+1]; out=fopen("output.txt","w"); fprintf(out,"%d",triangle[0][0]);//将最终结果输出到output.txt中 } 算法实现题4-9 汽车加油问题 问题描述: 一辆汽车加满油后可行驶nkm。旅途中有若干加油站。设计一个有效算法,指出应在哪些加油站停靠加油,使沿途加油次数最少。并证明算法能产出一个最优解。编程任务: 对于给定的n和k个加油站位置,编程计算最少加油次数。数据输入: 由文件input.txt给出输入数据。第1行有2个正整数n和k ,表示汽车加满油后可行驶nkm,且旅途中有k个加油站。接下来的1行中,有k+1个整数,表示第k个加油站与第k-1个加油站之间的距离。第

算法设计与分析课程设计(完整版)

HUNAN CITY UNIVERSITY 算法设计与分析课程设计 题目:求最大值与最小值问题 专业: 学号: 姓名: 指导教师: 成绩: 二0年月日

一、问题描述 输入一列整数,求出该列整数中的最大值与最小值。 二、课程设计目的 通过课程设计,提高用计算机解决实际问题的能力,提高独立实践的能力,将课本上的理论知识和实际有机的结合起来,锻炼分析解决实际问题的能力。提高适应实际,实践编程的能力。在实际的编程和调试综合试题的基础上,把高级语言程序设计的思想、编程巧和解题思路进行总结与概括,通过比较系统地练习达到真正比较熟练地掌握计算机编程的基本功,为后续的学习打下基础。了解一般程序设计的基本思路与方法。 三、问题分析 看到这个题目我们最容易想到的算法是直接比较算法:将数组的第 1 个元素分别赋给两个临时变量:fmax:=A[1]; fmin:=A[1]; 然后从数组的第 2 个元素 A[2]开始直到第 n个元素逐个与 fmax 和 fmin 比较,在每次比较中,如果A[i] > fmax,则用 A[i]的值替换 fmax 的值;如果 A[i] < fmin,则用 A[i]的值替换 fmin 的值;否则保持 fmax(fmin)的值不变。这样在程序结束时的fmax、fmin 的值就分别是数组的最大值和最小值。这个算法在最好、最坏情况下,元素的比较次数都是 2(n-1),而平均比较次数也为 2(n-1)。 如果将上面的比较过程修改为:从数组的第 2 个元素 A[2]开始直到第 n 个元素,每个 A[i]都是首先与 fmax 比较,如果 A[i]>fmax,则用 A[i]的值替换 fmax 的值;否则才将 A[i]与 fmin 比较,如果 A[i] < fmin,则用 A[i]的值替换 fmin 的值。 这样的算法在最好、最坏情况下使用的比较次数分别是 n-1 和 2(n-1),而平均比较次数是 3(n-1)/2,因为在比较过程中,将有一半的几率出现 A[i]>fmax 情况。

优质课教学设计封面)

范进中举 学科:高中地理 学校:南和县实验中学 姓名:杨娜 题目:城市化过程与特点 (内页不准署名) 金瓯学校瓯北校区小学

2015—2016学年第一学期学科:___语文________

班级:___九年级______ 任课教师:张海涛_________ 《城市化过程与特点》教学设计

【设计思想】 《城市化过程与特点》的活动设计从学生身边的实例入手,学生比较容易了解,容易掌握城市化的特点和形成过程。使学生从身边的事学起来更容易参与活动,探索规律掌握学习方法,解决实际生活中的实例。 【课程标准分析】 课程标准:运用有关资料,概括城市化的过程和特点。 教学建议:收集所在城市不同时期的地图、照片,或进行走访,讨论城市的变化。 【教材分析】 本节内容选自湘教版《普通高中地理课程标准实验教科书地理Ⅱ必修》的第二章《城市与环境》第二节《城市化过程和特点》。本节教材包括三部分,其一是城市化的概念、主要特征和对经济社会的积极意义,其二是城市化动力机制,其三是城市化的地区差异。本节内容与第三节是一个有机整体,是一个事物的两个方面。 【学情分析】 1.由于学生绝大多数来自农村,对城市环境及其发展感到陌生,同时这部分知识在教材上呈现并不生动,不容易激发学生的学习兴趣,所以消除学生的陌生感,激发学生的学习兴趣是本节课设计教学时必须考虑的因素。 2.学生对一些生动的图片比较感兴趣,在教学课件中可以选取和城市有

关的生动图片来吸引学生注意力,提高他们的注意力,同时能辅助教学。 3.学生学习本课时可能遇到的困难有:发达国家的城市化与发展中国家的城市化的异同的总结可能不全面。 【教学目标】 知识与技能:1.了解城市化的概念、标志以及意义。 2.了解乡村—城市转型的概念和类型。 3理解社会经济发展对城市化进程的推动作用。 4理解并掌握发达国家的城市化与发展中国家的城市化的异同,并能由此进一步理解中国城市化的发展之路。 过程与方法:1.通过收集所在城市不同时期的地图、照片,或进行走访,了解城市的变化。 2.运用相关的图表材料,进行讨论、分析,进一步理解城市化过 程和特点。 情感态度和价值观: 1.在问题剖析过程中,激发探究地理问题的兴趣和动机。 2.通过学习发达国家城市化和发展中国家城市化的异同,培养学 生的辩证思维能力及科学的城市发展观。 3.通过熟悉图片的展示,激发学生对家乡的热爱之情。 【教学重点、难点】 城市化与社会经济发展的关系以及发达国家与发展中国家的城市化异同。

算法课程设计资料

吉林财经大学课程设计报告 课程名称:算法课程设计 设计题目:插棒游戏 所在院系:管理科学与信息工程学院计算机科学与技术 指导教师: 职称:副教授 提交时间: 2017年4月

目录 一、题目描述与设计要求 (1) 1 题目描述与设计要求 (1) 二、问题分析 (1) 1 解空间 (1) 2 解空间结构 (2) 3 剪枝 (2) 4 回溯法的基本思想 (2) 5 回溯法的适用条件 (3) 6 回溯法的空间树 (4) 7 回溯法的基本步骤 (4) 三、算法设计 (5) 1 伪代码 (5) 四、复杂性分析 (6) 1 时间复杂度 (6) 2 空间复杂度该 (6) 五、样本测试、分析与总结 (6) 1 样本测试 (6) 2 分析 (7) 2.1、数据类型 (7) 2.2 主要函数思路 (7) 2.3 回溯 (8) 3 总结 (8) 参考文献 (9) 附录 (10)

一、题目描述与设计要求 1 题目描述与设计要求 这个类似谜题的游戏在等边三角形的板上布置了 15 个孔。在初始时候,如下图所示,除了一个孔,所有孔都插上了插棒。一个插棒可以跳过它的直接邻居,移到一个空白的位置上。这一跳会把被跳过的邻居从板上移走。设计并实现一个回溯算法,求解该谜题的下列版本: a.已知空孔的位置,求出消去 13 个插棒的最短步骤,对剩下的插棒的最终位置不限。 b.已知空孔的位置,求出消去 13 个插棒的最短步骤,剩下的插棒最终要落在最初的空孔上。 图1 二、问题分析 1 解空间 由于棋盘的对称性,棋盘在变化的过程中会形成多个同构的状态。 例如初始状态时,空孔只有一个,共有15种基本状态。如图2 所示,任意状态与空孔位置在其它的与该空孔颜色相同的点处的状态是同构的,它们可以通过沿中位线翻转和旋转60o 互相转换。也就是说,空孔所在位置的颜色相同的个状态是同构的。如空孔位置在顶点处的三个状态,他们仅通过旋转60o的操作即可互相转换。

算法设计与分析课程设计报告样本

课程设计报告 课程设计名称: 算法设计与分析 系 : 三系 学生姓名: 吴阳 班级: 12软件(2)班 学号: 0311232 成绩: 指导教师: 秦川 开课时间: 年一学期 一、问题描述 1.普通背包问题

给定n种物品和一个背包。物品i的重量是Wi,其价值为Vi,背包的容量为C。选择装入的背包的物品, 使得装入背包中的物品的总价值最大, 在选择物品i装入背包时, 能够选择物品i的一部分, 而不一定要全部装入背包, 1≤i≤n。 2.0/1背包问题 给定n种物品和一个背包。物品i的重量是Wi,其价值为Vi,背包的容量为C。选择装入的背包的物品, 使得装入背包中的物品的总价值最大, 在选择物品i装入背包时, 对于每种物品i只有两种选择, 即装入背包或者不装入背包, 不能将物品装入背包多次, 也不能只装入部分的物品i。 3.棋盘覆盖问题 在一个2k x 2k个方格组成的棋盘中恰有一个方格与其它的不同称为特殊方格, 想要求利用四种L型骨牌( 每个骨牌可覆盖三个方格) 不相互重叠覆盖的将除了特殊方格外的其它方格覆盖。 二、问题分析

1.普通背包问题 对于背包问题, 若它的一个最优解包含物品j, 则从该最优解中拿出所含的物品j的那部分重量W, 剩余的将是n-1个原重物品1, 2, ······, j-1, j+1, ·····, n以及重为Wi-W的物品j 中可装入容量为C-W的背包且具有最大价值的物品。 2.0/1背包问题 如果当前背包中的物品的总容量是cw, 前面的k-1件物品都已经决定好是否要放入包中, 那么第k件物品是否放入包中取决于不等式 cw + wk <= M (其中, wk为第k件物品的容量, M为背包的容量)( 此即约束条件) 然后我们再寻找限界函数, 这个问题比较麻烦, 我们能够回忆一下背包问题的贪心算法, 即物品按照物品的价值/物品的体积来从大到小排列, 然后最优解为( 1, 1, 1......., 1, t, 0, 0, ......) , 其中0<=t<=1; 因此, 我们在确定第k个物品到底要不要放入的时候(在前k-1个物品已经确定的情况下), 我们能够考虑我们能够达到的最大的价值, 即我们能够经过计算只放入一部分的k物品来计算最大的价值。我们要确保当前选择的路径的最大的价值要大于我们已经选择的路径的价值。这就是该问题的限界条件。经过该条件, 能够减去很多的枝条, 大大节省运行时间。 3.棋盘覆盖问题 每次都对分割后的四个小方块进行判断, 判断特殊方格是否

制作封面和封底教学设计

制作封面和封底 一、教材分析 该教学内容为江苏科学技术出版社《初中信息技术(上册)》第3章第1节第4课时的内容,课题为《制作封面和封底》。本课的主要任务是让学生了解封面封底的组成和布局,以及掌握图片与艺术字的插入和大小位置的更改方法,综合运用这些知识完成封面封底的设计。通过教学,既能培养学生的审美眼光,也能培养学生的操作能力,让学生在学习和操作实践中创造美,体验美。 二、学情分析 本课教学的对象是八年级的学生,由于学生在小学阶段学习计算机知识不系统,加以学生知识接受能力较差,水平高低不一。所以,教师要在课堂上组织一些活动,将知识融入其中,充分激发学生的学习兴趣。教师对不同能力的学生要求不同,能力较强的学生在掌握必要的知识点和技能外,还应该发挥自己的长处帮助能力较差的学生,而对这些能力较差的学生取得一定进步的时候要给予充分鼓励和肯定。 三、教学目标 1.知识与技能 (1)了解杂志封面、封底的构成要素和布局; (2)掌握背景、图片、艺术字、文本框、自选图形的应用能力; (3)能制作符合主题、要素完整、色彩协调、布局合理、有个性创新的杂志封面和封底。2.过程与方法 (1)学生通过欣赏、分析和对比封面和封底样张,了解封面和封底的构成要素、基本特征,思考相关要素的实现方式,并构思自己要制作的作文选的封面和封底; (2)学生通过设计制作封面和封底,进一步提高图文混排的综合运用能力。 3.情感、态度与价值观 (1)学生通过制作封面和封底,在实践学习中体验美和创造美; (2)学生通过个人学习、主动探究和使用举手提问、学案指导、同伴互助等求助方式,学会自主学习、主动探究、协作学习和利用学习资源。 4.行为与创新 (1)学生通过构思和制作杂志封面和封底,体验作品创作的乐趣; (2)学生通过作品欣赏、评价和分享,增进彼此交流,相互取长补短。

Dijkstra算法的实现-数据结构与算法课程设计报告

合肥学院 计算机科学与技术系 课程设计报告 2009 ~2010 学年第2 学期 课程数据结构与算法 课程设计名称Dijkstra算法的实现 学生姓名张睿辰 学号0804012044 专业班级08计科(2)班 指导教师王昆仑张贯虹 2010 年6月

Dijkstra算法的实现 一、问题分析与任务定义 1、课程设计题目: 1.1题目:对任意图,选择合适的数据结构表示图,在此基础上实现求解最短路径 的Dijkstra算法 1.2 要求:设计合理的数据结构存储图,简单有效的实现Dijkstra算法。 1.3具体任务:建立图的存储模块,建立图的输出模块,在建图后从单源点开始求最短 路径,并显示出来! 2、原始数据的输入格式: 2.1建图模块:2.1.1数字 2.2.2数字+空格+数字+空格+数字+回车 2.3显示模块:回车 3、实现功能: 3.1 建立有向图 3.2 显示存储的有向图 3.3 显示从顶点到其他各顶点的最短路径 4、测试用例: 4.1正确数据:a)顶点:3;边值信息:0 1 6;0 2 4;1 2 5;2 0 6;0 0 0; b)顶点:0;边值信息:0 0 0; 输出结果:a) v0到v1的最短路径是6,v0到v2的最短路径是4 b) 没有最短路径 4.2错误数据:a) 顶点:a b)顶点:2;边值信息:0 3 6;0 4 4;13 5;0 0 0; c)顶点:3;边值信息:0 1 a; 输出结果:边值错误,请从新输入 5、问题分析: 实现本程序要解决以下几个问题: 5.1如何存储一个有向图。 5.2如何在界面中输出该有向图。 5.3如何定义起始源点。 5.4如何选择出最短路径。 5.5找到的最短路径如何输出。 二、数据结构的选择和概要设计 1、数据结构的选择: 在图的结构中,任意两个顶点之间都可能存在关系,比线性表和树要复杂。由于不存在严格的前后顺序,因而不能采用简单的数组来存储图;另一方面,如果采用链表,由于图中各顶点的度数不尽相同,最小度数和最大度数可能相差很大,如果按最大度数的

教师职称申报材料封面

教师职称申报材料封面 Document number:NOCG-YUNOO-BUYTT-UU986-1986UT

【职称申报材料】 (二)教育教学方面材料(分七类)第四类:班主任工作等材料 1、班主任任职证明 2、班主任工作实录 3、学生品德教育材料 4、转差个案分析材料 5、班主任工作案例分析材料 6、班主任工作经验介绍 六安市裕安区青山乡宋岗小学彭健 【职称申报材料】 (二)教育教学方面材料(分七类)

第一类:教育叙事 1、教育叙事 2、个人述职报告 3、个人工作总结 六安市裕安区青山乡宋岗小学彭健 【职称申报材料】 (二)教育教学方面材料(分七类)第三类:原始授课计划、任职任课表、 总课表、出勤情况证明等 1、授课计划(教学计划共5学年) 2、任职任课表(分课方案共5学年) 3、总课表(共5学年) 4、出勤情况证明(共5学年) 5、工作量证明材料(共5学年) 六安市裕安区青山乡宋岗小学彭健【职称申报材料】

(二)教育教学方面材料(分七类)第七类:教育教学成绩材料 1、班级学生成绩分数册(5学年) 2、分层教学分类指导总结 3、教育教学经验总结 4、培养新教师材料 5、教育教学学科质量监测部分获奖证书 六安市裕安区青山乡宋岗小学彭健【职称申报材料】 (二)教育教学方面材料(分七类)第五类:原始听课记录 1、听课记录

2、研究活动材料 六安市裕安区青山乡宋岗小学彭健 【职称申报材料】 (二)教育教学方面材料(分七类) 第二类:原始完整的教学设计(教案)等 1、原始教学设计2本 2、精选教学设计(特色教案)2份 六安市裕安区青山乡宋岗小学彭健 【职称申报材料】 (四)其他材料 1、《专业技术职务任职资格评审表》一式两份 2、《资格审查表》一式两份(装入证件袋内) 3、《材料鉴定表》一式两份 4、《任期考核表》一份 5、考评结果汇总表一份 6、《教师专业技术资格评审材料公示表》一份

算法设计与分析C++语言描述(陈慧南版)课后答案

第一章 15P 1-3. 最大公约数为1。快1414倍。 主要考虑循环次数,程序1-2的while 循环体做了10次,程序1-3的while 循环体做了14141次(14142-2循环) 若考虑其他语句,则没有这么多,可能就601倍。 第二章 32P 2-8.(1)画线语句的执行次数为 log n ????。(log )n O 。划线语句的执行次数应该理解为一格整体。 (2)画线语句的执行次数为 111 (1)(2) 16 j n i i j k n n n ===++= ∑∑∑。3()n O 。 (3 )画线语句的执行次数为 。O 。 (4)当n 为奇数时画线语句的执行次数为 (1)(3) 4 n n ++, 当n 为偶数时画线语句的执行次数为2 (2)4 n +。2()n O 。 2-10.(1)当1n ≥时,225825n n n -+≤,所以,可选5c =,01n =。 对于0n n ≥,22 ()5825f n n n n =-+≤,所以,22 582()n n n -+=O 。 (2)当8n ≥时,2222 582524n n n n n -+≥-+≥,所以,可选4c =,08n =。对于0n n ≥, 22()5824f n n n n =-+≥,所以,22582()n n n -+=Ω。 (3)由(1)、(2)可知,取14c =,25c =,08n =,当0n n ≥时,有22212582c n n n c n ≤-+≤,所以 22582()n n n -+=Θ。 2-11. (1) 当3n ≥时,3 log log n n n <<,所以()20log 21f n n n n =+<,3 ()log 2g n n n n =+>。可选21 2 c = ,03n =。对于0n n ≥,()()f n cg n ≤,即()(())f n g n =O 。注意:是f (n )和g (n )的关系。 (2)当4n ≥时,2 log log n n n <<,所以2 2 ()/log f n n n n =<,2 2 ()log g n n n n =≥。可选1c =,04n =。对于0n n ≥,2 ()()f n n cg n <≤,即()(())f n g n =O 。 (3)因为log log(log )()(log ) n n f n n n ==,()/log log 2n g n n n n ==。当4n ≥时,log(log )()n f n n n =≥,

优质课教学设计封面)

范进中举 学科:高中地理学校:南和县实验中学姓名:杨 娜题目:城市化过程与特点 (内页不准署名) 金瓯学校瓯北校区小学

2015 — 2016 学年第一学期 学 科: ___ 语文 _____ 班 级: ___ 九年级 ___ 任课教师: 张海涛 _ ______

《城市化过程与特点》教学设计 【设计思想】 《城市化过程与特点》的活动设计从学生身边的实例入手,学生比较容易了解,容易掌握城市化的特点和形成过程。使学生从身边的事学起来更容易参与活动,探索规律掌握学习方法,解决实际生活中的实例。 【课程标准分析】课程标准:运用有关资料,概括城市化的过程和特点。教学建议:收集所在城市不同时期的地图、照片,或进行走访,讨论城市的变化。 【教材分析】 本节内容选自湘教版《普通高中地理课程标准实验教科书地理Ⅱ必修》的第二章《城市与环境》第二节《城市化过程和特点》。本节教材包括三部分,其一是城市化的概念、主要特征和对经济社会的积极意义,其二是城市化动力机制,其三是城市化的地区差异。本节内容与第三节是一个有机整体,是一个事物的两个方面。 【学情分析】 1. 由于学生绝大多数来自农村,对城市环境及其发展感到陌生,同时这部分知识在教材上呈现并不生动,不容易激发学生的学习兴趣,所以消除学生的陌生感,激发学生的学习兴趣是本节课设计教学时必须考虑的因素。 2. 学生对一些生动的图片比较感兴趣,在教学课件中可以选取和城市有关的生动图片来吸引学生注意力,提高他们的注意力,同时能辅助教学。 3. 学生学习本课时可能遇到的困难有:发达国家的城市化与发展中国家的城市化的异同的总结可能不全面。

算法课设报告--14060205133

XI`AN TECHNOLOGICAL UNIVERSITY 课程设计报告

目录 一、问题描述 (2) 二、思路描述 (2) 三、源代码展示 (3) 四、函数介绍 (6) 1、判断输入的顶点是否存在矩阵中 (6) 2、着色函数 (7) 3、判断这个颜色能不能满足要求函数 (8) 五、调试运行 (8) 1、中国地图简略图 (8) 2、取地图一部分进行测试 (8) 3、运行结果 (9) 六、算法分析 (9) 七、总结 (11)

一、问题描述: 设计要求:已知中国地图,对各省进行着色,要求相邻省所使用的颜色不同,并保证使用的颜色总数最少。 二、思路描述: 已知中国地图,对各省进行着色,要求相邻省所用的颜色不同,并保证使用的颜色数最少,将各省进行编号,然后利用无向图的顶点之间的边来表示各省的相邻关系,将各编号进行逐一着色,利用循环语句遍历各省,判断语句判断是否符合要求;演示程序,以用户和计算机的对话方式进行,最后结果做出简单分析及总结。

三、源代码展示: #include #include #define MAXedg 100 #define MAX 0 #define N 4 int color[30]={0}; struct Graph { char vexs[MAXedg]; int arcs[MAXedg][MAXedg]; int vnum,arcnum; }; int LocateVex(Graph G,char u) { int i; for(i=1;i<=G.vnum;i++) { if(u==G.vexs[i]) return i; } if(i==G.vnum) { printf("Error u!\n"); exit(1); } return 0; } void CreateGraph(Graph &G) {

算法设计与分析课程设计报告

压缩软件课程设计书 一、问题描述: 建立一个文本文件,统计该文件中各字符频率,对各字符进行Huffman编码,将该文件至翻译成Huffman编码文件,再将Huffman编码文件翻译成原文件。 二、算法分析及思路: 对于该问题,我们做如下分析: (1)首先得构造出哈弗曼树,我们用函数HuffmanTree(int w[],int s[],int n)设计;(2)在构建哈弗曼树的基础上,进一步实现哈弗曼编码问题,我们用函数Huffmancode(char wen[])设计; (3)实现哈弗曼编码后再进一步实现哈弗曼译码问题,我们用函数Huffmandecode()设计; (4)其中编码问题中,得进一步统计出各个字符在文件中的频率,并进行一些必要的标记,我们用函数runhuffman(char wen[])设计; (5)在译码过程中,还有必要的一步是比较原文件与译码后的文件是否相同,我们用函数compare(char wen[])设计; (6)其中的文件输入我们用到类”fstream.h”中的输入输出流,并在运行的文件夹中建立一个文件名为逍遥游的文本文件,且在逍遥游文件中输入需要编码的数据。 三、主要解决的设计问题: 1.写一个对txt文件压缩和解压的程序,使用动态编码。 2.使用Huffman编码压缩和解压时,Huffman树的存储可以直接存储树结构,也可以存储所有字符的频度或权值,然后读取时建立Huffman树; 3.使用Huffman编码压缩和解压时,注意定义压缩码的结束标记,可以使用一个特殊的字符作为结束标记,也可以在压缩码之前存储其比特长度;如果使用一个特殊字符作为结束标记,则其频度为1,需要在建立Huffman树时把它看作一个独立的字符进行建树。 4.使用Huffman编码压缩和解压时,在一个缓冲区里面收集压缩码比特流,每当收集的比特数满8时,可以把这8比特通过位操作合并成一个字节写入文件(当然也可以收集满一定数目的字节后再写入文件)。写入文件的最小信息单位为字节。 四、程序设计的流程图:

数据结构和算法课程设计题目

北方民族大学课程设 计 课程名称: 数据结构与算法 院(部)名称:信息与计算科学学院 组长姓名学号 同组人员姓名 指导教师姓名:纪峰 设计时间:2010.6.7----2009.6.27 一、《数据结构与算法》课程设计参考题目

(一)参考题目一(每位同学选作一个,同组人员不得重复) 1、编写函数实现顺序表的建立、查找、插入、删除运算。 2、编写函数分别实现单链表的建立、查找、插入、删除、逆置算法。 3、编写函数实现双向链表的建立、插入、删除算法。 4、编写函数实现顺序栈的进栈、退栈、取栈顶的算法。 5、编写函数实现链栈的进栈、退栈、取栈顶的算法。 6、编写函数实现双向顺序栈的判空、进栈、出栈算法。 7、编写函数实现循环队列的判队空、取队头元素、入队、出队算法。 8、编写函数实现链环队列的判队空、取队头节点、入队、出队算法。 9、编写函数实现串的,求串长、连接、求字串、插入、删除等运算。 10、分别实现顺序串和链串的模式匹配运算。 11、实现二叉树的建立,前序递归遍历和非递归遍历算法。 12、实现二叉树的建立,中序递归遍历和非递归遍历算法。 13、实现二叉树的建立,后序递归遍历和非递归遍历算法。 14、实现二叉树的中序线索化,查找*p结点中序下的前驱和后继结点。 15、分别以临接表和邻接矩阵作为存储就够实现图的深度优先搜索和广度优先搜索算法。 16、利用线性探测处理冲突的方法实现散列表的查找和插入算法。 (二)参考题目二(每三人一组,任选三个题目完成) 1.运动会分数统计(限1 人完成) 任务:参加运动会有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语言程序设计的书上,请自学解决)请在最后的上交资料中指明你用到的存储结构;

计算机算法设计与分析课程设计.

成绩评定表 学生姓名吴旭东班级学号1309010236 专业信息与计算 科学课程设计题目 分治法解决棋盘覆 盖问题;回溯法解 决数字拆分问题 评 语 组长签字: 成绩 日期20 年月日

课程设计任务书 学院理学院专业信息与计算科学 学生姓名吴旭东班级学号1309010236 课程设计题目分治法解决棋盘覆盖问题;回溯法解决数字拆分问题实践教学要求与任务: 要求: 1.巩固和加深对基本算法的理解和运用,提高综合运用课程知识进行算法设计与分析的能力。 2.培养学生自学参考书籍,查阅手册、和文献资料的能力。 3.通过实际课程设计,掌握利用分治法或动态规划算法,回溯法或分支限界法等方法的算法的基本思想,并能运用这些方法设计算法并编写程序解决实际问题。 4.了解与课程有关的知识,能正确解释和分析实验结果。 任务: 按照算法设计方法和原理,设计算法,编写程序并分析结果,完成如下内容: 1.运用分治算法求解排序问题。 2. 运用回溯算法求解N后问题。 工作计划与进度安排: 第12周:查阅资料。掌握算法设计思想,进行算法设计。 第13周:算法实现,调试程序并进行结果分析。 撰写课程设计报告,验收与答辩。 指导教师: 201 年月日专业负责人: 201 年月日 学院教学副院长: 201 年月日

算法分析是对一个算法需要多少计算时间和存储空间作定量的分析。算法 (Algorithm)是解题的步骤,可以把算法定义成解一确定类问题的任意一种特殊的方法。在计算机科学中,算法要用计算机算法语言描述,算法代表用计算机解一类问题的精确、有效的方法。 分治法字面上的解释是“分而治之”,就是把一个复杂的问题分成两个或更多的相同或相似的子问题,再把子问题分成更小的子问题……直到最后子问题可以简单的直接求解,原问题的解即子问题的解的合并。在一个2^k*2^k的棋盘上, 恰有一个放歌与其他方格不同,且称该棋盘为特殊棋盘。 回溯法的基本做法是深度优先搜索,是一种组织得井井有条的、能避免不必要重复搜索的穷举式搜索算法。数字拆分问题是指将一个整数划分为多个整数之和的问题。利用回溯法可以很好地解决数字拆分问题。将数字拆分然后回溯,从未解决问题。 关键词:分治法,回溯法,棋盘覆盖,数字拆分

语文教案封面图片

语文教案封面图片 【篇一:教学设计封面】 附件5 南沙区中小学教师教学基本功和技能竞赛之课件制作决赛 教学设计 课题名称:_____《跨越百年的美丽》 _______________________________ 学科组:______小学语文 ________________________________________ 作者比赛编号: ____xxk072_________________________________________ , 《跨越百年的美丽》教学设计 教材分析 课文《跨越百年的美丽》是梁衡的同名散文(发表于《英才》1994 年第4期)的节选。这是一篇赞美居里夫人的文章,文章以“美丽” 为主线,表明了居里夫人的美丽不在于容貌,而在于心灵和人格。 她为人类作出了伟大的贡献,实现了自己的人生价值。作者采用倒 叙的手法,一开始描写了居里夫人在法国科学院作学术报告的场面,将居里夫人美丽的形象和伟大的成就凸现在读者面前。接下去的两 个自然段具体描写了居里夫人为了探索“其他物质有没有放射性”而 进行的艰苦的研究,直到发现了镭,这是课文的重点部分,充分表 现了居里夫人坚定执著、为科学献身的科学精神。最后两个自然段 写了居里夫人在名利面前的态度和做法,表现了居里夫人淡泊名利 的高贵人格和全身心投身科学的忘我精神。最后引用爱因斯坦的话 肯定居里夫人的人格。课文没有泛泛介绍居里夫人的科学成就,而 是将作者对科学家生命的理解融合在一起,显得文采斐然,教师在 教学时要处理好科学性和文艺性的关系。教学本课的重点一是联系 上下文理解课文中含义深刻的句子,体会居里夫人为科学献身的精神;二是读懂居里夫人的事迹,从具体的事例中领悟“跨越百年的美丽”就是居里夫人所体现的科学精神。 学习目标 1.学会“埃、伦”等12个生字,正确书写“冶炼、溶解、沉淀、分析、隐退、乏力、荣誉、头衔、里程碑、人声鼎沸、卓有成效”等词语。

计算机算法设计与分析课程设计

用分治法解决快速排序问题及用动态规划法解决最优二叉搜索树问题及用回溯法解决图的着色问题 一、课程设计目的: 《计算机算法设计与分析》这门课程是一门实践性非常强的课程,要求我们能够将所学的算法应用到实际中,灵活解决实际问题。通过这次课程设计,能够培养我们独立思考、综合分析与动手的能力,并能加深对课堂所学理论和概念的理解,可以训练我们算法设计的思维和培养算法的分析能力。 二、课程设计内容: 1、分治法: (2)快速排序; 2、动态规划: (4)最优二叉搜索树; 3、回溯法: (2)图的着色。 三、概要设计: 分治法—快速排序: 分治法的基本思想是将一个规模为n的问题分解为k个规模较小的子问题,这些子问题互相独立且与原问题相同。递归地解这些子问题,然后将各个子问题的解合并得到原问题的解。分治法的条件: (1)该问题的规模缩小到一定的程度就可以容易地解决; (2) 该问题可以分解为若干个规模较小的相同问题,即该问题具有最优子结构性质;(3) 利用该问题分解出的子问题的解可以合并为该问题的解; (4) 该问题所分解出的各个子问题是相互独立的,即子问题之间不包含公共的子子问题。 抽象的讲,分治法有两个重要步骤: (1)将问题拆开;

(2)将答案合并; ● 动态规划—最优二叉搜索树: 动态规划的基本思想是将问题分解为若干个小问题,解子问题,然后从子问题得到原问题的解。设计动态规划法的步骤: (1)找出最优解的性质,并刻画其结构特征; (2)递归地定义最优值(写出动态规划方程); (3)以自底向上的方式计算出最优值; (4)根据计算最优值时得到的信息,构造一个最优解。 ● 回溯法—图的着色 回溯法的基本思想是确定了解空间的组织结构后,回溯法就是从开始节点(根结点)出发,以深度优先的方式搜索整个解空间。这个开始节点就成为一个活结点,同时也成为当前的扩展结点。在当前的扩展结点处,搜索向纵深方向移至一个新结点。这个新结点就成为一个新的或节点,并成为当前扩展结点。如果在当前的扩展结点处不能再向纵深方向移动,则当前的扩展结点就成为死结点。换句话说,这个节点,这个结点不再是一个活结点。此时,应往回(回溯)移动至最近一个活结点处,并使这个活结点成为当前的扩展结点。回溯法即以这种工作方式递归的在解空间中搜索,直到找到所要求的解或解空间中以无活结点为止。 四、详细设计与实现: ● 分治法—快速排序 快速排序是基于分治策略的另一个排序算法。其基本思想是,对于输入的子数组[]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 ,下标在划分过程中确定。 (2)、递归求解(conquer) 通过递归调用快速排序算法分别对[]1:-q p a 和[]r q a :1+进行排序。 (3)、合并(merge) 由于[]1:-q p a 和[]r q a :1+的排序都是在原位置进行的,所以不必进行任何合并操作就已经排好序了。

算法设计与分析课后习题

第一章 1. 算法分析题 算法分析题1-1 求下列函数的渐进表达式 (1). 3n^2 + 10n < 3n^2 + 10n^2 = 13n^2 = O(n^2) (2). n^2 / 10 + 2^n 当n>5是,n^2 < 2 ^n 所以,当n >= 1时,n^2/10 < 2 ^n 故: n^2/10 + 2^n < 2 ^n + 2^n = 2*2^n = O(2^n) (3). 21 + 1/n < 21 + 1 = 22 = O(1) (4). log(n^3)=3log(n)=O(log(n)) (5). 10log(3^n) = (10log3)n = O(n) 算法分析题1-6 (1)因为:f(n)=log(n^2) = 2log(n); g(n) = log(n) + 5 所以:f(n)=Θ(log(n)+5) =Θ(g(n)) (2)因为:log(n) < √n; f(n) = 2log(n); g(n)= √n 所以:f(n) = O(g(n)) (3)因为:log(n) < n; f(n) = n; g(n) = log(n^2) = 2log(n) 所以;f(n) = Ω(g(n)) (4)因为:f(n) = nlogn +n; g(n) = logn 所以:f(n) =Ω(g(n)) (5)因为: f(n) = 10; g(n) = log(10)

所以:f(n) =Θ(g(n)) (6)因为: f(n)=log^2(n); g(n) = log(n) 所以: f(n) ==Ω(g(n)) (7)因为: f(n) = 2^n < 100*2^n; g(n)=100n^2; 2^n > n ^2 所以: f(n) = Ω(g(n)) (8)因为:f(n) = 2^n; g(n) = 3 ^n; 2 ^n < 3 ^n 所以: f(n) = O(g(n)) 习题1-9 证明:如果一个算法在平均情况下的计算时间复杂性为Θ(f(n)),该算法在最坏情况下所需的计算时间为Ω(f(n)). 分析与解答: 因此,Tmax(N) = Ω(Tavg(N)) = Ω(Θ(f(n)))=Ω(f(n)). 第二章 算法分析题

算法设计课程习题答案

1 算法设计课程习题答案 第一章 1-1什么是算法?它与计算过程和程序有什么区别? 算法是指求解一个问题所需要的具体步骤和方法。它是指令的有限序列。算法有一系列明确定义的基本指令序列所描述的,求解特定问题的过程,它能够对合法的输入,在有限时间内产生所要求的输出,取消有穷性限制则是计算过程;而程序是算法的描述。 1-11使用归纳法证明汉诺塔函数的正确性。 用数学归纳法证明汉诺塔函数对任何n (即n 可以是任何正整数)有解。 (1)当盘子数n =1时,只需直接将此盘从A 柱搬到C 柱即可。 (2)现假设n =k 时有解,即可以将k 个盘子(在不违反规则的情况下)从一个源柱,通过一个中间柱移到目的柱上。 (3)现在证明n =k +1时也有解。开始时A 柱上的k +1个盘子可以看成由k 个盘和最底下的一个最大盘组成。根据归纳假设这k 个盘可以(在不违反规则的情况下)通过C 柱移到B 柱上(在这k 个盘的移动过程中,最大盘可以看成不存在)。完成这一大步后,只要将A 柱上的最大盘直接搬到C 柱上。再根据归纳假设B 柱上的这k 个盘可以(在不违反规则的情况下)通过A 柱移到C 柱上。 至此证明结束。 第二章 2-8确定下列各程序段的程序步,确定划线语句的执行次数,计算它们的渐近时间复杂度。 (1)程序步为n log 1+画线语句的执行次数为log n ????。(log )n O 。划线语句的执行次数 应该理解为一个整体。 (2)画线语句的执行次数为 111 (1)(2)16 j n i i j k n n n ===++= ∑∑∑。3 ()n O 。 (3)画线语句的执行次数为 。O 。 (4)当n 为奇数时画线语句的执行次数为 (1)(3) 4 n n ++, 当n 为偶数时画线语句的执行次数为 2(2)4 n +。2 ()n O 。 2-11设有)(f n 和)(n g 如下所示,分析)(f n 为))((n g O 、))((n g Ω还是))((n g Θ。 (1) 当3n ≥时,3 log log n n n <<,所以 ()20log 21f n n n n =+<, 3()log 2g n n n n =+>。可选 21 2 c = ,03n =。对于0n n ≥,()()f n cg n ≤,即()(())f n g n =O 。注意:是f (n )和g (n )的关系。 (2) 当4n ≥ 时,2 log log n n n <<,所以2 2 ()/log f n n n n =<, 2 2 ()log g n n n n =≥。可选 1c =,04n =。对于 0n n ≥,2 ()()f n n cg n <≤,即 ()(())f n g n =O 。

相关文档