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

    数据结构c语言版课程设计停车场管理系统.docx

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

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

    数据结构c语言版课程设计停车场管理系统.docx

    1、数据结构c语言版课程设计停车场管理系统 课程设计:停车场 c语言版本的数据结构课程设计,要求用栈模拟停车场,用队列模拟便道,实现停车场的收费管理系统停车场停满车后车会停在便道上面下面附上源码,vc:(下编译#include /#include /malloc#include /获取系统时间所用函数 #include /getch()#include /设置光标信息 mallco#define MaxSize 5 /*定义停车场栈长度*/#define PRICE 0.05 /*每车每分钟收费值*/#define BASEPRICE 0.5 /基础停车费#define Esc 27 /退出系统#

    2、define Exit 3 /结束对话#define Stop 1 /停车#define Drive 2 /取车int jx=0,jy=32; /全局变量日志打印位置typedef structint hour; int minute;Time,*PTime; /*时间结点*/typedef struct /*定义栈元素的类型即车辆信息结点*/int num ; /*车牌号*/ Time arrtime; /*到达时刻或离区时刻*/CarNode;typedef struct /*定义栈,模拟停车场*/CarNode stackMaxSize; int top;SqStackCar;typed

    3、ef struct node /*定义队列结点的类型*/int num; /*车牌号*/ struct node *next;QueueNode;typedef struct /*定义队列,模拟便道*/QueueNode *front,*rear;LinkQueueCar;/*函数声明*/PTime get_time();CarNode getcarInfo();void qingping(int a);void gotoxy(int x,int y);void printlog(Time t,int n,int io,char ab,int po,double f);void printst

    4、op(int a,int num,int x0,int y0);void printleave(int a,int po,int num); /*初始化栈*/void InitSeqStack(SqStackCar *s) s-top=-1;/* push入站函数 */int push(SqStackCar *s,CarNode x) /数据元素x入指针s所指的栈 if(s-top=MaxSize-1) return(0); /如果栈满,返回0 else s-stack+s-top=x; /栈不满,到达车辆入栈 return(1); /*栈顶元素出栈*/CarNode pop(SqStackC

    5、ar *s) CarNode x; if(s-toptop-; return(s-stacks-top+1); /栈不空,返回栈顶元素 /*初始化队列*/void InitLinkQueue(LinkQueueCar *q) q-front=(QueueNode*)malloc(sizeof(QueueNode); /产生一个新结点,作头结点 if(q-front!=NULL) q-rear=q-front; q-front-next=NULL; q-front-num=0; /头结点的num保存队列中数据元素的个数 /*数据入队列*/void EnLinkQueue(LinkQueueCar

    6、 *q,int x) QueueNode *p; p=(QueueNode*)malloc(sizeof(QueueNode); /产生一个新结点 p-num=x; p-next=NULL; q-rear-next=p; /新结点入队列 q-rear=p; q-front-num+; /队列元素个数加1 /*数据出队列*/ int DeLinkQueue(LinkQueueCar *q) QueueNode *p; int n; if(q-front=q-rear) /队空返回0 return(0); else p=q-front-next; q-front-next=p-next; if(p

    7、-next=NULL) q-rear=q-front; n=p-num; free(p); q-front-num-; return(n); /返回出队的数据信息 /* 车辆到达 */参数:停车栈 停车队列 车辆信息/返回值:空/功能:对传入的车辆进行入栈 栈满则入队列void Arrive(SqStackCar *stop,LinkQueueCar *lq,CarNode x) int f; f=push(stop,x); /入栈 if (f=0) /栈满 EnLinkQueue(lq,x.num); /入队 printstop(1,lq-front-num,0,23); printlog(

    8、x.arrtime,x.num,1,B,lq-front-num,0); qingping(0); printf(您的车停在便道%d号车位上n,lq-front-num); /更新对话 else printstop(0,stop-top+1,0,23); printlog(x.arrtime,x.num,1,P,stop-top+1,0); qingping(0); printf(您的车停在停车场%d号车位上n,stop-top+1); /更新对话 qingping(1); printf(按任意键继续); getch();/* 车辆离开 */参数:停车栈指针s1,暂存栈指针s2,停车队列指针p

    9、,车辆信息x/返回值:空/功能:查找栈中s1的x并出栈,栈中没有则查找队p中并出队,打印离开收费信息void Leave(SqStackCar *s1,SqStackCar *s2,LinkQueueCar *p,CarNode x) double fee=0; int position=s1-top+1; /车辆所在车位 int n,f=0; CarNode y; QueueNode *q; while(s1-top -1)&(f!=1) /当栈不空且未找到x y=pop(s1); if(y.num!=x.num) n=push(s2,y); position-; else f=1; if(

    10、y.num=x.num) /找到x gotoxy(33,17); printf(%d:%-2d,(x.arrtime.hour-y.arrtime.hour),(x.arrtime.minute-y.arrtime.minute) ); fee=(x.arrtime.hour-y.arrtime.hour)*60+(x.arrtime.minute-y.arrtime.minute)*PRICE+BASEPRICE; gotoxy(48,17); printf(%2.1f元n,fee); qingping(0); printf(确认您的车辆信息); qingping(1); printf(按任

    11、意键继续); getch(); while(s2-top-1) y=pop(s2); f=push(s1,y); n=DeLinkQueue(p); if(n!=0) y.num=n; y.arrtime=x.arrtime; f=push(s1,y); printleave(p-front-num+1,position,s1-top+1); /出栈动画ji队列成员入栈 printlog(x.arrtime,x.num,0,P,position,fee); printlog(y.arrtime,y.num,1,P,s1-top+1,0); else printleave(0,position,

    12、s1-top+2); printlog(x.arrtime,x.num,0,P,position,fee); else /若栈中无x while(s2-top -1) /还原栈 y=pop(s2); f=push(s1,y); q=p-front; f=0; position=1; while(f=0&q-next!=NULL) /当队不空且未找到x if(q-next-num!=x.num) q=q-next; position+; else /找到x q-next=q-next-next; p-front-num-; if(q-next=NULL) p-rear=p-front; goto

    13、xy(33,17); printf(0:0); gotoxy(48,17); printf(0元); qingping(0); printf(您的车将离便道); qingping(1); printf(按任意键继续); getch(); printleave(-1,position,p-front-num+1); /出队动画 printlog(x.arrtime,x.num,0,B,position,0); f=1; if(f=0) /未找到x qingping(0); printf(停车场和便道上均无您的车); qingping(1); printf(按任意键继续); getch(); /*

    14、获取系统时间*/返回PTime类型PTime get_time() Time *t; t=new Time; time_t timer; struct tm *tblock; timer=time(NULL); tblock=localtime(&timer); t-minute=tblock-tm_min; t-hour=tblock-tm_hour; return t;/*移动光标*/蒋光标移动到(x,y)点void gotoxy(int x,int y) COORD coord; coord.X=x; coord.Y=y+3; SetConsoleCursorPosition(GetSt

    15、dHandle(STD_OUTPUT_HANDLE),coord);/*画图*/画出系统界面void panitPL() gotoxy(20,4); printf(*对话框*); int x=18,y=6; /起始点 int a24=2,0,0,1,-2,0,0,-1; /方向 for(int i=0;i2 ;i+) for(int j=0; j20; j+) x+=ai0; y+=ai1; gotoxy(x,y); printf(); x+=ai0; y+=ai1; gotoxy(x,y); if(i=0) printf(); else printf(); for(j=0; j); c=ge

    16、tch(); if(c=13) return y-10; /enter键返回当前选项 if(c!=-32)continue; /不是方向键进行下次循环 c=getch(); if(c=72) if(y11) y-; /上 if(c=80) if(y13) y+; /下 /输入车辆信息CarNode getcarInfo() PTime T; CarNode x; qingping(0); printf(请输入您的车牌号n); qingping(1); printf(在下面输入车辆信息); qingping(2); scanf(%d,&(x.num); T=get_time(); x.arrti

    17、me=*T; gotoxy(48,15); printf(%d:%d,x.arrtime.hour,x.arrtime.minute); getch(); return x;/打印停车场void printcar() gotoxy(0,20); / printf(); printf( 出场暂放区 1 2 3 4 5 ); printf(- ); printf( 主车道 ); printf(- ); printf( 12 11 10 9 8 7 6 5 4 3 2 1 ); printf( ); printf( ); printf( 便道 停车区 1 2 3 4 5 ); printf( );

    18、printf( 停车场管理日志nn); printf( 时间 车牌号 进(1)/出(0) 车位(B便道P停车场) 收费(元) );/打印日志记录void printlog(Time t,int n,int io,char ab,int po,double f) jy+; gotoxy(jx,jy);/ printf( 时间 车牌号 进(1)/出(0) 车位(B便道P停车场) 收费(元) ); if(io=0) printf( / %2.1f,f); gotoxy(jx,jy); printf( / %d / %c:%d,io,ab,po); gotoxy(jx,jy); printf( %d:

    19、%d / %d,t.hour,t.minute,n); void printstop(int a,int num,int x0,int y0) static char *car=【】;/ int x0=0,y0=23; int x=0,y=28; if(a=0) x=(num+6)*6; for(;x072;x0+) gotoxy(x0,y0); printf(%s,car); Sleep(30); gotoxy(x0,y0); printf( ); for(;y0x;x0-) gotoxy(x0,y0); printf(%s,car); Sleep(50); gotoxy(x0,y0); p

    20、rintf( ); gotoxy(x,y); printf(%s,car); else x=(12-num)*6; y=y-3; for(;x0num) gotoxy(12-num)*6,y); printf( ); gotoxy(x,y); printf(%s,car); for(;xx0;x-) gotoxy(x,y-2); printf(%s,car); Sleep(30); gotoxy(x,y-2); printf( ); else i=num+1; for(;numpo;num-) x=(num+6)*6; y=28; for(;x21;y-) gotoxy(x,y); printf(%s,car); Sleep(50); gotoxy(x,y); printf( ); for(;x(i-num+6)*6;x-) gotoxy(x,y); printf(%s,car); Sleep(30); gotoxy(x,y); printf( ); gotoxy(x,y); printf(%s,car); x=(po+6)*6; y=28; for(;x72;x+)


    注意事项

    本文(数据结构c语言版课程设计停车场管理系统.docx)为本站会员主动上传,冰点文库仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。 若此文所含内容侵犯了您的版权或隐私,请立即通知冰点文库(点击联系客服),我们立即给予删除!

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




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

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

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


    收起
    展开