数据结构课程设计总结(模板)
《数据结构》课程设计报告
题目:班级:姓名:学号:指导教师:刘延岭日期:201*年1月8日一、课程设计目标1、问题描述2、问题分析二、概要设计
1、方案确定2、程序设计模块设计连接图3、模块功能描述三、详细设计1、方法设计2、程序流程图四、程序清单五、程序测试与运行结果六、课程设计总结七、成绩评定指导教师评语:指导教师:成绩评定:界面设计功能实现操作演示答辩效果设计报告创新总分注:界面设计10%,功能实现35%,操作演示20%,答辩效果20%,设计报告10%,创新5%。
格式要求:A4纸打印,左右页边距2.5cm。表格中正文文字均为宋体小四号字,表格中的标题加粗,行间距20磅。左侧装订。图、表格要有编号和标题。程序清单采用TimesNewRoman字体,五号字。
扩展阅读:数据结构课程设计总结(模板)
《数据结构》课程设计报告
题目:
班级:计算机系1001班姓名:王彩娟刘爽学号:4236指导教师:刘延岭日期:201*年7月3日一、课程设计目标1、问题描述以栈模拟停车场,以队列模拟车场外的便道,按照从终端读入的输入数据序列进行模拟管理。每一组输入数据包括三个数据项:汽车“到达”或“离去”信息、汽车牌照号码以及到达或离去的时刻。对每一组输入数据进行操作后的输出信息为:若是车辆到达,则输出汽车在停车场或便道上的停车位置;若是车辆离去,则输出汽车在停车场内停留的时间和应交纳的费用。2、问题分析汽车的模拟输入信息格式可以是:(到达/离去,汽车牌照号码,到达/离去的时刻)。例如,(‘A’,1,5)表示1号牌照车在5这个时刻到达,而(‘D’,5,20)表示5号牌照车在20这个时刻离去。整个程序可以在输入信息为(‘E’,0,0)时结束。本题可用栈和队列来实现。二、概要设计1、方案确定//头文件#include#include#include//函数返回状态代码#defineOK1#defineERROR0#defineTRUE1#defineFALSE0#defineINFEASIBLE-1#defineOVERFLOW-#defineSIZE5//停车场位置数typedefintStatus;//栈,模拟停车场typedefstructCar1{//车intnumber;//汽车车号intar_time;//汽车到达时间}CarNode;typedefstruct{//停车场CarNode*base;//停车场的堆栈底CarNode*top;//停车场的堆栈顶intstacksize;}Park;//队列,模拟便道typedefstructCar2{//车intnumber;//汽车车号intar_time;//汽车到达时间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;returnOK;}StatusPop(Park&P,CarNode&e){//车离开停车场if(P.top==P.base)printf("停车场为空。");else{e=*--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_time){//车进入便道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("通道为空。");else{w=S.front->next;S.front->next=S.front->next->next;--S.length;}returnOK;}StatusArrival(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(flag==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,占用车位数为%d\\n",money,P.stacksize);}else{printf("停车场不存在牌号为%d的车\\n",number);}returnOK;}intmain(){intm=1;charflag;//选项ParkP,Q;ShortcutS;InitStack(P);InitStack(Q);InitQueue(S);while(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){case"A":case"a":Arrival(P,S);break;//车进入停车场case"D":case"d":Leave(P,Q,S);break;//车离开停车场case"E":case"e":m=0;break;default:printf("Inputerror!\\n");break;}while(flag!="\\n")scanf("%c",&flag);}}2、程序设计模块设计连接图3、模块功能描述①此停车场管理系统,主要分为以下若干模块:首先定义用来模拟停车场的堆栈以及用来模拟通道的链队列为全局变量,然后编写主函数,在此主函数中实现对其它各个模块的调用。在主函数中首先调用option()函数,出现欢迎用户使用的主界面,然后提示用户进入此停车场管理系统后,再出现一个供用户选择的界面,在用户的选择过程中,程序又分别调用车辆的到达、车辆的离开、停车场内停放车辆的信息以及退出程序这四个函数模块。其中,在车辆的离开那个模块函数中又调用了打印离开车辆信息的函数,在停车场内停放车辆信息的那个模块函数中,又分别调用了显示停车场上车辆信息的函数以及显示便道上车辆信息的函数。最后,从调鼐的这四个函数中回到主函数结束整个程序的运行。②在以上各个模块中,出现的调用的函数为:voidInitStack(SeqStackCar*s);intInitQueue(LinkQueueCar*Q);option();intArrival(SeqStackCar*Enter,LinkQueueCar*W);voidLeave(SeqStackCar*Enter,SeqStackCar*Temp,LinkQueueCar*W);voidPRINT(CarNode*p);voidList(SeqStackCarS,LinkQueueCarW);voidList1(SeqStackCar*S);voidList2(LinkQueueCar*W);4、模块间关系三、详细设计1、方法设计对于此停车场管理系统的实现,就是用两个堆栈来分别模拟停车场以及停车场内车辆为其它车辆让路时退出停车的临时停放地点。至于通道上车辆的停放则用一个链队列来实现,此时,通道上车辆的离开或者进入停车场只需改变此链队列上的结点而已。对于要对停车场内的车辆根据其停放时间收取相应的停车费用,可以记录下车辆进入以及离开停车场的时间,再用时间差乘以相应的单价并且打印出最后的费用就可以实现了。2、程序流程图四、程序清单五、程序测试与运行结果停车场主界面:车子进入停车场:车子出停车场:车子不想进停车场六、课程设计总结
在这一个星期中,自己用vc++做了一个停车场管理的应用系统,分别实现了系统的各大功能。在这次项目中,很用心去做,但是,在项目中也出现了很多的问题,最大的问题就是对程序设计框架结构的不了解,在实现代码与功能的连接时经常会出现各种不同的错误,在实现一些功能时系统常常会报错。许多错误不知从哪修改,以致托了整个设计的后腿。课程设计中,既回顾了很多以前的东西,也发现了很多的问题,以前都没遇见过的,收获很大。通过本次数据结构的课程设计,我学习了很多在上课没懂的知识,更巩固了课堂中学习有关于哈夫曼编码的知识,此次停车场管理的应用系统的设计让自己对数据结构的了解更深入,可以把它同实际相结合,同时,又让我们学会了如何更好的从网上查找资料,还有同班上同学的交流。虽然我对数据结构有了一定的掌握,但是到了真正使用,做课设的时候还是遇到了许多的问题。在仔细研究过课设要求和功能需求后,我有了初步的想法。在整个设计过程中,通过怎样对把各个管理信息连接起来的分析,锻炼了对事情的分析能力,通过怎样解决过程中出现的问题,提高了我们查找文献的能力、对网络资源的利用能力和和其他同学的交流沟通能力。而且,经历这次的课程设计,也学会了自学和分工协作。编写程序是件细心活,稍不留神就会出错,这就必须要求我们对待事情要认真!在编写程序的过程中,错误不断出现,不同的类型(如少写了一个符号,写错了字母,用错了函数等等)层出不穷,这考验我们待事细心,耐心,能不能坚持到底,不能半途而废。每一次的课程设计,都是让我们对原有的知识从了解表面到深入本质,从个体学习到整体把握的跳跃,对新知识的汲取,更是把课本的知识应用到实际中,让我们了解了我们的学习有什么用,能够解决什么样的问题,增加了自信和学习的动力。总之,通过这次的课程设计,我们收获匪浅首先由衷感谢老师提供这样一个锻炼自己的机会,感受到学来的知识不只是用来完成试卷的。一向惯于独立思考的自己学会了积极的同同学、朋友交流,取长补短,共同进步。课程设计使自己发现考试并不是最重要,最重要的是能运用所学的知识。在整个课程设计的学习过程中,不再是用学到的知识解题,而是在实际运用时遇到什么学什么,重在把知识应用于实际。七、成绩评定指导教师评语:指导教师:成绩评定:界面设计功能实现操作演示答辩效果设计报告创新总分注:界面设计10%,功能实现35%,操作演示20%,答辩效果20%,设计报告10%,创新5%。
格式要求:A4纸打印,左右页边距2.5cm。表格中正文文字均为宋体小四号字,表格中的标题加粗,行间距20磅。左侧装订。图、表格要有编号和标题。程序清单采用TimesNewRoman字体,五号字。
友情提示:本文中关于《数据结构课程设计总结(模板)》给出的范例仅供您参考拓展思维使用,数据结构课程设计总结(模板):该篇文章建议您自主创作。
来源:网络整理 免责声明:本文仅限学习分享,如产生版权问题,请联系我们及时删除。