61阅读

单片机实验心得体会-百度医生体验周 刷脸即有机会得iPhone6

发布时间:2017-12-28 所属栏目:大学生实践周心得体会

一 : 百度医生体验周 刷脸即有机会得iPhone6

  【61阅读IT新闻频道】刷脸就有机会得iPhone6?没错,从6月23日至6月30日用户参加百度医生体验周活动,通过百度医生完成预约医生就诊后返10元,参加刷脸测健康的游戏更有机会赢得iphone6大奖。目前在广东、福建、江西、湖北、安徽、陕西、湖南、江苏、甘肃等百度医生已经开通服务的城市用户,在手机百度搜索“挂号”就可以直接跳转到活动页面。

百度医生体验周 刷脸即有机会得iPhone6

  百度公司总裁张亚勤曾指出,百度医生所解决问题是最快速度找到身边最好医生,再利用百度的定位技术,搜索技术及机器学习精确匹配的技术,让每个人都可以找到最适合自己的医生。

  百度医生自年初上线以来一直致力于构建完整的医疗服务体系,大力拓展与医院合作,帮助用户“快速 便捷”预约到“身边”的医生,更对医师的服务态度及专业能力进行把关,为患者用户提供优良的权威医师选择,有效降低预约就诊的时间成本,缓解由医疗资源配 置不合理导致的“就医难”现状,方便患者“省时、省心、省力”的就医。

  考虑到同类手机客户端医生预约成功率不高的问题,“百度医生”具备一次可以同时预约三位医生的功能,因此相比以往的同类产品,百度医生的预约成功率也提升到3倍之多。

  患者用百度医生在线预约需提交姓名、身份证号和手机号,用户预约成功后按短信通知时间就可以去医院挂号就医了。同时患者还需提交简短的病情说明,最好再上传相关图片,帮助医生全面了解病情,更能增加预约医生成功率。

  现在通过百度医生APP预约医生并最终完成就诊的患者,在完成就诊三天内对医生做出点评,就可以得到百度医生提供的10元红包。借助这些来自就诊用户的真实评价,广大用户可以通过星级水平查看医生的总推荐度,进一步方便选择身边的优质医生资源,从而避免扎堆知名医院,不仅能节省个人的时间精力,更有助于缓解“就医难”的状况。

  百度医生目前已经在广东、福建、湖北、江西、陕西、安徽、湖南、江苏、甘肃九省开通预约医生服务,接入公立医院超过1000家,可预约医生接近四万名。

  百度医生正发挥自身在移动互联、搜索、大数据等方面的技术优势,积极开拓更多服务区域,为患者、医生、医院提供高效精准的闭环服务,有效的缓解了求医看病难、医疗资源不对等、医患关系紧张等社会问题。

二 : 单片机实验的心得和体会_we

成员帝王桀记

这是我第一次做单片机实验,说起来有一些紧张和新奇。在此之前我并没有接触过单片机,我本以为与之前的光学实验及其它实验差不多,可我进到实验室之后,我就改变了这个看法。

单片机实验要求的是1种思维的创新,而不是简单的重复老师所说的实验步骤。因此第一次实验,实验老师向我们讲解了CVAVR编译器的大体情况及使用方法和技巧,并简单的向我们示例——如何在CVAVR中编写一段程序。编完程序之后,知道我们如何使用AVRStudio达到将编好的程序输入到单片机中来使其运行。

之后老师让我们以组为单位合作编写一段程序,并使其运行。我们组想要编写1个跑马灯的程序。在第一次运行CVAVR时,我们组就遇到了1个麻烦,我们在建立1个新project文件那里出现了错误。在保存这个新project文件的时候,我们单击了Save,而不是Generate, Save andExit.因此它弹不出我们我们所需要的源程序。之后我们通过询问其他人解决了这个问题。在编程中,我们开始做的是两盏灯的交替闪烁,间隔时间是1000ms。在运用AVRStudio 的时候,我们又犯了1个错误。在我们打开编译好的工程文件时,开始调试,在最后1步点击Finish时,弹出一对话框,问我们是否更新,然后我们单击了Yes。这导致了仿真器无法下次使用。这是由于实验室中的仿真器是盗版的,无法进行更新。

经过我们的不断努力,我们终于实现了简单的跑马灯的运行,便是2个灯地交替闪烁。我们感到兴奋极了。但是我们并没有满足于当前,我们又编写了3个灯地交替闪烁,4个及多个。当我们1步步实现我们的目的时,我得到莫大成就感和自信。

在这次实验中,我体会到了合作的重要性。1个人也可能实现这一系列的过程,但是要花费很多精力和时间。群策群力,分工明确,可以使我们更好、更快地完成我们的工作。在此期间,你可以更好知道自己的不足和缺陷,来得到改正。还可以知道自己的优势所在,把握好自己的优势。

以上便是我做这次实验的心得体会。

------------------------------------------------------------------

成员风佑记

三月七号下午我们做了第一次单片机实验,虽然对单片机还不是很了解,但在学长的带领下我们基本上了解了单片机的的开发环境,进行了简单的编程。

李老师的一番话令我很受启发。实践出真知,这是永恒不变的真理。只有将理论付诸于实践并在实践中纠正发展理论,我们才能算是得到了真正的知识。

实验开始,学长直接从具体的编译细节讲起。没有太多的介绍和理论的空谈。就像老师说的没有必要把人民币的各个细节都了解的很清楚后才开始用钱一样。很多时候我们正是在那些细枝末节上浪费了太多不必要的时间和精力。通过1个简单的程序的讲解,我们就对CVAVR和AVR Studio 有了初步的掌握。

看着一闪一闪的LED,我们小组感到了单片机的神奇和奥秘,1种难以言表的激动涌上心头。我们就像看到了交通拥挤的路上因为有了我们设计的红绿灯而变得秩序井然一样欣慰。

接下来我们组稍微改了下程序,变为了同时控制4个灯,而且让它们依次亮起,只是延迟的时间比预定的要长一些。这也应该是十字路口的交通灯的原理吧。

总结起来,本次试验还是比较成功的。但对下一次的试验充满了期待,希望能做出更有用,更贴近生活的作品。我想也正是在这种不断的自我期望中,人类才能不断的总结经验,阔步向前。

------------------------------------------------------------------

成员吕记

我从上学已经做过很多实验,但是让我感兴趣的惟有单片机实验,因为从这样的实验中我才体会到自主的感觉,呵呵,这样说似乎在批判教育制度,不过假如所有的学科都让我们自主学习,社会会不会呈现另1种姿态?似乎又在批判……言归正传!

当我一开始接触这个实验时,老师让我们自主选择课题,让我好一阵兴奋。我当时认为我终于可以做自己发明的东西了,红外测距,小冰箱等等,但是当我到了实验室时发现困难接踵而来,比如不会写程序,动手能力不行等等,还好玩有组员,大家一起合作不尽快乐,而且让我学了好多东西,呵呵,团结就是力量啊!困难再大,有团队就什么都不怕!以后的工作还有很多,困难也会更多,不过为了共同的兴趣,大家一起奋战!加油!!!

------------------------------------------------------------------

成员aihome记

掌握单片机技术无疑可以使自己如虎添翼,为自己的电子小制作或者开发设计电子产品时打开方便的大门!而且现在学习单片机技术的热潮正在不断升温,可以说现在的单片机学习环境是最好的,经过一段时间的努力,采用单片机来开发设计电子产品已经可以在自己手上成为现实了。

我感觉学习单片机的第1步是看书,单片机是1个知识密集的东东,不看书是绝对不行的,我认为这本书对我帮助还是很大的,可以很系统地了解单片机,虽然一开始不容易看懂,不过确实很有用,很有嚼头,可以先大致看一遍,不消化的可以以后在试验实践中反复研究。

成员风佑记

三月二十一号下午我们做了第二次单片机实验,已经有了第一次实验的经验,这次我们做起来还是比较熟练了。

这次实验课的主要目的在于讨论并初步制定本学期单片机课程设计的题目。我们组成员都提出了很好的建议和想法,并且对各个项目的可行性进行了大致的分析。其中,高爱家提出做1个自动翻页机,用于复印等方面;吕和程想弄1个超声波或红外线测距,用于车辆的转弯时对盲区的测量。经过一番讨论,我们一致决定放弃自动翻页机,初定做后者。毕竟翻页机太狭隘了。而且我们对测距仪进行了深入的研究和拓展,确定该项目的名称为“车载超声波测距、测速警报仪”。

接下来的工作的目标清晰了很多。我们的分工也愈加的明确。对该项目的基本步骤和要求进行了分析。实验后同学们分头去查找资料,准备开工。

实验中我们在课程设计的目的上的观点达成一致。我们的作品要切合实际并且力求创新。我想这也是每次实验和每件事情都要遵循的原则。大而空的东西是我们所不提倡的。当然并不是要我们效仿前人,一成不变。

这次实验让我更好的理解了团队合作的重要性。1个人的观点和思想毕竟是有限的。将五根手指和在一块就是整个拳头。我们也希望在接下来的工作中能有更好的配合,进取,成效。

------------------------------------------------------------------

成员帝王桀记

这是我第二次来到单片机实验室,已经没有了第一次紧张和好奇,而是信心满满地来到这里,我相信我能做好单片机实验与我的同伴们。

这一次,老师并没有讲过多的东西,只是让我们自己去做练习和讨论一下这学期要做的学期项目。开始我们复习了一下上一次做的跑马灯的程序,由于上一次我们做的很认真,所以这个程序很容易就完成了。在此之间我们也熟悉了AVCVR及AVRStudio,达到了更熟悉地运用它们。接着我们又想做1个控制南北东西交通灯的程序,来解决冲突。但是可能是我们编程上出现了一定的问题,因此我们并没有在这次实验中实现它的运行。我们决定下一次一定要实现它。

接下来,我们小组展开了1个小小的讨论会,关于这学期的学期项目。我们对于我们该做什么产生了分歧。我和另一位同学提出了我们2个人的想法,我们想做1个超音速测距及预警系统。我们的想法来源于我们曾经看过一段交通事故发生的视频,这段视频描述交通事故发生的原因是:我们每1个人,都会有一定视觉盲区。当司机在转弯的时候时,他便会有一定视觉盲区。假如有一位路人正好处在他的视觉盲区时,那他极有可能碰到这位路人,造成事故。因此我们两在这段视频地启示下,想要设计这样1个系统,并能运用到实践中,减少交通事故地发生。但是组中另一人提出该系统已被别人设计出来,没有太多的空间来实现创新。他提出他的想法,他想要设计1个自动翻页机。现在我们去复印一本书时,往往需要人工来翻页,这样很麻烦,既费时又费人工,很不划算。如果设计1个自动的翻页机,即可实现你想要复印那一页就那一页,这样使用起来很方便。我们对于他的这个设想,假如在不考虑实际状况的条件下,表示很支持,但是考虑到预算以及技术和时间时,我们表示不支持。但就我个人感觉他的想法很好,就是不太实际啊。因此我们否定他的提议。最终我们定下了我们小组的学期项目的课题——超音速测距及预警系统。

在小组的合作过程中虽然会产生分歧,但我们不会刚愎自用,我们会认真地思考对方和自己的提议,选取1个最好的并一起对它之中的缺点进行改正。

以上便是我这一次的实验的心得和体会。

------------------------------------------------------------------

成员aihome记

当我走进实验室,一切的问号就会浮现在眼前,这次没有那么知识上的欠缺了,但呢,还是有点像打游击战一样,得慢慢的克服出现的问题,最后1个1个的把问号都用实验来回答了。

这次写1个中断函数,当设定的引脚接收到1个低平后,就会执行中断里的程序,按一下按键1,就灯亮1个,按一下按键2就灭1个,八只LED灯为周期,感觉这个程序特别的简单,但着手做出来却是有点难度,一来是接触中断引脚后,受干扰很大,有时一碰到一下按键或导线就会亮很多灯,二来是对中断程序的原理了解不是很全面,不知其对接电路的要求多严格。但是还是很成功的了解到了中断的用处,看到了按一下,灯就亮一下,特别的高兴。也想着,单片机能不能获取高电平可低电平这个信号,不用中断函数,如当PA0得到1个高电平,就会亮一次呢,这个有待深1步的了解。这个中断函数为我们单片机课程设计的课题超声波测距的接收中断做了个很好的开始,相信每一样,只要做了,都会它的用处,只是有时还没想到而已。

总之,本次实验做得不错,为以后更复杂的要求做好了点基石。我更有信心在单片机里做出一点事迹来。

------------------------------------------------------------------

成员帝王桀记

这是我第三次来到单片机实验室,似乎已经没有了前两次的新奇,但是我们已经设定好了我们的项目目标。此时需要我们的耐心和毅力。

我们今天的任务是解决好我们的硬件设施。我们其实已经在课下设计好了我们的硬件的排列方式和次序,但是我们遇到了1个很大问题。我们的线路板很密,但是我们的导线很粗,焊接起来很复杂。这也就是焊接的问题。

在还没有开始焊接的时候,我还很好奇怎样将其焊接到电路板上,懂得的同学告诉我说是用电烙铁焊接上的。那时我便希望我能焊硬件,可是当我拿到电烙铁的时候,开始焊时,我的手不知道怎么了,老是发抖,怎么焊也焊不好。我同组的同学看到我那笨笨的样子,都忍不住笑了起来,搞得我也不好意思在那傻笑。最后我组的同学就教我焊了起来,他讲了一些要领,比如电烙铁的拿法,烙丝的用法以及其他的一些注意的地方。经过我的努力,我终于焊好了1个二极管,看到这个二极管,我心里高兴死了。但是同时我也知道了焊接也不是那么简单的,虽然我经过了一段时间我也会焊接了,但是我似乎不宜做这一项工作,于是为了整个组,我决定不做这项工作了。因为我知道我在这边会添麻烦的。

组长樊聪聪在焊接的时候,发现线路板和导线之间是配套的,于是我们就在实验室里到处找比较细的导线。像鬼子进村一样,我们将实验室扫荡了一遍,也没有发现很多很细的导线。最后组长解决了这个问题,而且他焊地很好。但是为了不出错,我们的进程很慢,因为我们必须保证焊接地正确性。

这是我们真正开始我们的单片机项目,我在这里衷心地希望我们的项目能够顺利地做下去,也能按照我们的预期做出来。我相信我们一定会成功的,加油!加油!加油!

------------------------------------------------------------------

成员吕记

今晚我们一如既往的奋斗着单片机,程序和硬件已经大体初步完成,可是测试并没有成功,不过心理上的压力已经减了很多,毕竟它的样子已经完成,只是需要程序上优化一下。在这些困难的日子里多亏了我亲爱的组员,他们的努力和精益求精的精神真的感动了我,原来一直认为大学生早已失去那份爱学的精神,可是我在他们身上发现了那份纯真那份热情,他们在我心里是最可爱的人!!!

我希望我们的实验快点成功,希望之前的困难能换来今后的辉煌和成就,呵呵,前方的曙光已经在照耀着我们走向成功,亲爱的们加油!!!

------------------------------------------------------------------

成员帝王桀记

又到了单周的周一下午,我们到单片机实验室来做我们的第四次单片机实验。我们已经将我们的任务做好了计划。按照计划,这一星期我们应该开始做我们的程序了。

首先我们遇到的第1个问题就是如何实现单片机Atmage16的分频。我们知道单片机发出的信号是4兆赫兹的频率,而我们要发射超声波信号只需要40千赫兹,这是就需要分频。而我们对这个分频程序的编写很不熟悉。最后我们经过看书、上网、查询老师,解决了这个问题。当这个问题解决了之后,我们感到很高兴,那种感受是我说不出来的。

因为他们已经在课下已经写好了,剩下的工作便是向电脑输入这个程序,这便是我的工作。看到组长给我的三张密密麻麻的程序时,我并没有感到头痛。但是当我开始输入时,我便发现这是项很麻烦的事。由于这是程序的初稿,我得便看着有没有问题,在往里面输。我整整输了两个小时才把这个程序输完。但我点击测试时,天啊!60多个错误。看到这里我的头彻底地痛了起来。我把在一旁焊电路的组长叫了过来,我们俩都懵了,这可怎么办呀。我们1个1个的看些错误,有好多都是重复的错误。例如好多是由于没有定义而导致的问题,看到这些问题后,我们在程序的开头定义了这些字母。但我们在检测时,错误就减少了好多,看到这里我们突然有了希望,于是我们就这样慢慢的把这些问题解决了。于是我们终于可以大呼一口气了。

在这个过程中,我发现了看似简单的问题其实是不简单的,任何的事情在做的时候,都会产生问题,但面对问题时,不要抱怨,也不要放弃。静下心了慢慢的分析问题,找出解决问题的方法。

------------------------------------------------------------------

成员吕记

这星期一的单片机实验课又被节假日放掉了,我们顶着巨大压力在星期三的晚上相聚在一起又为了这个实验忙活了一晚上。开始的热情与好奇早已磨砺成压力和磨难,我们本以为根据我们自己的兴趣设计出令人兴奋的产物,可是发现这个过程真的很难也很漫长,或许只有经历过磨难的之后才会产生巨大的成就感吧。

或许我们产生这样的心理是由于我们自己的设计出了问题,也有可能是由于我们自己计划不够周全每件事情的都需要做出完美的计划才会高效率的完成。

不过再困难也要坚持,我们激情的讨论,热火朝天的做各种尝试。虽然今天的进度仍然没有太大的进展,不过心里充实了,毕竟努力了。

------------------------------------------------------------------

成员aihome记

怀着一颗激情的心再次踏进实验室,胸有成竹般一股椅子上,因为这次是焊接课程设计课题超声波测距刹车报警系统仪的电路了,很快自己的程序就能发挥作用了,慢慢的把程序中出现的问题加以解决,纸上谈兵终不如大干一场。

但是激情很快就少了不少,主要觉得焊接也是一件技术活,对比着板上的,就知道贫富差别就这样体现出来了,然而并不报怨,俗话说,台上三分钟,台下十年功;所以我们要付出更多的精力和苦力来焊接,做出自己最好的技术。在组长的精心焊接下,电路板很快就完工了。

到了写入程序了,开始时自己很肯定自己的程序没有错,但最后表决,自己的程序被取消,最后再继续对程序进行设计,使得进度慢了1大步。困难总是很刺刺的,感谢有了个团队,它就像是个磨石般,总能把这刺磨得平平的。

大家经过了对书本知识再进1步了解,一星期后,又推出1个程序来,由组长主要付责完成。这个程序可行性很大,最后又发现是硬件有了问题,总之,对问题逐个排除解决,虽有时抱怨了一些小事,但是呢,最终都能做到不怕做后悔做,就怕后悔没做,这不畏的精神为我们单片机课题进展过五关斩六将,当我们看到超声波接收器接收到信号时,那个激动,怎能用词语来形容,就像是雨过天晴般,不管如何,不管它的贡献多小,至少它是手把手的在我们小组内完成接近成功的开始。再多的困难,放弃之后都会被它绊倒,困难逃避不了,所以我们不抛弃,不放弃。

最后,又怀着一颗激情的心把实验做完了,感觉单片机很有魅力,特别的讨人喜欢和学习,虽只是做了1个实验课题,但从它那,早已让心中充满着更多的设想和创造,总感觉有了个爱好的团队即可以单片机为主导做出很多有用的东西来,让生活哪都能看到自动智能化设备,让生活更有序,更快捷,更安全。

三 : 女明星图片为例谈图片站建站心得体验

  去年电影网站严打之后,我就改行做图片网站,之后做了一个女明星图片的网站,建站之初本来是想做一个信息网的,但是之后感觉信息太庞大了,每天要时刻关注明星动态,明星绯闻信息,个人感觉有点做不来,就做了图片网站。虽然不是全部图片,但是关键词打造还是以图片为主,总结了几点经验:

  1、建站之前得分析明星网站该怎样分类,是按地区或者年份,更或者是行业分类,这个我个人思考了很久,因为想明星有大陆明星,港台明星,日本明星等等,我们所有要分析,那种类型分类适合用户搜索习惯,比如有些习惯按年份,看哪年出道,或者是什么行业,是影视行业,还是歌手行业呢?这个是首先得想清楚的,因为得把主次分清楚,之后做站才知道怎么排版,怎么根据栏目选择关键词,怎么做专题,怎么符合用户搜索等等。

  2、建站之后关键词选择,图片网站关键词选择,这个重要,因为图片网站真的很多,像图片搜索,就百度本身就有图片一词,我们不应该选择太热门,但也不要太死门的,我们可以在百度为例你想加什么的时候你可以输入那个词,比如影视明星,你就看看还有哪些词是搜索得比较多的,但是出名的站点又比较少的,这样的词你可以选择一些,还有图片一词应用广泛适当可以选择照片一词来做。等等之类自己多多注意

  3、最主要一个方面,你加图片的时候一定得加图片的说明文字,你图片上传了,假如缺少说明文字,那样效果折扣肯定很大的,这个不多说,相信大家都懂。

  4、多找一些图片网站做些友情链接,大家都是同行嘛。呵呵可惜我的服务器以前做电影网站的时候可能不受百度欢迎了,所以我的站做了收录更新不是很好,正在准备换服务器了,大家这个也是最关键的,看看放站之前你的服务器是否干净很重要哦。

  好了,先这么多了,这是自己的一点小经验,但是还有意见补充的非常希望大家多多交流,因为我也想学习更多的,我也是摸索阶段。欢迎大家找我做友情链接哦。

四 : c,,上机实验心得体会

c,,上机实验心得体会

C 语言上机实验心得在科技高度发展的今天,计算机在人们之中的作用越来越突出。而 C 语言作为一种计 算机的语言,学习它将有助于我们更好的了解计算机,与计算机进行交流,因此,我们一定 要学好 C 语言,这对我们以后的发展是十分重要的。说到这,上机实验当然就是一个必不可少的环节了,C 语言灵活、简洁的特点,只有通 过编程实践才能真正了解,真正说懂。为了更好地学习语法规定、掌握程序设计方法、提高 程序开发能力,我们必须实际上机、编写程序。通过实验我也发现了自己不少的问题, 这都是只看书上的程序而没有自己亲身上机编写 程序而无法得知的,假如我们只因看熟书上的程序就以为自己已经掌握了 C 语言那就大错 特错了。我主要存在以下的这些缺点1、 学习耐心与细心不足,如 scanf(“%d”,&n);中的“&”有时候会忘了。而在最后 输出时又错写成 printf(“%d”,&n);从而错误得输出了地址而不是我原来想要的答 案。2、 编程思想不够发散,看着题目有时想不出解答的方法,更不用说编写程序来解 题了。3、 4、 基本功不够,有些函数的表达不太精通,需要看书来核实,以致耗时较多。知识不够广,有些内容没有学好,不能要用到时及时反映出来,认识程度不够 深刻。5、 6、 有时候不够精简,有一点用处不大或者说没有也可以的文字存在。英语水平较差,对错误的地方虽然电脑有说,但由于是英文,理解上还是存在 一点问题。为了能更好地学好 C 语言,在今后学习中我要更多的动脑,综合运用所学,多看相关 东西,多上机练习,提高电脑水平,增强自学能力,把已会的东西掌握好。实验中我深刻意识到完成程序的编写,决不意味着万事大吉。认为万无一失的程序,实 际上机运行时可能会出现很多意想不到的问题。有时编译程序检测出一大堆错误, 有时程序 能够顺利运行, 但是运行结果并不是你预期中想要的。因为开发环境所提供的编译系统无法 发现程序逻辑错误, 或者是你原来所设计时的理论错误, 这就只能靠自己的上机经验来分析 判断错误的所在了。所以程序的调试是一个技巧性很强的工作, 它可能比编一个程序耗时更 多。由此可看出上机实践的重要性。通过本次 C 语言上机实验,我对这个介于人类与非人类之间的计算机编程语言有了一 定的体验。编程的时候有因为顺利编出程序而开心过、有因为做得比人家慢而郁闷过、有因 为不知从何入手而无奈过、有因为不知错出在哪而彷徨过??但随着练习的增多,我对 C 语言比以前熟了很多, 不再只是纸上谈兵, 我都有能力独立做出一些程序, 可能对于一些 “高 手来说这不算什么, 或者他们早就会了, 但我依然觉得很开心, 因为我跟我自己比是进步了。当然,我还得感谢老师的指导与帮助,如果没有老师和其他同学的指点,我可能对 C 语言还是一筹莫展, 在实验中遇到的大大少少的问题与所犯过的错误将是我以后的要加以注 意的地方与认真审查的部分,为我奠定坚固的基石。伴随着学习的深入,我发现高深的东西 还有很多很多,不懂不熟的知识还有很多,所以我不能停步,对 C 语言,我以后会更加努 力学习的。

c,,上机实验心得体会

惠州学院HUIZHOU UNIVERSITY班级:11 电信 2 姓名:莫金波学号:110703****012.12.28 我们专业的学生在专业老师的带领下进行了 c 语言设计基础教程的 实践学习。在这之前,我们已经对 c 语言这门课程学习了差不多一个 学期,对其有了一定的了解,但是也仅仅是停留在了解的范围,对里 面的好多东西还是很陌生的,在运用起来的时候还是感到很棘手,毕 竟,万事开头难嘛。由于时间的关系,我们的这次实践课程老师并没 有给我们详细的介绍, 只是给我们简单的介绍了几个比较重要的实际 操作。对于程序设计语言的学习目的,可以概括为学习语法规定、掌 握程序设计方法、提高程序开发能力,这些都必须通过充分的实际上 机操作才能完成。学习 c 程序设计语言除了课堂讲授以外, 必须保证有一定的上机 时间。因为学时所限,课程不能安排过多的统一上机实验,所以我们 学生都很有效地利用课程上机实验的机会, 尽快掌握用 c 语言开发程 序的能力,为今后的继续学习打下一个良好的基础。为此,我们结合 课堂讲授的内容和进度,安排了多周的上机实验。试验一:简单的 C 语言程序 操作体会:运算符的种类可以分为算术运算符、关系运算符和逻辑运算符。/(整除) 对 int 型、float 型和 double 型变量都适用%(取 余数) 运算符只适用开 int 型运算,不允许对浮点数)float 或 double) 操作,对浮点型数进行操作会引起编绎错误。还有注意 i++和++i 的区 别。如#include<stdio.h> void main( ) { int i=8,j=10; printf(“%d,%dn”,i++,j++); (8,10) } 若将 printf 语句改为printf(“%d,%dn”,++i,++j); (9,11)实验二:输入输出函数的使用 操作体会:正确使用各种格式转换符。如:#include <stdio.h> main() { char a,b; int c; scanf("%c%c%d",&a,&b,&c); printf("%c,%c,%dn",a,b,c); } 若输入 12 34,则结果为 1,2,34 试验三:选择结构程序设计 操作体会:switch 只是 if 的一种特殊形式,就是当判断的条件都是某个值的时候,switch 一定可以用 if 语句替换,但反过来不一定,只有满足一定条件才 可以,也就是拿来判断的这个东东必须是同一个东西,还要满足特定的类型 (string ,int 等)试验四:循环结构程序设计操作体会:1.for 循环结构:for(表达式 1;表达式 2;表达 3)语句;2. while 和 do while 循环结构 do while 语句至少执行一次 3. continue 语句与 break 语句:Continue 语句是用于循环语句中,当执行到该语 句时,重新跳到循环语句的开始位置继续执行程序。而 break 语句则 是跳出循环语句,执行循环体外的语句。4.循环的嵌套。试验五:函数 操作体会:1.库函数的正确调用2.函数的定义方法函数定义的一般形式:类型标识符 函数名(形式参数列表){数据声明部分语句}3.局部变量和全局变量。4.变量的存储类别(自动、静态、寄存器、外部),变量的作用域和生 存期。变量的存储类别,是指变量在内存中的存储方式。可以分为:自 动(auto)、静态(static)、寄存器(register)、外部(extern)四个类型。 自动(auto):这种类型的变量是动态分配存储空间的,数据存放 在动态存储区中。函数的形式参数和函数体内的形式参数都属于这种 类型。在函数调用时分配存储空间,当调用结束就释放存储空间。静态(static):这种类型的变量占用着存储空间不释放,在下次访 问该变量时,该变量的值是上次修改的值。寄存器(register):这种存储方式跟自动(auto)方式都是相同,当使 用完变量以后会自动释放空间。外部(extern):这种类型的变量就是全局变量.变量的作用域是指变量能够发挥作用的范围.变量的生存期是指变量在程序执行的过程中存在、 拥有分配的存储空 间的时期。试验六:一维数组二维数组和字符数组操作体会:1.一维数组的定义、初始化和引用(1)一维数组的定义方式类型标识符 数组名 [数组长度] 数组名命名规则和标识符命名规则一致。(2)一维数组的初始化方法①在定义数组时对数组初始化,如int array[8]={1,2,3,4,5,6,7,8} ②可以只给一部分元素赋值,如int array[8]={1,2,3,4} 即:int array[8]={1,2,3,4,0,0,0,0} ③若要数组里所有元素为 0,可以写成int array[8]={0} ④在对数组中全部元素赋初值时,可以不指定数组长度, 如int array[ ]={1,2,3,4,5}与 int array[5]={1,2,3,4,5}意义相同。(3)一维数组的引用:数组名 [下标] 2.多维数组的定义、初始化和引用 3.字符数组的定义、初始化和引用 char 数组名[数组长度]试验七:指针 操作体会:1.指针与指针变量的概念,指针与地址运算符。(1)指针与指针变量的概念。 C语言中的指针是指一个变量的地址,存放这个地址的变量就是指针 变量。指针变量跟普通变量占用一定的存储空间,不同的是存储在指 针变量存储空间中的不是普通数据而是一个地址。当指针得到某一地址时,称指针指向该存储区域。可以通过指 针对它所指向的内存区域中的数据进行处理。指针所指向的内存区域 中的数据称为指针的目标,指针目标用指针名前面加*符号表示。(2)指针与地址运算符。有关的运算符有两个①&:取地址运算符,例如:&a表示变量a的地址。②*:指针运算符,例如:*p表示p所指向的变量。2.变量、数组、字符串、函数、结构体的指针以及指向变量、 数组、字符串、函数、结构体的指针变量。通过指针引用以上各类型 数据。(1)指针的声明形式数据类型 * 指针名 (2)数组与指针。C语言中的指针可以指向数组元素,同时可以通过指针引 用数组,通过指针引用数组能提高程序的质量。定义指向数组元素的指针变量形式与定义指向变量的指针变量 相同,如int a[10]; int *p; C语言中与指针 p=&a[0];或p= a; p的初值为&a[0],则①p+i和a+i就是a[i]的地址。②*(p+i)或*(a+i)是p+i或a+i所指向的数组元素a[i]。③指向指针的变量也可以带下标,如p[i]和*(p+i)等价。(3)字符串与指针。(4)指向函数的指针。数据类型 (*指针名)( ) 这里的数据类型是指函数的返回类型。3.用指针作函数参数。用指针作为函数参数可以实现“传址”方式的参数传递, 使得主调用函数得到多个在被调用函数处理过程中所修改了的值。4.返回指针值的指针函数。函数的返回值可以是指针,这种函数的定义形式如下数据类型 *函数名(参数表) 这里数据类型是指返回指针的数据类型。5.指针数组,指向指针的指针,main函数的命令行参数。(1)指针数组。指针数组是一个数组,数组里面每个元素都是一个指针变 量,其定义形式如下数据类型 *数组名[数组长度] 与二维字符数组相比指针数组用于处理多个字符串更方便。如 果用二维字符数组来处理多个字符串时,数组的列数是相同的,但并 不能保证每个字符串的长度都相同,这样就会造成存储空间的浪费, 而用字符型的指针数组处理多个字符串就不存在这样的问题, 因为并 不需要规定字符串的长度。试验八:结构体 操作体会:法。(1)结构体 ①结构体的定义一般形式如下struct 结构名 { 成员列表 }; struct是结构定义的保留字,其后是结构名由用户命名,命名原 则与变量名命名规则相同。在结构名下的花括号中括起来的是此结构 体的成员项,每个成员项由数据类型和成员名组成。整个结构体定义 以分号作为结束符,注意这分号不能省略。②定义结构体类型变量。a.先声明结构体类型再定义变量名如:struct student stu1,stu2;其 中student是已经定义了的结构体类型,stu1和stu2是该类型的变量。结构体和共用体类型数据的定义方法和引用方 b.在声明类型同时定义变量的形式struct 结构体名 { 成员列表 }变量列表; c.直接定义结构体类型变量的形式struct { 成员列表 }变量列表; ③引用结构体变量的一般形式:结构变量名.成员名 或 指向结 构的指针->成员名 在引用结构类型变量时应注意以下几点:不能对结构体变量作 为一个整体进行操作;如果结构体成员本身也是一个结构体变量,在 操作时要用一级一级的找到最低一级的成员对其进行操作; 结构体变 量的成员可以像普通变量一样进行各种运算; 可以引用结构体变量的 地址,也可以引用结构体变量的成员的地址。④可以对结构体变量进行初始化,一般形式如下:Struct 结构 名 变量名{初始化数据}; (2)共用体 共用体变量定义的一般形式如下union 共用体名 { 成员列表 }变量列表; 使用共用体时要注意以下几点:共用体类型数据在同一个内存 可以用来存放几种不同类型的成员,但在每一时刻只能存放其中一 种;共用体变量中起作用的成员是最后一次存放的成员,再存入新成 员原有的成员就失去作用;共用体地址和其各成员地址相同;不能在 定义共用体是为其初始化;共用体类型可以出现在结构体定义中,结 构体类型也可以出现在共用体定义中。心得体会总结1.学习 c 语言不能停留在学习它的语法规则,而是利用学到的知识 编写 c 语言程序,解决实际问题。即把 c 语言作为工具,描述解决实 际问题的步骤,由计算机帮助我们解题。自己编好程序上机调试运行 时,可能有很多你想不到的情况发生,通过解决这些问题,可以逐步 提高自己对 c 语言的理解和程序开发能力。2.熟悉程序开发环境、学习计算机系统的操作方法 一个 c 语言程序从编辑、编译、连接到运行,都要在一定的外部操作 环境下才能进行。通过上机实验,熟练地掌握 c 语言开发环境,为以 后真正编写计算机程序解决实际问题打下基础。同时,在今后遇到其 它开发环境时就会触类旁通,很快掌握新系统的使用。3.学习上机调试程序 完成程序的编写,决不意味着万事大吉。你认为万无一失的程序,实 际上机运行时可能不断出现麻烦。程序的调试是一个技巧性很强的工 作,对于初学者来说,尽快掌握程序调试方法是非常重要的。有时候 一个消耗你几个小时时间的小小错误,调试高手一眼就看出错误所 在。通过这次为数不多的几周计算机实践学习, 我们了解了一些关于 c 语言的知识,理解巩固了我们 c 语言的理论知识,着对我们将来到 社会工作将会有莫大的帮助。同时它让我知道,只要你努力,任何东 西都不会太难。

c,,上机实验心得体会

北京联合大学 信息学院“面向对象程序设计”课 程上机实验报告题目:JAVA 上机实验心得体会姓名(学号) 专 业计算机科学与技术 2012 年 12 月 19 日 1.0.0编 制 时 间版 本:指 导 教 师北京联合大学-信息学院编制 实验 1熟悉 Java 运行环境实验目的:熟悉 JDK 环境和操作,编写简单的 Java 应用程序。心得体会:在该实验中,我碰到的问题是 JDK 环境变量的设置。解决方法是通 过查阅资料书和网上搜索相关解决方法及同学的有力帮助。实验 2 选择语句练习 实验目的:正确理解并能够熟练操作和使用 Java 的 if 和 switch 语句。心得体会:我个人感觉有了 C 的编程基础,if 和 switch 这些简单的流程控制语 句运用起来比较轻松,实现简单的逻辑运算也跟 C 非常相近,所以上手比较快。但是在这次程序中,首次涉及到了 java 程序的数据输入,与 C 区别很大。但经 过老师的讲解和查阅相关资料, 基本明白相关的使用规则和注意事项。在第二个 小题中还涉及到了 charAt()方法,经查阅 JDK 文档,知道 charAt()方法返回一 个位于提供给它的参数索引处的字符,如str.chatAt(0)检索 str 中的第一个字 符,str.charAt(str.length()-1)检索最后一个字符。我运用此方法解决了比较字符串间 首字母异同的问题。实验 3 迭代练习 实验目的:正确理解并能够熟练操作和使用 Java 的 for、while、do..while 语句。心得体会在该实验中, 我学会了为具体操作选择最合适的循环语句及 for、 while、 do..while 语句的相互转换使用。最重要的是,明白了 JAVA 程序中,定义方法中 的局部变量时一定要赋初始值, 否则编译不能通过会报错;但类中的成员变量则 不一定需要。如我在实验 3main()方法定义的整型局部变量 command,当不初始 化则不能通过编译。原因是局部变量不能有 JVM 自动赋给相关的默认值,而成 员变量可以。实验 4 方法的实现练习 实验目的:声明、定义和调用方法,理解实参和形参的含义。心得体会:在该实验中,我掌握如何写方法、调用方法,并掌握如何向方法中传 递信息和从方法中返回信息。方法声明为非 void (构造方法除外) 则需要用 return 语句返回一个相应类型的返回值。实验 5 简单类型数组练习 实验目的:学习创建简单类型的数组,并能用循环语句处理数组。心得体会:通过该实验,我学会了如何让建立简单类型的数组,并掌握了将数组 作为方法的传入参数和返回值。在该实验中,遇到的问题主要是如何将一个连续 的多位数在存入数组时, 每个数组元素只对应改多位数的一个组成数。我解决的 方法如下for(i=0; i<6; i++){ n[i] = aa%10; //aa%10 的结果是 aa 的末尾数,将多位数 aa 的末尾数赋给 a[i] aa = (int)aa/10; //对 aa/10 的结果强制取整,去掉了 aa 的末尾数,以便对下一位数 的存数。} 实验 6 类和对象的练习 实验目的:正确理解并能够熟练操作和使用 Java 的类、对象和方法。心得体会:我学会了如何建立类和对象,分别输出其中包含的成员值;以及分别 引用各方法,实现不同的操作。在该程序中,我进一步了解了如何定义成员方法 和成员属性以及相关方法的调用。特别是我掌握了利用构造方法对成员属性赋初 始值。值得一提的是,我在相应的程序中运用了 toUpperCase 方法,经查看 JDK 文档知道该方法的作用是返回一个所有字母都被转化为大写字母字符串。实验 7 类的实现实验目的:使用统一建模语言(UML)设计类,并实现类。心得体会:通过该实验,我学会了使用 public、private 控制访问及其访问权限; 体会了 static 关键字的作用。并对 JAVA 程序中的类及面向对象的编程思想有了 更进一步的了解。实验 8 继承的练习实验目的:正确理解并能够熟练操作和使用 Java 类的继承关系。心得体会理解了继承的含义, 并使用 UML 符号设计了继承结构; 掌握了用 Java 实现继承关系; 学会了区分方法重写和方法重载; 并深入理解了 abstract 和 final 修饰符的作用。用 final 标记的变量只能赋值一次,标记的类不可被继承,方法 不可被子类重写。用关键字 extends 表继承,例如子类 A 继承了父类 B 则可写作 class A extends B。在这些概念性知识点弄明白后,在解决实际问题时,碰到了输 入年月日计算车龄的问题,我的解决办法如下public int age(int year) { int age; int a1 = (int)(time/10000); //(int)time/10000 是将 8 位数表示的生产年月日 强制转换成四位数表示的年 int a2 = (int)(year/10000); //将当前年月日转换为年 age = a2 - a1 +1;//计算车龄 return age; } 实验 9抽象类、接口练习实验目的:综合运用接口,类的知识。心得体会:在该实验中,我掌握了接口定义,以及类实现接口。接口用 interface 关键字定义,在接口中,可以用 abstract 是修饰方法的,也可以去掉 abstract,编 译时会默认为抽象方法。类实现接口可用 implements 表示,例如 class Circle implements Shape 表示,Circle 类实现了接口 Shape。实验 10 多态练习 实验目的:理解并使用面向对象的特征:多态。心得体会:在实验 10 中,我基本掌握了多态的句柄、多态方法的定义。在改程 序中,我遇到了要求随机产生一个图形的难题,通过网上查阅资料,利用系统函 数 Math.random()经一系列的运算处理来随机产生一个图形解决了该难题,具体 的程序如下public static void main(String[] args) { Circle cir = new Circle(9); Square squ = new Square(4); Shape shape; int r; r = (int)(Math.random()*2);//用 Math.random()方法产生 0.00 到 1.00 的随机数,乘 2 取整后非 0 即 1 if(r == 0) shape = cir; else shape = squ; shape.testShape(shape); //同一条语句产生不同的执行结果, 多态 性。} 实验 11 多线程处理 实验目的:理解线程的基本概念。心得体会:通过该实验,基本能够理解线程的运行了。学会调用 Thread 类中的 系统函数以及掌握这些函数的作用是难点, setName()是设置线程名字,start() 是开辟一条新线程, Thread.currentThread().getName()是获得正在执行的线程的名 字,Thread.currentThread().getId()是 thread 类中返回该线程的标识符的方法, Thread.currentThread().getPriority()是 thread 类中返回线程的优先级的方法。实验 12 I/O 及文件处理 实验目的:掌握并使用 Java 中的 I/O 和文件。心得体会:对于该实验,由于比较难,只是基本掌握了文件读写的方法和规则, 还有待 17 周 JAVA 实训时继续攻坚克难。结语:在这一系列的实验中,我基本掌握了 Java 的编程规则、知识要点和一些 小技巧,特别是对面向对象的编程思想和风格有了进一步的认识和体会。同时, 因正确的编出程序而带来的成就感让我对编程更加感兴趣。对于在这些实验过 程中,请教老师、同学互助、查阅资料等基本的学习方式,使我更加领悟到集 体和团队的力量,也树立了敢于攻坚的信心。

c,,上机实验心得体会

青 岛 理 工 大 学课程实验报告课程名称 姓名 实验名称 实 验 目 的 及 要 求计算机程序设计 (C)班级 软件 111 学号 20110****实验日期 实验成绩2011.04.21赵亚东实验一 C 程序的运行环境和运行 C 程序的方法1.熟悉 Visual C++6.0 环境。2.了解建立控制台应用程序的基本步骤。3.初步了解 Visual C++6.0 的环境设置。4.初步学会简单的程序调试方法。5.学会编写简单的 C 程序。6.初步熟悉 C 语言操输入 scanf 函数、输出 printf 函数的使用。7.掌握 C 语言基本数据类型,熟悉变量的定义及变量的初始化和赋 值操作。8.掌握不同的类型数据之间赋值的规律。9.掌握 C 语言的算术运算符的使用以及算术表达式的使用;掌握自 加自减运算符的特点及使用。实 验 环 境Visual 6.0++Windows 7实 验 内 容1.按照上述步骤,创建一个基于控制台的应用程序,该程序项目中只包含一 个源程序文件。功能为求两个整数的和,数据从键盘输入。2.创建一个基于控制台的应用程序,求一元二次方程的根。使得当输入三个 实数 a,b,c(满足 b*b-4*a*c>0) ,能够求出方程 a*x*x+b*x+c=0 的两个实根, 并显示在屏幕上。分析提示通过键盘输入方程系数 a,b,c 的值,而后根据 求根公式计算并输出它的两个根。1 算 法 描 述 及 实 验 步 骤 调 试 过 程 及 实 验 结 果 总 结实验 一 1、先定义两个变量 a,b。2、键入 a 和 b。3、输出两个数的和。实验 二 1、定义并输入 a b c。2、判断 d=b^2-4ac 的大小。3、如果小于零则 无 解 , 等 于 零 有 一 个 解 , x1=(-b)/(2*a) 。4 、 大 于 零 有 两 个 解 。x1=(-b+sqrt(d))/(2*a);x2=(-b-sqrt(d))/(2*a);5、输出结果。12掌握了掌握 C 语言基本数据类型, 变量的定义及变量的初始化和赋值 操作,不同的类型数据之间赋值的规律。了解了 C 语言的算术运算符的使用以及算术表达式的使用, 自加自减 运算符的特点及使用。实验一 1 #include<stdio.h> void main() { int a,b,s; scanf("%d%d",&a,&b); printf("s=%dn",a+b); } 实验一 2 #include<stdio.h> #include<math.h> void main() { double a,b,c,d,x1,x2; printf("a b c :"); scanf("%lf%lf%lf",&a,&b,&c); d=b*b-4*a*c; if (d<0) printf("无解n");2附 录 else if (d==0) { x1=(-b)/(2*a); printf("一个解:x=%gn",x1); } else { x1=(-b+sqrt(d))/(2*a); x2=(-b-sqrt(d))/(2*a); printf("两个解:x1=%g,x2=%gn",x1,x2); } }3 青 岛 理 工 大 学课程实验报告课程名 称 姓名 实验名 称 实 验 目 的 及 要 求 实 验 环 境 实 验 内 容计算机程序设计 (C)班级软件 111实验日期 实验成绩2012.4.28赵亚东学号 20110****实验二 选择结构程序设计 1.掌握赋值语句的使用方法。2.掌握各种类型数据的输入输出方法,能正确使用各种格式转换符。3.能正确使用关系运算符及表达式、逻辑运算符及表达式。4.熟练掌握 if 语句,学会使用 if-else 语句设计双分支和多分支结构 程序。5.熟练掌握 switch 语句的特点,学会使用 switch 语句设计多分支结 构程序。Visual 6.0++Windows 73.编写程序,根据输入的学生成绩,给出相应的等级。90 分以上的 等级为 A,60 分以下的等级为 E,其余每 10 分为一个等级。要求分 别用 if 语句和 switch 语句实现。4.使用 switch 语句编写简单的四则运算程序。实验 3 用 if 语句时:先输入学生成绩,判断等级,然后直接输出等 级代号 A,B,C,D,E。用 switch 语句时:先输入学生成绩,除以十,取整。根据数 值 6 到 9 判断等级。然后输出等级代号 A,B,C,D,E。实验 4 先定义字符变量 c 和数值变量 a,b。然后判断字符变量为何种 运算符号。最后输出相应结果。算 法 描 述 及 实 验 步4 骤调 试 过 程 及 实 验 结 果 总 结34掌握了赋值语句的使用方法,各种类型数据的输入输出方法,能 正确使用各种格式转换符、关系运算符及表达式、逻辑运算符及表达 式。掌握了 if 语句,学会使用 if-else 语句设计双分支和多分支结 构程序;掌握了 switch 语句的特点,学会使用 switch 语句设计多分 支结构程序 实验二 3 用 if 语句#include<stdio.h> void main() { int a; printf("请输入学生成绩:n"); scanf("%d",&a); if (a>90) printf("该学生成绩等级是 else if (a>80) printf("该学生成绩等级是 else if (a>70) printf("该学生成绩等级是 else if (a>60) printf("该学生成绩等级是 else printf("该学生成绩等级是 } 用 switch 语句#include<stdio.h>5附 录An"); Bn"); Cn"); Dn"); En"); void main() { int a,m; printf("请输入学生成绩:n"); scanf("%d",&a); m=a/10; switch(m) { case 9:printf("该学生的成绩等级是:An"); case 8:printf("该学生的成绩等级是:Bn"); case 7:printf("该学生的成绩等级是:Cn"); case 6:printf("该学生的成绩等级是:Dn"); default:printf("该学生的成绩等级是:En"); } }实验二4#include<stdio.h> void main() { float a,b; char c; scanf("%f%c%f",&a,&c,&b); switch(c) { case '+':printf("%fn",a+b);break; case '-':printf("%fn",a-b);break; case '*':printf("%fn",a*b);break; case '/':printf("%fn",a/b);break; } }6 青 岛 理 工 大 学课程实验报告课程 名称 姓名 实验 名称 实 验 目 的 及 要 求 实 验 环 境计算机程序设 计 (C)班级 学号赵亚东实验日 期 实验成 20110**** 绩 实验三 循环结构程序设计 软件 1112012-5-21.熟练掌握 while、do-while、for 语句的特点,学会设计循环结构程序。2.掌握 break 语句以及 continue 语句的特点及使用范围。3.学会编写循环嵌套程序。3.结合程序掌握一些简单的算法。4.进一步学习调试程序。Visual 6.0++Windows 74. 编程练习。求ex ? 1? x ?实 验 内 容 算 法 描 述 及 实 验 步 骤 调 试提示:第 n 项 un=xn/n!, 第 n+1 项 un+1= xn+1/(n+1)! 及 un+1 = un(x/(n+1)) 5.编程练习。有 1、2、3、4 四个数字,能组成多少个互不相同且无重复数字的三位数?分 别是多少?x2 x n 的部分和。直到最后一项的值小于 1.0e-4。? ... ? ? ... 2! n!实验四 1、调用<math,h>函数。2、定义 x s i j。输入 x。3、直到 n 大于 10000。4、 i=i*(x/(j+1)); s=s+i; 5、输出 s 实验五 1、定义 i j k fre=0。2、利用三重 for 语句。for(i=1;i<=4;i++) for(j=1;j<=4;j++);for(k=1;k<=4;k++)。3、if(i!=k&&i!=j&&k!=j),输出 i*100+j*10+k。4、最后输出("总数为:%dn",fre)3、7 过 程 及 实 验 结 果 总 结4、(对实验结果进行分析,问题回答,实验心得体会及改进意见)附 录实验三 3 #include<stdio.h> #include<math.h> void main() { int x; double s,i,j; scanf("%d",&x); s=1,j=0; for(i=1;i>=pow(10,-4);j++) { i=i*(x/(j+1)); s=s+i; } printf("s=%fn",s); } 实验三 4 #include <stdio.h> void main() { int i,j,k,fre=0; for(i=1;i<=4;i++) for(j=1;j<=4;j++) for(k=1;k<=4;k++) { if(i!=k&&i!=j&&k!=j) { printf("%5d",i*100+j*10+k); fre=fre+1; } } printf("n"); printf("总数为:%dn",fre);8 }青 岛 理 工 大 学课程实验报告课程 名称 姓名 实验 名称 实 验 目 的 及 要 求 实 验 环 境 实 验 内 容 算 法 描 述 及 实 验 步 骤 调 试 过 程 及 实 验计算机程序设计 (C)赵亚东实验日 期 实验成 学号 20110**** 绩 实验四 数组程序设计 班级 软件 1112012-5-21.掌握一维数组、二维数组的定义、引用及其存储方式。2.掌握字符数组、字符串以及字符串数组的含义及区别。3.掌握常用字符函数及字符串函数的使用。4.掌握常用数组的排序、查找等算法。Visual C++6.0Windows XP2. 编写程序,定义一个含有 30 个元素的 int 类型数组.依次给数组元素赋奇数 1、 3、5、7……;然后按每行十个数顺序输出,最后再按每行十个数逆序输出。3.已知数组中的值在 0-9 的范围内,统计每个整数的个数。实验 2 1、定义一个一维数组 a[30],i,j=1。2、利用 for 循环输出, a[i+1]=a[i]+2;printf("%6d",a[i])。3、输出数组,定义初始值 1 或者 59。确定顺、逆序。实验 3 1、定义一个一维随机数组含 20 个数。2、输出该一维数组。3、利用 for 循环 int m,n,k; for(m=0;m<=9;m++) for(n=0;n<20;n++) if(m==a[n])。4、输出每个数各有几个。2、9 结 果3、总 结掌握常用字符函数及字符串函数的使用,掌握常用数组的排 序、查找等算法。实验 2 #include<stdio.h> void main() { int a[30],i,j=1; for(i=1;i<31;i++) { a[1]=1; a[i+1]=a[i]+2; printf("%6d",a[i]); if(i%10==0) printf("n"); } printf("n"); for(i=1;i<31;i++) {10附 录 a[1]=59; a[i+1]=a[i]-2; printf("%6d",a[i]); if(i%10==0) printf("n"); } }实验 4 #include<stdio.h> #include<stdlib.h> void main() { int i,a[20]; for(i=0;i<20;i++) { a[i]=rand()%10; printf("%3d",a[i]); } printf("n"); int m,n,k; for(m=0;m<=9;m++) { k=0; for(n=0;n<20;n++) if(m==a[n]) k++; printf("%d 有%d 个n",m,k); } }11 青 岛 理 工 大 学课程实验报告课程名称 姓名 实验名称 实 验 目 的 及 要 求 实 验 环 境计算机程序设计 (C)班级软件 111实验日期 实验成绩2012-5-7赵亚东学号 20110**** 实验五 函数1.掌握函数定义的各个要素。如函数返回值的类型、形式参数与实际参数等。2.掌握变量的作用域和生存期的概念。3.掌握局部变量与全局变量的区别、静态局部变量和局部变量的区别、静态 全局变量和全局变量的区别;理解外部变量和外部函数的概念。4.理解数组作为函数的参数的含义。5.理解函数的嵌套调用。6.掌握函数的递归调用。Visual C++6.0window7实 验 内 容 算 法 描 述 及 实3.求 100~200 之间的素数。要求每行 10 个数输出; 定义子函数 isprime, 函数原型为 int isprime( int n); 3 2 2 3 4. f(x)=(2x +3x -4x+1)/(10x +3),q(x)=3f(x) +2f(x)2+f(x),编程实现输入 x 的值, 设 计算输出 q(x)的值,要求有 q(x)和 f(x)的定义。5.求菲波那契数列 1,1,2,3,5,8,13,21,34……的前 20 项。要求:使用递归;每行输出 5 个数。实验 3 1、定义函数 isprime(int n)。2、当(n%i==0)时,返回 0.否则 返回 1。3、定义 main 函数。确定范围 100~200. 4、当 isprime 函数成 立,每五个一行输出。实验 4 1、定义函数 f= (2*pow(x,3)+3*pow(x,2)-4*x+1)/(10*pow(x,2)+3); q= 3*pow(f(x),3)+2*pow(f(x),2)+f(x);。2、定义 main 函数。3、输出 q12 验 步 骤 调 试 过 程 及 实 验 结 果函数。实验 5 1、定义 fib 函数。前两项为 1.2、利用递归函。Fib(x)= fib(x-1)+fib(x-2);。3、每五项一行输出。3、4、5、总 结1,掌握了函数定义的各个要素。2,如函数返回值的类型、形式参数与实际参数等. 3,需要进一步掌握函数。附 录实验 3 #include<stdio.h> int isprime(int n) { int i; for(i=2;i<n;i++) { if(n%i==0) return 0; } return 1; } main() { int n,m=0; for(n=100;n<=200;n++) { if(isprime(n)) { printf("%5d",n); m++; } if(m%10==0) printf("n");13 } printf("n"); }实验 4 #include<stdio.h> #include<math.h> double f(float x) { double c; c=(2*pow(x,3)+3*pow(x,2)-4*x+1)/(10*pow(x,2)+3); return c; } double q(float x) { double c; c=3*pow(f(x),3)+2*pow(f(x),2)+f(x); return c; } main() { float x; double y; scanf("%f",&x); y=q(x); printf("%lfn",y); } 实验 5 #include<stdio.h> int fib(int x) { if(x==1||x==2) return 1; else return fib(x-1)+fib(x-2); } main() { int n,s; for(n=1;n<=20;n++) {14 s=fib(n); printf("%-5d",s); if(n%5==0) printf("n"); } printf("%n"); }青 岛 理 工 大 学课程实验报告课程名称 姓名 实验名称 实 验 目 的 及 要 求 实 验 环 境 实 验 内 容 算法描 述及实 验 步 骤计算机程序设计 (C)班级软件 111实验日期 实验成绩2012-5-16赵亚东学号 20110**** 实验六 指针1.理解指针的定义,学会指针变量的初始化以及指针可以参与的运 算。2.掌握指针和一维数组的关系。3.理解指针和二维数组的关系、理解行指针(或数组指针)的概念。4.理解指针数组和数组指针的区别。5.理解指针和函数的关系以及指针函数和函数指针的含义。6.了解指针的指针(即二级指针) 。Visual C++6.0window76.编写程序。读入三个浮点数,将整数部分和小数部分分别输出。要求使用指针作形参。7.编写一个函数,返回数组元素中最大值的地址,并在主函数中输 出该元素。实验 6 1、定义函数,指针做形参。2、定义 a 为整数部分,*p-a 既 是小数部分。然后输出。3、主函数中,键入三个浮点型数。并使用 fu 函数。实验 71、定义 dizhi 函数,指针做形参。返回地址。2、定义主函数, 以及一个数组。3、调用 dizhi 函数,输出数组和最大值。15 调 试 过 程 及 实 验 结 果 总 结 附 录6、7、1.运用指针时应时刻注意指针指向的改变,避免逻辑上的错误,加大 编程时的难度。2.通过指针变量可以提高程序质量,编写程序方便灵 活,可以实现多个值的返回 实验 6 #include<stdio.h> void fu(float *p) { int a; a=(int)*p; printf("整数部分是%d 小数部分是%fn",a,*p-a); } main() { float a[3]; int i; for(i=0;i<3;i++) { scanf("%f",&a[i]); fu(&a[i]); } } 实验 7 #include<stdio.h> int dizhi(int *p) { int s; p=&s; printf("地址是:%dn",p); return p; } main() { int i,s,a[10],*p; for(i=0;i<10;i++) { a[i]=rand()%10;16 printf("%d",a[i]);} printf("n"); s=a[0]; for(i=0;i<10;i++) { if(s<a[i+1]) s=a[i]; }printf("最大数是;%dn",s); dizhi(&s); }青 岛 理 工 大 学课程实验报告课程名称 姓名 实验名称 实 验 目 的 及 要 求 实 验 环 境 实 验 内 容 算法描 述及实 验 步 骤计算机程序设计 (C)班级软件 111实验日期 实验成绩2012-5-16赵亚东学号 20110**** 指针1.理解指针的定义,学会指针变量的初始化以及指针可以参与的运 算。2.掌握指针和一维数组的关系。3.理解指针和二维数组的关系、理解行指针(或数组指针)的概念。4.理解指针数组和数组指针的区别。5.理解指针和函数的关系以及指针函数和函数指针的含义。6.了解指针的指针(即二级指针) 。Visual C++6.0window76.编写程序。读入三个浮点数,将整数部分和小数部分分别输出。要求使用指针作形参。7.编写一个函数,返回数组元素中最大值的地址,并在主函数中输 出该元素。实验 6 1、定义函数,指针做形参。2、定义 a 为整数部分,*p-a 既 是小数部分。然后输出。3、主函数中,键入三个浮点型数。并使用 fu 函数。实验 71、定义 dizhi 函数,指针做形参。返回地址。2、定义主函数, 以及一个数组。3、调用 dizhi 函数,输出数组和最大值。17 调 试 过 程 及 实 验 结 果 总 结 附 录6、7、1.运用指针时应时刻注意指针指向的改变,避免逻辑上的错误,加大 编程时的难度。2.通过指针变量可以提高程序质量,编写程序方便灵 活,可以实现多个值的返回 实验 6 #include<stdio.h> void fu(float *p) { int a; a=(int)*p; printf("整数部分是%d 小数部分是%fn",a,*p-a); } main() { float a[3]; int i; for(i=0;i<3;i++) { scanf("%f",&a[i]); fu(&a[i]); } } 实验 7 #include<stdio.h> int dizhi(int *p) { int s; p=&s; printf("地址是:%dn",p); return p; } main() { int i,s,a[10],*p; for(i=0;i<10;i++) { a[i]=rand()%10;18 printf("%d",a[i]);} printf("n"); s=a[0]; for(i=0;i<10;i++) { if(s<a[i+1]) s=a[i]; }printf("最大数是;%dn",s); dizhi(&s); }青 岛 理 工 大 学课程实验报告课程名称 姓名计算机程序设计 (C)班级 学号软件 111 2011**** 9 链表实验日期 实验成绩2011-5-30赵亚东实验名称实验七实 验 目 的 及 要 求1.掌握结构体类型变量的定义和使用。2.掌握结构体类型数组的概念和应用。3.掌握链表的概念,初步学会对链表进行操作。VC++6.0 实 验 环 境1.编写程序。有 5 个学生,每个学生的数据包括学号、姓名、3 门课的成绩, 从键盘输入 5 个学生数据,要求输出 3 门课总平均成绩,以及最高分的学生的 数据(包括学号、姓名、3 门课的成绩、平均分数) 。19 实 验 内 容2.建立一个学生链表,每个结点包括:学号、姓名、性别、年龄。输入一个 年龄,如果链表中的结点所包含的年龄等于此年龄,则将此结点删去。第一题 定义一个结构体变量,包含学号、姓名、3 门课的成绩 算 法 描 述 及 实 验 步 骤定义一个可以输入学生信息的函数。定义一个函数可以求平均分并返回。输出 3 门课总平均成绩,以及最高分的学生的数据(包括学号、姓名、3 门课 的成绩、平均分数) 。第二题 定义一个结构体变量,包括学号、姓名、性别、年龄和指向下一个节点的指针。创建链表,输入学生信息。定义一个可以输出学生信息函数。定义一个可以删除节点的函数,当输入一个年龄时,如果链表中的结点所包含的年龄等于此年龄,则将此结点删去。调 试 过 程 及 实 验 结 果120 2总 结熟练地掌握共用体; 在写程序时可以熟练地使用链表进行数据操作。附 录/////第一题代码如下#include<stdio.h> #define N 5 void input(struct student stud[]); double av1(struct student stud[]); double av2(struct student stud[]); double av3(struct student stud[]); int max(struct student stud[]); struct student { int no; char name[10]; double degree1; double degree2; double degree3; }; void main() { struct student stud[N]; double aver[3],avg;int a,i; input(stud);21 aver[0]=av1(stud); aver[1]=av2(stud); aver[2]=av3(stud); a=max(stud); avg=(stud[a].degree1+stud[a].degree2+stud[a].degree3)/3.0; for(i=0;i<3;i++) { printf("第%d 门平均分:t",i+1); printf("%.2lfn",aver[i]); } printf("分数最高的学生信息如下:n"); printf("%dt%st%.2lf %.2lf %.2lf %.2lfn",stud[a].no,stud[a].name, stud[a].degree1,stud[a].degree2,stud[a].degree3,avg); } void input(struct student stud[])//输入 N 个学生的信息 { int i; printf("学生信息输入格式:学号、姓名 、分开输入三门分数n"); for(i=0;i<N;i++) { printf("输入第%d 个学生信息:n",i+1); scanf("%d%s%lf%lf%lf",&stud[i].no,stud[i].name,&stud[i].degree1,&stu d[i].degree2,&stud[i].degree3); } } double av1(struct student stud[])//计算第一门课的平均分 { int i;double a=0.0,b; for(i=0;i<N;i++) a+=stud[i].degree1; b=a/N; return b; } double av2(struct student stud[])//计算第二门课的平均分 { int i;double a=0.0,b; for(i=0;i<N;i++) a+=stud[i].degree2; b=a/N; return b; } double av3(struct student stud[])//计算第三门课的平均分 { int i;double a=0.0,b;22 for(i=0;i<N;i++) a+=stud[i].degree3; b=a/N; return b; } int max(struct student stud[])//查找分数最大的学生下标 { double m=0,a[N]; int i,k=0; for(i=0;i<N;i++) { a[i]=stud[i].degree1+stud[i].degree2+stud[i].degree3; if(m<a[i]) { m=a[i]; k=i; } } return k; } /// 第二题代码如下#include<stdio.h> #include<malloc.h> #define N 3 typedef struct stud { int no; char name[10]; char sex[10]; int age; struct stud *next; }Stud; Stud *create(); void show(Stud *head); void delet(Stud *head); Stud *getnode(Stud *head,int n); void shan(Stud *head); void main()//主函数 { Stud *head; int n; do23 { printf("1-创建链表,2-显示链表,3-删除相同年龄,0-退出操作n"); scanf("%d",&n); switch(n) { case 1:head=create();break; case 2:show(head);break; case 3:delet(head);break; default:break; } }while(n!=0); } Stud *create()//创建链表储存学生信息 { Stud *p,*head,*r; int i; head=(Stud *)malloc(sizeof(Stud)); r=head; printf("输入学生信息格式:学号、姓名、性别、年龄n"); for(i=1;i<=N;i++) { p=(Stud *)malloc(sizeof(Stud)); printf("输入第%d 个学生信息n",i); scanf("%d%s%s%d",&p->no,p->name,p->sex,&p->age); r->next=p; r=p; } r->next=NULL; return head; } void show(Stud *head)//显示学生信息 { int i=0; Stud *p=head->next; printf("学生信息如下:n"); while(p!=NULL) { printf("第%d 个学生信息:nn",i+1); printf("%dt%st%st%dn",p->no,p->name,p->sex,p->age); p=p->next; i++; } } Stud *getnode(Stud *head,int n)24 { int i=1;Stud *p=head; if(n<1) return NULL; while(p!=NULL&&i<n) { p=p->next; i++; } if(p!=NULL) return p; else return NULL; } void delet(Stud *head)//删除与输入年龄相同的学生信息 { int year,i=1,k=1; Stud *p=head->next,*q; printf("输入要删除的年龄n"); scanf("%d",&year); while(p!=NULL) { if(year==p->age) { if(k==1) { head->next=p->next; free(p); p=head; } else { q=getnode(head,k); q->next=p->next; free(p); p=q; } } else k++; p=p->next; } printf("相同年龄已删除n"); }25 青 岛 理 工 大 学课程实验报告课程名称 姓名 实验名称 实 验 目 的 及 要 求计算机程序设计 (C)班级 学号软件 111 2011**** 9实验日期 实验成绩2012-6-8赵亚东实验八 综合程序设计 1.掌握文件以及缓冲文件系统、文件指针的概念。2.学会使用文件打开、关闭、读、写等文件操作函数。3.通过一个综合程序,使学生对综合运用 C 语言程序设计语言有初步的认识。VC++6.0 实 验 环 境26 实 验 内 容一、学生管理系统 1、学生基本信息的管理,包括添加、修改、删除、查找、全删等 操作; 2、课程数据的管理,包括添加、修改、删除、查找、全删等操作; 3、学习成绩数据的管理,包括添加、修改、删除、查找、全删等 操作; 4、学生成绩查询系统,包括按学号、按课程号、按班号统计学生 的成绩。算 法 描 述 及 实 验 步 骤首先自定义学生信息、课程数据、学生成绩的结构体,定义这些变量 的链表, 一边对这些数据进行操作。一、在写主函数时,先把数据从文件中提取到链表中,操作后再写入 文件中进行保存。二、在学生信息管理系统中,添加,即是判断是否存在相同学号,没 有通过链表进行添加操作,有的话进行提示 ,修改时只改对应学号 的信息, 学号不需要修改, 但需要同时修改成绩管理系统中的对应 学 号的学生姓名,在进行删除操作时,先查找是否有和需要修改的学号 相对应的学生信息,有的话则按照链表删除操作进行删除,查找时判 断是否有需要查找的学号,若有,输出对应的学生信息,进行全删操 作时,和链表的释放操作差不多,但是要注意的是不能释放头结点的 地址,它是一个全局变量,释放后不能进行其他操作。在课程数据、学习成绩数据的处理时,采取同样的处理方式; 三、学生成绩查询系统分按学号、按课程号、按班号三种方式来统计 学生的成绩。27 调 试 过 程 及 实 验 结 果28 总 结可以熟练地进行文件操作,打开文件,写文件,向文件中添加内容, 以及文件的读取等操作进行编写小型程序。Student 文件 附 录 #include<stdio.h> #include<stdlib.h> #include<malloc.h> #include<string.h> #include"school.h" void addstudent(); void displaystudent(); void alterstudent(); void changename(int no,char name[]); void findstudent(); void deletstudent();29 void deleallstu(); extern StudNode *studenthead; extern ScoreNode *scorehead; void student() { int x; do{ printf("1-添加,2-修改,3-显示,4-查找,5-删除,6-全删,0-返回n"); scanf("%d",&x); switch(x) { case 1:addstudent();break; case 2:alterstudent();break; case 3:displaystudent();break; case 4:findstudent();break; case 5:deletstudent();break; case 6:deleallstu();break; case 0:break; default :printf("选择错误n");break; } }while(x!=0); } void addstudent()//添加一个学生信息 { StudNode *p=studenthead->next,*s,*q=studenthead; int no;StudType st; printf("输入添加的学生学号n"); scanf("%d",&no); while(p!=NULL && p->data.no!=no) { q=p; p=p->next; } if(p==NULL)//学号不重复 { s=(StudNode *)malloc(sizeof(StudNode)); printf("输入学生信息格式:姓名、年龄、班号n"); scanf("%s%d%s",st.name,&st.age,st.classno); st.no=no; s->data=st; s->next=q->next; q->next=s; } else30 printf("学号重复n"); } void displaystudent() { StudNode *p=studenthead->next; if(p!=NULL) { printf("学生信息如下:n"); printf("学号 姓名 年龄 班号n"); while(p!=NULL) { printf("%3d%8s%5d%8sn",p->data.no,p->data.name,p->data.age,p->dat a.classno); p=p->next; } printf("学生信息输出完毕n"); } else printf("无学生信息n"); } void alterstudent() //修改一个学生的信息,但是学号不改变,同时改变成绩管理文件的姓 名 { StudNode *p=studenthead->next; int no;StudType st; if(p!=NULL) { printf("输入要修改的学生学号n"); scanf("%d",&no); while(p!=NULL&& p->data.no!=no) p=p->next; if(p!=NULL) { printf("输入修改学生信息,格式:姓名、年龄、班号n"); scanf("%s%d%s",st.name,&st.age,st.classno); st.no=no; p->data=st; changename(st.no,st.name); } else printf("未查到要修改信息的学生n"); } }31 void changename(int no,char name[])//修改学生成绩管理系统中的名字 { ScoreNode *p2=scorehead->next; while(p2!=NULL&&p2->data.no!=no) p2=p2->next; if(p2!=NULL) strcpy(p2->data.name,name); else printf("在成绩管理系统中未发现要修改的学生资料n"); } void findstudent()//根据学号查找学生信息并输出 { StudNode *p=studenthead; int no; printf("输入要查找的学生学号n"); scanf("%d",&no); while(p!=NULL &&p->data.no!=no) p=p->next; if(p!=NULL) { printf("要查找的学生信息如下:n"); printf("%3d%8s%5d%8sn",p->data.no,p->data.name,p->data.age,p->dat a.classno); } else printf("未找到该学号的学生信息n"); } void deletstudent()//根据学号删除学生信息 { StudNode *p=studenthead,*q; int no; printf("输入要删除的学生学号n"); scanf("%d",&no); while(p!=NULL &&p->data.no!=no) { q=p; p=p->next; } if(p!=NULL) { q->next=p->next; free(p); printf("学号对应学生信息已删除n"); }32 else printf("要删除的学生信息不存在n"); } void deleallstu()//删除全部学生信息 { StudNode *p=studenthead->next,*q; if(studenthead->next!=NULL) { q=p->next; while(q!=NULL) { free(p); p=q; q=q->next; } free(p); studenthead->next=NULL; printf("文件已全删n"); } else printf("不存在学生信息n"); } Score 文件 #include<stdio.h> #include<malloc.h> #include"school.h" #define N 100 void addscore(); void showscore(); void alterscore(); void findscore(); void delescore(); void deleallsc(); extern CourseNode *coursehead; extern ScoreNode *scorehead; void score() { int x; do{ printf("1-添加,2-修改,3-显示,4-查找,5-删除,6-全删,0-返回n"); scanf("%d",&x); switch(x)33 { case 1:addscore();break; case 2:alterscore();break; case 3:showscore();break; case 4:findscore();break; case 5:delescore();break; case 6:deleallsc();break; case 0:break; default:printf("选择错误n");break; } }while(x!=0); } void addscore()//添加一个分数记录 { ScoreNode *p2=scorehead->next,*r2=scorehead,*s2,*t[N]; ScoreType sc;int n=0,i; printf("输入添加学生学号n"); scanf("%d",&sc.no); while(p2!=NULL) { if(p2->data.no==sc.no) { t[n]=p2; n++; } r2=p2; p2=p2->next; } if(n==0)//学号不重复,可以添加 { s2=(ScoreNode *)malloc(sizeof(ScoreNode)); printf("输入要添加的学生信息格式:名字、课程号、课程名、分 数n"); scanf("%s%d%s%lf",sc.name,&sc.cno,sc.cname,&sc.degree); s2->data=sc; s2->next=r2->next; r2->next=s2; } else if(n>0)//学号重复要考虑课程号是否重复,不重复就添加 { printf("输入想要添加的课程号n"); scanf("%d",&sc.cno); for(i=0;i<n;i++) if(t[i]->data.cno==sc.cno)34 { printf("该学生的此课程分数信息已存在n"); return; } if(i==n) { s2=(ScoreNode *)malloc(sizeof(ScoreNode)); printf("输入要添加的学生信息格式:名字、课程名、分数n"); scanf("%s%s%lf",sc.name,sc.cname,&sc.degree); s2->data=sc; s2->next=r2->next; r2->next=s2; printf("学生信息已添加n"); } } } void alterscore()//修改分数信息 { ScoreNode *p2=scorehead->next; ScoreType sc; printf("输入想要修改的学生学号和课程号n"); scanf("%d%d",&sc.no,&sc.cno); if(p2!=NULL) { while(p2!=NULL) { if(p2->data.no==sc.no) { if(p2->data.cno==sc.cno) { printf("输入学生信息格式:姓名、课程名、分数n"); scanf("%s%s%lf",sc.name,sc.cname,&sc.degree); p2->data=sc; printf("该生的该课程成绩已修改n"); return; } } p2=p2->next; } printf("不存在需要修改的学生信息n"); } else printf("不存在任何可以修改的信息n"); }35 void showscore()//显示分数信息 { ScoreNode *p2=scorehead->next; ScoreType sc; if(p2==NULL) {printf("无学生分数信息n"); return; } printf("学号 姓名 课程号 课程名t 分数n"); while(p2!=NULL) { sc=p2->data; printf("%4d%8s%5d%10st%gn",sc.no,sc.name,sc.cno,sc.cname,sc.degr ee); p2=p2->next; } printf("分数文件显示完成n"); } void findscore()//查找一个学生成绩信息 { ScoreNode *p2=scorehead->next; ScoreType sc; printf("输入需要查找的学生成绩学号和课程号n"); scanf("%d%d",&sc.no,&sc.cno); if(p2!=NULL) { while(p2!=NULL) { if(p2->data.no==sc.no) if(p2->data.cno==sc.cno) {sc=p2->data; printf("学号 姓名 课程号 课程名t 分数n"); printf("%4d%8s%5d%10st%gn",sc.no,sc.name,sc.cno,sc.cname,sc.degr ee); return; } p2=p2->next; } printf("未查到该学生的该课程成绩n"); } else printf("无任何学生成绩信息n"); }36 void delescore()//删除一个学生信息 { ScoreNode *p2=scorehead->next,*q2=scorehead; int no,cno; if(p2!=NULL) { printf("输入要删除的学生成绩信息的学号、课程号n"); scanf("%d%d",&no,&cno); while(p2!=NULL) { if(p2->data.no==no) if(p2->data.cno==cno) {q2->next=p2->next; free(p2); printf("该生成绩信息已删除n"); return; } q2=p2; p2=p2->next; } printf("文件中无要删除的学生成绩信息n"); } else printf("无任何成绩信息可删除n"); } void deleallsc()//全删 { ScoreNode *p2=scorehead->next,*q2; if(scorehead->next!=NULL) { q2=p2->next; while(q2!=NULL) {free(p2); p2=q2; q2=q2->next; } free(p2); scorehead->next=NULL; printf("文件已全删n"); } else printf("文件为空 n"); }37

c,,上机实验心得体会

重庆邮电大学移通学院语言集中上机实验 实验报告 C 语言集中上机实验报告学 学 班 专生号级业:周辉 0111****12 0111**** 通信工程重庆邮电大学移通学院 2011 年 6 月 重庆邮电大学移通学院目 录第一章 1.1 1.2 1.3 循 环................................................................................................................................. 3 实验目的......................................................................................................................... 3 实验要求......................................................................................................................... 3 实验基本内容................................................................................................................. 3 1.3.1 题目一................................................................................................................. 3 1.3.2 题目二................................................................................................................. 4 第二章 数 组................................................................................................................................. 6 2.1 实验目的......................................................................................................................... 6 2.2 实验要求......................................................................................................................... 6 2.3 实验基本内容.................................................................................................................. 6 第三章 函 数................................................................................................................................. 9 3.1 实验目的......................................................................................................................... 9 3.2 实验要求......................................................................................................................... 9 3.3 实验基本内容................................................................................................................. 9 第四章 指 针............................................................................................................................... 12 4.1 实验目的....................................................................................................................... 12 4.2 实验要求....................................................................................................................... 12 4.3 实验基本内容............................................................................................................... 12 第五章 综合练习......................................................................................................................... 14 5.1 实验目的....................................................................................................................... 14 5.2 实验要求....................................................................................................................... 14 5.3 实验基本内容............................................................................................................... 14 集中上机总结................................................................................................................................. 15 重庆邮电大学移通学院第一章 循 环1.1 实验目的(1)掌握一维数组和二维数组的定义、赋值和输入输出的方法 (2)掌握字符数组和字符串函数的使用; (3)掌握与数组有关的算法。实验要求 1.2 实验要求(1) 在报告中记录建立、保存 C 程序实习过程。(2) 完成典型题目,分析遇到的困难和实验中的收获。1.3 1.3 实验基本内容 1.3.1 题目一打印出以下图案* * * * * * * * * * * * * * * * * * * * * * * * * (1) 题目分析首先,题目要求是要打印出一个 7 行 (2) 程序#include <stdio.h> void main() { int i,j; for(i=1;i<=4;i++) { for(j=1;j<=8-i;j++) printf(" "); for(j=1;j<=2*i-1;j++) printf("*"); printf("n"); }3 重庆邮电大学移通学院for(i=3;i>=1;i--) { for(j=1;j<=8-i;j++) printf(" "); for(j=1;j<=2*i-1;j++) printf("*"); printf("n"); } } (3) 运行结果:1.3.2 题目二编写程序实现输入整数 n,输出如下所示由数字组成的菱形。(图中 n=5) 1 1 2 1 1 2 3 2 1 1 2 3 4 3 2 1 1 2 3 4 5 4 3 2 1 1 2 3 4 3 2 1 1 2 3 2 1 1 2 1 1(1) 题目分析(2) 程序#include<stdio.h> #define N 5 void main() { int i,j;4 重庆邮电大学移通学院for(i=1;i<=N;i++) { for(j=1;j<=i;j++) printf("%d ",j); for(j=i-1;j>=1;j--) printf("%d ",j); printf("n"); } for(i=N-1;i>=1;i--) { for(j=1;j<=i;j++) printf("%d ",j); for(j=i-1;j>=1;j--) printf("%d ",j); printf("n"); } } (3) 运行结果:5 重庆邮电大学移通学院第二章 数 组2.1 实验目的(1) 掌握一维数组和二维数组的定义、赋值和输入输出的方法 (2) 掌握字符数组和字符串函数的使用; (3) 掌握与数组有关的算法。实验要求 2.2 实验要求(1) 在报告中记录建立、保存 C 程序实习过程。(2) 完成典型题目,分析遇到的困难和实验中的收获。2.3实验基本内容2.3.1 程序 #include<stdio.h> void main() { char a[5]={'*','*','*','*','*'}; int d,b,c; char s=' '; for(d=0;d<5;d++) { printf("n"); for(b=0;b<d;b++) printf("%c",s); for(c=0;c<5;c++) printf("%c",a[c]); } printf("n"); } 截图:6 重庆邮电大学移通学院2.3.21.2 输入 4×4 的数组,编写程序实现(1)求出对角线上各元素的和; (2)求出对角线上行、列下标均为偶数的各元素的积; (3)找出对角线上其值最大的元素和它在数组中的位置。程序#include<stdio.h> void main() { int a[4][4]={{1,2,3,4},{5,6,7,8},{9,10,11,12},{13,14,15,16}}; int i,j,m,n,Sum,Product,Max; Sum=Max=m=n=0; Product=1; for(i=0;i<4;i++) for(j=0;j<4;j++) { if(i==j) { Sum+=a[i][j]; if((i+1)%2==0&&(j+1)%2==0) Product*=a[i][j]; if(a[i][j]>Max) { Max=a[i][j]; m=i+1; n=j+1; } } } for(i=0;i<4;i++) for(j=0;j<4;j++) {7 重庆邮电大学移通学院printf(" %d ",a[i][j]); if(j==3) printf("n"); } printf("n 和%dn 积%dn 最大元素a[%d][%d]=%dn",Sum,Product,m,n,Max); } 截图:8 重庆邮电大学移通学院第三章 函 数3.1 实验目的(1) (2) (3) (4) (5) 掌握定义函数的方法; 掌握函数实参与形参的对应关系以及“值传递”的方式; 掌握函数的嵌套调用和递归调用的方法; 掌握全局变量和局部变量动态变量、静态变量的概念和使用方法。学习对多文件程序的编译和运行。实验要求 3.2 实验要求(1) 在报告中记录建立、保存 C 程序实习过程。(2) 完成典型题目,分析遇到的困难和实验中的收获。3.3 3.3 实验基本内容3.3.1 程序 #include<stdio.h> void main() { int a[10],n,i=0; printf("请输入一个数:"); scanf("%d",&n); while(n!=0) { a[i++]=n%10; n/=10; } for(i--;i>=0;i--) printf("%d ",a[i]); printf("n"); } 截图:9 重庆邮电大学移通学院3.3.2 程序 #include<stdio.h> void main() { void c(long int m); long int n; printf("请输入一个任意整数n"); scanf("%ld",&n); printf("用递归法将其转换成字符串是:n"); if(n<0) {putchar('-'); n*=-1; } c(n); printf("n"); } void c(long int m) { long int x; x=m/10; if(x!=0) c(x); putchar(m%10+'0'); }截图:10 重庆邮电大学移通学院11 重庆邮电大学移通学院第四章 指 针4.1 实验目的(1) (2) (3) (4) 掌握指针的概念,掌握定义和使用指针变量的方法。掌握使用数组的指针和指向数组的指针变量。掌握使用字符串的指针和指向字符串的指针变量。学习对多文件程序的编译和运行。实验要求 4.2 实验要求(1) 在报告中记录建立、保存 C 程序实习过程。(2) 完成典型题目,分析遇到的困难和实验中的收获。4.3 4.3 实验基本内容4.3.1 程序 #include<stdio.h> void main() { printf("请输入月份:"); int n; char *name[14]={"illegal month","illegal month","January","February","March","April","May","June","July","August","September","Octo ber","November","December"}; scanf("%d",&n); printf("%sn",name[n+1]); } 截图:12 重庆邮电大学移通学院4.3.2 程序#include<stdio.h> #include<stdlib.h> #include<string.h> int str(char * str1,char * str2,int n,int m) { char *p; p=&str1[m-1]; if(m>n) { str2[0]=''; return 1; } do { *str2++=*p++; } while(*p!=''); *str2=''; return 1; } int main() { char a[9]="abcdefg",b[80]; str(a,b,8,3); printf("%sn",b); system("pause"); return 0; } 截图:13 重庆邮电大学移通学院第五章 综合练习5.1 实验目的(1) (2) (3) (4) 掌握指针的概念,掌握定义和使用指针变量的方法。掌握使用数组的指针和指向数组的指针变量。掌握使用字符串的指针和指向字符串的指针变量。学习对多文件程序的编译和运行。实验要求 5.2 实验要求(1) 在报告中记录建立、保存 C 程序实习过程。(2) 完成典型题目,分析遇到的困难和实验中的收获。5.3 5.3 实验基本内容14 重庆邮电大学移通学院集中上机总结通过此次 C 语言上机实验,我学习到了一些平日在课堂上体会不到的计算 机知识,运用了平日积累的知识编写了循环、指针、数组、函数等综合性的 C 语言程序,以下是我对此次集中上机实验的一个总结。在编译一个程序时,应做到耐心与细心。输入完程序后,先保存后运行(有 些系统不保存就无法运行) 。对于运行过程出现错误,首先从错误提示中找出错 误并改正。最常遇到的错误提示有:提示中带有“missing”,即丢失的意思,提示 中带有“undefined”,即没定义的意思,等等。程序在编程完后会有各种各样的错 误,所以要从头到尾检查一遍程序,从格式上、逻辑上找错误,然后改正。改错 时,最好改一处,用 F9 查一下。且在编译程序时,我发现主函数和自定义函数 是独立的两部分,空类型的函数没有返回值 ,它只是执行了一些操作等等。通过这次为数不多的几天计算机实践学习,我们了解了一些关于 C 语言的 知识,理解巩固了我们 C 语言的理论知识,着对我们将来到社会工作将会有莫 大的帮助。同时它让我知道,只要你努力,任何东西都不会太难。

本文标题:单片机实验心得体会-百度医生体验周 刷脸即有机会得iPhone6
本文地址: http://www.61k.com/1122925.html

61阅读| 精彩专题| 最新文章| 热门文章| 苏ICP备13036349号-1