数据结构课设停车场问题

问题描述

数据结构课设停车场问题

#include "stdafx.h"
#include "stdio.h"
#include "stdlib.h"
#define n 3//定量小,好观察
#define price 0.05 // 定义价格为每分钟0.05 元

typedef struct TIME//时间的结构
{
int hour;
int min;
}time;
typedef struct record
{
int num;//汽车牌照号码
time reach;//到达时刻
time leave;//离开时刻
}datatype;
typedef struct node
{
datatype data;//结点数据域
struct node next;//结点的指针域
}link;
link *head;//头指针
link *park(head,i)//车达到的函数,i是全局变量,不声明
link *head;
{
link *p;
if(i<=n)
{
p=(struct node
)malloc(sizeof(link));//给一个存放结点的内存空间
printf("
请输入车牌号(例:鄂B1234):");
scanf("%d",&(p->data.num));
printf("
车辆到达时间:");
scanf("%d:%d",&(p->data.reach.hour),&(p->data.reach.min));//":"是为了控制时间的输入格式
p->next=head->next;//把头指针的地址域给p
head->next=p;//头指针再指向p
}

else
{
printf("
停车场已满,请在便道稍等!
");
return (head);//返回头指针
}
return(head);//最后返回头指针
}
void PRINT(link *p,int x)// 车辆收费
{
int A1,A2,B1,B2;
printf("
车辆离开的时间:");
scanf("%d:%d",&(p->next->data.leave.hour),&(p->next->data.leave.min));//这是根据查找而写的,表示返回的p是前驱结点
printf("
其到达时间为: %d:%d",p->next->data.reach.hour,p->next->data.reach.min);
printf("
离开时间为: %d:%d",p->next->data.leave.hour,p->next->data.leave.min);
A1=p->next->data.reach.hour;
A2=p->next->data.reach.min;
B1=p->next->data.leave.hour;
B2=p->next->data.leave.min;
printf("
应交费用为: %-8.3f 元
",((B1-A1)*60+(B2-A2))*price);//钱的算法
}

link *key_search(head,key)//查找key被删除功能调用,找前驱结点
link *head;int key;
{
link *p;
p=head;
while(p->next!=NULL)
{
if(p->next->data.num!=key)
p=p->next;
else
return(p);
}
return(NULL);//查找失败,返回空指针NULL
}

link *key_delete(head)
link *head;
{
link *p;int x;
printf("离开的车请输入车牌号:");
scanf("%d",&x);
p=key_search(head,x);//前驱结点
if(p!=NULL)
{
PRINT(p,x);
p->next=p->next->next;//把结点删除
return(head);
}
else
{
printf("
输入的%d车牌不在,请重新输入数据!
",x);
return(head);
}
}

void list(head)//列表
link head;
{
link *p;
p=head;
while(p->next!=NULL)//就如头指向第一个结点
{
printf("车号%d,进去时间%d:%d
",p->next->data.num,p->next->data.reach.hour,p->next->data.reach.min);
p=p->next;
}
}
main()
{
link *head;
int ch;
int i=1;
head=(struct node
)malloc(sizeof(link));
head->next=NULL;
while(1)//用于循环
{
printf("
*************** 欢迎使用停车场系统.***************

");
printf("
1. 车辆到达登记.
");
printf("
2. 车辆离开登记.
");
printf("
3. 车辆列表显示.
");
printf("
4. 退出系统.

");
printf(" 请选择: ");
while(1)//选项输入限制
{
scanf("%d",&ch);
if(ch>=1&&ch<=4)break;
else printf("
输入有误,请重新选择: 1~4: ");
}
switch(ch)
{
case 1:head=park(head,i);i++;list(head);break;//i用于循环
case 2:head=key_delete(head);i--;list(head);break;//i用于控制车数,减少
case 3:list(head);break;
case 4:exit(0);
default: break;
}
}
}

解决方案

数据结构课设
火车售票系统(数据结构课设)

解决方案二:

只有代码,什么错误呢?

时间: 2024-09-08 14:59:28

数据结构课设停车场问题的相关文章

数据结构课设,急求代码注释

问题描述 数据结构课设,急求代码注释 #include "stdlib.h" #include "stdio.h" #include "time.h" #define STACK_INIT_SIZE 10 typedef struct { int x; //当前位置的横坐标 int y; //当前位置的纵坐标 char type; //当前位置的属性:墙壁或通道(0/1) bool isfoot; //判断当位置是否已走过, true代表已走过

数据结构算法-数据结构课设 需要做一个北京地铁换乘方案 要求如下

问题描述 数据结构课设 需要做一个北京地铁换乘方案 要求如下 数据结构课设 需要根据北京地铁的情况设计 用c++写 求做附加项目 解决方案 http://download.csdn.net/download/mark063/3618835http://download.csdn.net/detail/u013214401/8618007 解决方案二: http://wenku.baidu.com/link?url=AinA4QQujewcqxLsoL2hp1mH5Xr5E7c1fHmqzhiKo

c++-基于mfc的选址类问题数据结构课设

问题描述 基于mfc的选址类问题数据结构课设 我是一名大三生,学的软件工程,数据结构课设要求用mfc做学校超市选址,有没有哪个朋友看到过基于mfc的选址类问题,不管是什么选址都行,看到过的联系我一下,真诚感谢! 解决方案 http://wenku.baidu.com/link?url=3cLSkxSmo8dQUKSDBhlgg5bOvWG2BKZZ31K8shLzVdO9nkNI8PO64CDdW5HRo-82tWE7vOPCuP4GpqGEiKxwo3_9Uf_mjghBKoRnWHRwy6q

机票管理系统-数据结构课设求解答!!!

问题描述 数据结构课设求解答!!! )问题描述 一机场每天有n个航班,每个班次都有一班次号(1.2.3-n),固定的起飞时间,固定的路线(起始站.终点站),大致的飞行车时间,固定的额定载客量.如 班次 起飞时间 起点站 终点站 飞行时间 额定载量 已定票人数 1 8:00 天津 广汉 2 145 130 2 6:30 天津 成都 0.5 140 140 3 7:00 天津 成都 0.5 140 120 4 10:00 天津 成都 0.5 140 120 - 试设计一个机票管理系统,对机场的售票情

结构-c++ 写旅馆的课设时遇到 的问题

问题描述 c++ 写旅馆的课设时遇到 的问题 老师的提示: 旅馆近期房间安排可用结构型二维数组(预分配表)表示 近一周的预分配情况. 我用的room[x].month[n][2]和room[x].day[n][2]代表房间x被预订的 信息(month[i][0]代表第i份预订的入住月份) 如果后面又来了个人 要预订这个已经被预订了的房间 怎么判断这个房间是否还能被预订呢(感觉好复杂= = 如果觉得很弱智求轻喷) 解决方案 加一个判空标记flag(BOOLEAN型),如果有人居住就给flag赋值1

程序-c语言课设 超长整数处理

问题描述 c语言课设 超长整数处理 解决方案 decimal大数据类型 解决方案二: 楼主 要求是几天内交?

微机课设——交通信号灯自动控制模拟指示系统

一个很水的课设,发出来给学弟学妹们参考参考 采用MFC完成,VS2008环境下编译运行正常. 对于数码管用单独线程维护刷新,由于刷新延时小于1ms,用的是while作为延时,所以不能用release模式,只能debug 系统有 自动模式,手动模式,夜间模式,路人模式(行人控制,可参考http://wenwen.soso.com/z/q184953098.htm) 23:00和5:00会自动进入和退出夜间模式 路人模式由一个单脉冲控制 软件结果图: 硬件结果图:(图中为第一版,无k0-k3及单脉冲

c++-在做一个暴力破解密文的课设,如何快速地匹配文件中的单词?

问题描述 在做一个暴力破解密文的课设,如何快速地匹配文件中的单词? 最近在做一个课程设计,是关于暴力破解密文的.文件中大约有9000个单词,每个单词 占一行,如何快速地去匹配单词呢? 解决方案 先字典序排序.然后二分查找,这是我的想法,当然我觉得也可以用更高级的字符串匹配算法

c++-MFC的C++的课设,帮忙编一下呗,我编了三天都没有思路

问题描述 MFC的C++的课设,帮忙编一下呗,我编了三天都没有思路 3) 在这里采用C++语言实现一个简单的n×n矩阵类,类中包括一些简单的运算等操作具体要求如下:1使用构造函数完成方阵的初始化赋值(动态内存分配):2使用析构函数完成矩阵动态内存的释放:3使用函数实现两个矩阵的和:4使用函数实现两个矩阵的差:5使用函数实现两个矩阵的积:6使用函数实现矩阵的转置:7使用函数求矩阵中的最大值:8使用函数求矩阵中的最小值:9编写一个主函数测试上述功能. 解决方案 你先用控制台实现好了,完后把字符串显示