为了抓住时机,我们在有了新的领悟后都要认真记录心得,写好心得体会是能够提高我们自己独立思考问题的能力的,下面是美篇吧小编为您分享的大数据课程的心得体会6篇,感谢您的参阅。
大数据课程的心得体会篇1
通过本次课程设计,对图的概念有了一个新的认识,在学习离散数学的时候,总觉得图是很抽象的东西,但是在学习了《数据结构与算法》这门课程之后,我慢慢地体会到了其中的奥妙,图能够在计算机中存在,首先要捕捉他有哪些具体化、数字化的信息,比如说权值、顶点个数等,这也就说明了想要把生活中的信息转化到计算机中必须用数字来完整的构成一个信息库,而图的存在,又涉及到了顶点之间的联系。图分为有向图和无向图,而无向图又是有向图在权值双向相等下的一种特例,如何能在计算机中表示一个双向权值不同的图,这就是一件很巧妙的事情,经过了思考和老师同学的帮助,我用edges[i][j]=up和edges[j][i]=up就能实现了一个双向图信息的存储。对整个程序而言,dijkstra算法始终都是核心内容,其实这个算法在实际思考中并不难,也许我们谁都知道找一个路径最短的方法,及从顶点一步一步找最近的路线并与其直接距离相比较,但是,在计算机中实现这么一个很简单的想法就需要涉及到很多专业知识,为了完成设计,在前期工作中,基本都是以学习c语言为主,所以浪费了很多时间,比如说在程序中,删除顶点和增加顶点的模块中都有和建图模块相互重复的函数,但是由于技术的原因,只能做一些很累赘的函数,可见在调用知识点,我没有掌握好。不过,有了这次课程设计的经验和教训,我能够很清楚的对自己定一个合适的水平,而且在这次课程设计中我学会了运用两个新的函数sprintf和包涵在#include头文件中的输入函数。因为课程设计的题目是求最短路径,本来是想通过算法的实现把这个程序与交通情况相连,但是因为来不及查找各地的信息,所以,这个计划就没有实现,我相信在以后有更长时间的情况下,我会做出来的。
数 据 结 构
课程设计报告
题 目: 一元多项式计算 专 业: 信息管理与信息系统 班 级: 2012级普本班 学 号: 201201011367 姓 名: 左帅帅 指导老师: 郝慎学 时 间:
一、课程设计题目分析
本课程设计要求利用c语言或c++编写,本程序实现了一元多项式的加法、减法、乘法、除法运算等功能。
二、设计思路
本程序采用c语言来完成课程设计。
1、首先,利用顺序存储结构来构造两个存储多项式a(x)和 b(x)的结构。
2、然后把输入,加,减,乘,除运算分成五个主要的模块:实现多项式输入模块、实现加法的模块、实现减法的模块、实现乘法的模块、实现除法的模块。
3、然后各个模块里面还要分成若干种情况来考虑并通过函数的嵌套调用来实现其功能,尽量减少程序运行时错误的出现。
4、最后编写main()主函数以实现对多项式输入输出以及加、减、乘、除,调试程序并将不足的地方加以修改。
三、设计算法分析
1、相关函数说明:
(1)定义数据结构类型为线性表的链式存储结构类型变量
typedef struct polynomial{}
(2)其他功能函数
插入函数void insert(polyn p,polyn h)
比较函数int compare(polyn a,polyn b)
建立一元多项式函数polyn create(polyn head,int m)
求解并建立多项式a+b,polyn add(polyn pa,polyn pb)
求解并建立多项式a-b,polyn subtract(polyn pa,polyn pb) 2
求解并建立多项式a*b,polyn multiply(polyn pa,polyn pb)
求解并建立多项式a/b,void device(polyn pa,polyn pb)
输出函数输出多项式,void print(polyn p)
销毁多项式函数释放内存,void destroy(polyn p)
主函数,void main()
2、主程序的流程基函数调用说明 (1)typedef struct polynomial {
float coef;
int expn;
struct polynomial *next; } *polyn,polynomial;
在这个结构体变量中coef表示每一项前的系数,expn表示每一项的指数,polyn为结点指针类型,属于抽象数据类型通常由用户自行定义,polynomial表示的是结构体中的数据对象名。
(2)当用户输入两个一元多项式的系数和指数后,建立链表,存储这两个多项式,主要说明如下:
polyn createpolyn(polyn head,int m)建立一个头指针为head、项数为m的一元多项式
p=head=(polyn)malloc(sizeof(struct polynomial));为输入的多项式申请足够的存储空间
p=(polyn)malloc(sizeof(struct polynomial));建立新结点以接收数据
insert(p,head); 调用insert函数插入结点
这就建立一元多项式的关键步骤
(3)由于多项式的系数和指数都是随即输入的,所以根据要求需要对多项式按指数进行降幂排序。在这个程序模块中,使用链表,根据对指数大小的比较,对各种情况进行处理,此处由于反复使用指针对各个结点进行定位,找到合适的位置再利用void insert(polyn p,polyn h)进行插入操作。 (4)加、减、乘、除、的算法实现:
在该程序中,最关键的一步是实现四则运算和输出,由于加减算法原则是一样,减法可通过系数为负的加法实现;对于乘除算法的大致流程都是:首先建立多项式a*b,a/b,然后使用链表存储所求出的乘积,商和余数。这就实现了多项式计算模块的主要功能。
(5)另一个子函数是输出函数 printpolyn();
输出最终的结果,算法是将最后计算合并的链表逐个结点依次输出,便得到整链表,也就是最后的计算式计算结果。由于考虑各个结点的指数情况不同,分别进行了判断处理。
四、程序新点
通过多次写程序,发现在程序在控制台运行时总是黑色的,本次写程序就想着改变一下,于是经过查资料利用system(“color e0”);可以函数解决,这里“e0,”e是控制台背景颜色,0是控制台输出字体颜色。
五、设计中遇到的问题及解决办法
首先是,由于此次课程设计里使用指针使用比较多,自己在指针多的时候易脑子混乱出错,对于此问题我是采取比较笨的办法在稿纸上写明白后开始进行 4
代码编写。
其次是,在写除法模块时比较复杂,自己通过查资料最后成功写出除法模块功能。
最后是,前期分析不足开始急于写代码,中途出现各种问题,算是给自己以后设计时的一个经验吧。
六、测试(程序截图)
1、数据输入及主菜单
2、加法和减法模块
3、乘法和除法模块
七、总结
通过本次应用c语言设计一元多项式基本计算程序,使我更加巩固了c语言程序设计的知识,以前对指针这一点使用是比较模糊,现在通过此次课程设计对指针理解的比较深刻了。而且对于数据结构的相关算法和函数的调用方面知识的加深。本次的课程设计,一方面提高了自己独立思考处理问题的能力;另一方面使自己再设计开发程序方面有了一定的小经验和想法,对自己以后学习其他语言程序设计奠定了一定的基础。
八、指导老师评语及成绩
附录:(课程设计代码)
#include#include #includetypedef struct polynomial {float coef; 6
int expn;
struct polynomial *next; } *polyn,polynomial;
//polyn为结点指针类型 void insert(polyn p,polyn h) {
if(p->coef==0) free(p);
//系数为0的话释放结点
else
{
polyn q1,q2;
q1=h;q2=h->next;
while(q2&&p->expnexpn)//查找插入位置
{
q1=q2; q2=q2->next; }
if(q2&&p->expn==q2->expn)//将指数相同相合并 {
q2->coef+=p->coef;
free(p);
if(!q2->coef)//系数为0的话释放结点
{ q1->next=q2->next; free(q2); }
}
else { p->next=q2; q1->next=p;
}//指数为新时将结点插入
} 7
} //建立一个头指针为head、项数为m的一元多项式 polyn create(polyn head,int m) {
int i;
polyn p;
p=head=(polyn)malloc(sizeof(struct polynomial));
head->next=null;
for(i=0;i
{
p=(polyn)malloc(sizeof(struct polynomial));//建立新结点以接收数据
printf(“请输入第%d项的系数与指数:”,i+1);
scanf(“%f %d”,&p->coef,&p->expn);
insert(p,head);
//调用insert函数插入结点
}
return head; } //销毁多项式p void destroy(polyn p) {
polyn q1,q2;
q1=p->next; 8
q2=q1->next;
while(q1->next)
{
free(q1);
q1=q2;//指针后移
q2=q2->next;
} } //输出多项式p int print(polyn p) {
polyn q=p->next;
int flag=1;//项数计数器
if(!q) //若多项式为空,输出0
{
putchar('0');
printf(“n”);
return;
}
while(q)
{
if(q->coef>0&&flag!=1) putchar('+'); //系数大于0且不是第一项 9
if(q->coef!=1&&q->coef!=-1)//系数非1或-1的普通情况
{
printf(“%g”,q->coef);
if(q->expn==1) putchar('x');
else if(q->expn) printf(“x^%d”,q->expn);
}
else
{
if(q->coef==1) {
if(!q->expn) putchar('1');
else if(q->expn==1) putchar('x');
else printf(“x^%d”,q->expn); }
if(q->coef==-1) {
if(!q->expn) printf(“-1”);
else if(q->expn==1) printf(“-x”);
else printf(“-x^%d”,q->expn); }
}
q=q->next;
flag++;
}
printf(“n”); } int compare(polyn a,polyn b) {
if(a&&b)
{
if(!b||a->expn>b->expn) return 1;
else if(!a||a->expnexpn) return -1;else return 0;
}
else if(!a&&b) return -1;//a多项式已空,但b多项式非空
else return 1;//b多项式已空,但a多项式非空 } //求解并建立多项式a+b,返回其头指针 polyn add(polyn pa,polyn pb) {
polyn qa=pa->next;
polyn qb=pb->next;
polyn headc,hc,qc;
hc=(polyn)malloc(sizeof(struct polynomial));//建立头结点 11
hc->next=null;
headc=hc;
while(qa||qb){
qc=(polyn)malloc(sizeof(struct polynomial));
switch(compare(qa,qb))
{
case 1:
qc->coef=qa->coef;
qc->expn=qa->expn;
qa=qa->next;
break;
case 0:
qc->coef=qa->coef+qb->coef;
qc->expn=qa->expn;
qa=qa->next;
qb=qb->next;
break;
case -1:
qc->coef=qb->coef;
qc->expn=qb->expn;
qb=qb->next;
break; 12
}
if(qc->coef!=0)
{
qc->next=hc->next;
hc->next=qc;
hc=qc;
}
else free(qc);//当相加系数为0时,释放该结点
}
return headc; } //求解并建立多项式a-b,返回其头指针 polyn subtract(polyn pa,polyn pb) {
polyn h=pb;
polyn p=pb->next;
polyn pd;
while(p)//将pb的系数取反
{ p->coef*=-1; p=p->next; }
pd=add(pa,h);
for(p=h->next;p;p=p->next)
//恢复pb的系数
p->coef*=-1; 13
return pd; } //求解并建立多项式a*b,返回其头指针 polyn multiply(polyn pa,polyn pb) {
polyn hf,pf;
polyn qa=pa->next;
polyn qb=pb->next;
hf=(polyn)malloc(sizeof(struct polynomial));//建立头结点
hf->next=null;
for(;qa;qa=qa->next)
{
for(qb=pb->next;qb;qb=qb->next)
{
pf=(polyn)malloc(sizeof(struct polynomial));
pf->coef=qa->coef*qb->coef;
pf->expn=qa->expn+qb->expn;
insert(pf,hf);//调用insert函数以合并指数相同的项
}
}
return hf; }
//求解并建立多项式a/b,返回其头指针 void device(polyn pa,polyn pb) {
polyn hf,pf,temp1,temp2;
polyn qa=pa->next;
polyn qb=pb->next;
hf=(polyn)malloc(sizeof(struct polynomial));//建立头结点,存储商
hf->next=null;
pf=(polyn)malloc(sizeof(struct polynomial));//建立头结点,存储余数
pf->next=null;
temp1=(polyn)malloc(sizeof(struct polynomial));
temp1->next=null;
temp2=(polyn)malloc(sizeof(struct polynomial));
temp2->next=null;
temp1=add(temp1,pa);
while(qa!=null&&qa->expn>=qb->expn)
{
temp2->next=(polyn)malloc(sizeof(struct polynomial));
temp2->next->coef=(qa->coef)/(qb->coef);
temp2->next->expn=(qa->expn)-(qb->expn);
insert(temp2->next,hf);
pa=subtract(pa,multiply(pb,temp2)); 15
qa=pa->next;
temp2->next=null;
}
pf=subtract(temp1,multiply(hf,pb));
pb=temp1;
printf(“商是:”);
print(hf);
printf(“余数是:”);
print(pf); } void main() { int choose=1; int m,n,flag=0; system(“color e0”); polyn pa=0,pb=0,pc,pd,pf;//定义各式的头指针,pa与pb在使用前付初值null printf(“请输入a(x)的项数:”); scanf(“%d”,&m); printf(“n”); pa=create(pa,m);//建立多项式a printf(“n”); printf(“请输入b(x)的项数:”); 16
scanf(“%d”,&n); printf(“n”); pb=create(pb,n);//建立多项式b printf(“n”); printf(“**********************************************n”); printf(“*
多项式操作菜单
printf(”**********************************************n“); printf(”tt 1.输出操作n“); printf(”tt 2.加法操作n“); printf(”tt 3.减法操作n“); printf(”tt 4.乘法操作n“); printf(”tt 5.除法操作n“); printf(”tt 6.退出操作n“); printf(”**********************************************n“); while(choose) {
printf(”执行操作:“);
scanf(”%d“,&flag);
switch(flag)
{
case 1:
printf(”多项式a(x):“);print(pa); *n”);
printf(“多项式b(x):”);print(pb);
break;
case 2:
pc=add(pa,pb);
printf(“多项式a(x)+b(x):”); print(pc);
destroy(pc); break;
case 3:
pd=subtract(pa,pb);
printf(“多项式a(x)-b(x):”); print(pd);
destroy(pd); break;
case 4:
pf=multiply(pa,pb);
printf(“多项式a(x)*b(x):”);
print(pf);
destroy(pf);
break;
case 5:
device(pa,pb); 18
break;
case 6:
exit(0);
break;
} }
destroy(pa);
destroy(pb); }
大数据课程的心得体会篇2
两个星期时间非常快就过去了,这两个星期不敢说自己有多大进步,获得了多少知识,但起码是了解了项目开发部分过程。虽说上过数据库上过管理信息系统等相关课程,但是没有亲身经历过相关设计工作细节。这次实习证实提供了一个很好机会。
通过这次课程设计发现这其中需要很多知识我们没有接触过,去图书馆查资料时候发现我们前边所学到仅仅是皮毛,还有很多需要我们掌握东西我们根本不知道。同时也发现有很多已经学过东西我们没有理解到位,不能灵活运用于实际,不能很好用来解决问题,这就需要我们不断大量实践,通过不断自学,不断地发现问题,思考问题,进而解决问题。在这个过程中我们将深刻理解所学知识,同时也可以学到不少很实用东西。 从各种文档阅读到开始需求分析、概念结构设计、逻辑结构设计、物理结构设计。亲身体验了一回系统设计开发过程。很多东西书上写很清楚,貌似看着也很简单,思路非常清晰。但真正需要自己想办法去设计一个系统时候才发现其中难度。经常做到后面突然就发现自己一开始设计有问题,然后又回去翻工,在各种反复中不断完善自己想法。
我想有这样问题不止我一个,事后想想是一开始着手做时候下手过于轻快,或者说是根本不了解自己要做这个系统是给谁用。因为没有事先做过仔细用户调查,不知道整个业务流程,也不知道用户需要什么功能就忙着开发,这是作为设计开发人员需要特别警惕避免,不然会给后来工作带来很大的麻烦,甚至可能会需要全盘推倒重来。所以以后课程设计要特别注意这一块设计。
按照要求,我们做是机票预订系统。说实话,我对这个是一无所知,没有订过机票,也不知道航空公司是怎么一个流程。盲目开始设计下场我已经尝过了,结果就是出来一个四不像设计方案,没有什么实际用处。没有前期调查,仅从指导书上那几条要求着手是不够。
在需求分析过程中,我们通过上网查资料,去图书馆查阅相关资料,结合我们生活经验,根据可行性研究结果和客户要求,分析现有情况及问题,采用client/server结构,将机票预定系统划分为两个子系统:客户端子系统,服务器端子系统。在两周时间里,不断地对程序及各模块进行修改、编译、调试、运行,其间遇到很多问题:由于忘记了一些java语言规范使得在调试过程中一些错误没有发现,通过这次课程设计,我对调试掌握得更加熟练了,意识到了程序语言规范性以及我们在编程时要有严谨态度,同时在写程序时如有一定量注释,既增加了程序可读性,也可以使自己在读程序时更容易。
我们学习并应用了sql语言,对数据库创建、修改、删除方法有了一定了解,通过导入表和删除表、更改表学会了对于表一些操作,为了建立一个关系数据库信息管理系统,必须得经过系统调研、需求分析、概念设计、逻辑设计、物理设计、系统调试、维护以及系统评价一般过程,为毕业设计打下基础。
很多事情不是想象中那么简单,它涉及到各种实体、属性、数据流程、数据处理等等。很多时候感觉后面设计根本无法继续,感觉像是被前面做各种图限制了。在做关系模型转换时候碰到有些实体即可以认为是实体又可以作为属性,为了避免冗余,尽量按照属性处理了。
物理结构设计基本没有碰到问题,这一块和安全性、完整性不觉就会在物理结构设计中添加一些安全设置:主键约束、check约束、default定义等。最后才做索引部分,对一些比较经常使用搜索列,外键上建立索引,这样可以明显加快检索速度,最后别忘记重要安全性设置,限制用户访问权限,新建用户并和数据库用户做相应映射。
不管做什么,我们都要相信自己,不能畏惧,不能怕遇到困难,什么都需要去尝试,有些你开始认为很难事在你尝试之后你可能会发现原来她并没有你以前觉得那样,自己也是可以。如果没有自信,没有目标,没有信心就不可能把事情做好,当其他人都在迷茫时候,自己一定要坚信目标,大学毕业出去即面临找工作,从学习这个专业,到以后从事这方面工作都需要不断地去学习去实践,这次实践可以给我们敲一个警钟,我们面临毕业,面临择业,需要这些实践经验,在困难面前要勇于尝试,这是这次课程设计给我最大感想!
以上基本是这次实习体会了,设计进行非常艰难,编码非常不容易,才发现做一个项目最重要不在于如何实现,而是实现之前需求分析和模块设计。创新很难,有些流行系统其实现并不难,难在于对市场分析和准确定位。设计,是一个任重道远过程。
大数据课程的心得体会篇3
通过两周的课程设计,完成了预定的目标,其中有很多的随想。老师的题目发下来的很早,大概提前了3周,当时就着手搜索有关线索二叉树的思想,思路,借了一本《数据结构-c语言描述》,在大体上就有了一个轮廓,先是输入二叉树,在对二叉树进行线索化,依次往下,但在具体实现时,遇到了很多问题:首先是思想的确定,其非常重要,以前有了这个想法,现在愈加清晰起来,因此,花了大量的时间在插入删除的具体操作设计上,大概三个晚上的时间,对其中什么不清晰明确之处均加以推敲,效果是显著的,在上机上相应的节约了时间。
通过具体的实验编码,思路是对的,但是在小问题上摔了一次又一次,大部分时间都是花在这方面,这个节点没传过来啊之类的,以后应该搞一个小册子,记录一些错误的集合,以避免再犯,思想与c语言联系起来,才是我们所需要的,即常说的理论与实践的关系。
数据结构是基础的一门课,对于有过编程经验的人,结合自己的编程体会去悟它的思想;而且我觉得随着编程经历的丰富对它的体会越深入,最初接触是对一些思想可能只是生硬的记忆,随着学习的深入逐渐领悟了很多。看了这次课程设计的题目,虽然具体要求没有看清,但是总结一下,可以看出,其需要我们能把一个具体案例或一件事情反映为程序来表达,数据结构就是桥梁,通过自己的设计,使应用能力得以融汇,对与问题,具有了初步的分析,继而解决之的能力,感觉对以后的学习会有很大的帮助,学习无非是用于实践。
认识到自己的不足,希望能有进一步的发展。
大数据课程的心得体会篇4
在我看来,数据库课程设计主要目标是利用课程中学到数据库知识和技术较好开发设计出数据库应用系统,去解决各行各业信息化处理要求。通过这次课程设计,可以巩固我们对数据库基本原理和基础理论理解,掌握数据库应用系统设计开发基本方法,进一步提高我们综合运用所学知识能力。
当我们这组决定做大学生就业咨询系统时,我们并没有着手写程序。而是大家一起商量这个系统概述、系统目标、系统需求、业务流程分析、数据流程分析和数据词典。当这些都准备好了之后,我们进行模块分工。每个人都有自己模块设计,而且写出来代码要求可以实现相应模块功能,得到理想效果。当每个人都把自己分工做好了,最后会由一个人把这些全部组合搭建在一起。我们使用是html和php相互嵌套使用,当一个系统做好了之后,我会好好地把程序都看一遍,理会其中奥秘。
我所负责是数据库备份和还原还有一些界面实现。还记得自己刚接触html时候,觉得很感兴趣,所以有一段时间几乎到了痴迷程度。然而php 是我刚接触不久一种编程语言。不过觉得它功能真很强大,可以开发出很多大型系统。但是在做备份和还原时候,要考虑东西还是很多。当我遇到错误时候,感到很受打击。值得欣慰是,在同学帮助和大量参考书查阅下,我把自己模块做好了。这就是我收获最大地方。而且,我明白了遇到困难永不放弃重要性,我知道了团队合作重要性,我领悟了只有坚持不懈才会取得胜利。 知识获得是无止境,只要你想学,只要你行动,没有什么会难倒我们。回首这一个多星期课程设计,我很欣慰。因为我有了动力,有了勇气。谢谢老师对我们不懈帮助,谢谢学校给了我们这一次实践机会,也谢谢组员们关怀。这些美好回忆美好东西将永远伴随着我。
大数据课程的心得体会篇5
数据结构是一门纯属于设计的科目,它需用把理论变为上机调试。在学习科目的第一节课起,鲁老师就为我们阐述了它的重要性。它对我们来说具有一定的难度。它是其它编程语言的一门基本学科。很多同学都说,数据结构不好学,这我深有体会。刚开始学的时候确实有很多地方我很不理解,每次上课时老师都会给我们出不同的设计题目,对于我们一个初学者来说,无疑是一个具大的挑战。
我记得有节课上遍历二叉树的内容,先序遍历、中序遍历、后序遍历。鲁老师说:这节课的内容很重要,不管你以前听懂没有,现在认真听。说实在的,以前上的内容确实没大听懂,不过听了老师的话,我听得很认真。先序遍历很简单,是三个遍历中,最简单的。而中序遍历听得有点模糊,后序遍历也半懂半懂,我心想如果老师再讲一遍,我肯定能听懂。后来老师画了一个二叉树,抽了同学到黑板上去排序,这个二叉树看似复杂,不过用先序遍历来排,并不难。于是我在下面排好了先序,先序遍历很简单,我有点得意,老师到位置上点了我上去排中序,上去之后排得一塌糊涂。后来老师又讲了一遍,我这才听懂了,鲁老师又安慰我们说,这个二叉树有点难,中序和后序都不好排,要学懂的确要花点功夫才行。我听了老师的话,认真做了笔记,回去再看了当天学的内容。第二堂课,老师还是先讲的先前的内容,画了一个简单的二叉树,让我们排序,又叫同学上去分别排出来,老师又点了我的名,叫我起来辨别排中序那两个同学的答案哪个排正确了,我毫不犹豫的答对了。因为这次的内容,先序遍历二叉树、中序遍历二叉树、后序遍历二叉树,我的确真的懂了,第一次上这个课这么有成就感。渐渐的对这门课有了兴趣。我以为永远都听不懂这个课,现在,我明白了,只要认真听,肯下功夫,这个课也没有什么难的。而数据结构学习的难易程度很大程度上决定于个人的兴趣,把一件事情当做任务去做会很痛苦,当做兴趣去做会很快乐。也希望老师能看到我的改变,在此也感谢老师的辛勤教导。老师没有放弃我,几次点我的名上去,老师一定看得到我的进步。
后来,我每节课都认真听课,老师虽然没有点名,但我还是很认真的听。双亲表示法孩子表示法和孩子兄弟表示法,这些内容我都听得很明白,差不多每节课都认真听课。有时我也会在上课空余时间看看以前的内容,所以,第一遍看课本的时候要将概念熟记于心,然后构建知识框架。数据结构包括线性结构、树形结构、图状结构或网状结构。线性结构包括线性表、栈、队列、串、数组、广义表等,栈和队列是操作受限的线性表,串的数据对象约束为字符集,数组和广义表是对线性表的扩展:表中的数据元素本身也是一个数据结构。除了线性表以外,栈是重点,因为栈和递归紧密相连,递归是程序设计中很重要的一种工具。
其中我了解到:栈(stack)是只能在某一端插入和删除的特殊线性表。它按照后进先出的原则存储数据,先进入的数据被压入栈底,最后的数据在栈顶,需要读数据的时候从栈顶开始弹出数据;队列一种特殊的线性表,它只允许在表的前端(front)进行删除操作,而在表的后端(rear)进行插入操作。进行插入的操作端称为队尾,进行删除的操作端称为队头。队列中没有元素时,称为空队列;链表是一种物理存储单元上非连续、非顺序的存储结构,数据元素的逻辑顺序是通过链表中的指针链接次序实现的。链表由一系列结点组成,结点可以在运行时动态生成。每个结点包括两个部分:一个是存储数据元素的数据域,另一个是存储下一个结点地址的指针域。
想着自己报考自考的专业,也会考数据结构这门,这学期就结束了,或多或少都收获了一些知识。尽管学得还不是很透彻,我相信这对自己的自考会有很大的帮助,所以,即使是结束了这科的内容,我也不会放弃去学习它。
大数据课程的心得体会篇6
完成了这次的二元多项式加减运算问题的课程设计后,我的心得体会很多,细细梳理一下,有以下几点:
1、程序的编写中的语法错误及修改
因为我在解决二元多项式问题中,使用了链表的方式建立的二元多项式,所以程序的空间是动态的生成的,而且链表可以灵活地添加或删除结点,所以使得程序得到简化。但是出现的语法问题主要在于子函数和变量的定义,降序排序,关键字和函数名称的书写,以及一些库函数的规范使用,这些问题均可以根据编译器的警告提示,对应的将其解决。
2、程序的设计中的逻辑问题及其调整
我在设计程序的过程中遇到许多问题,首先在选择数据结构的时候选择了链表,但是链表的排序比较困难,特别是在多关键字的`情况下,在一种关键字确定了顺序以后,在第一关键字相同的时候,按某种顺序对第二关键字进行排序。在此程序中共涉及到3个量数,即:系数,x的指数和y的指数,而关键字排是按x的指数和y的指数来看,由于要求是降幂排序且含有2个关键字,所以我先选择x的指数作为第一关键字,先按x的降序来排序,当x的指数相同时,再以y为关键字,按照y的指数大小来进行降序排列。
另外,我在加法函数的编写过程中也遇到了大量的问题,由于要同时比较多个关键字,而且设计中涉及了数组和链表的综合运用,导致反复修改了很长的时间才完成了一个加法的设计。但是,现在仍然有一个问题存在:若以0为系数的项是首项则显示含有此项,但是运算后则自动消除此项,这样是正确的。但是当其不是首项的时候,加法函数在显示的时候有0为系数的项时,0前边不显示符号,当然,这样也可以理解成当系数为0时,忽略这一项。这也是本程序中一个不完美的地方。
我在设计减法函数的时候由于考虑不够充分就直接编写程序,走了很多弯路,不得不停下来仔细研究算法,后来发现由于前边的加法函数完全适用于减法,只不过是将二元多项式b的所有项取负再用加法函数即可,可见算法的重要性不低于程序本身。
3、程序的调试中的经验及体会
我在调试过程中,发生了许多小细节上的问题,它们提醒了自己在以后编程的时候要注意细节,即使是一个括号的遗漏或者一个字符的误写都会造成大量的错误,浪费许多时间去寻找并修改,总结的教训就是写程序的时候,一定要仔细、认真、专注。
我还有一个很深的体会就是格式和注释,由于平时不注意格式和注释这方面的要求,导致有的时候在检查和调试的时候很不方便。有的时候甚至刚刚完成一部分的编辑,结果一不注意,就忘记了这一部分程序的功能。修改的时候也有不小心误删的情况出现。如果注意格式风格,并且养成随手加注释的习惯,就能减少这些不必要的反复和波折。还有一点,就是在修改的时候,要注意修改前后的不同点在哪里,改后调试结果要在原有的基础上更加精确。
会计实习心得体会最新模板相关文章: