7、某停车场有20个车位(1-20号),设计一个停车场管理系统,实现停车管理系统。 c语言程序设计 。

默认分类 未结 1 1256
0李家沱0
0李家沱0 2023-03-16 22:15
相关标签:
1条回答
  • 2023-03-16 22:56

    问题描述: 由于我国经济发展迅速,车辆的拥有量也跟着大幅上升,城市拥堵的情况越来越严重,停车场越来越成为一种稀缺资源,因此就有了要求高效利用停车场的需求。 控制稀缺资源的有效办法就是收费。停车场的收费规则是,1小时以内免费。超过1小时,每小时6

    问题描述:

    由于我国经济发展迅速,车辆的拥有量也跟着大幅上升,城市拥堵的情况越来越严重,停车场越来越成为一种稀缺资源,因此就有了要求高效利用停车场的需求。控制稀缺资源的有效办法就是收费。停车场的收费规则是,1小时以内免费。超过1小时,每小时6元钱。人工计费费时费力,而且容易出错,希望你们开发一个软件来帮助辛勤的保安们来管理停车场。

    1)对车位进行管理:能查询一共有多少车位能查询有多少空的车位能查询占用车位对应的车牌号和停靠时间2)收费管理:能查询现在停靠了多少车能够记录车辆的停靠时间根据根据停靠时间计算出费用

    代码如下:

    #include#include#include#include#define NULL 0# define LEN sizeof(struct node)struct node{int num; //序号char numble[47]; //车牌char intime[47]; //进入时间char outtime[47]; //出去时间struct node *next;};struct node *creat()//创建一个有十个车位的停车场链表{int n;struct node *head,*p,*tail;head = NULL;for(n = 1 ; n num = n ; strcpy(p->numble,"0");strcpy(p->intime,"0");strcpy(p->outtime,"0");if(n == 1){head = p;}elsetail->next = p;tail = p;}tail->next = NULL;return(head);}void print(struct node *head){struct node *p;printf("当前停车场信息如下:");p=head;if(head!=NULL){do{printf("车场序号: %-6d车牌号码: %5s",p->num,p->numble);printf("进入时间:%32s",p->intime);printf("驶出时间:%32s",p->outtime);printf("*******************************************");p=p->next;}while(p!=NULL);}}void Money(struct node *head)//计费{int n,m;struct node *p;time_t rawtime;struct tm*timeinfo;time(&rawtime);timeinfo = localtime(&rawtime);printf("亲、请输入你要计费的车辆序号");scanf("%d",&n);p = head;while(p->num != n){p = p->next; //寻找对应序号}//int tt = asctime(timeinfo) - p->intime;char time1[47],time2[47];strcpy(time1,asctime(timeinfo));strcpy(time2,p->intime);int len1 = strlen(time1);int len2 = strlen(time2);int t1= 0,t2 = 0;for(int i = 0 ; i < len1 ; i++){if(time1[i] == ':'){t1 = t1*10+time1[i-2]-'0';}}for( i = 0 ; i 1)m = (tt-1)*6;elsem = 0;printf("此次停车共计费用为: %d",m);} void in(struct node *head)//车辆进入停车场{char s[47];time_t rawtime;struct tm*timeinfo;time(&rawtime);timeinfo=localtime(&rawtime);struct node *p;p = head;while((p!=NULL)&&(strcmp(p->numble,"0")!=0))//查找空车位{p=p->next;} if(p!=NULL){printf("请输入当前的车牌号!");scanf("%s",s);printf("您的停车位是:[%d]号!",p->num);strcpy(p->numble,s);strcpy(p->intime,asctime(timeinfo));}else{printf("停车场已满,亲、请退出操作!");}}void out(struct node* head){struct node *p;int n;time_t rawtime;struct tm*timeinfo;time(&rawtime);timeinfo = localtime(&rawtime);printf("请输入车辆的序号!");scanf("%d",&n);p = head;while(p->num != n){p = p->next; //寻找对应序号}strcpy(p->outtime,asctime(timeinfo));printf("车牌 号码为:[%s]",p->numble);printf("车辆进入时间为:%s",p->intime);printf("车辆驶出时间为:%s",p->outtime);strcpy(p->numble,"0");strcpy(p->intime,"0");}void main(){int n;struct node *head;head=NULL;printf("请输入对应的数字,进行操作");printf("0:退出程序");printf("1:创建停车场信息");printf("2:输出停车场信息");printf("3:车辆进入停车场"); printf("4:车辆驶出停车场");printf("5: 车辆停车所需费用");printf("请输入对应的数字,进行操作");scanf("%d",&n);while(n!=0){switch(n){case 1:head=creat();break;case 2: print(head);break;case 3:in(head); break;case 4:out(head);break;case 5:Money(head);break;default: 0;}printf("请输入相应的数字,进行操作");scanf("%d",&n);}}

    #include #include #include typedef struct{ int num; char id[50]; time_t in; time_t out; float mon;}P;P p[21];void in();void out();void look();void init();int vacant();int main(){ int i,flag=0; init(); while(1) { printf(" \n"); printf(" 1: 进入 \n"); printf(" 2 离开 \n"); printf(" 3: 查看车位情况 \n"); printf(" 4: 退出 \n"); printf(" \n"); puts("请输入选项:"); scanf("%d",&i); switch(i){ case 1: in();break; case 2: out();break; case 3: look();fflush(stdin); puts("按任意键继续。。。。。。。"); getchar();break; case 4: flag=1;break;} if(flag==1) break; system("CLS");}return 0;}void init(){ int i=0; while(i<21){ p[i].num=i;p[i].id[0]='\0';p[i].in=0;p[i].out=0;p[i].mon=0.;i++;}}int vacant(){ int i=1,num=0; while(i<21){ if(p[i].id[0]=='\0') num++;i++;} return num;}void in(){ int i=0,a[21]; while(i<21){ a[i]=0; i++;} i=1; if(vacant()!=0){ puts("有车位 空车位为:"); while(i<21){ if(p[i].id[0]=='\0') {a[i]=i; printf("%-4d",i);}i++;} puts(""); puts("请输入所要停入车位号:"); while(1){ scanf("%d",&i); int j=0,flag=0; while(j<21) { if(a[j]==0){ j++;continue;} if(a[j]==i){ flag=1;break;}j++;} if(flag==0) puts("输入错误,请再次输入所要停入车位号:"); else break; } puts("请输入所要停入的车牌号:"); scanf("%s",p[i].id); time(&(p[i].in)); } else puts("车位已满!"); fflush(stdin); puts("按任意键继续。。。。。。。"); getchar();}void out(){ int i,j=0,a[21],flag=0; while(j<21){ a[j]=0; j++;} j=0; look(); while(j<21){ if(p[j].id[0]!='\0') a[j]=j;j++; } puts("请输入离开车的车位号:"); while(1) { j=0; scanf("%d",&i); while(j<21) { if(a[j]==0){ j++;continue;} if(a[j]==i){ flag=1;break;}j++;} if(flag==1) break; else puts("输入错误,请再次请输入离开车的车位号:");} time(&(p[i].out)); struct tm *tm1,*tm2; tm1=gmtime(&(p[i].in)); tm2=gmtime(&(p[i].out)); int num1,num2; if(tm1->tm_hour+8>23) num1=tm1->tm_hour+8-24; else num1=tm1->tm_hour+8; if(tm2->tm_hour+8>23) num2=tm2->tm_hour+8-24; else num2=tm2->tm_hour+8; printf("该车位号为: %d 车牌号为:%s \n%d:%d 停入 %d:%d 离开 \n应付金额为 %0.2f元\n",i,p[i].id,num1,tm1->tm_min,num2,tm2->tm_min,(p[i].out-p[i].in)/3600.0*10); p[i].id[0]='\0'; fflush(stdin); puts("按任意键继续。。。。。。。"); getchar();}void look(){ int i=1,k=0; struct tm *tm1; if(vacant()!=0) { puts("空车位为:"); while(i<21){ if(p[i].id[0]=='\0'){ printf("%-4d",i);k++;}i++; } i=1; puts(""); puts("已占车位为:"); if(k==20) puts(" 没有停车辆!"); while(i<21) { if(p[i].id[0]!='\0') { tm1=gmtime(&(p[i].in));int num1; if(tm1->tm_hour+8>23) num1=tm1->tm_hour+8-24;else num1=tm1->tm_hour+8; printf("车位号:%-4d 车牌号:%s 进入时间:%d:%d\n",i,p[i].id,num1,tm1->tm_min); } i++; } } else puts("车位已满!"); }

    0 讨论(0)
提交回复