数据结构与算法课程设计心得体会学习体会 12

发布 2024-01-17 11:55:12 阅读 8715

课程设计心得体会。

课程设计已经结束,怀着通过这次课程设计积累的信心与斗志,写下心得体会,为自己的奋斗留下痕迹,聊以缅怀。

刚开始拿到课程设计的任务书时,看到是 “单循环赛选手胜负序列求解问题”,题目只给了短短的几行内容:“有n个选手 p 1 ,p 2 ,p 3 ,…p n 参加了的单循环赛,每对选手之间非胜即负。现要求求出一个选手序列 p 1' ,p 2 ' p 3' ,p n ',使其满足 p i'胜 p i+ 1 '(i=1,… n-1)”。

我的理解就是每个选手各遭遇一次,获胜得1分,失败不得分。比赛结束时按照各选手之间的积分排名求解他们的胜负序列。

后来经过老师的指导,又有了另外一种理解,即可以根据比赛过程中各选手之间的胜负关系产生胜负序列,不过这种方法产生的胜负序列可能不是唯一的,但是实际情况是比赛结束时一定会产生一种胜负序列。为此需要用合适的数据结构进行存储,来确定如何产生胜负序列,选取哪位选手作为第一名,假如该选手已经在序列中,在后面的筛选过程中,如何将该选手排除等一系列问题。

有了思路后,就开始着手去设计算法,第一种情况采用的数据结构是类,将选手的编号、积分以及胜负过程中的积分处理等封装在类中。其中,以编号和积分作为私有成员,而设置编号、获胜处理、失败处理、获取积分、获取编号等作为公有成员。此时将该问题转化为对选手积分进行排序的问题。

第二种情况采用的数据结构是有向图,将每个选手作为有向图的一个顶点,选手间的胜负关系作为有向弧,从箭头出发的一方作为获胜者,所以该问题转化为了有向图的深度遍历问题,即求解一条包含所有顶点的简单路径。在深度遍历过程中,以有向图的邻接矩阵作为存储结构。

在本实验中,为了使功能更完善,还用到了磁盘文件。可以将参赛选手的人数、他们之间的胜负关系预先放进一个记事本中,运行程序时被读入,在处理后将胜负序列读出到另一个记事本中,并保存起来。这里会用到输入、输出文件流的成员函数。

不过,在调试过程**现了一些问题:

第一种情况时,以选手姓名作为私有成员时,由于权限问题,私有成员不能直接被调用,而主调函数中要求输入姓名,编译时一直出错。为了解决这个问题,另外定义了一个结构体,只放了选手姓名name,这样就可以使用了。在程序中只需要注意让选手姓名与积分对应起来就行了。

同时,所得的胜负序列会读出到名为“比赛积分。txt”的文本文件中。

在试探的路径**现了编号的重复,也就是说有些点在试探成功后又被试探了,这显然是错误的,分析可知,这是由于在对结点的试探成功后并没有修改相应的标志数组中的相应位置,即让visited [i]=1,导致了重复试探。在入栈函数push( )中加入了入栈功能,此问题得以解决。同理在测试失败时也应该修改相应的标志位置。

在从文件中读入参赛人数及胜负关系时,在记事本中格式为“4 w f f w f w”,第一次读入人数,在第二次读胜负关系时,“4”被重新读了一遍。为解决这个问题,老师指导时提及了fseek函数,但是从网上查到它只能在c语言中使用。因此,建立了两个记事本“分别存放参赛人数和胜负关系,这样就不会出现问题了。

临渊羡鱼,不如归而结网。这次课程设计给我的最大的印象就是如果自己有了兴趣,就动手去做,困难在你的勇气和毅力下是抬不了头的。从做这个课程设计开始无论遇到什么困难,我都没有一丝的放弃的念头。

出于对知识的渴望,出于对新技术的好奇,出于对一切未知的求知,我完成了这次单循环赛课程设计,不过这只是我学习路上的驿站,我会继续学习,古语有云:学无止境!

算法与数据结构课程设计

编号 120 说明书。进销存货物管理系统。学院 计算机科学与工程学院 专业 计算机科学与技术 学生姓名。学号。指导教师。2016年 6 月 26 日。摘要。本课程设计报告系统地阐述了我使用c 编写的进销存货物管理系统。首先,我对系统进行一个简要的概述。然后,我就系统的需求进行了详细的分析,这是设计工...

《算法与数据结构》课程设计

一 约瑟夫问题。1.算法及数据结构。由于约瑟夫问题是将x个人围坐一圈,所以采用单循环链表实现,又由于报数时间可能循环到开始,所以采用不带头结点的循环链表结构。1 在不带头结点的循环链表中查找第y个结点,用p作为第y个节点的指针。2 每一次都是y的倍数的结点出栈,直到循环到最后一个结点为止。2.源程序...

数据结构与算法课程设计心得体会学习体会 16

课程设计体会。通过这两周的课程设计,使我对数据结构有了更深的理解,意识到算法在编程过程中的作用和重要性,通过本次的课程设计,计算机科学与技术使必须经常地上机。我这次课程设计的题目是迷宫问题,我所采用的数据结构是堆栈,在课程设计之前,我对堆栈的了解不是那么的深刻,通过本次的设计,我对堆栈的应用有了更深...