欢迎来到天天文库
浏览记录
ID:47518156
大小:108.50 KB
页数:17页
时间:2020-01-12
《数据结构课程设计总结(模板)》由会员上传分享,免费在线阅读,更多相关内容在行业资料-天天文库。
1、《数据结构》课程设计报告题目:班级:计算机系1001班姓名:王彩娟刘爽学号:4236指导教师:刘延岭日期:2011年7月3日一、课程设计目标1、问题描述以栈模拟停车场,以队列模拟车场外的便道,按照从终端读入的输入数据序列进行模拟管理。每一组输入数据包括三个数据项:汽车“到达”或“离去”信息、汽车牌照号码以及到达或离去的时刻。对每一组输入数据进行操作后的输出信息为:若是车辆到达,则输出汽车在停车场或便道上的停车位置;若是车辆离去,则输出汽车在停车场内停留的时间和应交纳的费用。2、问题分析汽车的模拟输入信息格式可以是:(到达/离去,汽车牌照号码
2、,到达/离去的时刻)。例如,(‘A’,1,5)表示1号牌照车在5这个时刻到达,而(‘D’,5,20)表示5号牌照车在20这个时刻离去。整个程序可以在输入信息为(‘E’,0,0)时结束。本题可用栈和队列来实现。二、概要设计1、方案确定//头文件#include#include#include//函数返回状态代码#defineOK 1#defineERROR 0#defineTRUE 1#defineFALSE 0#defineINFEASIBLE
3、-1#defineOVERFLOW -2#defineSIZE5//停车场位置数typedefintStatus;//栈,模拟停车场typedefstructCar1{//车 intnumber;//汽车车号 intar_time;//汽车到达时间}CarNode;typedefstruct{//停车场 CarNode*base;//停车场的堆栈底 CarNode*top;//停车场的堆栈顶 intstacksize;}Park;//队列,模拟便道typedefstructCar2{//车 intnumber;//汽车车号 i
4、ntar_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; ret
5、urnOK;}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.rea
6、r=(CarPtr)malloc(sizeof(Car2)); if(!S.front
7、
8、!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_tim
9、e; 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&
10、P,Shortcut&S){//对进站车辆的处理 intnumber,ar_time; printf("请输入车牌号:"); scanf("%d",&number); p
此文档下载收益归作者所有