• 为li
    了解作者
  • C/C++
    开发工具
  • 5KB
    文件大小
  • zip
    文件格式
  • 0
    收藏次数
  • 1 积分
    下载积分
  • 1
    下载次数
  • 2020-04-23 10:15
    上传日期
设停车场是一个可停放n辆车的狭长通道,且只有一个大门可供汽车进出。在停车场内,汽车按到达的先后次序,由北向南依次排列(假设大门在最南端)。若车场内已停满n辆车,则后来的汽车需在门外的便道上等候,当有车开走时,便道上的第一辆车即可开入。当停车场内某辆车要离开时,在它之后进入的车辆必须先退出车场为它让路,待该辆车开出大门后,其它车辆再按原次序返回车场。每辆车离开停车场时,应按其停留时间的长短交费(在便道上停留的时间不收费)。 1.主要数据结构 struct Car { // 车结构体 char ID[16]; //车牌号 int hour, min; // 进入时间 (小时:分钟) };
简单的停车场管理系统.zip
  • 简单的停车场管理系统
  • list.h
    10.7KB
  • 停车场管理系统.c
    4.5KB
内容介绍
#if defined _MSC_VER && ! defined _CRT_SECURE_NO_WARNINGS #define _CRT_SECURE_NO_WARNINGS #endif // 针对vs的scanf调整 #include <stdio.h> #include <stdlib.h> #ifdef __linux__ #define CLEAR() system("clear") #define SLEEP() printf("按回车键继续..."); ResetIn() #else #define CLEAR() system("cls") #define SLEEP() system("pause") #endif #define N 3 // 停车场 可停放车数量 #define ResetIn() while (getchar() != '\n') {} typedef struct Car { // 车 char ID[16]; //车牌号 int hour, min; // 进入时间 (小时:分钟) } Car; #define __list_t Car #include "list.h" void menu(); //菜单 int input_car(Car*); //输入car数据 int to_find(const Car*); Car *tf_car; //查找函数 int to_traverse(Car*); //遍历函数 int main() { int i; Car _car, *car=&_car; Car_list _stack, _queue, *stack=&_stack, *queue=&_queue; // 栈stack 队列queue Car_list_init(stack); // 初始化栈 Car_list_init(queue); // 初始化队列 for (;;) { CLEAR(); printf(" \n\n"); printf(" 停车场管理系统\n\n"); printf(" 欢 迎 进 入 停 车 场 管 理 系 统 !\n\n\n\n\n"); printf(" 停车场目前车辆停放情况如下:\n\n"); printf(" 停车场车的数量: %ld\n", stack->size(stack)); // 栈大小 stack->traverse(stack, to_traverse); // 遍历栈 printf(" 便道上车的数量: %ld\n\n", queue->size(queue)); // 队列大小 queue->traverse(queue, to_traverse); // 遍历队列 puts(""); menu(); if ( scanf(" %d", &i) != 1 ) { ResetIn(); continue; } ResetIn(); switch ( i) { case 1: input_car(car); if (stack->size(stack) < N) { printf("\n 车辆已成功进入停车场!\n"); stack->push_back(stack, car); // 插入到栈 } else { printf("\n 停车场已满,车将进入便道\n"); queue->push_back(queue, car); // 插入到队列 } SLEEP(); break; case 2:{ int time; Car *car1; Car_list *cars; input_car(car); tf_car = car; cars = stack->find_if(stack, to_find); // 查找car if ( ! cars->size(cars) ) { printf("\n 未在停车场找到车牌号为[%s]的车\n", car->ID); } else { car1 = cars->begin(cars); // 取 [查找结果集] 中的第一个数据 Car_list_iterator it = stack->rbegin(stack); // 使it指向栈最后一个数据 while (it != stack->rend(stack)) { // 从后往前遍历栈 if (strcmp(car1->ID, it->ID) == 0) break; queue->push_back(queue, it); // 把数据插到队列末尾 printf("\n 车牌号为[%s]", it->ID); it = stack->prev(stack, it); // it指向前一个数据 stack->pop_back(stack); // 删除栈最后一个数据 } printf("的车暂时退出停车场,进入便道以让车。\n\n"); time = car->hour*60 + car->min; time -= car1->hour*60 + car1->min; printf(" 车牌号为[%s]的车已离开\n 停车时间:%d小时%d分钟\n 收费¥%d\n\n\n", car1->ID, time/60, time%60, time); stack->pop_back(stack); while ( queue->size(queue) && stack->size(stack)<N ) { // 用队列数据填充栈 car1 = queue->begin(queue); // 队列第一个数据先进栈 car1->hour = car->hour; car1->min = car->min; stack->push_back(stack, car1); // 插入到栈末尾 printf(" 车牌号为[%s]的车从便道进入停车场\n", car1->ID); printf(" 进入时间 %d:%d\n\n", car1->hour, car1->min); queue->pop_front(queue); // 从队列中删除 } } SLEEP(); }break; case 0: return 0; } } } int to_traverse(Car *car) { printf(" 车牌号[%s]\n", car->ID); printf(" 车辆进入的时间: %02d:%02d\n\n", car->hour, car->min); return 0; } int to_find(const Car *car) { if (strcmp(car->ID, tf_car->ID) == 0) return 1; return 0; } int input_car(Car *car) { printf("\n 请输入车牌号(1~15个字符): "); scanf("%15s", car->ID); ResetIn(); printf("\n 请输入车辆进入/离开停车场的时间(小时:分钟): "); scanf("%d:%d\n\n", &car->hour, &car->min); ResetIn(); return 1; } void menu() { printf( " 请输入数字来完成:\n\n" " 1.车辆进入停车场\n\n" " 2.车辆离开停车场\n\n" " 0.退出\n\n" ); }
评论
    相关推荐
    • c语言综合程序设计停车场管理系统.zip
      设计一个停车场管理系统,模拟停车场的运作,此程序具备以下功能: (1)若车辆到达,则显示汽车在停车场内或者便道上的停车位置; (2)若车辆离去,则显示汽车在停车场内停留的时间和应缴纳的费用(在便道上停留的...
    • C语言软件实践停车场管理系统
      这是本人在C语言软件实践课上做的一个简单停车场管理系统,功能完善~~附加有系统的实现说明和运行过程。
    • C语言 停车场管理系统
      这是一个C语言编写的程序,在winTC下调试 用其他的编译程序的话 需要进行少量的修改~!
    • C语言实现停车场管理系统
      用C 实现的小型停车场管理系统,包括源代码,说明书及设计思想、设计模式等。
    • 停车场管理系统c语言实现
      设有一个可以停放n辆汽车的狭长停车场,它只有一个大门可以供车辆进出。车辆按到达停车场时间的早晚依次从停车场最里面向大门口处停放(最先到达的第一辆车放在停车场的最里面)。...编制一程序模拟该停车场管理
    • C语言停车场管理系统
      假设 :本停车场最多可停放2辆车,便道最多可以停放2辆车,停车每小时费用6元; 可以通过修改 “parking.c” 中的 MaxQueueSize MaxStackSize Cost #define MaxQueueSize 2 /*便道最容量*/ #define MaxStackSize 2 /...
    • 基于C语言模拟停车场管理系统
      使用C语言,数据结构的堆栈来模拟停车场管理,在VC++的环境下可运行
    • 停车场管理系统 C语言EasyX图形库
      本资源是数据结构的课设内容,做的是停车场管理系统,使用C语言结合EasyX图形库做了一个简单的界面。
    • 停车场管理系统.zip
      实现了对车辆的入库登记、对停车场内车辆的查询和计费、对车辆的出库结算等功能
    • 软件开发计划书 .asp.rar
      一个完整的项目开发文档,可以看看.没有坏处.