首页 > 文章中心 > 课设心得体会

课设心得体会

课设心得体会

课设心得体会范文第1篇

回顾起此次单片机课程设计,至今我仍感慨颇多,的确,从选题到定稿,从理论到实践,在整整两星期的日子里,可以说得是苦多于甜,但是可以学到很多很多的的东西,同时不仅可以巩固了以前所学过的知识,而且学到了很多在书本上所没有学到过的知识。通过这次课程设计使我懂得了理论与实际相结合是很重要的,只有理论知识是远远不够的,只有把所学的理论知识与实践相结合起来,从理论中得出结论,才能真正为社会服务,从而提高自己的实际动手能力和独立思考的能力。在设计的过程中遇到问题,可以说得是困难重重,这毕竟第一次做的,难免会遇到过各种各样的问题,同时在设计的过程中发现了自己的不足之处,对以前所学过的知识理解得不够深刻,掌握得不够牢固,比如说三极管PNP管脚不懂怎么放置,不懂分得二极管的正负极,对单片机汇编语言掌握得不好……通过这次课程设计之后,一定把以前所学过的知识重新温故。

这次课程设计终于顺利完成了,在设计中遇到了很多编程问题,最后在梁强老师的辛勤指导下,终于游逆而解。同时,在梁强老师的身上我学得到很多实用的知识,在次我表示感谢!同时,对给过我帮助的所有同学和各位指导老师再次表示忠心的感谢!

二、课程设计的心得体会

做了两周的课程设计,有很多的心得体会,有关于单片机方面的,更多的是关于人与人之间关系方面的。

我们组一共有三个人,但其他两个人是真的神龙见首不见尾,除了在最后答辩的时候他们一起坐在了我旁边,冠冕堂皇的指着我画了几遍的图说了几嘴,我想可能他们自己都不知道自己在说怎么,虽然有的东西他们也答出来了。我佩服他们的勇气,羡慕他们的运气(我见到的很多做了10天的人最后的成绩都有不如他们的),但是鄙视他们的做法。

所幸的是,我得到了很多同学的帮助。我想没有他们我可能都要放弃了,因为我本人对单片机也并不是很熟悉,学的东西好像它是它,我是我似的,理论联系不了实际。以前的汇编语言没学好,一开始的程序这块儿就要令我抓狂了。后来请教我们班的一个男生,每次跟他一起到试验室调试程序(他们组也只有他一个人动手),看他边做边给我讲解。最后在开发机上做出来的时候,虽然不是我自己写的,但看他那么高兴,我也有一种分享到的成就感。后来我们组就用了他写的程序,他自己又抽空做了些拓展。

接下来就是做硬件方面的焊接工作了。没想到这项看起来不需要多少技术的工作却是非常的劳心劳力。很多次是早上起来带瓶水带些吃的到实训中心,一泡就是一天。我看到有很多人跟我一样,不同的是他们是三三两两,而我大部分时间都是一个人做。在这个时候也有很多人帮助我,或是热心的帮我带饭,或是在我打盹儿的时候帮我做点焊接。大家都鼓励我,即使最后出不来东西,但是一定要坚持把它做完。当我想放弃的时候,我也这么对自己说,即使你做出来的是次品甚至不合格品,但是你一定要拿出来一件成品。

在要验收前,终于做了一件成品出来,不幸的是它真的是一件不合格品。帮我的那个男生做的已经出来了,所以最后应该还是我的焊接方面的问题。有一点灰心,想再重做来不及了,单是检查线路却也查不出来什么问题。那么就准备答辩吧。我对着电路图再看课本,发现以前很多觉得很难记的东西现在记起来容易多了,因为整天都在同它们打交道。51的引脚及其功能,A/D转换器的,驱动器的,所有我用到的我都一再的看书了解,同时请教同学我看书过程当中的疑惑。在这个过程中又发现了以前焊接当中出的一些问题,能改的就改,不能改的,咳,要是时间再多一些,或者我能早点做好,要是不只是我一个人动手……算了吧,不要想那些如果,还是准备我自己的,做好我现在能做的吧。

还好,验收还算成功,得了3分,不是很高,但是我觉得对我来说已经很好,代表了我真实的水平,我觉得我对单片机的一些知识在这个动手的过程中真的是从无到有增长的。同时我也尽量不去想别人得了多少分,没有什么不平衡的,有些人付出的是努力,有些人付出的是风险代价,其实这也没有什么不一样,这一点我早就了解。

最后,我发现自己对单片机竟然也有了一点兴趣,想暑假回家以后自己去买一些东西来做,再补一补汇编语言。有什么问题请教下以前的那些老同学好了,他们好厉害,在高中劳动课就成功的做出过调频收音机,大一暑假的时候参加了学校的电子竞赛培训接着比赛,不过后来怎么样我就不知道了。汗。看来要多保持联络,这次回家就好好找他们叙叙旧。

1前言

通过一个学期的学习,我认为要学好C语言程序这门课程,不仅要认真阅读课本知识,更重要的是要通过上机实践才能增强和巩固我的知识。特别是作为高职生,更要注重实践这一环节,只有这样我们才能成为合格的计算机人材。其目录为:

1.程序要求

2.算法分析

3.流程图

4.源程序

5.调试结果

6.实习体会

2程序要求

学生成绩管理是高等学校教务管理的重要组成部分,其内容较多,为了简化计论,要求设计的管理系统能够完成以下六种功能:

(1)学生注册登记;

(2)登记学生成绩;

(3)修改学生成绩;

(4)打印一个班级学生的单科成绩;

(5)求出每个学生一学期中各科的平均成绩;

(6)打印某一课程成绩处于指定分数段内的学生名单。

3算法分析

1.学生成绩管理软件的数据结构

学生成绩一般都是以班级为单位进行管理的,一个班级用一个结点来表示。考虑到插入和删除的方便,这些以班级为单位的结点用链表方式组成一个主目录。每个结点有四个域:

(1)班级代号;

(2)课程情况;

(3)学生情况;

(4)班级顺序链。

课程情况应能反映出大专生所学过的全部课程。因课程是逐年增多的,所以采用链表结构以便能不断插入新的课程。该班学过的课程构成一个课程链表,所以班级结点中的课程情况用课程链表表示。学生情况主要反映学生的学号,姓名,每学期学生的成绩情况。因为学号总是顺序排列的,所以选用一个结构体数组作为反映学生情况的登陆记表。该数组的下标值接上班级结点中的班级号就是学号。例如,设每班学生数不超过40个人,班级号为9612,某学生在登记表中相应分量的下标值为26,则该学生的学号为961226。另外,学生成绩管理要分6个学期,所以在学生登记表中,开设6个指针域,每个指针指向该生某学期某门课程学成绩的结点。

各结点结构如下所示:

(1)主目录中班级的结点为:

班级号课程链班级顺序链学生登记表

(2)程链表中的结点:

课程代号学期号二叉树链课程顺序链

(3)分数链表中的结点为:

左链学号课程代号成绩分数顺序右链

为了便于登记和查询学生的成绩,选择二叉排序来存放学生的成绩。

每个班级的每门课程对应一棵二叉树。通过主目录中班级结点的课程链找到指定的课程结点,再通过课程结点中的二叉树指针指向该门课程的成绩二叉排序树。另外通过主目录中班级结点的学生登记表中的学期指针,指向该学生本学期某门课程的分数结点,并以分数结点的分安数顺序链勾链该生各门课程的成绩。

在登记成绩和查询分数时,都要用到课程代号。课程代和课程名称是一一对应的。为了简化程序,课程名称和代号对照表设计为一个向量,向量的下标值就作为课程代号,而向量中的元素就是课程名称,这样可以省去代号域。

我的课程设计报告心得体会(大全)

作者:佚名来源:不详时间:2007-3-102:40:26人:星空无月

减小字体增大字体

1.各函数的功能和实现

学生成绩管理的相关功能由对应的函数来实现。

(1)学生注册登记

学生入学后,首先应是注册登记。注册时应先检查该学生所在班级是否已经登入主目录,未登入则若调用新结点后登陆入主目录。然后将新调入的班级结点中对应域赋初值,最后再读入学生的学号和姓名并一一填入学生登记表。这样就完成了一个班级的注册和登记工作。

(2)登记学生成绩

学生注册后才可以登记成绩,所以先要检查这个班级是否已经注册,班级中是否有这个学生。在确认有此学生后,登记该生成绩。这时需完成两个操作。一个查询课程代号,另一个是将成绩填入二叉树。这两个操作分别用两个函数来实现:

①查询课程代号;

②插入二叉排序树。

有了这两个函数,登记学生成绩的工作可以很方便地完成。首先查处课程代号,调用课程结点,填入课程代号和学期号;再在二叉树链域中置初值为NULL,将课程结点插入为课程链表的头结点。接着读入每个学生的学号和成绩,每个学生的每门课程都生成一分数结点插入到相应课程的二叉树中。同时,还要将该分数结点链入该生这学期各科成绩的分数链表中。学生登记表中的学期指针域中存放该分数链表的头结点地址。

(3)修改学生成绩

若登记的学生成绩有错误,则调用修改学生成绩的函数便可以加以修改。修改时从主目录出发,查到班级,再从学生登记表中查对学号和姓名,再在与学期匹配的学期指针域中取得该生的学生链表的头指针,然后搜索分数链表,查到指定课程的分数结点,就可修改成绩。

(4)打印一个班级学生的单科成绩

由于学生成绩是用二叉树排序树来存储的,所以采用中序遍历的方法就可以按次序打印出学姓名和成绩。在打印了程序中,从主目录开始查到班级号,就可以从课程结点的二叉树链域中取得成绩二叉排序树的头指针;然后调用中序遍历了程序就可进行打印,同时可求出平均成绩和各个分数段的人数。

(1)求出每个学生一学期中各科的平均成绩

此了程序从主目录查对班级号开始,通过学生登记表中每个学生的学期指针取得各自的分数链表的头指针。顺着分数链就可求出该生本学期各科的平均成绩。

(2)打印某一课程成绩处于指定分数段内的学生名单

对二叉树序树进行中序扁历,但扁历时应判断当前成绩是否处于分数段内而决定是否打印。

4流程图

5程序源代码

include<STDIO.H>

#include<CONIO.H>

#include<STDLIB.H>

#include<BIOS.H>

#include<IO.H>

#defineCR13

#defineESC27

#defineUP72

#defineDOWN80

#include<string.h>

#include<stdio.h>

#defineCRNUM200

#defineSTNUM40

#defineTERMS6

6调试结果

7实习体会

课设心得体会范文第2篇

【模电课程设计心得体会范文一】 时间总是过得很快,经过一周的课程设计的学习,我已经自己能制作一个高保真音频功率放大器,这其中的兴奋是无法用言语表达的。

学习模电这段时间也是我们一学期最忙的日子,不仅面临着期末考试,而且中间还有一些其他科目的实验,更为紧急的是,之前刚做完protel99的课程设计,本周必须完成模电的课程设计。任务对我们来说,显得很重。昨天刚考完复变,为了尽快完成模电的课程设计,我一天也没歇息。相关知识缺乏给学习它带来很大困难,为了尽快掌握它的用法,我照着原理图学习视频一步一步做,终于知道了如何操作。

刚开始我借来了一份高保真音频功率放大器的电路原理图,但离实际应用差距较大,有些器件很难找到,后来到网上搜索了一下相关内容,顺便到学校图书馆借相关书籍,经过不断比较与讨论,最终敲定了高保真音频功率放大器的电路原理图,并且询问了兄弟班关于元器件的参数情况。为下步实物连接打好基础。

在做电路仿真时,我画好了电路原理图,修改好参数后,创建网络列表时系统总是报错,无论我怎样修改都不行,后来请教同学,他们也遇到了同样的困惑。任何事情都不可能是一帆风顺的,开始是创建网络表时出现问题,后来是没有差错但出来的仿真波形不是预计中的,这确实很难修改。输出时仿真波形总是一条直线,我弄了一晚上也找不出原因,整个人也显得焦躁不已。

接下来,开始了我们的实物焊接阶段。之前的电工实习让我简单的接触到了焊接实物,以为会比较轻松,但实际焊接起来才发现此次与电工实习中的焊接实物有很大的不同,要自己对焊板上元件进行布置和焊接电路元件连线,增加了很大的难度。由于采用了电路板,为了使步线美观、简洁,还真是费了我们不少精力,经过不断的修改与讨论,最终结果还比较另人满意。

经过这段课程设计的日子,我发现从刚开始的matlab到现在的pspice,不管是学习哪种软件,都给我留下了很深的印象。由于没有接触,开始学得很费力,但到后来就好了。在每次的课程设计中,遇到问题,最好的办法就是问别人,因为每个人掌握情况不一样,不可能做到处处都懂,发挥群众的力量,复杂的事情就会变得很简单。这一点我深有体会,在很多时候,我遇到的困难或许别人之前就已遇到,向他们请教远比自己在那冥思苦想来得快。

虽然最终实物做出来了,但这并不是我一个人做出来的。通过这次课程设计,我明白了一个团队精神的重要性,因为从头到尾,都是大家集体出主意,来解决中间出现的各种问题。从原理图的最终敲定,到波形的仿真,到元器件的选择与购买,到最后实物的焊接与调试,这都是大家分工合作的结果,正是因为大家配合得默契,每项工作都完成得很棒,衔接得很好,才使我们很快的完成了任务。

尽管现在只是初步学会了高保真音频功率放大器设计,离真正掌握还有一定距离,但学习的这段日子确实令我收益匪浅,不仅因为它发生在特别的时间,更重要的是我又多掌握了一门新的技术,收获总是令人快乐,不是吗?

【模电课程设计心得体会范文二】 在这次的模电课程设计中,我们对模电数电有了更清晰的认识。但是在一开始看见题目的时候,还是比较头疼的,不知道如何下手,但是随着慢慢的摸索,思路慢慢的出现了。这之间变化还是蛮大的,从最开始的不愿意动手到后来的因为一个环节没搞清楚而搞一晚上,这样的大反差让我们更进一步的了解了模拟电子技术这一门深奥而实用的课程。

课程设计本身要求将以前所学的理论知识运用到实际的电路设计当中去,在电路的设计过程中,无形中加深了我们对模拟电路和数字电路的了解及运用能力,对课本以及以前学过的知识有了一个更好的总结与理解;以前的模电实验只是针对某一个小的功能设计,而此次课程设计对我们的总体电路的设计的要求更严格,这需要通过翻阅复习以前学过的知识确立了实验总体设计方案,然后逐步细化进行各模块的设计,进而一步步调试排除错误

老师提供了多种不同类型的题目,自动油烟控制报警器这个任务难度相对适中,难度系数也比较适合,因此我们选择了这个题目。最初拿到题目之时,觉得无从下手,而且时间也的确非常紧迫。可能是由于模电数电这两门,特别是数电这门课程学过很久了,内容有些生疏,不得不翻出以前的课本,大致的浏览一下,即使不成竹于胸,也能初步的了解。通过浏览,很多的知识因此回忆起来了。

但是问题并没有得到根本性的解决。首先,我只是知道此次的课程设计任务需要的一些集成芯片,例如电压比较器、da转换器、数码管等。但是并不知道如何把它们组合起来,组成一个系统的,模块清晰,能够很好完成功能的整体。于是我们上网搜,图书馆查阅资料,看书,问同学。终于能够从整体上来把握。思路也逐渐的清晰了起来,整体的框架在我的脑海里慢慢的显现。很快,便有了整体的方案。把这个任务分成几个比较系统的模块,分别是报警浓度设置和显示模块,比较控制模块,烟雾传感器输入模块,三极管开关,驱动模块。接下来分别考虑了分块电路的细节。最后如期的完成了初步的设计雏形。

有了方案的指导,接下来的几天就相对比较容易搞定,需要做的就是连接好电路,尽管这是一项依葫芦画瓢的步骤,但是要求的是绝对的用心和细致,稍有错误,就很难在错综复杂的线路中检查出来,有时候就是一个小问题,却会浪费了我们很多时间,这印证了一句话细节决定成败!不管做的实验有多么复杂或者多么简单,我们都应该抱着一颗谨慎细致的心去完成它,遇到困难不毛躁,一个个排除,一定会得到我们想要的结果的。虽然只有短短一周的课程设计,但是我们有许多的感想,总结起来如下:我觉得在做任何事情之前都必须的有一个大的纲领,也就是一个方向和目标,好让你不会走错路和走弯路。当然,这个的前提是纲领是对的。就这里而言,也就是我们的设计方案了。不难看出,所有的东西都是围绕着这个方案在进行的,那么我们就宁愿多花些时间在方案的完备性上,也就是常言道的磨刀不误砍柴工。没有准确的做好这一步,后面也无从谈起。从事我们这一行的必须要有动手能力。有了方案,就必须能够准确的实施,并且能够在实施的过程中不断的去纠正它,控制它,通过实验结果的反馈来改进最初的方案,最终又能够完善最初的方案,使之成熟。如果很好的保持了这样一个良性的循环。做出来的方案又怎么会不够完美呢?而且,动手的过程需要的是细致,耐心,准确。不要把这个过程当作是一个机械的操作,而是要带着你的设计思想,在思考中行进。不怕做的慢,因为熟能生巧,多多练习即可加强熟悉程度。虽然此次并没有在这个过程中遇到很大的困难,但是实际当中,动手能力是我们急需加强的一项技能。本次课程设计还让我们认识到要有取有舍,考虑最适合而不是最优。现实中,只能是理论上的最优。而在实际的步骤中,就需要我们进行取舍,留下什么,去掉什么,都是要求我们认真考虑的,我坚持的一个原则就是,从整体上考虑,在无法避免的情况之下,可以牺牲部分模块的完备性来保证整体的实现和优化。当然,如果能够找到一种替代的方案或者模块,是最理想不过的了。

总的来说,这次的任务完成的不错。学到了很多东西。使我对模拟数电这两门课有了进一步了解。我过去没有过自己设计实验,所以锻炼了我学习的主动性。把课堂上学到书本知识灵活的应用到了实际操作当中,同时,这让我更深刻地认识到做事要细心、耐心,学会发现问题,敢于面对问题,思考如何解决问题。最主要的我想还是一个整体的思路而不是局限于一个部分。通过整体性能与部分模块的博弈而选出最佳的方案。这才是最大的收获。而从小的方面来说,通过此次的模电设计,能够很好的理解到这个课程甚至是我们专业设计课程的大致思路与思想,为以后更多的课程设计奠定了基础。

【模电课程设计心得体会范文三】 1、通过这次课程设计,加强了我们动手、思考和解决问题的能力。在整个设计过程中,我们通过这个方案包括设计了一套电路原理和pcb连接图,和芯片上的选择。这个方案总共使用了74ls248,cd4510各两个,74ls04,74ls08,74ls20,74ls74,ne555定时器各一个。

2、在设计过程中,经常会遇到这样那样的情况,就是心里想老着这样的接法可以行得通,但实际接上电路,总是实现不了,因此耗费在这上面的时间用去很多。

3、我沉得做课程设计同时也是对课本知识的巩固和加强,由于课本上的知识太多,平时课间的学习并不能很好的理解和运用各个元件的功能,而且考试内容有限,所以在这次课程设计过程中,我们了解了很多元件的功能,并且对于其在电路中的使用有了更多的认识。平时看课本时,有时问题老是弄不懂,做完课程设计,那些问题就迎刃而解了。而且还可以记住很多东西。比如一些芯片的功能,平时看课本,这次看了,下次就忘了,通过动手实践让我们对各个元件映象深刻。认识来源于实践,实践是认识的动力和最终目的,实践是检验真理的唯一标准。所以这个期末测试之后的课程设计对我们的作用是非常大的。

4、经过两个星期的实习,过程曲折可谓一语难尽。在此期间我们也失落过,也曾一度热情高涨。从开始时满富盛激情到最后汗水背后的复杂心情,点点滴滴无不令我回味无长。生活就是这样,汗水预示着结果也见证着收获。劳动是人类生存生活永恒不变的话题。

通过实习,我才真正领略到艰苦奋斗这一词的真正含义,我才意识到老一辈电子设计为我们的社会付出。我想说,设计确实有些辛苦,但苦中也有乐,在如今单一的理论学习中,很少有机会能有实践的机会,但我们可以,而且设计也是一个团队的任务,一起的工作可以让我们有说有笑,相互帮助,配合默契,多少人间欢乐在这里洒下,大学里一年的相处还赶不上这十来天的合作,我感觉我和同学们之间的距离更加近了;我想说,确实很累,但当我们看到自己所做的成果时,心中也不免产生兴奋; 正所谓三百六十行,行行出状元。

我们同样可以为社会作出我们应该做的一切,这有什么不好?我们不断的反问自己。也许有人不喜欢这类的工作,也许有人认为设计的工作有些枯燥,但我们认为无论干什么,只要人生活的有意义就可。

社会需要我们,我们也可以为社会而工作。既然如此,那还有什么必要失落呢?于是我们决定沿着自己的路,执着的走下去。同时我认为我们的工作是一个团队的工作,团队需要个人,个人也离不开团队,必须发扬团结协作的精神。某个人的离群都可能导致导致整项工作的失败。实习中只有一个人知道原理是远远不够的,必须让每个人都知道,否则一个人的错误,就有可能导致整个工作失败。团结协作是我们实习成功的一项非常重要的保证。

课设心得体会范文第3篇

【单片机课程设计心得体会一】 这次这个单片机的课程设计我们完成的不太理想,我们小组两个人都是交流生,并且不是在物理学院学习,同时选课时没有认真全面的了解这门课程的安排导致没有选上和课程配套的实验课,一个学期也就没有做过一次实验,在后来的制作过程中遇到了很多困难,所以这次这个课程设计的作品完全是在没有任何单片机制作经验甚至是没有做过任何相关电路的基础上开始的。选题的时候其实只上了几个星期的课,对单片机能做什么或者说以我们的水平能让单片机做什么根本没有一个清晰的认识,很担心自己的选题最后做不出来,所以当时选题时的原则是尽量的简单可行,因为毕竟我们没有实验课,一学期下来必定会比物理系的同学在具体的实验方面落后不少,同时平时我们都在南新校区,与老师和同学的交流都很困难,在后来的具体制作过程中遇到什么困难几乎不可能跑到实验室去向老师请教,同时现在社会上都在大力提倡节能,于是我们打算从这点出发在我们的身边发现问题,当时我们听周围的同学说起济南的夏天白天相当的炎热,可是晚上退凉很快特别是深夜的时候温度其实已经不高了,但是同学们一般晚上睡觉都比较早,都会叫风扇一直开着最大档,可是到了深夜后已经没有必要这么强的风速了,这样一夜下来将会浪费很多电能,同时还容易把同学们吹感冒。于是我们想能不能做一个单片机系统来解决这个问题,基于以上原因我们确定了这个方案,在最初的计划中我们还准备加入对风扇转向的控制,使之能实现人体追踪功能,不过在后来的具体设计中发现现在风扇的风扇转向控制基本都是纯机械装置,要用单片机控制比较的困难,而电子控制装置一般都出现在高端的风扇之中且价格比较昂贵,而且机械部分方面我们也无法解决。所以最后决定放弃对转向的控制,等以后对机械方面的只是有所学习之后再做。

通过这次的课程设计作品的制作让我对单片机的理论有了更加深入的了解,同时在具体的制作过程中我们发现现在书本上的知识与实际的应用存在着不小的差距,书本上的知识很多都是理想化后的结论,忽略了很多实际的因素,或者涉及的不全面,可在实际的应用时这些是不能被忽略的,我们不得不考虑这方的问题,这让我们无法根据书上的理论就轻易得到预想中的结果,有时结果甚至很差别很大。通过这次实践使我更深刻的体会到了理论联系实际的重要性,我们在今后的学习工作中会更加的注重实际,避免称为只会纸上谈兵的赵括。

课程设计贡献排序:这次课程设计从最初的规划到后来的理论设计到最后的具体制作都是我们两共同完成的,实在无法区分贡献排序。各取50%吧。

课程改革建议:我们强烈建议将这门课程的理论学习和实验部分合并成一门,以避免想我们这种情况的再次发生。

【单片机课程设计心得体会二】 作为一名自动化专业的大学生,我觉得做单片机课程设计是十分有意义的,而且是十分必要的。在已度过的大学时间里,我们大多数接触的是专业课。我们在课堂上掌握的仅仅是专业课的理论知识,如何去锻炼我们的实践能力?如何把我们所学的专业基础课理论知识运用到实践中去呢?我想做类似的课程设计就为我们提供了良好的实践平台。

在做本次课程设计的过程中,我感触最深的当属查阅大量的设计资料了。为了让自己的设计更加完善,查阅这方面的设计资料是十分必要的,同时也是必不可少的。我们是在做单片机课程设计,但我们不是艺术家,他们可以抛开实际尽情在幻想的世界里翱翔,而我们一切都要有据可依,有理可寻,不切实际的构想永远只能是构想,永远无法升级为设计。

接下来的4月,我意外的接到系学生工作处主管陈老师来电,说我系承办了院校园文化艺术节的南方擂台知识抢答竞赛,而学校又没有抢答器,要我组织几个学生做一个抢答器。我当时想,那好啊,做抢答器不难。以前有用与非门做过,于是我便爽快的答应了陈老师,并保证没有问题,保质保量完成。当是可能是我想得太简单了,抢答器不就八个按键一个数码管显示不就完了么,把最先抢到的组别显示出来。可是到主任给我们提要求的时候才发现抢答器要实现我功能远不只这么多,倒计时、蜂鸣提示、范规报警、电子计分器,这些我都没有考虑进来。主任也说了,这是一次院级的比赛,电子系做的东西要拿的出手,要做就做点样子出来。我想也好,虽有点难度,但符合我喜欢挑战难度的性格。我说行!这个活我做了!

接到任务开始布属,我把计分电路分了出去由其它几个同学做,我专攻抢答部分。由于没有独立设计电路的经验,刚开始得一步步慢慢深入,正好我会PROTEUS。软硬件的调度都靠它完成,这样可以省很多的时间。做抢答器,我们花了一个月的时间,没日没夜的调试程序(当时单片机课程还没学到定时器中断,还得一边自学。)做PCB板,采购元器件,安装,调试,运行。那时,他们的计分电路也做好了,用了16个数码管做显示。我们将计分和抢答电路板及数码管安装在了事先木制的外壳上,进行整体调试。记得那时正赶上五一放假,而五月8号就是比赛了。我们都没有休息,将工作间从实验室搬到了寝室。那段时间虽然辛苦,但很充实,每个人收获都特别大。

为了让自己的编程水平能进一步提高,我将自己编写的程序发到了论坛里与大家共享,并下载网友们的程序进行分析。电子钟程序、液晶密码锁程序、跑马灯程序、大屏幕点阵屏程序、上下位机通信程序等等,这些我都能熟练的掌握。我认为,学编程读别人的程序非常重要,每个人都有不同的思维,相同的任务却有很多不同的方法,在每个程序里都能找到些经典的段子,让人回味。从中可以学到很多的方法,并且有些可以直接的引用。一个出色的程序员在编程时,并不是从零开始,而应该是先找出类似的例子进行分析,参考,看看有没有值得引用和借鉴的地方,加以修改,为自己所用。实践证明,这样做是对的。从当初不知如何着手到现在随手就能写个几百行,短短几个月,我进步还是蛮快的。

做单片机课设那会,我帮助了班上不少的同学,帮他们调试过硬件,修改过程序,并为他们解答了一系列的疑惑。当同学们投来羡慕的目光时,我很自豪,这些都是我努力的结果。当然,努力归努力,方法也很重要。在这里,我总结一下,与大家共勉:

1、基本功要杂实,要有一定的数模电基础。学单片机首先要搞清楚它的基本结构和存储单元的分配。

2、在学单片机的过程中,最好自己动手做一个单片机系统。先找现成的程序,现成的电路图,做成实物,并以这个例子为开端,带着疑问学习,往往更有目的,更主动。

3、有条件的话先个好的开发板,便实验时之用。没开发板,PROTEUS软件仿真也行。

4、多读有代表性的程序,读得多了自然就会学到很多的好方法。可买本单片机子程序集看看,也可网上下载程序分析。

5、多泡泡单片机相关的论坛,与大家多交流交流,单片机完全可以自学的。

我觉得以上几点相当重要,因为它对我帮助很大,算是将我领进了单片机的大门,以至于我学起来不那么吃力,没有感觉到像大家说的那样的难。我看过很多的程序,也调试过很多的程序,每一次收获都不小。我的实验室就是KEIL和PROTEUS。这使我做实验很方便。虽是虚拟的,但调试程序还是可以的,省去了很多的时间提高了效率。最近我在学CX51,因为学单片机掌握C语言是非常重要的,C语言的通用性对学习其它类型的单片机有很大的帮助。今后,我想做嵌入式系统工程师,想学ARM,想搞操作系统。所以我现在必须打好基础,这样才能进步。

我学单片机的一些经历。其实我并不是很厉害,我懂的也只是一点皮毛,只是晓得单片机是怎么回事,能编几个小程序罢了。写这些我只是想记录一下我初学单片机的经历。同时对于那些想开始学习单片机的朋友们,还是可以有一些值得借鉴的地方。希望大家都能学好单片机,那些觉得难的学得吃力的同学要对自己有信心,要多做多练,这样才能培养学习兴趣。只要坚持就能如愿,同志们,加油!

【单片机课程设计心得体会三】 做了两周的课程设计,有很多的心得体会,有关于单片机方面的,更多的是关于人与人之间关系方面的。

我们组一共有三个人,但其他两个人是真的神龙见首不见尾,除了在最后答辩的时候他们一起坐在了我旁边,冠冕堂皇的指着我画了几遍的图说了几嘴,我想可能他们自己都不知道自己在说怎么,虽然有的东西他们也答出来了。我佩服他们的勇气,羡慕他们的运气(我见到的很多做了10天的人最后的成绩都有不如他们的),但是鄙视他们的做法。

所幸的是,我得到了很多同学的帮助。我想没有他们我可能都要放弃了,因为我本人对单片机也并不是很熟悉,学的东西好像它是它,我是我似的,理论联系不了实际。以前的汇编语言没学好,一开始的程序这块儿就要令我抓狂了。后来请教我们班的一个男生,每次跟他一起到试验室调试程序(他们组也只有他一个人动手),看他边做边给我讲解。最后在开发机上做出来的时候,虽然不是我自己写的,但看他那么高兴,我也有一种分享到的成就感。后来我们组就用了他写的程序,他自己又抽空做了些拓展。

接下来就是做硬件方面的焊接工作了。没想到这项看起来不需要多少技术的工作却是非常的劳心劳力。很多次是早上起来带瓶水带些吃的到实训中心,一泡就是一天。我看到有很多人跟我一样,不同的是他们是三三两两,而我大部分时间都是一个人做。在这个时候也有很多人帮助我,或是热心的帮我带饭,或是在我打盹儿的时候帮我做点焊接。大家都鼓励我,即使最后出不来东西,但是一定要坚持把它做完。当我想放弃的时候,我也这么对自己说,即使你做出来的是次品甚至不合格品,但是你一定要拿出来一件成品。

在要验收前,终于做了一件成品出来,不幸的是它真的是一件不合格品。帮我的那个男生做的已经出来了,所以最后应该还是我的焊接方面的问题。有一点灰心,想再重做来不及了,单是检查线路却也查不出来什么问题。那么就准备答辩吧。我对着电路图再看课本,发现以前很多觉得很难记的东西现在记起来容易多了,因为整天都在同它们打交道。51的引脚及其功能,A/D转换器的,驱动器的,所有我用到的我都一再的看书了解,同时请教同学我看书过程当中的疑惑。在这个过程中又发现了以前焊接当中出的一些问题,能改的就改,不能改的,咳,要是时间再多一些,或者我能早点做好,要是不只是我一个人动手算了吧,不要想那些如果,还是准备我自己的,做好我现在能做的吧。

课设心得体会范文第4篇

数据结构是计算机科学的基础理论知识,也是软件设计的技术基础。本课程设计的性质是检验理论科学系的效果以及综合运用的能力,目的是训练学生进行复杂程序设计的技能和培养良好的程序设计习惯。本课程设计的任务是要求学生使用C或C++语言编程,解决具有一定规模的、具有实际意义的应用题,实现理论课所要求的数据组织、存储、处理的基本方法。

二、课程设计所用到的工具

这次课程设计所用到的工具Microsoftvisualc++6.0PC机一台。

三、这次课程设计我所选择的两个题目

1、一元多项式计算。

设计分析

一)一元多项式计算

1、需求分析

要求按照指数将序排列建立并输出多项式;能够完成两个多项式的相加、相减,并将结果输入。

2、概要设计

在分析题目要求的基础上,我首先设计了一个结构体,定义如下:

structpoly

{floatcoef;

intexp;

polytypenext;};

在这个结构体中,定义了一个浮点型的系数coef,还定义了一个整形的指针exp。接下来要做的就是定义各个不同用途的函数,以满足课程设计的需要,所用到的函数定义如下:

polytypeCreate_Empty_Node(int);创建一个空链表

voidInput_Values(polytype,int);输入值

voidInsert_Node(polytype,float,int);插入接点

voidAdd_Poly(polytype,polytype);将两个多项式相加

voidSub_Poly(polytype,polytype);将两个多项式相减

voidOutPut_Results(polytype);将结果在显示器上显示

3、源代码

#include"stdio.h"

#include"stdlib.h"

typedefintdatatype;/*定义多项式节点的结构*/

typedefstructnode

{floatcoef;/*系数*/

intexpn;/*指数*/

structnode*next;/*指向结构体的指针*/

}PotyNode;/*建立连表,返回指向多项式头节点的指针*/

PotyNode*Creat_PotyNodeTail()

{PotyNode*L,*s,*r;/*声明结构体指针*/

floatc;/*系数*/

inte;/*指数,建立头节点,头节点指针设置为空*/

L=(PotyNode*)malloc(sizeof(PotyNode));

L->next=NULL;/*是指针r指向头节点*/

r=L;

printf("\ninputcoefandexpn:");

scanf("%f%d",&c,&e);

while(c!=0)/*输入的第一项系数不允许为0,防止无意义的输入*/

{/*初始化节点*/

s=(PotyNode*)malloc(sizeof(PotyNode));s->coef=c;s->expn=e;s->next=NULL;

r->next=s;/*连接节点*/

r=s;/*指针r指向当前节点,用于连接下一节点*/

printf("\ncoefandexpn:");

scanf("%f%d",&c,&e);

}returnL;

}/*获得多项式的长度,参数为多项式头节点指针*/

intGetlength(PotyNode*L)

{PotyNode*p;intcount=0;p=L->next;

while(p)

{count++;p=p->next;}

returncount;}/*获得指向i节点的指针,在删除节点的时候来获得准备删除的前一节点*/

PotyNode*GetElem_PotyNode(PotyNode*L,inti)

{PotyNode*p;intj=0;p=L;

while(p->next&&j!=i)/*当p不是尾节点,并且不是第i个节点*/

{j++;p=p->next;}

if(i==j)

returnp;/*找到节点*/

else

returnNULL;/*没有找到节点*/}/*删除节点i*/

intDelete_PotyNode(PotyNode*L,inti)

{PotyNode*q,*p;/*获得节点i的前一个节点,便于删除节点i*/

p=GetElem_PotyNode(L,i-1);q=p->next;

if(q)/*如果P为空,则说明节点p也就是节点i-1就是尾节点,节点i实际并不存在*/

{p->next=q->next;

free(q);return1;}

else

return0;}/*对输入的多项式LA,LB进行相加,结果为LC,返回指向LC头节点的指针*/

PotyNode*Add_PotyNode(PotyNode*LA,PotyNode*LB)

{PotyNode*LC,*q1,*q2,*r,*s,*p;

intx=1;q1=LA->next;q2=LB->next;LC=LA;

LC->next=NULL;/*指针r是当前指针便于进行各种操作*/

r=LC;

while(q1&&q2)/*当多项式LA,和LB都没有结束的时候*/

{if(q1->expn<q2->expn)

{s=q1;q1=q1->next;}

elseif(q1->expn>q2->expn)

{s=q2;q2=q2->next;}/*指数相同,相加*/

else{q1->coef+=q2->coef;

s=q1;q1=q1->next;q2=q2->next;}/*结果连接到多项式LC*/

s->next=NULL;r->next=s;r=s;}/*如果LB已结束,把LA剩余的部分连接到LC上*/

if(q1)r->next=q1;

if(q2)r->next=q2;/*去除多项式中系数为零的项,我对代码作了小的修改*/

p=LC->next;

while(p->next)

{if(p->coef==0)

{p=p->next;

Delete_PotyNode(LC,x);}

else

{p=p->next;x++;}}

returnLC;}/*打印多项式*/

voidprint_PotyNode(PotyNode*L)

{inti;PotyNode*p=L->next;

for(i=0;i<Getlength(L);i++)

{printf("%fX%d",p->coef,p->expn);

if(p->next==NULL)

return;

elseprintf("+");

p=p->next;}}

voidmain()

{PotyNode*LA,*LB,*LC;

intx;

printf("inputLA(endby0):\n");

LA=Creat_PotyNodeTail();

printf("f(LA)=");

print_PotyNode(LA);

printf("\ninputLB(endby0):\n");

LB=Creat_PotyNodeTail();

printf("\n");

printf("f(LB)=");

print_PotyNode(LB);

printf("\n");

LC=Add_PotyNode(LA,LB);

printf("Afteraddf(LA)andf(LB),f(LC)is:");

print_PotyNode(LC);

scanf("%d",&x);}

3、运行结果

提示输入一个多项式LA(以0结束)然后输入每项的系数和指数,输入后再提示输入另一个多项式LB(以0结束)然后输入每项的系数和指数。按回车键后得出f<LC>=f<LA>+f<LB>。

1、需求分析

1)输入数据的形式和范围:可以输入大写、小写的英文字母、任何数字及标点符号。

2)输出形式:(1)分行输出用户输入的各行字符;(2)分4行输出“全部字母数”、

“数字个数”、“空格个数”、“文章总字数”(3)输出删除某一字符串后的文章

2、概要设计

a、建立文本,存储结构用链表

voidCreateTXT(LINE*&head){

printf("\n请输入文本,每行最多输入80字符!\n");

printf("输入Ctrl+E(^E)则结束输入\n");

LINE*p=newLINE;//首先为链表建立一个附加表头结点

head=p;//将p付给表头指针

chartmp[80];

b、计算空格数

intCount_Space(LINE*&head){//统计空格数

LINE*p=head;

intasc_space=32;//空格的ASCIC码值

intcount=0;

do

{intLen=strlen(p->data);//计算当前data里的数据元素的个数

for(inti=0;i<Len;i++)

if(p->data[i]==asc_space)count++;}//计算空格数

while((p=p->next)!=NULL);//遍历链表

returncount;}

c、统计数字数

intCount_Num(LINE*&head){//统计数字数

LINE*p=head;

intcount=0;

do

{intLen=strlen(p->data);//计算当前data里的数据元素的个数

for(inti=0;i<Len;i++)

if(p->data[i]>=48&&p->data[i]<=57)count++;}//计算空格数

while((p=p->next)!=NULL);//遍历链表

returncount;}

d、统计文章的总字数

intCount_All_Word(LINE*&head){//统计文章的总字数

LINE*p=head;//保存链表的首地址

intcount=0;//总字母数

do

{count+=strlen(p->data);}//计算当前行内的字符数!除''''\0''''结束符外!注意,该统计包含“空格的长度!”

while((p=p->next)!=NULL);//遍历链表

returncount;}

3、源代码

/*definemacrovariables*/

#definetrue1

#definefalse0

#include<stdlib.h>

#include<stdio.h>

#include<malloc.h>

#include<string.h>

#include<conio.h>

#defineSTACK_INIT_SIZE100/*variablesinthesavestoragespace*/

#defineSTACKINCREMENT10/*incrementofdistributioninthesavestoragespace*/

typedefstruct

{char*base;/*beforeandafterthecreatingoftheshed,baseisNULL*/

char*top;/*shedpointer*/

intstacksize;/*thesavestoragespacedistributivebytheelement*/

}SqStack;

SqStackS,q;

/*constructastructuerarray*/

typedefstruct{

charcc[9999];

intno;}Array;

/*definethewholebureauvarible*/

Arraya[10000];

intm,n,i,j;

charname[40];

chart=''''\n'''';

FILE*fp;

/*constructanemputyshed*/

voidInitStack()

{S.base=(char*)malloc(STACK_INIT_SIZE*sizeof(char));

if(S.base==NULL)

exit(1);

S.top=S.base;

S.stacksize=STACK_INIT_SIZE;}

/*usingcharactershed,acceptthedatafromtheterminal*/

voidpush(chare)

{if(S.top-S.base>=S.stacksize)

{/*applyanewroom*/

S.base=(char*)realloc(S.base,(S.stacksize+STACKINCREMENT)*sizeof(char));

if(!S.base)

exit(1);

S.top=S.base+S.stacksize;

S.stacksize+=STACKINCREMENT;}

/*acceptthenextcharacter*/

*S.top++=e;}

/*carrythewholedatainthestackintothedatasection*/

charpop()

{chare;

if(S.top==S.base)

returnfalse;

e=*(--S.top);

returne;}

/*emptythedatainthestack*/

voidClearStack()

{S.top=S.base;/*letS.topandS.basepointtothesameplace*/}

/*destroythestack*/

voidDestroyStack()

{free(S.base);/*freethedatainthestack*/

S.top=S.base;}

/*judgetheemputyoftheshed*/

intStackEmpty()

{if(S.top==S.base)

returntrue;

returnfalse;}

/*takeoutthedatafromthestackandtheputinthestucterarray*/

voidBuffer(){

n=0;m=1;

/*movethedataintheshadeuntillthestackisempty*/

while(S.top!=S.base)

{n=n+1;

a[m].no=a[m].no+1;

a[m].cc[n]=*(S.top-1);

S.top--;}}

/*savethedata*/

voidsave()

{printf("\n\nfilename:");

scanf("%s",&name);

fp=fopen(name,"wb");

for(i=1;i<=m;i++)

{for(j=a[i].no;j>=1;j--)

{fwrite(&(a[i].cc[j]),1,1,fp);}

fwrite(&t,1,1,fp);}

fclose(fp);}

/*mainfunction*/

voidmain()

{charch,e;

printf("\n\n\n\t\t\twelcometousethewholescreeneditor");

printf("\n\npressF6ifyouwanttosavethefile,youcansavethefilewhenyousee\"^Z\"\n");

printf("\n******************************************************************************\n\n");/*SqStackS_stack,D_stack;*/

InitStack();/*InitStack(D_stack);*/

ch=getchar();

while(ch!=EOF)

{while(ch!=EOF&&ch!=''''\n'''')

{switch(ch)

{case''''#'''':e=pop();break;

case''''@'''':ClearStack();break;

default:push(ch);break;}

ch=getchar();}

Buffer();

ClearStack();

if(ch!=EOF)

ch=getchar();}

save();

DestroyStack();}

4、运行结果

三、这次课程设计的心得体会

通过实习我的收获如下

1、巩固和加深了对数据结构的理解,提高综合运用本课程所学知识的能力。

2、培养了我选用参考书,查阅手册及文献资料的能力。培养独立思考,深入研究,分析问题、解决问题的能力。

3、通过实际编译系统的分析设计、编程调试,掌握应用软件的分析方法和工程设计方法。

4、通过课程设计,培养了我严肃认真的工作作风,逐步建立正确的生产观念、经济观念和全局观念。

根据我在实习中遇到得问题,我将在以后的学习过程中注意以下几点:

1、认真上好专业实验课,多在实践中锻炼自己。

2、写程序的过程中要考虑周到,严密。

3、在做设计的时候要有信心,有耐心,切勿浮躁。

课设心得体会范文第5篇

3、我沉得做课程设计同时也是对课本知识的巩固和加强,由于课本上的知识太多,平时课间的学习并不能很好的理解和运用各个元件的功能,而且考试内容有限,所以在这次课程设计过程中,我们了解了很多元件的功能,并且对于其在电路中的使用有了更多的认识。

平时看课本时,有时问题老是弄不懂,做完课程设计,那些问题就迎刃而解了。而且还可以记住很多东西。比如一些芯片的功能,平时看课本,这次看了,下次就忘了,通过动手实践让我们对各个元件映象深刻。认识来源于实践,实践是认识的动力和最终目的,实践是检验真理的唯一标准。所以这个期末测试之后的课程设计对我们的作用是非常大的。

4、在制作pcb时,发现细心耐心,恒心一定要有才能做好事情,首先是线的布局上既要美观又要实用和走线简单,兼顾到方方面面去考虑是很需要的,否则只是一纸空话。

5、在画好原理图后的做pcb版时,由于项目组成员对单面板的不熟悉,导致布线后元件出现在另一边,增加了布线难度,也产生很多不曾注意的问题,今后要牢记这个教训,使以后布线更加顺利。

6、经过两个星期的实习,过程曲折可谓一语难尽。在此期间我们也失落过,也曾一度热情高涨。从开始时满富盛激情到最后汗水背后的复杂心情,点点滴滴无不令我回味无长。

生活就是这样,汗水预示着结果也见证着收获。劳动是人类生存生活永恒不变的话题。通过实习,我才真正领略到“艰苦奋斗”这一词的真正含义,我才意识到老一辈电子设计为我们的社会付出。我想说,设计确实有些辛苦,但苦中也有乐,在如今单一的理论学习中,很少有机会能有实践的机会,但我们可以,而且设计也是一个团队的任务,一起的工作可以让我们有说有笑,相互帮助,配合默契,多少人间欢乐在这里洒下,大学里一年的相处还赶不上这十来天的合作,我感觉我和同学们之间的距离更加近了;我想说,确实很累,但当我们看到自己所做的成果时,心中也不免产生兴奋;正所谓“三百六十行,行行出状元”。我们同样可以为社会作出我们应该做的一切,这有什么不好?我们不断的反问自己。也许有人不喜欢这类的工作,也许有人认为设计的工作有些枯燥,但我们认为无论干什么,只要人生活的有意义就可。社会需要我们,我们也可以为社会而工作。既然如此,那还有什么必要失落呢?于是我们决定沿着自己的路,执着的走下去。

同时我认为我们的工作是一个团队的工作,团队需要个人,个人也离不开团队,必须发扬团结协作的精神。某个人的离群都可能导致导致整项工作的失败。实习中只有一个人知道原理是远远不够的,必须让每个人都知道,否则一个人的错误,就有可能导致整个工作失败。团结协作是我们实习成功的一项非常重要的保证。而这次实习也正好锻炼我们这一点,这也是非常宝贵的。

对我们而言,知识上的收获重要,精神上的丰收更加可喜。挫折是一份财富,经历是一份拥有。这次实习必将成为我人生旅途上一个非常美好的回忆!

通过这次课程设计使我懂得了理论与实际相结合是很重要的,只有理论知识是远远不够的,只有把所学的理论知识与实践相结合起来,从理论中得出结论,才能真正为社会服务,从而提高自己的实际动手能力和独立思考的能力。在设计的过程中遇到问题,可以说得是困难重重,这毕竟第一次做的,难免会遇到过各种各样的问题,同时在设计的过程中发现了自己的不足之处,对以前所学过的知识理解得不够深刻,掌握得不够牢固。

这次课程设计终于顺利完成了,在设计中遇到了很多专业知识问题,最后在老师的辛勤指导下,终于游逆而解。同时,在老师的身上我们学也到很多实用的知识,在次我们表示感谢!同时,对给过我帮助的所有同学和各位指导老师再次表示忠心的感谢!