《数据结构课程设计总结(模板).docx》由会员分享,可在线阅读,更多相关《数据结构课程设计总结(模板).docx(8页珍藏版)》请在淘文阁 - 分享文档赚钱的网站上搜索。
1、数据结构课程设计总结(模板) 数据结构课程设计总结(模板)数据结构课程设计报告设计题目班级姓名学号指导老师日期201*年6月25日计算机与信息工程系数据结构课程设计评阅表设计题目班级答辩评语:姓名学号总结报告评语:功能实现答辩效果设计报告创新总分(小标题为宋体小四号字加粗)正文为宋体五号字,行间距为22磅。一、引言从数据结构的意义、此项目的意义等多方面抽象阐述;二、设计过程通过流程图、功能模块图、表格、功能等分模块描述;分为主功能描述、子功能描述三、测试及运行结果列清测试过程中常见的错误,及其解决方法通过抓图加文字描述的方法写出运行过程及其结果四、总结总结对于数据结构课程的学习、对于课程的设计
2、,自己所得以及不足,今后努力方向等不少于1000字五、参考文献列出所参考的书籍、网站等,格式如下:*书籍,出版社,主编,出版日期等网站要注明中英文网址,如:新浪网六、附录列出全部代码,要运用TimesNewRoman字体,对于每个子函数要加中文注释整篇总结要限制在10页以上,15页以下即可。扩展阅读:数据结构课程设计总结(模板)数据结构课程设计报告题目:班级:计算机系1001班姓名:王彩娟刘爽学号:4236指导老师:刘延岭日期:201*年7月3日一、课程设计目标1、问题描述以栈模拟停车场,以队列模拟车场外的便道,根据从终端读入的输入数据序列进行模拟管理。每一组输入数据包括三个数据项:汽车“到达
3、”或“离去”信息、汽车牌照号码以及到达或离去的时刻。对每一组输入数据进行操作后的输出信息为:若是车辆到达,则输出汽车在停车场或便道上的停车位置;若是车辆离去,则输出汽车在停车场内停留的时间和应交纳的费用。2、问题分析汽车的模拟输入信息格式可以是:(到达/离去,汽车牌照号码,到达/离去的时刻)。例如,(A,1,5)表示1号牌照车在5这个时刻到达,而(D,5,20)表示5号牌照车在20这个时刻离去。整个程序可以在输入信息为(E,0,0)时结束。本题可用栈和队列来实现。二、概要设计1、方案确定/头文件#include#include#include/函数返回状态代码#defineOK1#define
4、ERROR0#defineTRUE1#defineFALSE0#defineINFEASIBLE-1#defineOVERFLOW-#defineSIZE5/停车场位置数typedefintStatus;/栈,模拟停车场typedefstructCar1/车intnumber;/汽车车号intar_time;/汽车到达时间CarNode;typedefstruct/停车场CarNode*base;/停车场的堆栈底CarNode*top;/停车场的堆栈顶intstacksize;Park;/队列,模拟便道typedefstructCar2/车intnumber;/汽车车号intar_time;/
5、汽车到达时间structCar2*next;*CarPtr;typedefstruct/便道CarPtrfront;/便道的队列的对头CarPtrrear;/便道的队列的队尾intlength;Shortcut;StatusInitStack(Park&P)/初始化停车场P.base=(CarNode*)malloc(SIZE*sizeof(Car1);if(!P.base)exit(OVERFLOW);P.top=P.base;P.stacksize=0;returnOK;StatusPush(Park&P,CarNodee)/车进入停车场*P.top+=e;+P.stacksize;ret
6、urnOK;StatusPop(Park&P,CarNode&e)/车离开停车场if(P.top=P.base)printf(停车场为空。);elsee=*-P.top;-P.stacksize;returnOK;StatusInitQueue(Shortcut&S)/初始化便道S.front=S.rear=(CarPtr)malloc(sizeof(Car2);if(!S.front|!S.rear)exit(OVERFLOW);S.front-next=NULL;S.length=0;returnOK;StatusEnQueue(Shortcut&S,intnumber,intar_tim
7、e)/车进入便道CarPtrp;p=(CarPtr)malloc(sizeof(Car2);if(!p)exit(OVERFLOW);p-number=number;p-ar_time=ar_time;p-next=NULL;S.rear-next=p;S.rear=p;+S.length;returnOK;StatusDeQueue(Shortcut&S,CarPtr&w)/车离开便道if(S.length=0)printf(通道为空。);elsew=S.front-next;S.front-next=S.front-next-next;-S.length;returnOK;StatusAr
8、rival(Park&P,Shortcut&S)/对进站车辆的处理intnumber,ar_time;printf(请输入车牌号:);scanf(%d,&number);printf(进场的时刻:);scanf(%d,&ar_time);if(P.stacksizewhile(P.stacksize)Pop(P,e);if(e.number=number)flag=0;money=(le_time-e.ar_time)*2;ar_time=e.ar_time;break;Push(P1,e);while(P1.stacksize)Pop(P1,e);Push(P,e);/车从停车场中出if(f
9、lag=0)if(S.length!=0)DeQueue(S,w);m.ar_time=le_time;m.number=w-number;Push(P,m);free(w);printf(车牌号为%d的车已由便道进入停车场n,m.number);printf(停车费为%d,占用车位数为%dn,money,P.stacksize);elseprintf(停车场不存在牌号为%d的车n,number);returnOK;intmain()intm=1;charflag;/选项ParkP,Q;ShortcutS;InitStack(P);InitStack(Q);InitQueue(S);while
10、(m)printf(n停车场管理程序n);printf(=n);printf(*A汽车进车场*n);printf(*n);printf(*D汽车出车场*n);printf(*n);printf(*E退出程序*n);printf(=n);printf(请选择(A,D,E):);scanf(%c,&flag);switch(flag)caseA:casea:Arrival(P,S);break;/车进入停车场caseD:cased:Leave(P,Q,S);break;/车离开停车场caseE:casee:m=0;break;default:printf(Inputerror!n);break;w
11、hile(flag!=n)scanf(%c,&flag);2、程序设计模块设计连接图3、模块功能描述此停车场管理系统,主要分为以下若干模块:首先定义用来模拟停车场的堆栈以及用来模拟通道的链队列为全局变量,然后编写主函数,在此主函数中实现对其它各个模块的调用。在主函数中首先调用option()函数,出现欢迎用户运用的主界面,然后提示用户进入此停车场管理系统后,再出现一个供用户选择的界面,在用户的选择过程中,程序又分别调用车辆的到达、车辆的离开、停车场内停放车辆的信息以及退出程序这四个函数模块。其中,在车辆的离开那个模块函数中又调用了打印离开车辆信息的函数,在停车场内停放车辆信息的那个模块函数中,
12、又分别调用了显示停车场上车辆信息的函数以及显示便道上车辆信息的函数。最终,从调鼐的这四个函数中回到主函数结束整个程序的运行。在以上各个模块中,出现的调用的函数为:voidInitStack(SeqStackCar*s);intInitQueue(LinkQueueCar*Q);option();intArrival(SeqStackCar*Enter,LinkQueueCar*W);voidLeave(SeqStackCar*Enter,SeqStackCar*Temp,LinkQueueCar*W);voidPRINT(CarNode*p);voidList(SeqStackCarS,Lin
13、kQueueCarW);voidList1(SeqStackCar*S);voidList2(LinkQueueCar*W);4、模块间关系三、具体设计1、方法设计对于此停车场管理系统的实现,就是用两个堆栈来分别模拟停车场以及停车场内车辆为其它车辆让路时退出停车的临时停放地点。至于通道上车辆的停放则用一个链队列来实现,此时,通道上车辆的离开或者进入停车场只需变更此链队列上的结点而已。对于要对停车场内的车辆依据其停放时间收取相应的停车费用,可以记录下车辆进入以及离开停车场的时间,再用时间差乘以相应的单价并且打印出最终的费用就可以实现了。2、程序流程图四、程序清单五、程序测试与运行结果停车场主界面
14、:车子进入停车场:车子出停车场:车子不想进停车场六、课程设计总结在这一个星期中,自己用vc+做了一个停车场管理的应用系统,分别实现了系统的各大功能。在这次项目中,很专心去做,但是,在项目中也出现了许多的问题,最大的问题就是对程序设计框架结构的不了解,在实现代码与功能的连接时常常会出现各种不同的错误,在实现一些功能时系统经常会报错。很多错误不知从哪修改,以致托了整个设计的后腿。课程设计中,既回顾了许多以前的东西,也发觉了许多的问题,以前都没遇见过的,收获很大。通过本次数据结构的课程设计,我学习了许多在上课没懂的学问,更巩固了课堂中学习有关于哈夫曼编码的学问,此次停车场管理的应用系统的设计让自己对
15、数据结构的了解更深化,可以把它同实际相结合,同时,又让我们学会了如何更好的从网上查找资料,还有同班上同学的沟通。虽然我对数据结构有了肯定的驾驭,但是到了真正运用,做课设的时候还是遇到了很多的问题。在细致探讨过课设要求和功能需求后,我有了初步的想法。在整个设计过程中,通过怎样对把各个管理信息连接起来的分析,熬炼了对事情的分析实力,通过怎样解决过程中出现的问题,提高了我们查找文献的实力、对网络资源的利用实力和和其他同学的沟通沟通实力。而且,经验这次的课程设计,也学会了自学和分工协作。编写程序是件细心活,稍不留神就会出错,这就必需要求我们对待事情要仔细!在编写程序的过程中,错误不断出现,不同的类型(
16、如少写了一个符号,写错了字母,用错了函数等等)层出不穷,这考验我们待事细心,耐性,能不能坚持究竟,不能半途而废。每一次的课程设计,都是让我们对原有的学问从了解表面到深化本质,从个体学习到整体把握的跳动,对新学问的吸取,更是把课本的学问应用到实际中,让我们了解了我们的学习有什么用,能够解决什么样的问题,增加了自信和学习的动力。总之,通过这次的课程设计,我们收获匪浅首先由衷感谢老师供应这样一个熬炼自己的机会,感受到学来的学问不只是用来完成试卷的。一向惯于独立思索的自己学会了主动的同同学、挚友沟通,取长补短,共同进步。课程设计使自己发觉考试并不是最重要,最重要的是能运用所学的学问。在整个课程设计的学
17、习过程中,不再是用学到的学问解题,而是在实际运用时遇到什么学什么,重在把学问应用于实际。七、成果评定指导老师评语:指导老师:成果评定:界面设计功能实现操作演示答辩效果设计报告创新总分注:界面设计10%,功能实现35%,操作演示20%,答辩效果20%,设计报告10%,创新5%。格式要求:A4纸打印,左右页边距2.5cm。表格中正文文字均为宋体小四号字,表格中的标题加粗,行间距20磅。左侧装订。图、表格要有编号和标题。程序清单采纳TimesNewRoman字体,五号字。友情提示:本文中关于数据结构课程设计总结(模板)给出的范例仅供您参考拓展思维运用,数据结构课程设计总结(模板):该篇文章建议您自主创作。 本文来源:网络收集与整理,如有侵权,请联系作者删除,谢谢!第8页 共8页第 8 页 共 8 页第 8 页 共 8 页第 8 页 共 8 页第 8 页 共 8 页第 8 页 共 8 页第 8 页 共 8 页第 8 页 共 8 页第 8 页 共 8 页第 8 页 共 8 页第 8 页 共 8 页
限制150内