欢迎来到冰点文库! | 帮助中心 分享价值,成长自我!
冰点文库
全部分类
  • 临时分类>
  • IT计算机>
  • 经管营销>
  • 医药卫生>
  • 自然科学>
  • 农林牧渔>
  • 人文社科>
  • 工程科技>
  • PPT模板>
  • 求职职场>
  • 解决方案>
  • 总结汇报>
  • ImageVerifierCode 换一换
    首页 冰点文库 > 资源分类 > DOCX文档下载
    分享到微信 分享到微博 分享到QQ空间

    实习报告书013236张晋鹏.docx

    • 资源ID:15542501       资源大小:485.06KB        全文页数:20页
    • 资源格式: DOCX        下载积分:5金币
    快捷下载 游客一键下载
    账号登录下载
    微信登录下载
    三方登录下载: 微信开放平台登录 QQ登录
    二维码
    微信扫一扫登录
    下载资源需要5金币
    邮箱/手机:
    温馨提示:
    快捷下载时,用户名和密码都是您填写的邮箱或者手机号,方便查询和重复下载(系统自动生成)。
    如填写123,账号就是123,密码也是123。
    支付方式: 支付宝    微信支付   
    验证码:   换一换

    加入VIP,免费下载
     
    账号:
    密码:
    验证码:   换一换
      忘记密码?
        
    友情提示
    2、PDF文件下载后,可能会被浏览器默认打开,此种情况可以点击浏览器菜单,保存网页到桌面,就可以正常下载了。
    3、本站不支持迅雷下载,请使用电脑自带的IE浏览器,或者360浏览器、谷歌浏览器下载即可。
    4、本站资源下载后的文档和图纸-无水印,预览文档经过压缩,下载后原文更清晰。
    5、试题试卷类文档,如果标题没有明确说明有答案则都视为没有答案,请知晓。

    实习报告书013236张晋鹏.docx

    1、实习报告书013236张晋鹏信息工程学院数据结构与C语言综合训练报告 (20132014学年第 二学期)报告题目:集合操作 姓 名:张晋鹏专 业:信息管理与信息系统年级班级:信管132指导教师:王娟勤 毛锐完成日期:2014年7月21日集合操作【摘要】用单链表模拟有序集合,实现集合中插入一个元素,删除一个元素,集合的交、并、差运算。【关键词】单链表、插入、删除、交集、并集、差集一、综合训练的目的和要求 (一)、目的 1、巩固和加深自己对C语言和数据结构基本知识的理解和应用; 2、掌握C语言编程的技巧和程序调试的基本技能; 3、利用C语言进行简单的软件设计; 4、掌握书写程序设计的能力; 5、提

    2、高运用C语言、数据结构解决实际问题的能力。 (二)、要求1、分析综合训练题目的要求;2 、写出详细设计说明;3、 编写程序代码,调试程序使其能正确运行;4、 设计完成的软件要便于操作和使用;5、 设计完成后提交课程设计报告。二、综合训练任务用单链表模拟有序集合,实现集合中插入一个元素,删除一个元素,集合的交、并、差运算。1、用单链表存放集合中的元素,链表中的元素按大小存放;2、实现集合加入一个元素删除一个元素的元素操作;3、实现集合的交、并、差集合操作;要求:完成任务描述中的各种功能,自己可以适当增加必要的功能。三、总体设计程序设计组成框图:流程图四、详细设计说明具体思想:把编好的程序根据老师

    3、的要求,以菜单的形式表示出来。/-线性表的单链表存贮结构 typedef struct LNode ElemType data; struct LNode *next; LNode,*LinkList;(一)、主函数用switch语句实现菜单操作int main() int x; while(1) system(cls); printf(|*|n); printf(| 菜单 |n); printf(| 1.单集合操作 |n); printf(| 2.双集合操作 |n); printf(| 3.退出 |n); printf(| 请输入要进行的操作: |n); printf(|*|n); scan

    4、f(%d,&x); switch(x) case 1: func1(); break; case 2: func2(); break; case 3: return 0; default: printf(输入错误!请重新输入!n); break; (二)、分模块操作、1、模块一:对单链表进行操作(1)、创建单链表int length; int m,y; ElemType temp,i; LinkList L; L=InitLinkList(); system(cls); printf(请输入L链表的长度:); scanf(%d,&length); printf(请输入L链表的元素:); for

    5、(m=1; mdata加到Lc中,相反,则把pb-data复制到Lc中,最后复制余下的接点。int jiaoji(LinkList La,LinkList Lb,LinkList Lc)如果集合La 中的数等于Lb中的数,则把pa-data加到Lc中,否则接点往下移动int chajilist(LinkList La,LinkList Lb,LinkList Lc);五、软件使用说明1、先进入主菜单(如图1)(图1)2、选择你要进行的操作,然后按要求输入数据,进行操作,例如:如果选择1,是进行单集合操作,会出现如下结果,建立一个单链表表示集合,接着出现另一个菜单(如图2)。(图二)3、选择菜单

    6、后可以实现对单链表的插入、删除操作如图三、四(图三)(图四)4、操作完成后可以选择退出如图五(图五)5、如果在主菜单中选择2,会出现如图六所示的画面(图六)6、建立好集合a、b如图七所示(图七)7、选择要进行的操作1,运行结果如图八所示(图八)8、按菜单提示即可完成所需要的操作。六、调试与测试1、调试方法用Debug直接进行追踪。查找错误,一步一步分析数据,追踪错误,查找错误,更改错误。2、测试结果与分析讨论(1)、在测试过程中发现要对集合进行排序才能更好地实现该程序的功能。为此给该程序添加了排序函数。添加排序函数后的运行结果如图所示: (2)、根据集合的定义可知集合中是不会出现相同的元素的,

    7、为此该程序中调用了void DelRepeated(LinkList p);这个删除相同元素的函数。调用之后的运行结果如下图所示:3.测试中遇到的问题及解决措施(1)只是建立了链表,可以进行链表的基本操作,但还没排序,平常的链表问题都不用排序,这又是棘手的问题,好在我们学了关于顺序表的六种排序法,这个就不是难题了。最终我用的函数是void SelectSort(LinkList head)/对单链表排序 LinkList p,q,small;/简单选择排序 int temp; for(p=head-next; p-next!=NULL; p=p-next) small=p; for(q=p-n

    8、ext; q; q=q-next) if(q-datadata) small=q; if(small!=p) temp=p-data; p-data=small-data; small-data=temp; (2)刚开始时,链表里出现相同的数,违背了集合的概念,因此运行结果是错误的。就用了一个函数void DelSameItem(LinkList L),用来删除链表里相同的数据项。(3)根据老师的要求,运行时得以菜单的形式显示,因此程序写完后还得改,把所写的程序分模块集中到一起,用void func1()和void func2()把程序分为了两个模块。用switch(case)语句switch

    9、(x) case 1: func1(); break; case 2: func2(); break; case 3: return 0; default: printf(输入错误!请重新输入!n); break; 七、工作日志2014年7月11日 实习第一天,自己抽到的题目是集合的操纵。知道这个题目后自己有些小激动,因为庆幸自己没有抽到特别变态的题目。刚拿到题目的时候老师让我们写实习计划书包括题目的要求,实现任务的技术路线,以及具体的实习进度等等。 我的题目是用单链表模拟有续集合,以及实现集合的交、叉、并等的运算。单链表用的是数据结构的相关知识,所以自己先去把单链表的相关知识给复习了。包括链

    10、表的创建,链表的初始化,从链表中插入删除节点,以及链表的合并等。数据结构看懂了,不代表可以用C编程了,书上代码都是伪代码,需要自己一句一句全部翻译成C。对我这种C学得不够扎实的人来说无疑是一个巨大的挑战。 这一天中的大部分时间自己都在恶补C,从结构体变量的定义到指针的高级应用再到指向函数的指针,和链表能搭上边的自己都多多少少看了一下。也可能自己的C真的是弱爆了,不复习不知道,一复习才知道自己这么多东西真的不会。没办法,谁叫自己当初学C得时候没有好好学呢。一天的恶补解决不了所有问题的问题,看来以后实习的时候自己真的要把C教材带上了。2014年7月12日 这一天我大致规划了一下自己的程序。主要分为

    11、两部分,第一部分是对单集合进行操作,主要是针对单机和进行插入、删除等的操作;第二部分是对双集合进操作,主要是实现集合的运算,也就是对集合进行交、差、并的运算。这其中包含几个比较大的函数,如插入函数、删除函数、求交集函数、求并集函数、求差集函数、求交集函数等。 今天下午的时候自己已经着手开始编程。今天下午主要实现对单链表的定义,对单链表的初始化。刚开以为自己没什么大问题,可实际做的时候才发现自己问题大了。有许多小的毛病自己总是改不掉,比如说忘记加分号。这种小毛病老是等到编译的时候才发现,如果当时自己细心一点,在刚开始写程序的时候就注意这些小毛病的话就可以节省很多时间。 不知道怎样形容自己的这一天

    12、,感觉时间过得好快。在改代码的时候时间就悄悄的溜走了。我也不知道在自己是怎么搞得,写一个代码错误那么多。一行一行的改代码真的很浪费时间。不过也没什么大不了的,只希望自己可以尽快写完代码。这一天过得还好啦,至少自己过得很充实,对吧!2014年7月13日 开始正式写程序了,自己不知道怎么有点无厘头的感觉,说实话自己真的不知道从哪儿写起,是先写主函数呢?还是先写叶子函数?就这个问题自己也纠结了半大天。一场内心深处的斗争过后,终于决定了先从main函数写起,然后在写其他的函数。我把main函数分为了三部分,第一部分是对单集合进行操作,第二部分是对双集合进行操作,第三部分是按任意键退出。主要用switc

    13、h case语句实现菜单的操作。 main函数下主要有两个主函数,一个主函数是实现对单集合的插入、删除操作,另一个主函数是实现对双集合的交、差、并等操作。main函数的主体构造好之后,自己开始写第一部分的函数。第一部分主要有两个比较大的函数,插入函数和删除函数,其中还包括一些小的函数,如单链表的遍历函数等。插入、删除函数还简单一些,因为上数据结构的时候都有学过这些函数。不过就是写函数写得太慢了。不过现在还可以,至少插入删除这些小功能可以实现。 现在越发的感觉任务艰巨了,因为还有一大部分的功能没有实现。自己真得加加油了,要不然,怕到最后程序做不出来。明天开始自己得好好努力了,加油吧少年!2014

    14、年7月14日 实习真得快过了一半了,可自己好像被卡在什么地方停止不前了。就是那个求交集的函数。自己辛辛苦苦做了一早上还是没有做出来,下午到了机房,自己又是问度娘又是问老师,最后才找到了问题的症结所在,原来是没有对集合进行排序操作,致使交集求不出来。找到了问题的症结,自己就想方设法解决问题。在对集合进行初始化的同时调用排序函数对集合进行选择排序。排序后的集合很容易就可以实现求交集的操作. 只是感觉自己的一天白过了,这么简单的问题也需要做那么长得时间,自己学得东西感觉在用的时候并不是像想象中的那么好用。有些东西必须实实在在好好做一做,否则永远也不会发现自己的问题所在。怎么说呢,自己的这一天过得也可

    15、以吧,至少可以把交集求出来了哈。2014年7月15日 今天开始编写程序的主体部分了,主要是实现集合的差集和并集。并集还好实现一点,差集就不那么好实现了。刚开始求差集的时候由于没有对原先的集合进行排序,导致差集函数不能很好的调用。 后来自己编写了排序函数,主要是用选择排序的方法实现对单链表的排序,在程序刚开始的时候就调用了排序函数,这样方便与于求交集,求差集函数的调用。 有时候写好一个函数并不是那么容易的,需要考虑到函数的定义,函数的调用,函数的申明以及实际参数,return语句以及程序的终止和函数的递归调用等等。总之,没有自己想象中的那么容易。一个函数写过来,才发现自己的知识漏洞那么多。有时候

    16、二十行代码就有十五六处错误,这个着实让人受不了。还好,那本C语言教材自己一直放在书包里,有什么不会的自己赶紧去看看。哈哈,临阵磨枪不快也光。边做边积累,边努力边前进,我喜欢实习时累并快乐的生活。2014年7月17日 看到周围的同学陆陆续续收工,开始调试代码啥的,自己感觉自己好慢啊。自己的函数还没有写完,自己得加快进度了。 调试代码的时候真的好心烦,warning出现了数行,真的不好调试。没办法,只能一行一行从头开始找错误。有的错误看似很小,但修改的时候往往需要修改数十行,才可以修改过来,因为定义错了一个变量,整个函数中的那个变量都出错了。还有,调试的时候要有内心,没有内心是不行的。必须强迫自己

    17、从静下心来修改代码。 累了一天,代码还是没有调试成功。有些地方,运行着运行着就突然出现死循环了。肯定是那个函数出了问题,要不就是调用的时候出现了问题。大大小小的问题很多,累了一天没有吧代码调试出来,总之心里很不爽。2014年7月18日 写点什么呢?自己快累成狗了,自己也快热成狗了。今天的机房空调没有开,真的是汗流浃背哈,据说以后的几天空调都不开了,这是要热死我们的感觉啊。今天除了有点热,其他的感觉还好啦。至少程序可以运行出来吧。不过还是发现自己的程序有问题,就集合本身来说是不会出现相同元素的。可自己设计的程序集合就可以有相同的元素。所以自己的程序需要改进。于是自己添加了一个删除相同元素的函数v

    18、oid DelRepeated(LinkList p),这样一来自己的程序就好用多了。话说成功总是属于那些有准备的人的,发现问题,解决问题,真的很开心。2014年7月19日 后天就要答辩了。剩下的这两天该写实习报告了。话说实习报告真的不怎么好写,有的地方需要截图,由于没有好的截图工具,自己只好用QQ来截图,截好图后把那些截图保存在一个新建好的文件夹下,需要的时候找出来粘上去。实习报告的主要内容包括综合训练的目的与任务,综合训练的要求,总体设计,详细设计说明,软件使用说明,调试与测试等几大块内容。 其中详细设计说明那儿需要画程序框图。画程序框图的时候,自己对那些画图工具的使用不够熟练致使画程序框

    19、图的时候很慢。今天结束的时候实习报告还没有写完,总之需要完成的任务很多很多。PPT还没有做了,实习报告仍然有一大部分需要完善,其中包括实习报告的内容和排版。总之明天的任务很多。2014年7月20日 今天的任务很重,也很多。上午的时候自己把实习报告完善了一下。下午的时候要制作PPT和准备明天的答辩。制作PPT的时候有点茫然,不知道要向老师展示些什么。是具体的组成构架还是各个小函数的作用。最终自己决定PPT还是向老师展示自己的思路吧。从主函数开始,到fun1,再到fun2,最后点一下各个小函数的作用我想就OK了。制作PPT绝对不是一个轻松的活,从选材到背景再到具体的文字说明,每一步都需要自己去设计

    20、,去构思,去制作。2014年7月21日 前几天的辛苦努力就是为了今天。今天是实习的最后一天,或许是实习以来最轻松的一天。可台上那十分钟的答辩却凝结了过去九天的辛苦汗水。自己在台下挺紧张的,希望自己可以表现的好一点。回想起过去九天的辛苦,自己觉得是值得的。还记得刚开始自己的集合输入相同的元素让求差集时自己的程序就会崩溃,得到王老师的指导后自己在函数中定义了一个变量,根据变量的返回值进行集合有无的一个判断,从而可以清楚的知道所求集合是否存在,大大提高了程序的正确性和可行性。在这几天里自己不仅仅收获了知识,更收获了一份特别珍贵的师生情。八、综合训练心得与体会 怎么说呢?这次实习给自己的打击挺大的,自

    21、己以为自己把数据结构的知识学好了就可以编程了,实则不然。数据结构的知识是需要强大的编程语言功底去支撑的。自己的C学得比较烂,导致编程的时候有些问题即使心里清楚怎么回事,可是也不会用C来实现。学好一门编程语言真的很重要。还有就是编程的时候要注意整体的思路,不能只考虑单个的问题,要把小问题和大问题统筹起来进行解决,要不然解决某个小问题的时候会不顾全局变量,这样可能导致整个变量发生改变,最终会影响整个程序的运行。还有编程的时候要有足够的耐心来进行Debug,编程的时候错误是难以避免的,更改这些错误就需要足够的耐心。看到一行一行的错误时每个人都会心烦,只有我们静下心来才能够修改这些错误,要不然老是毛毛

    22、躁躁的肯定改不出来这些错误。不知道怎么说,感觉自己这几天进步挺大的,以前学C得知识在这里又得到了应用,数据结构的知识也得到了巩固和提升。不过还是感觉自己弱弱的,不论怎么说有进步就是好事。希望自己可以在以后的编程道路上越走越远。九、意见和建议类似这样的实习应该多多举办,只有在这类的实习中我们才可以真正的得到提高和锻炼。个人觉得实习的内容可以稍微多一点,实习的时间可以稍微长一点。我觉得在每天的实习的末尾老师可以抽出半个小时来给同学们分享一下同学们的错误,以及解决方法,这样一个人的经验就变成了许多个人的经验,有利于集体提高同学们的编程能力,可以做到知识的分享。这种实习的效果很有效,在实习中同学们可以复习以前学习过得东西,同时的话提高了自己的编程能力和动手本领。这种实习可以给老师和同学提供一个相互交流的平台促进师生关系的提高。总之,类似这样的实习活动应该多多举办。


    注意事项

    本文(实习报告书013236张晋鹏.docx)为本站会员主动上传,冰点文库仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。 若此文所含内容侵犯了您的版权或隐私,请立即通知冰点文库(点击联系客服),我们立即给予删除!

    温馨提示:如果因为网速或其他原因下载失败请重新下载,重复下载不扣分。




    关于我们 - 网站声明 - 网站地图 - 资源地图 - 友情链接 - 网站客服 - 联系我们

    copyright@ 2008-2023 冰点文库 网站版权所有

    经营许可证编号:鄂ICP备19020893号-2


    收起
    展开