数据结构课程设计停车管理系统实验报告
《数据结构》停车场系统设计报告--停车场管理系统_

《数据结构》停车场系统设计报告--停车场管理系统_一、系统总体原则1.1、系统的安全性:停车场管理系统要求引入多重安全措施,确保其系统数据的安全,以防止非法黑客进行攻击;系统本身要具备安全保护机制,确保核心系统重要功能不能被破坏。
1.2、系统功能:停车场管理系统要具备通行证管理,车辆管理,收费管理,维修管理,系统权限控制和固定车位管理等多种功能。
1.3、系统数据管理:停车场管理系统要实现对用户信息,车辆信息,收费信息,维修信息和工作日志等数据的便捷管理;支持数据注入,报表输出,日志查询,备份恢复等。
二、系统数据结构2.1、用户信息结构:用户类型、用户名、密码、真实姓名、联系电话、优惠折扣比、优惠申请次数等2.2、车辆信息结构:车牌号、车牌颜色、停放位置、停放时间、收费金额等2.3、收费信息结构:收费时间、车牌号、应缴金额、实缴金额、优惠金额、收费员等2.4、维修信息结构:维修时间、车牌号、维修内容、维修费用、维修人等2.5、工作日志结构:日志类型、生成时间、触发时间、操作内容、操作人等三、系统模块设计通行证管理模块:能够管理停车场的客户信息,支持优惠折扣的设置,支持多种客户角色的分配及权限管理。
车辆管理模块:能够管理停车场的车辆信息,支持分配停车位、跟踪车辆停放时间以及出入位置,以实现计算停车费用。
收费管理模块:能够实现车辆停放费用的计费与收取,支持优惠计算功能,支持收费记录的查询与管理。
维修管理模块:能够管理停车场的车辆维修信息,能够针对每辆车的维修记录进行查询、录入和管理。
系统权限控制模块:支持可根据多种角色分配权限,以实现系统模块及功能的控制,保证信息安全性。
固定车位管理模块:能够支持固定车位信息的管理,可支持用户管理固定车位,以便系统自动识别用户并提供优惠处理。
四、系统实现方案4.1 前端 : 对停车场系统进行交互式操作,支持web,客户端,短信等界面,实现用户的操作及查询;前端应用可跨平台进行。
停车系统实验报告

一、实验背景随着城市化进程的加快,汽车数量不断增加,停车难问题日益突出。
为了提高停车效率,减少交通拥堵,实现停车场管理的智能化,我们设计并实现了一个基于数据结构的停车场管理系统。
本系统采用栈和队列数据结构模拟停车场的运行过程,实现了车辆进出、停车位置分配、费用计算等功能。
二、实验目的1. 理解并掌握栈和队列数据结构在停车场管理中的应用。
2. 设计并实现一个停车场管理系统,实现车辆进出、停车位置分配、费用计算等功能。
3. 体会数据结构在实际问题中的应用价值。
三、实验内容1. 系统设计(1)数据结构设计停车场:采用顺序栈实现,栈顶表示停车场最北端,栈底表示停车场最南端。
便道:采用链队列实现,队首表示便道最北端,队尾表示便道最南端。
汽车信息:定义一个结构体,包含车牌号、到达时间、离开时间、停车费用等属性。
(2)功能模块设计进出停车场:根据车辆到达或离开的时间,判断车辆是进入停车场还是离开停车场。
停车位置分配:根据停车场和便道的实际情况,为车辆分配停车位置。
费用计算:根据车辆在停车场停留的时间,计算停车费用。
输出结果:输出每辆车到达后的停车位置、离开时的费用和停留时间。
2. 系统实现(1)数据结构实现顺序栈:使用数组实现,提供入栈、出栈、判空等操作。
链队列:使用链表实现,提供入队、出队、判空等操作。
(2)功能模块实现进出停车场:根据车辆到达或离开的时间,判断车辆是进入停车场还是离开停车场。
停车位置分配:根据停车场和便道的实际情况,为车辆分配停车位置。
费用计算:根据车辆在停车场停留的时间,计算停车费用。
输出结果:输出每辆车到达后的停车位置、离开时的费用和停留时间。
3. 系统测试(1)功能测试测试车辆进出停车场功能。
测试停车位置分配功能。
测试费用计算功能。
(2)性能测试测试系统在高并发情况下的性能。
四、实验结果与分析1. 功能测试结果经过测试,系统各项功能均能正常运行,满足设计要求。
2. 性能测试结果在高并发情况下,系统运行稳定,性能良好。
数据结构课程设计报告书 停车场管理系统

#include<stdio.h>#include<stdlib.h>#include<string.h>#define N 100/*预设停车场有100个车位*/#define D 1.2/*预设车辆停车费为1.2元每小时*/ #define NUMBER 100void menu();void start();void parkingplace();void drive();struc car{int carnumber;int cararrave;int carleave;int carplace;}car[NUMBER];struct park;{int null;}parkingplace[N-1];void main (){menu();/*菜单*/}void menu(){int n;do{puts("****MENU***");puts("1、停车");puts("2、开车");puts("3、退出");puts("4、初始化");printf("请选择你需要的服务(1-4):");scanf("%d",&n);}switch(n){case 1:parking;break;/*停车函数*/case 2:drive;brea ;/*开车函数*/case 3:exit;break;/*退出*/case 4:start;break;/*初始化*/}}void start()/*初始化*/{int i,j;for(i=0;j<N;i++)parking[i].null=0;/*停车场设置为空*/printf("已初始化");menu();}void parkingplace()/*车辆进入函数*/{int i,a,h=0;printf(“请输入该车系序号(从0开始):”);scanf(“%d”,&a);for(i=0;i<N;i++){if(parking[i].park==0)/*无车标记*/if(parking[i].park==1)/*有车标记*/h=h+1;}if(h==N)printf(“停车场内已满!”);else{car[a].carplace=h;parkingplace[h].null=1;printf(“该车应该停在停车场内”);printf(“请输入该车进停车场时间:”);scanf(“d%”,&car[a].cararrave);}void drive()/*车辆离开函数*/{int i,k,time;double(“请输入车辆次序号【】”);scanf(“%d”,&i);printf(“请输入离开时间:”);scanf(“%d”,&car[i]carleave);fee=D*(car[i].carleave-car[i].cardrrave);time=car[i].carleave-car[i].cardrrave;printf(“次序号为%d的车停时间%d小时,应收费%f元”,i,time,fee); }。
数据结构停车场管理实验报告

数据结构停车场管理实验报告一、实验目的本次实验旨在通过设计和实现一个停车场管理系统,深入理解和应用数据结构中的栈和队列等知识,提高解决实际问题的能力。
二、实验环境编程语言:C++开发工具:Visual Studio三、实验原理1、停车场采用栈结构来存储停放的车辆信息。
栈具有先进后出的特点,符合车辆先进入停车场后离开的逻辑。
2、停车场外的便道采用队列结构来存储等待进入停车场的车辆。
队列具有先进先出的特点,符合车辆按到达顺序进入停车场的需求。
四、实验内容1、设计数据结构定义栈和队列的数据结构,包括存储车辆信息的结构体。
实现栈和队列的基本操作,如入栈、出栈、入队、出队等。
2、功能实现车辆进入停车场:当有车辆进入停车场时,将车辆信息压入栈中。
车辆离开停车场:当有车辆离开停车场时,从栈中弹出相应车辆,并计算停车费用。
显示停车场状态:实时显示停车场内车辆的信息。
处理便道上的车辆:当停车场有空位时,将便道上的车辆依次入停车场。
3、界面设计设计简单的命令行交互界面,方便用户输入操作指令。
五、实验步骤1、定义数据结构```cppstruct Car {int carNumber;int arrivalTime;int departureTime;};class Stack {private:Car stackArray;int top;int capacity;public:Stack(int size) {capacity = size;stackArray = new Carcapacity; top =-1;}~Stack(){delete stackArray;}bool isFull(){return top == capacity 1;}bool isEmpty(){return top ==-1;}void push(Car car) {if (!isFull()){stackArray++top = car;} else {std::cout <<"停车场已满,无法进入!"<< std::endl;}}Car pop(){if (!isEmpty()){return stackArraytop;} else {std::cout <<"停车场为空,无法离开!"<< std::endl; return {-1, -1, -1};}}Car peek(){if (!isEmpty()){return stackArraytop;} else {std::cout <<"停车场为空!"<< std::endl; return {-1, -1, -1};}}};class Queue {private:Car queueArray;int front;int rear;int capacity;public:Queue(int size) {capacity = size;queueArray = new Carcapacity;front = rear =-1;}~Queue(){delete queueArray;}bool isFull(){return (rear + 1) % capacity == front;}bool isEmpty(){return front ==-1;}void enqueue(Car car) {if (!isFull()){if (isEmpty()){front = 0;}rear =(rear + 1) % capacity; queueArrayrear = car;} else {std::cout <<"便道已满,无法等待!"<< std::endl;}}Car dequeue(){if (!isEmpty()){Car car = queueArrayfront;if (front == rear) {front = rear =-1;} else {front =(front + 1) % capacity;}return car;} else {std::cout <<"便道为空!"<< std::endl;return {-1, -1, -1};}}Car frontElement(){if (!isEmpty()){return queueArrayfront;} else {std::cout <<"便道为空!"<< std::endl;return {-1, -1, -1};}}};```2、主函数实现```cppint main(){int parkingLotCapacity = 10; //假设停车场容量为 10 Stack parkingLot(parkingLotCapacity);Queue waitingQueue(parkingLotCapacity);int choice;while (true) {std::cout <<"1、车辆进入停车场" << std::endl;std::cout <<"2、车辆离开停车场" << std::endl;std::cout <<"3、显示停车场状态" << std::endl;std::cout <<"4、退出" << std::endl;std::cout <<"请选择操作:";std::cin >> choice;switch (choice) {case 1: {int carNumber;std::cout <<"请输入车辆号码:";std::cin >> carNumber;Car car ={carNumber, time(NULL),-1};if (!parkingLotisFull()){parkingLotpush(car);std::cout <<"车辆"<< carNumber <<"进入停车场" <<std::endl;} else {waitingQueueenqueue(car);std::cout <<"停车场已满,车辆"<< carNumber <<"在便道等待" << std::endl;}break;}case 2: {int carNumber;std::cout <<"请输入要离开的车辆号码:";std::cin >> carNumber;Car car;bool found = false;for (int i = parkingLottop; i >= 0; i) {if (parkingLotstackArrayicarNumber == carNumber) {car = parkingLotpop();cardepartureTime = time(NULL);found = true;break;}}if (found) {int parkingTime = difftime(cardepartureTime, cararrivalTime);double parkingFee = parkingTime 2; //假设每单位时间停车费为2 元std::cout <<"车辆"<< carNumber <<"离开停车场,停车时间:"<< parkingTime <<"秒,停车费用:"<<parkingFee <<"元" << std::endl;if (!waitingQueueisEmpty()){Car waitingCar = waitingQueuedequeue();parkingLotpush(waitingCar);std::cout <<"便道上的车辆"<< waitingCarcarNumber <<"进入停车场" << std::endl;}} else {std::cout <<"未找到要离开的车辆" << std::endl;}break;}case 3: {std::cout <<"停车场内车辆:"<< std::endl;for (int i = parkingLottop; i >= 0; i) {std::cout << parkingLotstackArrayicarNumber <<"";}std::cout << std::endl;std::cout <<"便道上等待的车辆:"<< std::endl;if (!waitingQueueisEmpty()){for (int i = waitingQueuefront; i!= waitingQueuerear; i =(i + 1) %waitingQueuecapacity) {std::cout << waitingQueuequeueArrayicarNumber <<"";}std::cout << waitingQueuequeueArraywaitingQueuerearcarNumber<< std::endl;} else {std::cout <<"无" << std::endl;}break;}case 4:return 0;default:std::cout <<"无效的选择,请重新输入" << std::endl;}}return 0;}```六、实验结果1、车辆正常进入停车场,并在停车场已满时在便道等待。
数据结构--停车场管理-完整版-实习报告

实习报告题目:停车场管理一.需求分析1.用栈来表示停车场,用队列来表示停车道。
2.用户需输入车辆的必要信息,如车辆的到达或离开,汽车牌号以及到达或离去的时刻。
停车场的容量及单位时间的停车费由编程序者自行设置,结构需输出车辆停车所需缴纳的费用。
3.本程序要求对车辆的动态能够输出具体的信息内容,包括停车或离开的时间,位置,及所需缴纳的停车费。
4.测试数据为:N=2,输入数据为:(’A’,1,5),(‘A’,2.,10), (‘D’,1,15), (‘A’,3,20), (‘A’,4,25), (‘A’,5,30),(‘D’,2,35), (‘D’,4,40), (‘E’,0,0). 其中:’A’表示到达,’D’表示离去,’E’表示输入结束。
5.程序执行的命令为:1.创建栈和队列。
2.对车辆的行为进行相应的处理。
3.输出车辆的信息。
二.概要设计1.设定栈的抽象数据类型定义:ADT Stack{数据对象:D={ai|ai属于Elem,i=1,2……,n, n>=0}数据关系:R1={<ai-1, ai>| ai-1,ai属于D,i=2,……,n}基本操作:initStack(&S)操作结果:构造一个空栈S.pop(&S,&e)初始条件:栈S已存在。
操作结果:删除S的栈顶元素,并以e返回其值。
push(&S,&e )初始条件:栈S已存在。
操作结果:在栈S的栈顶插入新的栈顶元素e。
lengthstack(S)初始条件:栈S已存在。
操作结果:返回S中的元素个数,即栈的长度。
}ADT Stack;2.设定队列的抽象数据类型定义:ADT Queue{数据对象:D={ai| ai属于Elem, i=1,2,……,n, n>=0}数据关系:R1={<ai-1 ,ai>| ai-1,ai 属于D,i=2,……,n}基本操作:initqueue(&Q)操作结果:构造一个空队列Q.enqueue(&Q, e)初始条件:队列Q已存在。
数据结构停车场管理实验报告

停车场管理实验报告姓名:学号:学院:继续教育学院班级:计算机科学与技术一.实验目的和要求熟练栈和队列的结构特性,掌握在实际问题背景下的应用二.实验主要内容以栈模拟停车场,以队列模拟车场外的便道,按照从终端读入的输入数据序列进行模拟管理。
每一组输入数据包括三个数据项:汽车“达到”或“离去”信息、汽车牌照号码以及达到或离去的时刻。
对每一组输入数据进行操作后的输出信息为:若是车辆达到、则输出汽车在停车场内或便道上停车位置;若是车辆离去,则输出汽车在停车场内停留的时间和应交纳的费用(在便道上停留的时间不收费)。
栈以顺序结构实现,队列以链表结构实现。
三.实验仪器和环境PC机Windows xp Visual c++ c语言四.实验原理1.概要设计(1)抽象数据类型定义ADT Stack{数据对象:D={ai|ai ∈ElemSet, i=1,2,…n;n>0}数据关系:R1={<ai-1,ai>|ai-1,ai ∈D,i=2,…n}基本操作:InitStack(&S)操作结果:构造一个空栈S。
Push(&S,e)初始条件:栈S已存在。
操作结果:插入e为新的栈顶元素Pop(&S,&e)初始条件:栈S已存在。
操作结果:删除S的栈顶元素,并且用e返回。
}ADT StackADT Queue {数据对象:D={ai|ai ∈ElemSet, i=1,2,…n; n>0}数据关系:R1={<ai-1,ai>|ai-1,ai ∈D, i=2,…n}其中:a1为队头, an为队尾基本操作:InitQueue(&Q);操作结果:构造一个空队列QEnQueue(&Q,&e);初始条件:对列Q已存在。
操作结果:插入元素e为Q的新队尾元素。
DeQueue(&Q,&e);初始条件:对列Q已存在。
操作结果:删除Q的队头元素, 并用e返回。
数据结构-停车场管理系统实验报告

数据结构-停车场管理系统实验报告数据结构停车场管理系统实验报告一、实验目的本次实验旨在通过设计和实现一个停车场管理系统,深入理解和应用数据结构的知识,包括栈、队列、链表等,提高编程能力和解决实际问题的能力。
二、实验环境本次实验使用的编程语言为C++,开发环境为Visual Studio 2019。
三、需求分析1、停车场内有固定数量的停车位。
2、车辆进入停车场时,记录车辆信息(车牌号、进入时间)。
3、车辆离开停车场时,计算停车费用并输出相关信息。
4、能够显示停车场内车辆的停放情况。
四、数据结构设计1、为了实现车辆的先进先出,选择队列来存储停车场内的车辆信息。
2、用栈来存储临时停放的车辆信息,以便在停车场已满时进行处理。
五、算法设计1、车辆进入停车场检查停车场是否已满。
如果未满,将车辆信息加入队列,并记录进入时间。
2、车辆离开停车场在队列中查找要离开的车辆。
计算停车时间和费用。
将车辆从队列中删除。
3、显示停车场内车辆停放情况遍历队列,输出车辆信息。
六、主要代码实现```cppinclude <iostream>include <string>include <ctime>using namespace std;//车辆结构体struct Car {string licensePlate; //车牌号time_t entryTime; //进入时间};//队列类class Queue {private:Car data;int front, rear, capacity;public:Queue(int size) {capacity = size;data = new Carcapacity;front = rear = 0;}~Queue(){delete data;}bool isFull(){return (rear + 1) % capacity == front;}bool isEmpty(){return front == rear;}void enqueue(Car car) {if (isFull()){cout <<"停车场已满!"<< endl; return;}datarear = car;rear =(rear + 1) % capacity;}Car dequeue(){if (isEmpty()){cout <<"停车场为空!"<< endl;return Car();}Car car = datafront;front =(front + 1) % capacity;return car;}void display(){if (isEmpty()){cout <<"停车场内没有车辆。
数据结构实验报告模拟停车场管理

数据结构实验报告模拟停车场管理实验目的:通过模拟停车场管理的过程,理解数据结构的应用和实际工程问题的解决思路。
实验内容:1.设计停车场类和车辆类,并实现相关操作方法。
2.模拟停车场管理的过程,包括车辆的进入和离开。
3.根据实际需求设计停车场管理算法,如何选择停车位和调度车辆等。
实验步骤:1.设计停车场类停车场类需要保存停车位的信息,可以使用数组或链表实现。
需要提供以下方法:- void addCar(Car car):将车辆添加到停车场,如果停车场已满,则禁止入场。
- void removeCar(Car car):将车辆从停车场移除,并更新停车位信息。
- int getAvailableSpaces(:返回停车场中当前可用的停车位数量。
2.设计车辆类车辆类需要保存车辆的信息,如车牌号、车型等。
3.实现停车场管理算法停车场管理需要考虑车辆进入和离开的顺序,以及停车位的选择等问题。
可以使用队列或堆栈等数据结构来保存车辆的进出顺序。
停车位的选择可以根据具体算法进行,如先到先得、最近最便等原则。
4.完成模拟停车场管理过程的代码根据实际需求,编写代码模拟车辆进入和离开停车场的过程。
可以通过输入车辆信息和操作指令来模拟。
5.测试与优化对停车场管理算法进行测试,并根据实际情况进行优化。
可以通过增加数据量、调整车辆进出顺序等方式进行测试,并根据测试结果进行优化。
实验结果:经过实验测试,停车场管理系统可以良好地处理车辆的进入和离开,并正确计算可用停车位的数量。
通过合理的停车位选择算法,确保了车辆进出的顺序。
实验总结:通过本次实验,我们学习了如何利用数据结构来实现停车场管理系统。
停车场管理系统是一种常见的实际应用,对于解决停车难问题具有重要意义。
在实验过程中,我们掌握了设计和实现停车场类、车辆类以及停车场管理算法的方法,加深了对数据结构的理解和应用。
在实验过程中,我们还发现停车场管理算法可以通过不同的策略进行优化,如最大化停车利用率、最小化顾客等待时间等。
数据结构用栈和队列创建停车场管理系统实验报告

数据结构用栈和队列创建停车场管理系统实验报告一、实验背景及目的随着城市化进程的不断加速,车辆数量急剧增长,停车难成为了城市发展中的一个重要问题。
为了解决这一问题,需要建立高效的停车场管理系统。
数据结构中的栈和队列是常用的数据结构,可以用来创建停车场管理系统。
本次实验旨在通过使用栈和队列来创建一个停车场管理系统,并测试其功能。
二、实验原理及方法1. 停车场管理系统基本原理停车场管理系统主要包括三个部分:入口、出口和停车位。
当车辆到达入口时,需要检查是否有空余的停车位;如果有,则将其分配一个位置并记录下来;否则,需要让其等待直到有空余位置。
当车辆离开时,需要释放该位置并更新记录。
2. 使用栈和队列创建停车场管理系统(1)使用栈来模拟停车位由于每个停车位只能容纳一辆汽车,可以使用栈来模拟每个停车位。
当有新的汽车进入时,将其压入栈中;当汽车离开时,则将其从栈中弹出。
(2)使用队列来模拟等待区由于等待区可以容纳多辆汽车,可以使用队列来模拟等待区。
当有新的汽车到达时,将其加入队列尾部;当有车位空余时,则从队列头部取出一辆汽车进入停车场。
3. 实验步骤(1)创建停车场管理系统的数据结构:使用栈和队列分别来模拟停车位和等待区。
(2)实现停车场管理系统的基本操作:包括汽车进入、离开、查询空余停车位等操作。
(3)测试停车场管理系统的功能:模拟多辆汽车进出停车场,检查系统是否能够正确地分配和释放停车位,并且能够正确地记录空余停车位数。
三、实验结果与分析本次实验使用栈和队列创建了一个简单的停车场管理系统,并测试了其基本功能。
在测试过程中,我们模拟了多辆汽车进出停车场,并检查了系统能否正确地分配和释放停车位。
实验结果表明,该系统可以正常工作,并且能够正确地记录空余停车位数。
四、实验总结通过本次实验,我们学习了如何使用栈和队列来创建一个简单的停车场管理系统。
同时,我们也深刻认识到数据结构在实际应用中的重要性。
在今后的学习中,我们将继续深入学习数据结构,并探索其更广泛的应用。
停车场管理系统课程设计报告

开始 Time++ Time<24 YES 生成新来车辆 车辆达成 离开条件 YES NO
NO
便道未满, 车 辆还有剩余
车辆离开 YES NO
车辆进入便道
停车场有空位
NO
停车场未满
YES 便道车辆进入停车场
YES 车辆进入停车场 输出一天统 计数据
NO 车辆有剩余 结束 YES 输出 FULL
函数功能: void OpenForDay()//初始化,打开文件,变量赋初值 void NewCars()//通过随机数生成每小时新来车辆的数目及每辆车的车牌号 void CarArrived()//车辆到达,停车场空位减少,相应车位记为非空,开始记录车辆的 到达时间、停留时间及车号 void CarDeparture()//车辆离开,停车场空位增加,车位初始化,计算车费并输出提
2.接着是对整个停车场系统的分析,第一,这个停车场管理系统是模拟了一个 30 车位 的停车场与 5 车位的便道相结合的系统, 功能是罗列出一天内停车场内车辆出入情况以 及每辆车停泊的位置(系统还会给出车的车牌号)和时间,最后是统计车辆出入的总车 次,车辆停泊的总时间,停车场的总收入;第二,明确一些临界问题。1,若车位已满, 则车必须在便道内等待,不需要付费;2,车辆停留 1 小时后离开的概率是 25%,每多 停留 1 小时后离开概率增加 25%,4 小时后一定要离开;3,若有空车位,但此时便道上 还有车在等待,便道上的车先进入停车场,新到的车仍需在便道上等待;
70337.This car has stayed for 1 hour(s).30 dollar should be payed for. 60296.This car has stayed for 3 hour(s).90 dollar should be payed for. 60297.This car has stayed for 3 hour(s).90 dollar should be payed for. 60320.This car has stayed for 2 hour(s).60 dollar should be payed for. 60321.This car has stayed for 2 hour(s).60 dollar should be payed for. 70324.This car has stayed for 2 hour(s).60 dollar should be payed for. 70325.This car has stayed for 2 hour(s).60 dollar should be payed for. 70329.This car has stayed for 1 hour(s).30 dollar should be payed for. 60299.This car has stayed for 3 hour(s).90 dollar should be payed for. 60296.This car has stayed for 4 hour(s).120 dollar should be payed for. 60311.This car has stayed for 3 hour(s).90 dollar should be payed for.
数据结构 停车场停车管理系统

数据结构课外实践报告项目名称:停车场停车管理系统所在班级:10级信管1班小组成员:杨剑楠孙迎张可可吴亮指导教师:王希杰起止时间:12月4日——12月22日项目基本信息课外实践评定成绩记录一、问题描述及分析1、问题描述:停车场停车管理系统:设一个可以停放n辆汽车停车场,只有一个大门可供汽车进出。
汽车在停车场内按车辆到达时间的先后顺序停放,若车场内已停满n辆车,那么后来的车只能在门外的便道上等候;一旦有车开走,则排在便道上的第一辆车即可开入。
当停车场内某辆车要离开时,在它之后进入的车辆必须先依次退出车场为它让路,待该辆车开出大门外,其它车辆再按原次序进入车场。
每辆停放在车场的车在它离开停车场时必须按它停留的时间长短交纳费用。
2、需求分析:(1)题目中要根据车辆停留时间收费,故在定义结构体时还需要一个时间的结构体用来保存车辆到达和离开的时间。
(2)由于停车场的进出符合栈的“后进先出,先进后出”的操作特点,因此,需要设一个栈来模拟停车场。
(3)根据便道停车的特点,先排队的车辆先离开便道进入停车场,符合队列的“先进先出,后进后出”的操作特点,因此,需要用一个队列来模拟便道。
(4)而中间车辆提出离开停车场,后到达的车辆都须先离开停车场为它让路,然后这些车辆再依原来次序进入停车场,而这个同样符合“后进先出,先进后出”的特点,因此还需一个栈来作为临时保存车辆的地方。
二、功能模块及数据结构描述1、功能模块:★主要功能:(1)车辆到达(2)车辆离开(3)信息查询★功能模块图:图1.功能模块图2、数据结构描述:(1)车辆信息的表示车辆可以看成是一个节点,设计成一个结构题,车辆信息包括:车牌号,车辆到达时间,车辆离开时间,定义如下:typedef struct node{char num[10]; //车牌号Time reach; //保存车辆到达的时间Time leave; //保存车辆离开的时间}CarNode;(2)时间、栈和队列的定义时间有小时、分钟和秒表示,即设计三个变量分别表示如下:typedef struct time{int hour;int min;int sec;}Time;停车场内用栈表示:typedef struct NODE{CarNode *stack[Max+1]; //栈用顺序表示int top;}SqStackCar;便道上的车辆表示:typedef struct car{CarNode *data; //便道上的车用链表表示struct car *next;}QueueNode;typedef struct Node{QueueNode *head; //设置头指针、尾指针QueueNode *rear;}LinkQueueCar;三、主要算法流程描述及部分核心算法(1)主函数的算法流程描述:图2.主函数流程图(2)核心算法流程描述:☆车辆到达:Arrival函数主要通过if(Enter->top<Max)来判断到达车辆是进车场还是进便道,如果进车场,就把top加1,同时记录进车场的位置和时间,然后结点进栈;如果进便道,进行队列操作。
c++数据结构,停车场系统 实验报告

HDU 软件工程学院《程序设计实践(下)》设计报告姓名学号专业班级10级软件工程6班提交日期成绩指导教师问题解析(对问题的分析、解题思路与解题方法)题目一: 停车场管理系统[实验目的]综合运用线性表、队列、排序、随机数等数据结构知识,掌握并提高分析、设计、实现及测试程序的综合能力。
[实验内容及要求]停车场拥有M个车位和一条进入停车场的便道,便道上最多停放N辆汽车。
汽车要想进入车位,首先进入便道等候。
若有空闲车位,则停车入位,否则在便道继续等候,直至有车位空出。
若便道已经停满等候的汽车,后到达的汽车只能离开,选择其他停车场。
设计一个停车场管理系统,模拟停车场的运作,并统计停车场的收入。
(1)使用随机数产生某一时间段内进入和离开停车场的车辆数目;(2)存储并记录如下数据项:汽车到达和离去的时间及汽车的车号;(3)车辆到达时,提示汽车的停车位置编号(为车辆分配编号最小的可用车位),若车位已满给出相应提示;(4)汽车离去时,输出汽车在停车场内停留的时间和应交纳的费用。
(5)对该停车场进行统计:统计每天到达、离开的车次,停车总时数、每天停车场的收入等。
[问题分析]停车场系统,可以利用之前写过的队列,链表,排序等知识实现模拟,可以手工输入车的牌号和进入时间,但是这样可能给测试人员带来一定的麻烦,我们可以利用随机数字定义一个数组来实现车牌的分配和时间的分配,车牌利用五位数来简单模拟,前两位用英文字母后三位用数字,这样分配的车牌有26*26*10*10*10=676000种可能,所以不用检查车牌号是否相同,这样就节省了很多用来查找的时间。
[解决思路]1、可以用队列模拟便道,利用入队列,出队列完成车辆的进入和离开的模拟。
题目要求,进入便道不计费,可以仅仅记录车牌来实现2、可用车位需按照编号排序,申请车位时分配编号最小的车位,可用车位动态变化,可以选择利用堆排序来实现,当出来一个车的时候,3、利用rand()随机产生随机数,来完成每小时进入车场的车辆和离开的车辆,对于车辆一小时离开的概率为25%,增加一小时离开的概率多加25%,可以用累加的形式,当车辆进入的时候,就分配给车辆一个参数,这个参数用来实现车辆在车场中的停留时间的记录4、车场刚开始,初始化的时候,就按顺序分配一些车场位置编号,用来记录与车牌对应的位置,停车场还有个参数,用来记录,此位置是否有车,如果有车就设置为true,如果没车就为false,用来统计车场中的车辆5、统计离开的车辆,当车辆离开的时候,就把参数设置为false[任务分工及进度计划]12月10号上午八点半-12月10中午完成类的设计,以及设计思路12月10号下午-12月11号全天完成类的实现12月11号-12月13号中间的空闲时间完成界面的美化和测试12月17号晚上-12月18号完成哈弗曼译码的设计和实现,由于之前这个程序已经写过,设计和编写都节省了很多时间12月19号-12月20号完成实验报告[数据结构选择、算法设计(伪代码,算法思想)]数据结构中设计到的算法有:1.队列2、链表(用结构体代替)--------------------------------------------主体函数---------------------------------------------#include <cstdlib>#include <iostream>#include "Car.h"#include "SeqQueue.h"#include"Park.h"#include <windows.h>#include <ctime>----------------------------------------------------------------------------------------------class Car{private:string chepai;string jinru_time;string likai_time;double begin;double end;double cost_money;public:Car();void shuruchepai(string );void jinru(string );void likai(string );void cost(double cost);double huafei();string getchepai()string getjinru()string getlikai()};--------------------------------------------------------------------------------------------emplate<class T>class SeqQueue{private:int front,rear;T *elem;int size;int len;public:SeqQueue(int size);~SeqQueue();bool IsEmpty();void enqueue(T x);T dequeue();int num();};-------------------------------------------------------------------------------------------------class Park{private:string chepai;string jinru_time;char likai_time[9];string likai2;double begin;double end;double cost_money;bool isempty;int stay_time;int times_likai;int weizhihaoma;double sum_money;public:Park(){ isempty=false;stay_time=0;times_likai=0;sum_money=0;}void shuruchepai(string a)void jinru(string a)-void weizhi(int a)void haha(string a)string gethaha()void sum_money1(double a)double money1()void likai(int k)void cost(double cost)double huafei()string getchepai()string getjinru()char* getlikai()void run()int getweizhihaoma()void setweizhihaoma(int a)void goaway()};---------------------------------------------------------------------------------------------class Che{public:Che();void ShuRuChePai(string);//输入车牌void JinRu(string);//输入车进入停车场的时间void LiKai(string);//输入车离开停车场的时间bool Compare(string);double ShuChuM(double);private:string s;//车牌号记录double st;//车到停车场的时间double et;//车离开停车场的时间};//车的类------------------------------------------------------------------------------------------------[测试方法、测试数据与测试结果]测试方法:需要输入停车场的停车位的数量和便道中可以等待的车位的数量,以及每小时停留在停车场中的花费。
数据结构设计报告停车场管理系统方案

数据结构设计报告停车场管理系统方案数据结构设计报告:停车场管理系统方案一、引言随着汽车数量的不断增加,停车场管理成为了一个重要的问题。
一个高效、准确、便捷的停车场管理系统对于提高停车场的运营效率、服务质量以及用户体验都具有重要意义。
本报告将详细介绍一种停车场管理系统的数据结构设计方案,旨在为相关开发人员提供参考。
二、需求分析(一)基本功能需求1、车辆的入场登记,包括车辆信息、入场时间等。
2、车辆的出场结算,根据停车时间计算费用。
3、车位的实时监控,显示空闲车位数量和位置。
4、数据的存储和查询,如车辆历史停车记录等。
(二)性能需求1、系统响应迅速,车辆入场和出场操作能够在短时间内完成。
2、数据的准确性和完整性,确保停车信息不丢失、不错误。
(三)用户需求1、为停车场管理人员提供简洁、直观的操作界面。
2、为车主提供清晰的停车引导和费用信息。
三、数据结构设计(一)车辆信息结构体```ctypedef struct {char licensePlate20; //车牌号time_t entryTime; //入场时间time_t exitTime; //出场时间float parkingFee; //停车费用} Vehicle;```(二)车位信息结构体```ctypedef struct {int parkingSpaceNumber; //车位编号int status; // 0:空闲 1:占用} ParkingSpace;```(三)停车场结构体```ctypedef struct {ParkingSpace parkingSpaces; //车位数组int totalSpaces; //总车位数Vehicle vehicles; //车辆数组int totalVehicles; //车辆总数} ParkingLot;```(四)数据存储1、使用文件存储停车场的基本信息,如总车位数等。
2、使用数据库存储车辆的停车记录,便于查询和统计。
数据结构课程设计停车场管理报告

数据结构课程设计《停车场管理》班级:姓名:学号:设计日期:2012年7月2日——2012年7月11日1)需求分析本次的数据结构课程设计所选的题目是停车场管理系统。
根据题目要求,已知停车场是一个可停放n辆汽车的狭长通道,只有一个大门可供汽车出入,由此可将停车场的类型定义为栈,其容量为n。
当停车场已经停满n辆车后,后来的车辆只能在便道上等待。
当停车场内有车开走,便道上的第一辆汽车便可以进入停车场中。
根据其先入先出的特点,可以将便道的类型定义为队列,容量不限。
由题目可知,需停车辆的信息包括:车牌号码、汽车“到达”“离去”的信息、“到达”“离去”的时刻等。
按照从终端读入的数据序列进行模拟管理。
每辆车需要三个数据,其中车辆数据为:A表示到达,D表示离去,E表示程序结束。
车辆牌照号码为整型数据,车辆到达或离开的时刻同样为整型数据。
输入车辆到达应该输出的信息为:汽车在停车场内或便道上的停车位置;输入车辆离开应该输出的信息为汽车在停车场内停留的时间和应交纳的费用(在便道上停留的时间不收费)。
停车场管理系统主要实现以下几个功能:(1)根据车辆到达停车场到车辆离开停车场时所停留的时间进行计时收费。
(2)该程序设计能够通过车牌号能查到该车辆在停车场或便道中的位置。
(3)当有车辆从停车场离开时,等待的车辆按顺序进入停车场停放。
实现停车场的调度功能。
该程序设计可以完整的模拟停车场的管理过程。
2)概要设计停车场管理系统是充分利用数据结构中栈和队列的思想实现的,栈是一种只能在叫做栈的一段进行进栈或者出栈操作的线性数据结构。
栈的主要特点是”后进先出”,即后进栈的元素先处理。
停车场的容量即为栈的存储空间,停车场的车辆的停靠是无秩序的,因此采用链式存储的方式更适合,也方便车辆的调度。
队列是限定仅能在表的一端进行插入,在表的另一端进行删除的线性表。
队列中可以插入的一端称为队尾,可以删除的一端称为队首。
把一个元素插入队列中的操作为进队,队列中删除一个元素的操作为出队。
数据结构停车场实习报告

一、实习背景随着我国经济的快速发展,城市车辆数量逐年攀升,停车难问题日益突出。
为了解决这一问题,我们需要设计一个高效、便捷的停车场管理系统。
本次实习以数据结构为基础,设计并实现了一个停车场管理系统。
二、实习目的1. 理解并掌握数据结构在实际问题中的应用;2. 提高编程能力和算法设计能力;3. 掌握停车场管理系统的设计与实现方法;4. 分析并解决实际问题。
三、系统设计1. 系统功能(1)车辆进出管理:实现车辆进入和离开停车场的功能,包括记录车辆信息、计算停车费用等。
(2)车位管理:实时显示停车场内剩余车位数量,实现车位分配和回收。
(3)数据统计:统计停车场使用情况,包括车辆进出次数、停车时间等。
(4)异常处理:处理车辆进出异常情况,如超时、非法操作等。
2. 数据结构设计(1)停车场:使用栈结构存储停车场内的车辆信息,栈底为停车场最里面,栈顶为停车场最外面。
(2)便道:使用队列结构存储便道上的车辆信息,队列头为便道最外面,队列尾为便道最里面。
(3)车辆信息:包括车辆牌照、进入时间、离开时间、停车费用等。
3. 算法设计(1)车辆进入停车场:判断停车场是否已满,若不满,则将车辆信息压入栈中;若满,则将车辆信息入队。
(2)车辆离开停车场:判断便道是否为空,若为空,则从栈中弹出车辆信息;若不为空,则从队列中出队车辆信息。
(3)计算停车费用:根据车辆停留时间计算停车费用。
四、实习过程1. 需求分析:了解停车场管理系统的基本需求,确定系统功能。
2. 设计阶段:设计系统架构、数据结构、算法等。
3. 编码阶段:根据设计文档,使用C++语言进行编程实现。
4. 测试阶段:编写测试用例,对系统进行功能测试、性能测试等。
5. 调试阶段:针对测试过程中发现的问题进行调试和优化。
五、实习结果1. 系统功能实现:停车场管理系统已实现车辆进出管理、车位管理、数据统计、异常处理等功能。
2. 数据结构应用:成功将栈和队列应用于停车场管理系统,提高了系统性能。
数据结构停车场收费系统管理实践报告

数据结构停车场收费系统管理实践报告停车场收费系统,这个话题一提起来,大家都不陌生。
说实话,谁没在大街小巷的停车场为了一块停车费而头疼过呢?尤其是在城市里,停车位稀缺,收费又是天价,弄得有时候进个停车场就像进了赌场,不知道到底会“亏”多少。
今天就聊聊我最近搞的一次“停车场收费系统管理实践”,说实话,整个过程就像是看一部高能悬疑片,既有趣又有点小紧张。
停车场的管理,说白了,就是得搞清楚停车位的利用率,然后合理收费,确保不亏本。
这听起来简单,但要做好,光靠脑袋里的想法可不行。
得用点“硬核”的东西,比如数据结构。
说到这里,很多人可能开始懵了:数据结构?那是啥?别担心,数据结构就是一堆有序的、按照特定规则组织起来的数据,简单点说,就是停车场的“内部管理”嘛。
比如你停车时,停车场会分配一个车位给你,那些车位就得按照一定的规则排序,不然你想找个位置就得像大海捞针一样。
我们做的这个停车场收费系统,首先就要搞清楚如何让停车位、车主和收费三个元素高效地“打交道”。
你想,假如停车场没有规则,那就乱套了,车位没人用,车主也找不到地方停车,收费自然就乱七八糟了。
搞清楚了这些,系统的基础架构就稳了。
说到收费,最常见的就是按时间收费。
我们通过程序算出来每个车主停车的时长,再按照预设的费用标准进行结算。
这里就得用到“链表”这个数据结构了。
车主的停车信息就像一颗颗“珠子”串在一起,每个珠子里面有车主的停车时间、车牌号、停车收费等数据。
如果一个车主停车时间很长,那收费就得按时间增加,反之,停车时间短,自然收费也少。
这种管理方式非常高效,不容易出错,而且能够快速计算每个车主的停车费。
哎,说实话,我一开始听到链表这俩字儿时,还挺疑惑的,感觉好像很“高大上”,但一弄明白后,才发现原来就是个简单又实用的东西,跟停车场的条理化管理一样,处理起来简洁又明了。
再说到停车收费的“智能化”,以前我们去停车场,不是排队等着人工收费,就是站在收费亭前一脸懵逼,不知道到底该怎么付。
数据结构-停车场管理系统实验报告

..《数据结构》课程设计报告设计题目停车场管理系统专业软件工程班级12软工姓名纪凯延学号*********完成日期2014.06.15目录1. 问题描述………………………………………………页码2. 系统设计………………………………………………页码3. 数据结构与算法描述…………………………………页码4. 测试结果与分析………………………………………页码5. 总结…………………………………………………页码6. 参考文献………………………………………………页码附录程序源代码…………………………………………页码(要求:给出一级目录,宋体加粗,四号字,1.5倍行距。
)课程设计题目(要求:正文部分一律用小四号字,宋体,1.5倍行距。
一级标题靠左,四号加粗。
二级、三级标题靠左,小四加粗。
)1.问题描述设有一个可以停放n辆汽车的狭长停车场,它只有一个大门可以供车辆进出。
车辆按到达停车场时间的早晚依次从停车场最里面向大门口处停放(最先到达的第一辆车放在停车场的最里面)。
如果停车场已放满n 辆车,则后来的车辆只能在停车场大门外的便道上等待,一旦停车场有车开走,则排在便道上的第一辆车就进入停车场。
停车场如有某辆车要开走,在它之后进入停车场的车都必须先退出停车场为它让路,待其开出停车场后,这些车辆再依原来的次序进场。
每辆车在离开停车场时,都应根据它在停车场停留的时间长短交费。
如果停留在便道上的车未进停车场就要离去,允其离去,不收停车费,并且仍然保持在便道上等待的车辆的次序。
编制一程序模拟该停车场的管理。
2. 系统设计2.1 设计目标•要求程序输出每辆车到达后的停车位置(停车场或便道上),以及某辆车离开停车场时应交纳的费用和它在停车场停留的时间。
•2.2 设计思想此停车场管理系统是在一个狭长的通道上的,而且只有一个大门可以供车辆进出,并且要实现停车场某辆车要离开时,在它之后进入停车场的车都必须先退出停车场为它让路,待其开出停车场后,这些辆再依原来的次序进场的功能,就可以设计两个堆栈,其中一个堆栈用来模拟停车场,另一个堆栈用来模拟临时停车场,该临时停车场用来存放当有车辆离开时,原来停车场为其让路的车辆。
数据结构设计方案报告停车场管理系统

数据结构课程设计报告题目汽车场停车管理系统程序班级软件技术2班姓名梁瑞瑞学号1032104220停车场管理系统1 问题描述设停车场是一个可停放n辆汽车的狭长通道,且只有一个门可供出入。
汽车在停车场内按车辆到达时间的先后顺序,依次由北向南排列(门在最南端,最先到达的第一辆车停放在车场的最北端),若车场内已停满n辆汽车,则后来的汽车只能在门外的便道上等候,一旦有车开走,则排在便道上的第一辆汽车即可开入;当停车场内某辆车要离开时,在它之后进入的车辆必须先退出车场为它让路,待该辆车开出大门外,其他车辆再按原顺序进入车场,每辆停放在车场的车在它离开停车场时必须按它停留的时间长短交纳费用。
2需求分析(1)根据车辆到达停车场到车辆离开停车场时所停留的时间进行计时收费。
(2)当有车辆从停车场离开时,等待的车辆按顺序进入停车场停放。
实现停车场的调度功能。
(3)用顺序栈来表示停车场,链队表示停车场外的便道。
(4)显示停车场信息和便道信息。
(5)程序执行的命令为:○1车辆进入停车场○2车辆离开停车场○3显示停车场的信息。
(以栈S作为停车场,栈S1作为让路的临时停车点,队列Q作为车等待时用的便道。
stack[Max+1]作为车场能够容纳的车辆数,num[10]作为车所在位置的编号,并且限定车场最多能够容纳10辆车.(2).用户根据系统所规定并提示的要求输入有关内容,车场所能容纳的车辆数由收费人员来确定,车辆离开时,车主还可以得到收据,便于收费的管理使用;并且系统程序所提供的一些信息可通过特殊硬件显示出来,供车主了解信息,准确有效的停车。
(3).程序应该能够显示当前存车信息以及等待车的信息,便于管理人员对车辆进行管理,并且能够给等待的车提供一些信息,便于他们能够及时的停车。
(4).程序执行的命令为:输入进站信息->输入出站信息->打印收据(5).改程序系简单的用于运用栈与队列基本知识的工具,不能用于现实中,特别是栈“先进后出”的规则大大限定了该程序的推广,现实世界的车站管理系统比这个远远复杂的多。
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
数据结构课程设计报告项目名称:停车管理系统姓名:鉏飞祥学号:E********专业:软件工程2016-6-28安徽大学计算机科学与技术学院1 .需求分析1.1问题描述停车场内只有一个可停放n辆汽车的狭长通道,且只有一个大门可供汽车进出。
汽车在停车场内按车辆到达时间的先后顺序,依次由北向南排列(大门在最南端,最先到达的第一辆车停放在停车场的最北端),若车场内已停满n辆汽车,则后来的汽车只能在门外的便道上等候,一旦有车开走,则排在便道上的第一辆车即可开入;当停车场内某辆车要离开时,在它之后开入的车辆必须先退出车场为它让路,待该辆车开出大门外,其它车辆再按原次序进入车场,每辆停放在车场的车在它离开停车场时必须按它停留的时间长短交纳费用。
试为停车场编制按上述要求进行管理的模拟程序。
1.2基本要求(1)输入的形式和输入值的范围;七位字符车牌号空格时间(12:30)如:A123456 12:30(2)输出的形式;车牌号时间如:A123456 12:30(3)程序所能达到的功能。
模拟车子排队和进出车库的情况,并且根据时间计费,随时显示当前车库车辆情况。
2. 概要设计(1) 数据结构每个汽车的基本元素:struct car{char id[8];int h;/*时*/int m;/*分*/struct car *next;};栈的基本元素:struct sqstack{struct car *base;struct car *top;int stacksize;};(2)程序模块void intstack(struct sqstack &S)/*构造栈*/void push_stack(struct sqstack &S,struct car *e) /*e入栈*/void pop_stack(struct sqstack &S,struct car *e) /*出栈顶元素到e*/void creat_q()/*创建队列*/void push_q(struct car *p)/*车辆入队*/struct car * pop_q()/*车辆出队*/void come_in()/*车辆离开*/void go_out()/*车辆进入*/void interface()/*主菜单*/(4)各模块之间的调用关系以及算法设计3. 详细设计流程图及模块调用如下:4. 测试与分析主界面如下:车库中假设最多停三辆车,加入进入四辆车abcd,则d需要在便道排队:此时若b车开走,显示费用信息,则在便道的d车进入车库:若此时有车进入,则继续在便道排队:5. 附录源程序清单:#include<stdio.h>#include<stdlib.h>#include<malloc.h>#include<string.h>#define MAX 3 /*宏定义车库最大车辆*/ struct car{char id[8];int h;/*时*/int m;/*分*/struct car *next;};int n=0;/*当前车库内的车辆数*/int m=0;/*当前便道的车辆数*/struct car *p1;struct sqstack{struct car *base;struct car *top;int stacksize;};struct sqstack S1,S2;void intstack(struct sqstack &S){S.base=(struct car *)malloc(MAX*sizeof(struct car)); S.top=S.base;S.stacksize=MAX;}void push_stack(struct sqstack &S,struct car *e){strcpy(S.top->id,e->id);S.top->h=e->h;S.top->m=e->m;S.top++;}void pop_stack(struct sqstack &S,struct car *e){S.top--;strcpy(e->id,S.top->id);e->h=S.top->h;e->m=S.top->m;}void creat_q(){p1=(struct car *)malloc(sizeof(struct car));p1->next=NULL;}void push_q(struct car *p){struct car *p2;p2=p1;while(p2->next!=NULL){p2=p2->next;}p2->next=p;p->next=NULL;}struct car * pop_q(){struct car *p;p=p1->next;p1->next=p1->next->next;return p;}void come_in(){void interface();printf("请输入7位车辆车牌号和进入时间\n例如:\nA123456 12:30\n");if(n==MAX){struct car *p;p=(struct car*)malloc(sizeof(struct car));scanf("%s",p->id);scanf("%d:%d",&p->h,&p->m);push_q(p);m++;}else{struct car *p;p=(struct car*)malloc(sizeof(struct car));scanf("%s",p->id);scanf("%d:%d",&p->h,&p->m);push_stack(S1,p);n++;}interface();}void go_out(){struct car* pop_q();void interface();printf("请输入7位车牌号和离开时间\n");char b[8];int h1;int m1;scanf("%s",b);scanf("%d:%d",&h1,&m1);int i;int biaozhi=0;for(i=0;i<n;i++){if(strcmp(b,(S1.base+i)->id)==0){printf("%s 已离开\n计费信息:\n进入时间%d:%d,离开时间%d:%d,(每分钟1元)\n",b,(S1.base+i)->h,(S1.base+i)->m,h1,m1);printf("费用为:%d元\n",(60*(h1-(S1.base+i)->h)+m1-(S1.base+i)->m)*1);int j;for(j=0;j<n-i;j++){struct car *p2;p2=(struct car *)malloc(sizeof(struct car));pop_stack(S1,p2);push_stack(S2,p2);}struct car *pp;pop_stack(S2,pp);for(j=1;j<n-i;j++){pop_stack(S2,pp);push_stack(S1,pp);printf("222\n");}n--;biaozhi=1;if(p1->next!=NULL) /*若便道有车,则便道的车进入车库*/{struct car *ppp;ppp=pop_q();push_stack(S1,ppp);n++;}break;}}if(biaozhi==0){struct car *p,*pp;pp=p1;while(pp->next!=NULL){p=pp;pp=pp->next;if(strcmp(b,pp->id)==0){printf("%s 已离开\n",b);printf("%s 已离开\n计费信息:\n进入时间%d:%d,离开时间%d:%d,(每分钟1元)\n",b,pp->h,pp->m,h1,m1);printf("费用为:%d元\n",(60*(h1-pp->h)+m1-pp->m)*1);p->next=pp->next;m--;biaozhi=1;break;}}}if(biaozhi==0)printf("找不到%s\n",b);interface();}void print(){void push_stack(struct sqstack S,struct car *e);void pop_stack(struct sqstack S,struct car *e);void interface();if(n==0)printf("没有车辆\n");else{printf("**车库现有车辆信息:\n");int i;for(i=0;i<n;i++)printf(" %s %d:%d\n",(S1.base+i)->id,(S1.base+i)->h,(S1.base+i) ->m);struct car *p;p=p1;if(p->next==NULL)printf("**便道无车辆\n");else{printf("**便道现有车辆信息:\n");while(p->next!=NULL){p=p->next;printf(" %s %d:%d\n",p->id,p->h,p->m);}}}interface();}void interface(){int i;printf(" 请输入操作指令\n\n 1:汽车开入\n 2:车辆离开\n 3:显示当前车辆信息\n 0:结束程序\n*******************\n");scanf("%d",&i);switch(i){case 0:return ;break;case 1:come_in();break;case 2:go_out();break;case 3:print();break;};}int main(){system("color a0"); //可以写成 red 调出颜色组system("title 车库管理系统"); //设置cmd窗口标题printf(" ****************欢迎使用停车管理系统*********************\n\n");system("date /T");system("TIME /T");creat_q();intstack(S1);intstack(S2);interface();return 0;}6. 用户使用手册欢迎使用车辆管理系统。