<pre name="code" class="cpp">/*****************************************
*版权所有(C)2015.LiHao
*
*文件名称main.cpp
*文件标识:无
*内容摘要:该项目的主函数文件
*其他说明:无
*当前版本:V1.0
*作者:李浩
*完成日期:20151224
*
*修改记录:无
*修改日期:20151224
*版本号:V1.0
*修改人:lihao
*修改内容:无
*****************************************/
#include"liti.h"
/*****************************************
*功能描述:统筹全局以及全部函数的调用
*输入参数:是否进入系统
*输出参数:系统界面
*返回值:无
*其他声明:无
*****************************************/
int main()
{
system("color f3");
Welcome();
//初始化还没有出库的车
Car cars[FLOOR][PNUMBER];
int i,j;
for(i=0;i<FLOOR;i++)
{
for(j=0;j<PNUMBER;j++)
{
cars[i][j].floor =0;
cars[i][j].pnumber=0;
cars[i][j].ptime=0;
cars[i][j].empty=0;
strcpy(cars[i][j].license ,"0");
}
}
Load(cars);//加载最初的四辆车
//加载历史文件
CustList *cl,*clr;//cl保存当天的修改信息,clr保存以前的历史信息,当推出程序时,自动把当天信息cl修改的动态历史保存到clr中
InitCustList1(cl,cars);//cl保存当天的修改信息
InitCustList(clr);//保留历史文件list.txt的内容
while(1)
{
ShowStarM();
cout<<"1 客户界面"<<endl;
cout<<"2 车管界面"<<endl;
cout<<"3 退出整个程序"<<endl;
cout<<"请选择:";
cin>>i;
if(i<1||i>3)
{
cout<<"您的操作非法!!!"<<endl;
continue;
}
system ("cls");
switch(i)
{
case 1:
{
Customer(cars,cl);
SaveList(cl);
SaveListTemp(cl);
}
break;
case 2:
{
LoadList(clr);
Manage(cars,cl,clr);
}
break;
case 3:
{
SaveList(cl);
SaveListTemp(cl);
}
exit(-1);
}
}
return 0;
}
/*****************************************
*版权所有(C)2015.LiHao
*
*文件名称liti.h
*文件标识:无
*内容摘要:该项目定义的各种数据的结构体以及各种函数的定义
*其他说明:无
*当前版本:V1.0
*作者:李浩
*完成日期:20151224
*
*修改记录:无
*修改日期:20151224
*版本号:V1.0
*修改人:lihao
*修改内容:无
*****************************************/
#include <iostream>
#include <string.h>
#include <stdio.h>
#include <stdlib.h>//standard library标准库文件
#include <time.h>//得到当前时间的头文件
#define FLOOR 2 //全局变量定义两层楼
#define PNUMBER 6//全局变量定义每层楼有六个车位
using namespace std;
struct Car//定义每辆车的结构体
{
char license[8];//车牌号
int floor;//楼层
int pnumber;//对应楼层的车位
int ptime;//停车时间
int empty;//标志位,有车为1,无车为0
};
struct Date//时间结构体
{
char day[11];//日期
char shike[9];//时间
char weekday[10];//星期几
};
typedef struct Snode//节点的结构体
{
char license[8];//车牌号
Date date;//停车的时刻
Date dateleave;//车离开的的时刻
int floor;//楼层
int pnumber;//对应车位
int ptimecount;//本次停车总时间
float cost;//停车费
Snode *next;
}CustList;
struct User//管理员结构体
{
char id[10];//账户
char name[10];//姓名
char password[10];//密码
};
void Welcome();//欢迎界面
void ShowStarA();//展示界面a
void ShowStarM();//展示界面b
void ShowStarC();//展示界面c
int Enterpark(Car cars[FLOOR][PNUMBER],char *license,int &floor,int &pnumber);//存车函数
void Savecars(Car cars[FLOOR][PNUMBER]);//保存车辆信息
bool IsEmpty(Car cars[FLOOR][PNUMBER]);//取车时判断车场是否为空
bool IsFull(Car cars[FLOOR][PNUMBER]);//存车时判断车场是否为空
bool IsSame(Car cars[FLOOR][PNUMBER],char *license);//查看存的车牌号是否存在
void Print(char license[],int floor,int pnumber,int ptime,float &cost);//输出 收费后 个人 凭据
void Leavepark(Car cars[FLOOR][PNUMBER],char license[],int &floor,int &pnumber,int &ptime);//取车函数
int CarOutMenu(char license[],int &floor,int &pnumber,int &ptime,float &cost,char note[100]);//取车的菜单项
void Customer(Car cars[FLOOR][PNUMBER],CustList *cl);//顾客界面
void Manage(Car cars[FLOOR][PNUMBER],CustList *cl,CustList *clr);//后台程序
void GetDate(Date &date);//得到当前时间
int UsertestAdd();//登陆界面或者注册用户
void Load(Car cars[FLOOR][PNUMBER]);//加载初始化的四辆汽车
void Loadfile(Car cars[FLOOR][PNUMBER],char license[8],int floor,int pnumber,int ptime,int empty);//加载每一个停车位的状态
void Showcars(Car cars[FLOOR][PNUMBER],CustList *cl);//展示现有汽车停车信息
void Message(CustList *clr);//历史停车信息
void MessageIntoFile(char note[100],char license[8]);//保存信息至文件
void CheckOneCar(CustList *clr,char *license);//查找某一车辆的停车信息
void InitCustList(CustList *&cl);//初始化链表
void InitCustList1(CustList *&cl,Car cars[FLOOR][PNUMBER]);//建立链表保存信息
void InsertToFirst(CustList *cl,char *license,int floor,int pnumber,Date date);//头插法,插入节点
void InsertToLst(CustList *cl,char *license,int floor,int pnumber,int ptime,float cost,Date date,Date dateleave);//从文件中读出时,尾差法,使得时间降序排列
void SearchUpdate(CustList *&cl,char *license,float cost,int ptimecount,char note[]);//修改当前的当天的链表 cl
void SaveListTemp(CustList *cl);//将链表的信息保存到历史文件today.dat中
void SaveList(CustList *cl);//保存历史信息至文件
void DeleteAll(CustList *cl);//删除链表
void LoadList(CustList *clr);//加载历史文件
/*****************************************
*版权所有(C)2015.LiHao
*
*文件名称liti.cpp
*文件标识:无
*内容摘要:该项目的所有函数的具体内容
*其他说明:无
*当前版本:V1.0
*作者:李浩
*完成日期:20151224
*
*修改记录:无
*修改日期:20151224
*版本号:V1.0
*修改人:lihao
*修改内容:无
*****************************************/
#include"liti.h"
void Welcome()
{
int i;
char choice;
for(i=1;i<=160;i++)
cout<<"\003";
cout<<endl;
cout<<" **************** 立体停车场管理系统 **************** "<<endl;
cout<<endl;
cout<<" ********** 制作人:李浩 ********** "<<endl;
cout<<endl;
cout<<" ****** 班级:146-2 ****** "<<endl;
cout<<endl;
cout<<"********************************************************************************"<<endl;
cout<<" 是否进入该系统(Y/N)? "<<endl;
cin>>choice;
while(1)
{
if(choice=='Y'||choice=='y')
{
for(i=0;i<100000000;i++);
system ("cls");//清屏
break;
}
else
数据结构课程设计~~立体停车场管理系统(改进版)
最新推荐文章于 2024-10-26 08:30:00 发布
本文介绍了一项数据结构课程设计项目——立体停车场管理系统。该系统利用数据结构实现高效的空间管理和车辆停放操作。通过改进版的设计,提升了系统性能和用户体验。
摘要由CSDN通过智能技术生成