1、线性表、查询、更新、插入、删除、排序等功能;(5) 了解数据处理的权限管理;三 实训内容题目:车库管理系统问题描述设停车场是一个可停放n辆汽车的狭长通道,且只有一个大门可供汽车进出。汽车在停车场内按车辆到达时间的先后顺序,依次由北向南排列(大门在最南端,最先到达的第一辆车停放在车场的最北端),若车场内已停满n辆汽车,则后来的汽车只能在门外的便道上等候,一旦有车开走,则排在便道上的第一辆车即可开入;每辆停放在车场的车在它离开停车场时必须按它停留的时间长短交纳费用。试为停车场编制按上述要求进行管理的模拟程序。以线性表模拟停车场,以队列模拟车场外的便道,按照从终端读入的输入数据序列进行模拟管理。每一
2、组输入数据包括三个数据项:汽车“到达”或“”离去信息、汽车牌照号码以及到达或离去的时刻。对每一组输入数据进行操作后的输出信息为:若是车辆到达,则输出汽车在停车场内或便道上的停车位置;若是车辆离去,则输出汽车在停车场内停留的时间和应交纳的费用(在便道上停留的时间不收费)。线性表以顺序结构实现,队列以链表结构实现。 系统要求(1)初始化:初始化线性表、队列。(2)入队:新车加入队。(3)出队:队首出队。(4)入库:定位、队列元素入库。(5)出库:查找、出库并计费、记录流水。(6)输出流水帐四摘 要详细内容如下:序号实训项目内容及要求学时1数据结构基础知识数据结构设计1)了解数据结构中的基本概念2)
3、数据结构应用设计过程3)独立完成“车库管理系统”数据结构的规范化设计;42初始化:要求:1) 完成初始化线性表、队列程序设计;3入队:出队:1)完成入队出队程序设计;入库:定位、队列元素入库1) 完成定位、队列元素入库程序设计65出库:1) 完成查找、出库并计费、记录流水2) 保存数据(文件写操作);输出流水帐1)读入数据(文件读操作);2)输出数据7完成报告文章结构清晰,文字描述准确;掌握科技应用文的写作;五实训环境地点:行知楼506软件: Turbo C2.0 六实训进度时间实训内容方式1 第一天早上数据结构基础知识、数据结构设计讲练2 第一天下午练习3 第二天早上新车加入队列4 第二天下
4、午5 第三天早上队列元素入库6 第三天下午查找、出库并计费7 第四天早上记录流水。8 第四天下午9 第五天早上系统联调10 第五天下午目录绪论 1第一章 题目 2第二章 题目 3第三章 题目 4总结和体会 5参考文献 6绪 论本系统是假设有一个停车场且只有一个大门可供汽车进出。汽车在停车场内按车辆达到时间的先后顺序,依次由北向南排列(大门在最南端,最先达到的第一辆车停放在车场的最北端),若车场内已停满汽车,则后来的汽车只能在门外的便道上等候,一旦有车开走,则排在便道上的第一辆车即可开入;当停车场内某辆车要离开时,在它之后进入的车辆必须先退车车场为它让路,待赶辆车开出大门外,其它车辆在按原次序进
5、入车场,每辆停放在车场的车在它离开停车场时必须按它停留的时间长短叫纳费用的系统。其顺序用队列来实现,车辆的车牌、停车时间以及车位号均保持在库中,在车辆离开停车场时调用库中信息,查询车辆信息,计算应缴纳的费用,并处理后续车辆。第一章 初始化具体内容对线性表、队列的初始化和必要的操作提示,代码如下:#include stdio.hstdlib.hstring.hconio.hint MAX; /*定义一个全局变量用来存储车库最大容量*/ float price;/*每车每小时的费用*/ typedef struct time int hour; int min;Time; /*时间结点*/ typ
6、edef struct nodechar num100; Time reach; Time leave;Car; /*车辆信息结点*/ typedef struct NODE Car *stack100; int top; float x;SqStack; /*停车站*/ typedef struct car Car *data; /数据域名 struct car *next; /指针域名 QNode;typedef struct Node QNode *head; /队头指针 QNode *rear; /队尾指针LinkQueue; /*通道*/ void InitStack(SqStack
7、 *); /*初始化栈*/ int InitQueue(LinkQueue *); /*初始化便道*/ int arrive(SqStack *,LinkQueue *); /*车辆到达*/ void leave(SqStack *,SqStack *,LinkQueue *); /*车辆离开*/ void info(SqStack,LinkQueue); /*显示停车场信息*/ void PRINT(Car *p,int room);/打印详细信息及账单void InitStack(SqStack *s) /*初始化栈*/ int i; s-top=0; /定义初始栈顶下标值 for(i=0
8、;itop=NULL; /建立一个空栈 int InitQueue(LinkQueue *Q) /*初始化便道*/ Q-head=(QNode *)malloc(sizeof(QNode); /为通道开辟一个空间 if(Q-head!=NULL) /判断队头是否为空 head-next=NULL; /队头的下一个数据元素设为空 rear=Q-head; /把队头数据元素的值赋给队尾 return(1); else return(-1);void main() SqStack In,Out; LinkQueue Wait; int ch; InitStack(&In); /*初始化停车站*/ O
9、ut); /*初始化让路的临时栈*/ InitQueue(&Wait); /*初始化通道*/ while(1) printf(-欢迎使用停车场管理系统-n);请输入停车场的容量: scanf(%d,&MAX);请输入停车场的收费标准(元/小时):%fprice);您输入的停车场容量为%d位,费用为%2.1f元/小时。n,MAX,price); (1)车辆到达n (2)车辆离开n (3)停车场信息n (0)退出系统n-n请选择n ch=getch(); switch(ch) case 1:arrive(&In,&break;2leave(&Out,&3info(In,Wait); /*输出车站信
10、息*/0printf(谢谢使用!exit(0); /*退出主程序*/ default:printf(n非数字键,请重新按键选择! system(CLSn(1)车辆到达n(2)车辆离开n(3)停车场信息n(4)退出系统n请选择n第二章 车辆到达车场可停放多辆汽车,且只有一个大门可供汽车进出。汽车在停车场内按车辆达到时间的先后顺序依次排列,若车场内已停满汽车,则后来的汽车只能在门外的便道上等候,一旦有车开走,则排在便道上的第一辆车即可开入代码如下:int arrive(SqStack *In,LinkQueue *W) /*车辆到达*/ Car *p; QNode *t; p=(Car *)malloc(sizeof(Car); /把开辟成功的空间存入指针p中 flushall(); /清除所有缓冲区n停车场还有%d个停车位(若停车位为0,车可先进入便道等待),MAX-In-top);n请输入车牌号码(例:3454): gets(p-num); if(In-toptop+;n停车的位置:%d号停车位。,In- /printf(n请输入车到达的时间(格式*:*):n请输入车到达的时间:%d:(p-reach.hour),&reach.min);stackIn-top=p;/弹出栈顶数据元素值到指针p printf(
copyright@ 2008-2022 冰豆网网站版权所有
经营许可证编号:鄂ICP备2022015515号-1