C 停车库程序
来源:互联网 发布:北塔软件河南 编辑:程序博客网 时间:2024/04/29 03:21
的先后次序停放。若车场满了,车要停在门外的便道上等候,一旦有车走,则便
道上第一辆车进入。当停车场中的车离开时,由于通道窄,在它后面的车要先退
出,待它走后在依次进入。汽车离开时按停放时间收费。
基本功能要求:
(1) 建立三个数据结构分别是:停放队列、让路栈、等候队列。
(2) 输入数据模拟管理过程,数据(入或出,车号)
源程序
park.c
#include<stdio.h>
#include<time.h>
#include<unistd.h>
#include<sys/types.h>
#include<sys/wait.h>
#include<errno.h>
#include<math.h>
#include<stdlib.h>
#include"parktime.h"
#include"parkface.h"
typedef struct parkcar
{
struct parkcar *p;
time_t into;
time_t out;
char carnum[20];
}car;
car cara={.p=NULL}, *ahead=&cara, *atail;
car carb={.p=NULL}, *bhead=&carb, *btail;
#include"parkdata.h"
int main()
{
parkfarme5();
char a[10];
parkfarme6(a);
int b;
b=atoi(a)-1;
while(1)
{
system("clear");
parkfarme7(a);
if(a[1]!='\n')
{
system("clear");
continue;
getchar();
}
if(a[0]=='1')
{
system("clear");
parkadd(b);
getchar();
}
if(a[0]=='2')
{
system("clear");
parkcheck();
getchar();
}
if(a[0]=='3')
{
system("clear");
parkdel();
getchar();
}
if(a[0]=='4')
{
system("clear");
parkcheck2();
getchar();
}
if(a[0]=='5')
{
system("clear");
return 0;
}
}
}
parktime.h
void timenow(time_t a) //need time.h
{
struct tm *p;
p=gmtime(&a);
printf ("%d %d %d %d:%d:%d\n",1900+p->tm_year,1+p->tm_mon,p->tm_mday,
8+p->tm_hour,p->tm_min,p->tm_sec);
}
void timedif(time_t a,time_t b)
{
int ba=difftime(b,a);
printf ( "%d\n",ba );
}
parkface.h
void parkfarme(int a)
{
printf ("\033[30m\033[100A");
printf ("\033[30m\n\033[100D");
printf ("\033[30m\033[3B");
printf ("\033[30m\n\033[15C"); //chushihua
int i,j;
printf ("\033[30m\033[K");
for (i=0;i<24;i++)
printf("\033[32m *\033[0m"); //qianzhui
printf ("\033[30m\n\033[15C");
for(i=0;i<a;i++)
{
printf("\033[36m*\033[0m");
printf("\033[36m\033[49C");
printf("\033[36m*\033[0m");
printf ("\033[30m\n\033[15C");
}
printf ("\033[30m\033[K");
for (i=0;i<25;i++)
printf("\033[32m* \033[0m");
printf("\n");
printf ("\033[30m\033[8;22H");
printf("\033[33m\033[0m");
}
void parkfarme2(int a)
{
printf ("\033[30m\033[100A");
printf ("\033[30m\n\033[100D");
printf ("\033[30m\033[3B");
printf ("\033[30m\n\033[15C");
int i,j;
printf ("\033[30m\033[K");
for (i=0;i<25;i++)
printf("\033[32m* \033[0m");
printf ("\033[30m\n\033[15C");
for(i=0;i<a;i++)
{
printf("\033[33m*\033[0m");
printf("\033[36m\033[49C");
printf("\033[33m*\033[0m");
printf ("\033[30m\n\033[15C");
}
printf ("\033[30m\033[K");
for (i=0;i<24;i++)
printf("\033[32m *\033[0m");
printf("\n");
printf ("\033[30m\033[8;22H");
printf("\033[33m\033[0m");
}
void dycar1()
{
printf ("\033[30m\033[13;25H");
printf ("\033[30m____________ ___ |\033[14;25H");
printf ("\033[30m| \\ | |\033[15;25H");
printf ("\033[30m| \\ | |\033[16;25H");
printf ("\033[30m----0----0---- -- |\033[16;25H");
}
void dycar2()
{
printf ("\033[30m\033[13;25H");
printf ("\033[30m ____ ___________|\033[14;25H");
printf ("\033[30m \\ | |\033[15;25H");
printf ("\033[30m \\ | |\033[16;25H");
printf ("\033[30m -0---- ----0----0--|\033[16;25H");
}
void dycar3()
{
printf ("\033[30m\033[13;25H");
printf ("\033[30m ____________ |\033[14;25H");
printf ("\033[30m | \\ |\033[15;25H");
printf ("\033[30m | \\ |\033[16;25H");
printf ("\033[30m ----0----0---- |\033[16;25H");
}
void parkfarme3()
{
printf ("\033[30m\033[2J");
printf ("\033[30m\033[?25l");
int i,j;
while(1)
{
parkfarme(15);
dycar1();
sleep(1);
parkfarme2(15);
dycar3();
sleep(1);
parkfarme(15);
dycar2();
sleep(1);
}
}
void parkfarme4()
{
printf ("\033[30m\033[8;32H");
printf("\033[31m PARK SYSTEM 1.O\033[0m");
printf ("\033[30m\033[23;17H");
printf("\033[37mPUT ENTER CONTINUE\033[0m");
printf ("\033[30m\033[20;56H");
printf("\033[37m BY SU\033[0m");
printf ("\033[30m\033[?25l");
}
void parkfarme5()
{
pid_t j1;
int jc1;
j1=fork();
if(0==j1)
{
parkfarme3();
jc1=getpid();
}
else
parkfarme4();
getchar();
kill(j1,SIGINT);
system("clear");
}
void parkfarme6(char *a)
{
parkfarme(15);
printf ("\033[30m\033[?25h");
printf ("\033[0m\033[9;26H");
printf ("\033[1mPLEASE ENTER PARKING ARE SIZE\033[15;37H");
fgets (a,10,stdin);
printf ("\033[2m\033[23;17H");
printf ("\033[37m PUT ENTER CONTINUE\033[0m");
printf ("\033[2m\033[?25l");
getchar();
system ("clear");
}
void parkfarme7(char *a)
{
parkfarme2(15);
printf ("\033[30m\033[?25h");
printf ("\033[0m\033[9;26H");
printf ("\033[0mPLEASE ENTER NUMBER\033[15;37H");
printf ("\033[0m\033[12;26H");
printf ("\033[0m1:park car\033[13;26H");
printf ("\033[0m2:check park\033[14;26H");
printf ("\033[0m3:leave car\033[15;26H");
printf ("\033[0m4:check wait\033[16;26H");
printf ("\033[0m5:quit\033[17;26H");
printf ("\033[0mEnter:\033[17;32H");
fgets (a,10,stdin);
printf ("\033[2m\033[23;17H");
printf ("\033[37m PUT ENTER CONTINUE\033[0m");
printf ("\033[2m\033[?25l");
getchar();
system ("clear");
}
parkhata.h
void packspace(int *size)
{
char parksize[7];
printf("please enter park size:");
fgets(parksize,7,stdin);
*size=atoi(parksize);
}
void parkstart(car *a)
{
atail=ahead;
while(atail->p!=NULL)
atail=atail->p;
time(&(a->into));
atail->p=a;
printf("park success!\n");
}
void parkstop(car *a)
{
btail=bhead;
while(btail->p!=NULL)
btail=btail->p;
time(&(a->into));
btail->p=a;
printf("wait park!\n");
}
int parkadd(int size)
{
car *newcar;
newcar=(car *)malloc(sizeof(car));
if (NULL==newcar)
{
printf("add error\n!");
return -1;
}
printf("please enter plate number:");
fgets(newcar->carnum,20,stdin);
newcar->p=NULL;
atail=ahead;
while(atail->p!=NULL)
{
atail=atail->p;
size--;
}
if(size<0)
{
parkstop(newcar);
return 1;
}
else
{
parkstart(newcar);
return 0;
}
}
int parkdel()
{
int x=0;
char a[20];
car *dtail;
printf("please enter plate number: ");
fgets(a,20,stdin);
atail=ahead;dtail=atail;
if(atail->p ==NULL)
{
printf("nobay!\n");
return 0;
}
while(atail->p!=NULL)
{
atail=atail->p;
if(!(strcmp(atail->carnum,a)))
{
time_t t1;
time(&t1);
timedif(atail->into,t1);
dtail->p=atail->p;
free(atail);
atail=dtail->p;
printf("Welcome to come again!\n");
x=1;
break;
}
else
dtail=dtail->p;
}
if(x==0)
{
printf("NOT FIND!\n");
return -1;
}
btail=bhead;
if(btail->p!=NULL)
{
btail=btail->p;
bhead->p=btail->p;
btail->p=NULL;
time(&(btail->into));
atail=ahead;
while(atail->p!=NULL)
atail=atail->p;
atail->p=btail;
printf("Storage success!");
}
}
void parkcheck()
{
atail=ahead;
while(atail->p!=NULL)
{
atail=atail->p;
printf("Plate Number: %s",atail->carnum);
printf("Enter Time: ");
timenow(atail->into);
}
}
void parkcheck2()
{
btail=bhead;
while(btail->p!=NULL)
{
btail=btail->p;
printf("Plate Number: %s",btail->carnum);
printf("wait Time: ");
time_t a;
time(&a);
timedif(btail->into,a);
}
}
- C 停车库程序
- Linux 程序启停脚本
- 容器越界程序会停
- 车库管理
- 车库管理
- 3084 车库
- 多版本中文停用词词表 + 多版本英文停用词词表 + python词表合并程序
- windows停掉占用端口的程序的方法
- MFC 让程序停一下 但不卡住的办法
- 208 linux/unix端的程序会停
- 停不下来,50个程序猿笑话
- 程序猿就是要不停地学习---2016
- 2.3.7多线程停止程序(停不下来)
- MFC 让程序停一下 但不卡住的办法
- 做风投不如批发车库
- 立体双层车库
- 美国的车库文化
- 公告:C币兑换平台系统停站维护公告
- CentOS 6.5系统下iptables防火墙开放80 3306 22端口
- Lamdba及DataTable AsEnumerable()的使用
- 从0到1移动端微官网开发
- Linux定时任务执行,删除某个时间段的文件
- Java_基础—两种方式实现键盘录入
- C 停车库程序
- Why Did the Cow Cross the Road II
- github的使用教程
- C# 中线程和委托
- 装饰模式(Decorator)
- C语言(4)学习情况摸底
- HTML 文本格式化
- GitBook制作电子书详细教程(命令行版)
- 如何最简单把pdf转cad格式操作呢?