一.系统功能

(1)通过菜单的形式实现人机交互界面
(2)实现便道上停车信息显示
(3)实现录入进入停车场的车辆车牌号

二.设计思想

1.人机交互界面

2.录入进入车牌信息

3.显示已停停车场情况

下面如继续录入

三、全部分代码

#include<stdio.h>
#include<stdlib.h>
#include <windows.h>          //"cls"
#include<string.h>              //strcmp
#include<time.h>                //time_t#define MAXSIZE 100
#define M 4
#define N 5                    //停车场有M行N列//车辆信息节点
typedef struct carnode
{int row, line;int inHour;        //入场时间 1int inMin;         //30int liveHour;       //待多久1int liveMin;        //40int outHour;   //出场小时 3int outMin;    // 分钟 10char License[10];
}CarNode;
//用来存放时间的链表
typedef struct carlist
{CarNode *data;          //data是结构体数组 struct carlist *next;
}CarList;
//声明每个全局变量
CarList *timeQ[25];
int park[M][N]={0};
int flag=0;                                    //判断停车场是否已满 int oddEven(int n);
void printPark();                              //用二维数组存放停车场
void initList();                               //初始化链表
int *localTime();                              //求系统时间
CarNode *InCar(int r,int l);                   //车辆进入
CarNode *initCarNode(int row,int line,char License[10]);
void List_add(CarList *list,CarNode *car);     //构造链表比较出场时间
void leaveCar();                               //新用户进来是否等待
void printCar(CarList *q);                     //打印车辆信息
void Welcome();                                //显示菜单
void smallwelcome();                           //子菜单
void HideCursor();                             //完成清屏功能(调用系统函数)
void printCars();                              //停车场已满,等待
CarNode *InCar(int r,int l);
int main()
{srand((unsigned)time(NULL));initList();Welcome();while(1){system("cls");                        // 清屏 Welcome();                            // 重新显示界面int i, cho;scanf("%d", &i);if (i == 1) {smallwelcome();printPark();if (flag>M*N) {printCars();break;}} if (i == 2) {printf("\n欢迎您再次使用本系统呦 ε=ε=ε=(~ ̄▽ ̄)~\n\n");break;}printf("---------------------------------------\n");printf("\n若车已停好,请输入0\n");begin:                             // goto 标志位 scanf("%d", &cho);if(cho == 0){continue;}else{printf("您的输入有误,请重新输入\n");goto begin;                     // goto 到指定标志位 begin}}return 0;
}int oddEven(int n)
{if(n%2!=0){                  //奇数 return 1;}else{return 0;}
}
//初始化链表
void initList()
{int i;for(i=1; i<25; i++){timeQ[i] = (CarList *)malloc(sizeof(CarList));timeQ[i]->next=NULL;}
}
//判断后打印车辆信息
void printCar(CarList *q)
{printf("\t\t车牌号为%s的车主 \n",q->data->License);printf("\t\t会在北京时间%d时%d分离开停车场\n",q->data->outHour,q->data->outMin);printf("\t\t请您将车停在第%d行第%d列的位置上\n",q->data->row+1,q->data->line+1);
}
//用二维数组存放停车场
void printPark()
{int i, j;for(i=0; i<M*2+1; i++) {for(j=0; j<N*2+1; j++) {if(!oddEven(i) && !oddEven(j)) {printf(" ");} else if(!oddEven(i) && oddEven(j)) {printf("---");} else if(oddEven(i) &&!oddEven(j)) {printf("|");} else if(oddEven(i) && oddEven(j)) {if(park[(i-1)/2][(j-1)/2]) {printf(" P ");}else{printf("   ");}}}printf("\n");}
}
//求系统时间
int *localTime()
{time_t tmpcal_ptr;struct tm *tmp_ptr = NULL;time(&tmpcal_ptr);tmp_ptr = localtime(&tmpcal_ptr);int *a = (int*)malloc(sizeof(int)*2);a[0]= tmp_ptr->tm_hour;a[1]= tmp_ptr->tm_min;return a;
}
//车辆进入
CarNode *InCar(int r,int l)
{if (park[r][l] == 0) {char *License=(char *)malloc(sizeof(char)*10);printf("输入车牌号:");getchar();gets(License);printf("---------------------------------------\n");getchar();CarNode *car = initCarNode(r,l,License);List_add(timeQ[localTime()[0]],car);park[r][l] = 1;flag++;return car;} else {printf("该车位已经被占了哦!\n");printf("请重新输入:");scanf("%d %d",&r,&l);return InCar(r,l);}
}//汽车信息
CarNode *initCarNode(int row,int line,char License[10])
{CarNode *car = (CarNode *)malloc(sizeof(CarNode));car->row = row;car->line = line;int liveHour = rand()%4;int liveMin = rand()%61;car->liveHour = liveHour;car->liveMin = liveMin;car->inHour = localTime()[0];car->inMin = localTime()[1];car->outMin = (localTime()[1]+liveMin)%60;car->outHour = localTime()[0]+car->liveHour+(localTime()[1]+liveMin)/60;strcpy(car->License,License);return car;
}
//构造timeQ[25]链表
void List_add(CarList *list,CarNode *car)
{CarList *p = list;CarList *q = (CarList *)malloc(sizeof(CarList));q->data = car;while(p->next) {if(p->next->data->outMin < car->outMin) {break;}p = p->next;}q->next = p->next;p->next = q;
}
//新用户进来是否等待
void leaveCar()
{CarList *p = timeQ[localTime()[0]];CarList *q = NULL;while(p->next){if(p->next->data->outMin == localTime()[1]) {q = p->next;p->next = q->next;park[p->data->row][p->data->line] = 0;break;}p = p->next;}if(q)printCar(q);
}
//完成清屏时间控制功能(调用系统函数)
void HideCursor()
{CONSOLE_CURSOR_INFO cursor_info = {1, 0};SetConsoleCursorInfo(GetStdHandle(STD_OUTPUT_HANDLE), &cursor_info);
}
//显示菜单
void Welcome()
{time_t rawtime;struct tm * timeinfo;time ( &rawtime );timeinfo = localtime ( &rawtime );printf ("\t\t\t%s", asctime(timeinfo) );HideCursor();printf ("\t*******************目前停车场状况***********************\n");printf ("\t        停车场共有%d个车位,当前停车场共有%d辆车\n",M*N,flag);printf ("\t********************************************************\n");printf ("\t--------------Welcome to LZH's Car Parking--------------\n");printf ("\t*                                                      *\n");printf ("\t*           该停车场是一个%d行%d列的矩形停车场         *\n",M,N);printf ("\t*         系统会自动帮您分配停车时间,请合理安排时间   *\n");printf ("\t*                  1.将您的爱车停在该停车场            *\n");printf ("\t*                  2.退出管理系统                      *\n");printf ("\t*                                                      *\n");printf ("\t*------------------------------------------------------*\n");printf ("\t---------------Press key(1/2/) to run program ----------\n");
}
//欢迎光临
void smallwelcome()
{printf ("%d %d", localTime()[0],localTime()[1] );int r,l;printf("亲~请选择停车区域哦!(行数<%d,列数<%d)",M+1,N+1); scanf("%d %d",&r,&l);if (r>M||l>N) {printf("\t\t本停车场没有你想象中的大哦!\n");smallwelcome(); return ;}CarNode *car = InCar(r-1,l-1);List_add(timeQ[ localTime()[0] ],car);printf("\t\t请牌照为%s的汽车停入停车位的第%d行第%d列的位置上\n",car->License,r,l);printf("\t\t现在为北京时间:%d点%d分\n",localTime()[0],localTime()[1]);printf("\t\t为您分配的停车时间为:%d小时%d分钟\n",car->liveHour,car->liveMin); printf("\t\t请您在%d点%d分之前离开停车场\n",car->outHour,car->outMin);
}
//停车场已满,打印最早离开的车辆信息
void printCars()
{int i;for(i=1; i<25; i++) {CarList *timeq = timeQ[i];while(timeq->next != NULL) {printCar(timeq->next);timeq = timeq->next;break;}}
}

基于C语言的停车场管理系统编程(二)简单版相关推荐

  1. 基于C/C++语言的停车场管理系统编程课程设计超详细

    详细代码讨论加我QQ:1271370903 程序设计课程实践 基于C语言的停车管理系统编程设计 1.课程目的 本程序旨在训练学生的C语言基本编程能力,通过串联C语言输入输出.循环语句.子函数设计.数组 ...

  2. 教务处管理系统c语言编程,基于C语言的教务管理系统的设计

    基于C语言的教务管理系统的设计(任务书,开题报告,论文12000字,程序代码) 摘要 教务管理系统是现代化教育的重要组成部分,在现代高校管理中,一个高效的.准确的教务系统不仅能大大提高教学管理效率,还 ...

  3. 基于Java毕业设计智能停车场管理系统源码+系统+mysql+lw文档+

    基于Java毕业设计智能停车场管理系统源码+系统+mysql+lw文档+ 基于Java毕业设计智能停车场管理系统源码+系统+mysql+lw文档+部署软件 本源码技术栈: 项目架构:B/S架构 开发语 ...

  4. Linux项目设计:基于ARM平台的停车场管理系统制作教程

    文章目录 一.功能要求 二.项目笔记 (一)网络问题:Ubuntu同时与开发板.WiFi连接 (二)图片文字识别 (三)文字转语音 (四)摄像头拍摄 化作尘其它开源项目: 单片机项目: Linux项目 ...

  5. 基于Java语言的安卓程序编程之一环境搭建2

    3 Eclipse及其插件的安装 Eclipse可以看成是Java的集成开发环境.基于Java语言的安卓程序编程就是在Eclipse上进行的.Eclipse附带了一个标准的插件集,通过Eclipse可 ...

  6. c语言图书馆管理程的运行截图,基于C语言的图书馆管理系统(10页)-原创力文档...

    毕业论文范文模板 职业技术学院 编号 本科生毕业论文设计 题目 基于 C 语言的图书馆管理系统 作者姓名 指导教师 所在学院 职业技术学院 专业(系) 班级(届) 完成日期 2016 年 5 月 4 ...

  7. c语言图书管理系统解析,基于C语言的图书管理系统的设计与实现解析.doc

    毕业论文 题目:基于C语言的图书管理系统的设计与实现 英文题目:Design and Implementation of Books Management System Based on C Lang ...

  8. 教材征订管理系统c语言,基于C语言的图书管理系统的设计与实现范文.doc

    毕业论文 题目:基于C语言的图书管理系统的设计与实现 英文题目:Design and Implementation of Books Management System Based on C Lang ...

  9. 基于RFID的模拟停车场管理系统

    在Windows的Visual Stdio中利用WPF C#开发一个基于RFID的模拟停车场管理系统,实现刷卡进入/离开停车场并根据停车时长收费,管理员可以对数据库任何数据进行插入.修改.查询和删除的 ...

最新文章

  1. [图]吴恩达AI公司Drive.ai或已找到新买家--苹果
  2. Java字符串中常见的10个问题
  3. c++调用cplex求解例子_视频教程 | 用Python玩转运筹优化求解器IBM CPLEX(二)
  4. 背包形动态规划 fjutoj2375 金明的预算方案
  5. 10.Springcloud的Zuul
  6. VUE 生命周期图示
  7. 深入解析NAS设备的应用
  8. Spring Cloud Sleuth 使用教程
  9. 拓端tecdat|R语言随机波动率(SV)模型、MCMC的Metropolis-Hastings算法金融应用:预测标准普尔SP500指数
  10. pywin32下载python3.6_pywin32 py3.7下载
  11. PreScan传感器(零)——通用配置
  12. C# winform 中MessageBox用法大全(附效果图)
  13. 射频识别(RFID)技术与ETC技术简介
  14. TwinCAT 3 基础——编程基础
  15. 运算放大器的简单介绍和运用
  16. volatile 与诡异事件
  17. java宠物商店_Java如何实现宠物商店管理 Java实现宠物商店管理代码示例
  18. 服务器开机一进系统就黑屏,win7系统开机在欢迎界面直接黑屏怎么办
  19. eps提取高程点在哪里_只需一个命令,就能提取CAD图纸所有高程点坐标,感觉学费白交了...
  20. 【虚拟现实】学习笔记

热门文章

  1. Neuron:精神病学中的功能神经成像和失败案例
  2. Field-of-view of lenses by focal length
  3. js 伪造referer_JavaScript 伪造 Referer 来路方法
  4. 电脑越来越卡怎么办?
  5. Matlab安装SPAMS工具包 配置环境
  6. php 加入即时推送功能
  7. Diopter mac版(AE光线折射朦胧模糊插件)
  8. 本草纲目pdf彩图版下载_本草纲目彩图版(全二册)
  9. yum安装报错No URLs in mirrorlist
  10. 湖北松滋历史上七大王氏望族