iis服务器助手广告广告
返回顶部
首页 > 资讯 > 后端开发 > 其他教程 >C语言实现停车管理系统的代码怎么写
  • 487
分享到

C语言实现停车管理系统的代码怎么写

2023-06-29 12:06:44 487人浏览 独家记忆
摘要

本篇内容主要讲解“C语言实现停车管理系统的代码怎么写”,感兴趣的朋友不妨来看看。本文介绍的方法操作简单快捷,实用性强。下面就让小编来带大家学习“C语言实现停车管理系统的代码怎么写”吧!设计题目设停车场是一个可以停放n辆汽车的南北方向的狭长通

本篇内容主要讲解“C语言实现停车管理系统的代码怎么写”,感兴趣的朋友不妨来看看。本文介绍的方法操作简单快捷,实用性强。下面就让小编来带大家学习“C语言实现停车管理系统的代码怎么写”吧!

设计题目

设停车场是一个可以停放n辆汽车的南北方向的狭长通道,且只有一个大门可供汽车进出。汽车在停车场内按车辆到达时间的先后顺序,依次由北向南排列(大门在最南端,最先到达的第一辆车停放在车场的最北端),若车场内已停满n辆车,那么后来的车只能在门外的便道上等候,一旦有车开走,则排在便道上的第一辆车即可开入;当停车场内某辆车要离开时,在它之后进入的车辆必须先退出车场为它让路,待该辆车开出大门外,其它车辆再按原次序进入车场,每辆停放在车场的车在它离开停车场时必须按它停留的时间长短交纳费用。试为停车场编制按上述要求进行管理的模拟程序。要求程序输出每辆车到达后的停车位置(停车场或便道上),以及某辆车离开停车场时应缴纳的费用和它在停车场内停留的时间。

需求分析

由于停车场只有一个大门,当停车场内某辆车要离开时,在它之后进入的车辆必须先退出车场为它让路,先进停车场的后退出,后进车场的先退出,符合栈的“后进先出,先进后出”的操作特点,因此,可以用一个栈来模拟停车场。而当停车场满后,继续来到的其它车辆只能停在便道上,根据便道停车的特点,先排队的车辆先离开便道进入停车场,符合队列的“先进先出,后进后出”的操作特点,因此,可以用一个队列来模拟便道。排在停车场中间的车辆可以提出离开停车场,并且停车场内在要离开的车辆之后到达的车辆都必须先离开停车场为它让路,然后这些车辆依原来到达停车场的次序进入停车场,因此在前面已设的一个栈和一个队列的基础上,还需要有一个地方保存为了让路离开停车场的车辆,由于先退出停车场的后进入停车场,所以很显然保存让路车辆的场地也应该用一个栈来模拟。因此,本题求解过程中需用到两个栈和一个队列。栈以顺序结构实现,队列以链表结构实现。

程序代码

#include#include<stdlib.h>#include<stdio.h>#include#define MAXSIZE 5#define price 0.01#pragma warning(disable: 4996)using namespace std;typedef struct time {  int hour;  int min;  }Time;/时间结点/typedef struct carnews {  char num[10];  Time reach;  Time leave; }Carnode;/车辆信息结点/typedef struct NODE {  CarNode* stack[MAXSIZE + 1];  int top; //栈可用的最大容量 }SeqStackCar;/模拟停车场/typedef struct car {  CarNode* data;  struct car* next;}QueueNode; //模拟车进入便道,便道的车进入停车场typedef struct Node {  QueueNode* head; //头指针  QueueNode* rear; //尾指针}LinkQueueCar;/模拟便道/ void InitStack(SeqStackCar*); //创建空栈 int InitQueue(LinkQueueCar*); //创建空队列 int Arrival(SeqStackCar*, LinkQueueCar*); //车辆到达 void Leave(SeqStackCar*, SeqStackCar*, LinkQueueCar*); //车辆离开 void PRINT(CarNode*, int); //输出离开车辆的信息清单 void List(SeqStackCar, LinkQueueCar); //对所用到的函数作提前声明   int main() {    SeqStackCar Enter, Temp;    LinkQueueCar Wait;  int ch;  InitStack(&Enter);//初始化车站  InitStack(&Temp);//初始化让路的临时栈  InitQueue(&Wait);//初始化通道while (1) {cout << "@欢迎使用本停车管理系统@" << endl;cout << “----------------------------------------------------------------” << endl;cout << " # # 1.车辆到达 # # " << endl;cout << " # # 2.车辆离开 # # " << endl;cout << " # # 3.列表显示 # # " << endl;cout << " # # 4.退出系统 # # " << endl;cout << “----------------------------------------------------------------” << endl;cout << “!说明:请注意正确输入时间,在输入‘时'后,按‘ENTER'或者‘空格',再输入‘分'。不要为非数字” << endl;cout << “请输入所需要的服务!(1-4).” << endl;//进入系统的目录显示while (1) {cin >> ch;if (ch >= 1 && ch <= 4)break;else cout << “输入错误!请选择:(1-4).” << endl;}switch (ch) {  case 1:Arrival(&Enter, &Wait); break;//车辆到达  case 2:Leave(&Enter, &Temp, &Wait); break;//车辆离开  case 3:List(Enter, Wait); break;//列表显示信息  case 4:exit(0);//退出主程序  default:break;  } }}void InitStack(SeqStackCar s) {//初始化栈  int i; //停车数量  s->top = 0; //栈顶元素置为0  for (i = 0; i <= MAXSIZE; i++)  s->stack[s->top] = NULL;} int InitQueue(LinkQueueCar Q) {//初始化便道  Q->head = (QueueNode*)malloc(sizeof(QueueNode)); //malloc函数为动态分配空间  if (Q->head != NULL) {  Q->head->next = NULL;  Q->rear = Q->head; //头尾指针置为相等,队列为空  return(1);}else return(-1);}  int Arrival(SeqStackCar* Enter, LinkQueueCar* W) {//车辆到达  CarNode* p;  QueueNode* t;  p = (CarNode*)malloc(sizeof(CarNode));//malloc函数为动态分配空间  flushall();//清除所有的缓存区  cout << “请输入车牌号(例如:AB123):” << endl;  cin >> p->num;  if (Enter->top < MAXSIZE)//车场未满,车进车场{  Enter->top++;  cout << “车辆在车场第” << Enter->top << “位置!” << endl;  cout << “请输入到达时间:(小时:分钟)” << endl;  cin >> p->reach.hour;  while (p->reach.hour < 0 || p->reach.hour>23) {//控制时间格式正确  cout << “输入错误!” << endl;  cout << “请重新输入到达时间的时(0-23)!” << endl;  cin >> p->reach.hour;}  cin >> p->reach.min;  while (p->reach.min < 0 || p->reach.min>59) {//控制分钟格式正确  cout << “输入错误!” << endl;  cout << “请重新输入到达时间的分(0-59)!” << endl;  cin >> p->reach.min;}Enter->stack[Enter->top] = p;return(1);}else//车场已满,车进便道{cout << “车场已满,请在便道等待!” << endl;t = (QueueNode*)malloc(sizeof(QueueNode));t->data = p;t->next = NULL;W->rear->next = t;W->rear = t;return(1);}}void Leave(SeqStackCar* Enter, SeqStackCar* Temp, LinkQueueCar* W) {//车辆离开int room;CarNode* p;QueueNode* q;//判断车场内是否有车if (Enter->top > 0)//有车{while (1) {//输入离开车辆的信息cout << “请输入车在车场的位置1–” << Enter->top << “:”;cin >> room;if (room >= 1 && room <= Enter->top)break;}while (Enter->top > room) {//车辆离开Temp->top++;//临时通道栈顶指针Temp->stack[Temp->top] = Enter->stack[Enter->top];Enter->stack[Enter->top] = NULL;Enter->top–;}p = Enter->stack[Enter->top];Enter->stack[Enter->top] = NULL;Enter->top–;while (Temp->top >= 1) {//判断临时通道上是否有车Enter->top++;Enter->stack[Enter->top] = Temp->stack[Temp->top];Temp->stack[Temp->top] = NULL;Temp->top–;}PRINT(p, room);if ((W->head != W->rear) && Enter->top < MAXSIZE) {//车站是未满//便道的车辆进入车场q = W->head->next;p = q->data;//p指向链队头Enter->top++;cout << “便道的” << p->num << “号车进入车场第” << Enter->top << “位置!” << endl;cout << “请输入现在的时间(小时:分钟):” << endl;cin >> p->reach.hour;if (p->reach.hour < 0 || p->reach.hour>23) {cout << “输入错误!” << endl;cout << “请重新输入到达时间的时(0-23):” << endl;cin >> p->reach.hour;}cin >> p->reach.min;if (p->reach.min < 0 || p->reach.min>59) {cout << “输入错误!” << endl;cout << “请重新输入到达时间的分(0-59):” << endl;cin >> p->reach.min;}Enter->stack[Enter->top] = p;W->head->next = q->next;if (q == W->rear)W->rear = W->head;free(q);//释放q地址}else cout << “便道里没有车!” << endl;//便道没车}else cout << “车场里没有车!” << endl;//车场没车}void PRINT(CarNode* p, int room) {//输出离开车辆的信息清单int A1, A2, B1, B2;cout << “请输入离开的时间:(小时:分钟)” << endl;cin >> p->leave.hour;while (p->leave.hour < 0 || p->leave.hour>23) {cout << “输入错误!” << endl;cout << “请重新输入离开的时间的时(0-23):” << endl;cin >> p->leave.hour;B1 = p->leave.hour;}cin >> p->leave.min;if (p->leave.min < 0 || p->leave.min>59) {cout << “输入错误!” << endl;cout << “请重新输入离开的时间的分(0-59):” << endl;cin >> p->leave.min;}cout << endl << “离开车辆的车牌号为:” << endl;puts(p->num);cout << “其到达的时间为:” << p->reach.hour << “:” << p->reach.min << endl;cout << “其离开的时间为:” << p->leave.hour << “:” << p->leave.min << endl;A1 = p->reach.hour;A2 = p->reach.min;B1 = p->leave.hour;B2 = p->leave.min;cout << “应交费用为:” << (((B1 - A1) * 60 + (B2 - A2)) + 1440) % 1440 * price << “元!” << endl;}void List1(SeqStackCar* S) {//列表显示车场信息cout << “您选择的是车场停车情况!” << endl;int i;if (S->top > 0) {//判断车站内是否有车cout << “位置 到达时间 车牌号” << endl;for (i = 1; i <= S->top; i++) {cout << " " << i << " " << S->stack[i]->reach.hour << “:” << S->stack[i]->reach.min << " " << S->stack[i]->num << endl;}}else cout << “车场里没有车!” << endl;}void List2(LinkQueueCar* W) {//列表显示便道信息cout << “您选择的是便道停车情况!” << endl;int j = 1;QueueNode* p;p = W->head->next;if (W->head != W->rear) {//判断通道上是否有车cout << “等待车辆的车牌号码为:” << endl;while (p != NULL) {cout << j;puts(p->data->num);cout << j << " " << p->data->num << endl;p = p->next;j++;}}else cout << “便道里没有车!”;}void List(SeqStackCar S, LinkQueueCar W) {//列表界面int flag, tag; //列表和标签flag = 1;while (flag) {//列表显示循环控制 cout << “请选择您要显示的信息!(1-3):” << endl; cout << “#——1.车场——#” << endl; cout << “#——2.便道——#” << endl; cout << “#——3.返回——#” << endl;while (1) { cin >> tag; if (tag >= 1 || tag <= 3)break; else cout << “输入错误!请选择(1-3):” << endl;}switch (tag) {  case 1:List1(&S); break;//列表显示车场信息  case 2:List2(&W); break;//列表显示便道信息  case 3:flag = 0; break; default:break; } }}

到此,相信大家对“C语言实现停车管理系统的代码怎么写”有了更深的了解,不妨来实际操作一番吧!这里是编程网网站,更多相关内容可以进入相关频道进行查询,关注我们,继续学习!

--结束END--

本文标题: C语言实现停车管理系统的代码怎么写

本文链接: https://www.lsjlt.com/news/324831.html(转载时请注明来源链接)

有问题或投稿请发送至: 邮箱/279061341@qq.com    QQ/279061341

本篇文章演示代码以及资料文档资料下载

下载Word文档到电脑,方便收藏和打印~

下载Word文档
猜你喜欢
  • C语言实现停车管理系统的代码怎么写
    本篇内容主要讲解“C语言实现停车管理系统的代码怎么写”,感兴趣的朋友不妨来看看。本文介绍的方法操作简单快捷,实用性强。下面就让小编来带大家学习“C语言实现停车管理系统的代码怎么写”吧!设计题目设停车场是一个可以停放n辆汽车的南北方向的狭长通...
    99+
    2023-06-29
  • C语言实现停车管理系统
    本题为大家分享了C语言实现停车管理系统的具体代码,供大家参考,具体内容如下 设计题目 设停车场是一个可以停放n辆汽车的南北方向的狭长通道,且只有一个大门可供汽车进出。汽车在停车场内按...
    99+
    2022-11-13
  • C语言实现简易停车场管理系统
    本文实例为大家分享了C语言实现停车场管理系统的具体代码,供大家参考,具体内容如下 问题描述: 设停车场内只有一个可停放n辆汽车的狭长通道,且只有一个大门可供汽车进出。汽车在停车场内按...
    99+
    2022-11-13
  • C语言实现简单的停车场管理系统
    本文实例为大家分享了C语言实现简单停车场管理系统的具体代码,供大家参考,具体内容如下 1.问题描述 1)有一个两层的停车场,每层有6个车位,当第一层车位停满后才允 许使用第二层(停车...
    99+
    2022-11-13
  • C语言怎么实现停车场管理
    这篇文章主要介绍了C语言怎么实现停车场管理的相关知识,内容详细易懂,操作简单快捷,具有一定借鉴价值,相信大家阅读完这篇C语言怎么实现停车场管理文章都会有所收获,下面我们一起来看看吧。1.问题描述停车场内只有一个可停放n辆汽车的狭长通道,且只...
    99+
    2023-06-29
  • 怎么用C语言实现简易停车场管理系统
    本篇内容主要讲解“怎么用C语言实现简易停车场管理系统”,感兴趣的朋友不妨来看看。本文介绍的方法操作简单快捷,实用性强。下面就让小编来带大家学习“怎么用C语言实现简易停车场管理系统”吧!问题描述:设停车场内只有一个可停放n辆汽车的狭长通道,且...
    99+
    2023-06-29
  • C++实现停车场管理系统的示例代码
    目录一、案例需求描述1.1、汽车信息模块1.2、普通用户模块1.3、管理员用户模块二、案例分析三、案例代码实现3.1、汽车信息类及方法实现3.2、普通用户类及方法实现3.3、管理员用...
    99+
    2023-05-15
    C++实现停车场管理系统 C++停车场管理系统 C++管理系统
  • C语言实现车票管理系统
    本文实例为大家分享了C语言实现车票管理系统的具体代码,供大家参考,具体内容如下 一、项目简介 设计一个车票管理系统实现录入、查看班次信息,售票,退票等基本功能。设计中要求综合运用所学...
    99+
    2022-11-13
  • 如何用C语言实现简单的停车场管理系统
    本篇内容主要讲解“如何用C语言实现简单的停车场管理系统”,感兴趣的朋友不妨来看看。本文介绍的方法操作简单快捷,实用性强。下面就让小编来带大家学习“如何用C语言实现简单的停车场管理系统”吧!1.问题描述1)有一个两层的停车场,每层有6个车位,...
    99+
    2023-06-29
  • C语言实现自行车管理系统
    在大家学完C语言后,经常会被学校要求做很多管理系统,主流做法当选链表,但是很多问题就来了,在学习阶段写过最多基本上就是50行代码左右了,一下子做个小型管理系统问题就比较多。小编当然也...
    99+
    2022-11-13
  • C语言实现火车票管理系统
    本文为大家分享了C语言实现火车票管理系统课程设计的具体代码,供大家参考,具体内容如下 1、前言 这是大一刚学C语言一个学期完成的课设项目,里面的功能还可以进一步的完善,仅供分享、参考...
    99+
    2022-11-13
  • C语言实现共享单车管理系统
    本文实例为大家分享了C语言实现共享单车管理系统的具体代码,供大家参考,具体内容如下 1.功能模块图; 2.各个模块详细的功能描述。 1.登陆:登陆分为用户登陆,管理员登陆以及维修员...
    99+
    2022-11-13
  • C语言实现车辆信息管理系统
    本文实例为大家分享了C语言实现车辆信息管理系统的具体代码,供大家参考,具体内容如下 车辆信息管理系统 问题描述:建立车辆信息管理系统,实现车辆信息的添加和维护管理。 系统存储数据要求...
    99+
    2022-11-13
  • C语言如何实现车票管理系统
    今天小编给大家分享一下C语言如何实现车票管理系统的相关知识点,内容详细,逻辑清晰,相信大部分人都还太了解这方面的知识,所以分享这篇文章给大家参考一下,希望大家阅读完这篇文章后有所收获,下面我们一起来了解一下吧。一、项目简介设计一个车票管理系...
    99+
    2023-06-30
  • C语言实现自行车存放管理系统
    本文实例为大家分享了C语言实现自行车存放管理系统的具体代码,供大家参考,具体内容如下 系统包括以下内容 1.数据录入:录入系统基本数据,用数组或链表组织; 2.数据存储:用文件的形式...
    99+
    2022-11-13
  • C语言代码实现通讯录管理系统
    目录一、需求分析二、程序结构三、头文件内容的介绍四、模块化实现各个功能(1)主函数实现(2)初始化通讯录(3)添加联系人信息(4)删除联系人信息(5)查找联系人信息(6)更改联系人信...
    99+
    2022-11-13
  • C语言实现图书借阅系统的代码怎么写
    本文小编为大家详细介绍“C语言实现图书借阅系统的代码怎么写”,内容详细,步骤清晰,细节处理妥当,希望这篇“C语言实现图书借阅系统的代码怎么写”文章能帮助大家解决疑惑,下面跟着小编的思路慢慢深入,一起来学习新知识吧。 #includ...
    99+
    2023-06-29
  • C语言代码实现学生成绩管理系统
    某班有最多不超过 30 人(具体人数由键盘输人)参加期未考试,考试科目 最多不超过 6 门(具体门数由键盘输入,但不少于 3 门),学生成绩管理系统是一 个非常实用的程序,如果能够把...
    99+
    2022-11-13
  • C++怎么实现车票管理系统
    这篇文章主要介绍“C++怎么实现车票管理系统”,在日常操作中,相信很多人在C++怎么实现车票管理系统问题上存在疑惑,小编查阅了各式资料,整理出简单好用的操作方法,希望对大家解答”C++怎么实现车票管理系统”的疑惑有所帮助!接下来,请跟着小编...
    99+
    2023-06-29
  • C语言编写实现学生管理系统
    本文实例为大家分享了C语言实现学生管理系统的具体代码,供大家参考,具体内容如下 项目介绍 学生信息管理系统是一个基于C语言开发的系统,其中有用到冒泡排序、指针、结构体、二位数组等知识...
    99+
    2022-11-13
软考高级职称资格查询
编程网,编程工程师的家园,是目前国内优秀的开源技术社区之一,形成了由开源软件库、代码分享、资讯、协作翻译、讨论区和博客等几大频道内容,为IT开发者提供了一个发现、使用、并交流开源技术的平台。
  • 官方手机版

  • 微信公众号

  • 商务合作