当前位置: 首页 > news >正文

惠州双语网站建设费用网站建设脑图

惠州双语网站建设费用,网站建设脑图,秦皇岛住房和城乡建设网官网,做公司门户网站的重点一、需求 #xff08;1#xff09;管理员方账号登录#xff1b; #xff08;2#xff09;车位管理显示#xff1a;车位状态#xff1b; #xff08;3#xff09;收费管理#xff1a;小轿车 5元/小时#xff0c;面包车6元/小时#xff0c;大货车或客车7元/小时1管理员方账号登录 2车位管理显示车位状态 3收费管理小轿车 5元/小时面包车6元/小时大货车或客车7元/小时由停车时选择录入 4汽车停泊信息管理车牌号、停泊位置、停泊开始时间车位已满给出提示 5车辆停泊时间自动计算费用管理取车后自动计算车辆停泊所需费用 6查询车辆信息管理车辆是否入库车辆出库删除车辆信息 7车主方选择车位、入库、出库时间。 二、系统功能 1登录模块用于管理员登录账号 2信息保存模块用于保存已有的泊车信息 3入库模块用于停车时录入汽车停泊信息如车牌号、车辆类型、车主电话、停泊位置、停泊开始时间等若车位已满给出提示 4删除模块用于出库时删除车辆信息 5展示模块用于为车主提供车位信息选择车位 6查找模块用于通过车牌号查找车辆信息 7计费模块用于取车时根据车辆停泊时间自动计算费用小轿车 5元/小时面包车6元/小时大货车或客车7元/小时由停车时选择录入 8出库模块用于车主出库 9状态模块用于修改车位状态 三、函数声明 1、单链表部分 头文件SLT.h #pragma once #define _CRT_SECURE_NO_WARNINGS 1 #includelocale.h #includestdio.h #includestdlib.h #includewindows.h #includestdbool.h #includeassert.h #includeparking.htypedef Info SLTDateType;typedef struct SListNode {SLTDateType data;struct SListNode* next; }SLTNode;//链表的头插和尾插 void SLTPushBack(SLTNode** pphead, SLTDateType x);void SLTPushFront(SLTNode** pphead, SLTDateType x);//链表的头删、尾删 void SLTPopBack(SLTNode** pphead);void SLTPopFront(SLTNode** pphead);//在指定位置之前插入数据 void SLTInsert(SLTNode** pphead, SLTNode* pos, SLTDateType x); //在指定位置之后插入数据 void SLTInsertAfter(SLTNode** pphead, SLTNode* pos, SLTDateType x);//删除pos void SLTErase(SLTNode** pphead, SLTNode* pos); //删除pos之后的节点 void SLTEraseAfter(SLTNode** pphead, SLTNode* pos);//销毁链表 void SListDestroy(SLTNode** pphead); 2、泊车系统功能部分 头文件Parking.h #pragma once #define TEL_Max 20 #define ROW_MAX 10 #define COL_MAX 10 #define BLANK L□//代表空车位 #define CAR L★//代表有车 typedef enum {min 1,mid,big }Type;//类型typedef enum {no,//无车yes//有车 }state;//状态typedef struct manager {char id[20];//账号char secret[20];//密码 }login;//管理员登录信息typedef struct ParkTime {int h;int m;int s; }time;//停车时间 typedef struct CarInfo {Type carType;//车类型char licensePlateNum[10];//车牌号char tel[TEL_Max];//电话int siteX;//位置横int siteY;//位置纵time startTime[10];//开始停车时间time leaveTime[10];//离开时间int fee;}Info;//车辆信息struct SListNode; typedef struct SListNode Parking;void SetPos(int x, int y);int Entry();//是否进入系统int Login();//登录void parking();//登陆后进行系统操作void LoadParking(Parking** pcar, int arr[ROW_MAX 1][COL_MAX 1],int* sitenum);//录入文件中现有信息void SaveParking(Parking* car);//保存信息到文件void AddParking(Parking** pcar, int* siteNum, int arr[ROW_MAX 1][COL_MAX 1]);//增加车辆信息void DelParking(Parking** pcar);//删除车辆信息Parking* FindByNum(Parking* pcar, char num[]);//通过车牌号来查找void FindParking(Parking** pcar);//先通过车牌号再查找车辆void ShowParking(Parking** pcar);//展示车辆信息void CountFee(Parking** pcar);//计算停车费用,未满一小时按照一小时计算void createSite(int arr[ROW_MAX 1][COL_MAX 1]);//创造车位状态void PrintSite(int arr[ROW_MAX 1][COL_MAX 1]);//查看车位状态void SiteState(Parking** pcar, int arr[ROW_MAX 1][COL_MAX 1], int* siteNum);//找到离开的车辆确定离开时间并且修改车位状态计算费用void ParkingDestroy(Parking** pcar);//销毁 四、函数实现 1、链表部分 源文件STL.c #includeSLT.hSLTNode* SLTBuyNode(SLTDateType x) {SLTNode* newnode (SLTNode*)malloc(sizeof(SLTNode));if (newnode NULL){perror(malloc fail!);exit(1);}newnode-data x;newnode-next NULL;return newnode; } void SLTPushBack(SLTNode** pphead, SLTDateType x) {assert(pphead);//新节点申请SLTNode* newnode SLTBuyNode(x);//链表为空新节点作为pheadif (*pphead NULL){*pphead newnode;return;}//链表不为空通过遍历找尾节点SLTNode* ptail *pphead;while (ptail-next){ptail ptail-next;}ptail-next newnode; }void SLTPushFront(SLTNode** pphead, SLTDateType x) {assert(pphead);SLTNode* newnode SLTBuyNode(x);newnode-next *pphead;//插入的节点指向第一个节点*pphead newnode;//再把newnode设为第一个节点 }void SLTPopBack(SLTNode** pphead) {assert(pphead);//链表不能为空assert(*pphead);//链表不为空//链表只有一个节点if ((*pphead)-next NULL){free(*pphead);*pphead NULL;return;}//有多个节点SLTNode* ptail *pphead;//遍历找尾节点SLTNode* prev NULL;//前驱while (ptail-next){prev ptail;ptail ptail-next;}prev-next NULL;free(ptail);ptail NULL; }void SLTPopFront(SLTNode** pphead) {assert(pphead);assert(*pphead);SLTNode* next (*pphead)-next;//-的优先级高于*free(*pphead);*pphead next;} //找pos的前驱节点prev void SLTInsert(SLTNode** pphead, SLTNode* pos, SLTDateType x) {assert(pphead);assert(pos);//要加上链表不为空因为pos是链表里的有效节点空的话就找不到pos的前驱节点assert(*pphead);//pos是头结点if (pos *pphead){//头插SLTPushFront(pphead, x);return;}//pos不是头结点的情况SLTNode* newnode SLTBuyNode(x);SLTNode* prev *pphead;while (prev-next ! pos){prev prev-next;}//prev找到了prev-next newnode;newnode-next pos; }//在指定位置之后插入数据 void SLTInsertAfter(SLTNode** pphead, SLTNode* pos, SLTDateType x) {assert(pphead);assert(pos);assert(*pphead);SLTNode* newnode SLTBuyNode(x);newnode-next pos-next;pos-next newnode; }//删除pos,找到前驱prev void SLTErase(SLTNode** pphead, SLTNode* pos) {assert(pphead);assert(pos);assert(*pphead);//pos是头结点if (pos *pphead){SLTPopFront(pphead);return;}//不是头结点SLTNode* prev *pphead;while (prev-next ! pos){prev prev-next;}//找到prevprev-next pos-next;free(pos);pos NULL; } //删除pos之后的节点 void SLTEraseAfter(SLTNode** pphead, SLTNode* pos) {assert(pphead);assert(pos);assert(pos-next);SLTNode* del pos-next;//不能直接释放pos-nextpos-next pos-next-next;free(del);del NULL; }void SListDestroy(SLTNode** pphead) {assert(pphead);assert(*pphead);//每个节点独立存在应循环销毁SLTNode* pcur *pphead;while (pcur){SLTNode* next pcur-next;free(pcur);pcur next;}*pphead NULL; }2、泊车系统部分 源文件Parking.c #includeSLT.hvoid SetPos(int x, int y) {//获得设备句柄HANDLE handle GetStdHandle(STD_OUTPUT_HANDLE);//根据句柄设置光标的位置COORD pos { x,y };//表示控制台坐标SetConsoleCursorPosition(handle, pos); }int Login() {int ret -1;login manager { 1,1 };//账号密码由自己设定char id[20] { 0 };char secret[20] { 0 };int chance 5;SetPos(40, 13);printf(您有五次登陆机会);SetPos(42, 20);system(pause);system(cls);while (chance 0) {SetPos(40, 13);printf(请输入账号:);scanf(%s, id);SetPos(40, 15);printf(请输入密码:);scanf( %s, secret);SetPos(42, 20);system(cls);if (strcmp(manager.id, id)0 strcmp(manager.secret, secret)0){SetPos(40, 13);printf(登陆成功\n);ret 1;system(pause);system(cls);break;}else {if (chance 1){SetPos(40, 13);printf(登陆失败,您还剩%d次机会请重新输入,chance-1);SetPos(42, 20);system(pause);system(cls);}else{SetPos(40, 13);printf(登陆失败\n);SetPos(42, 20);system(pause);system(cls);ret -1;break;}chance--;}}return ret; } int Entry() {SetPos(40, 13);printf(欢迎进入泊车系统\n);SetPos(42, 20);system(pause);system(cls);int op -1;SetPos(40, 15);printf(请选择1.登录系统\n);SetPos(40, 16);printf(0.退出系统\n);SetPos(40, 17);printf(请选择);scanf(%d, op);system(cls);int ret 0;do {switch (op){case 1://登录ret Login();break;case 0://退出SetPos(40, 13);printf(退出系统\n);ret -1;break;default:printf(选择错误请重新选择:\n);break;}if (ret 1||ret -1){break;}} while (op);return ret; }void menu() {SetPos(40, 12);printf(1.下载之前的信息);SetPos(40, 13);printf(2.车辆入库);SetPos(40, 14);printf(3.删除车辆信息);SetPos(40, 15);printf(4.根据车牌号查找车辆);SetPos(40, 16);printf(5.展示车辆信息);SetPos(40, 17);printf(6.查看车位状态);SetPos(40, 18);printf(7.车辆出库);SetPos(40, 19);printf(8.保存当前信息); SetPos(40, 20); printf(9.查看剩余车位); SetPos(40, 21);printf(0.退出系统); } void parking() {int op -1;Parking* car NULL;//int sitenum ROW_MAX * COL_MAX;int arr[ROW_MAX 1][COL_MAX 1] { 0 };createSite(arr);//创造车位do{menu();SetPos(40, 22);printf(请选择);scanf( %d, op);system(cls);switch (op){case 1:LoadParking(car,arr,sitenum);system(pause);system(cls);break;case 2:AddParking(car, sitenum, arr);system(pause);system(cls);break;case 3:DelParking(car);system(pause);system(cls);break;case 4:FindParking(car);system(pause);system(cls);break;case 5:ShowParking(car);system(pause);system(cls);break;case 6:PrintSite(arr);system(pause);system(cls);break;case 7:SiteState(car,arr, sitenum);system(pause);system(cls);break;case 8:SaveParking(car);system(pause);system(cls);break;case 9:printf(剩余车位%d\n, sitenum);system(pause);system(cls);break;case 0:SetPos(40, 12);printf(退出系统);SetPos(40, 20);break;default:SetPos(40, 15);printf(输入错误请重新选择\n);system(pause);system(cls);break;}} while (op);ParkingDestroy(car); }void AddParking(Parking** pcar, int* siteNum, int arr[ROW_MAX 1][COL_MAX 1]) {//判断车位是否已满if (*siteNum 0){printf(车位已满,无法进入停车\n);return;}else{Info car { 0 };printf(请选择车的类型1.小轿车 2.面包车 3.大货车或客车\n);//选车的位置scanf(%d, car.carType);printf(请输入车牌号\n);scanf(%s, car.licensePlateNum);printf(请输入电话号码:\n);scanf(%s, car.tel);system(cls);PrintSite(arr);printf(请选择停车的位置(坐标行列x,y))\n);scanf(%d%d, car.siteX, car.siteY);while (car.siteX ROW_MAX || car.siteY COL_MAX){printf(没有此车位选择错误请重新选择:);scanf(%d%d,car.siteX,car.siteY);}while (arr[car.siteX][car.siteY] yes){printf(车位已有车主无法进入请重新选择);scanf(%d%d,car.siteX,car.siteY);}arr[car.siteX][car.siteY] yes;printf(请输入停车时间(时分秒\n);scanf(%d%d%d, car.startTime-h, car.startTime-m, car.startTime-s);SLTPushBack(pcar, car);printf(停车入库成功);(*siteNum)--;} }Parking* FindByNum(Parking* pcar, char num[]) {Parking* cur pcar;while (cur){if (strcmp(cur-data.licensePlateNum ,num)0){return cur;}cur cur-next;}return NULL; }void DelParking(Parking** pcar) {printf(请输入要删除的车牌号\n);char num[20];scanf(%s, num);Parking* pos FindByNum(*pcar, num);if (pos NULL) {printf(要删除的车的信息不存在删除失败\n);return;}if (pos-data.fee 0) {printf(要删除的车辆未离开不允许删除);return;}SLTErase(pcar, pos);printf(删除成功\n); }void SiteState(Parking** pcar, int arr[ROW_MAX 1][COL_MAX 1], int* siteNum) {printf(请选择要离开的车的车牌号:);char num[20];scanf(%s, num);Parking* pos FindByNum(*pcar, num);if (pos NULL){printf(要出库的车辆不存在选择失败\n);return;}while (pos-data.fee ! 0) { //车辆已经离开pos pos-next;pos FindByNum(pos, num);if (pos NULL){printf(要出库的车辆已经离开选择失败\n);return;} } printf(请输入离开的时间);scanf(%d%d%d, pos-data.leaveTime-h,pos-data.leaveTime-m, pos-data.leaveTime-s);arr[pos-data.siteX][pos-data.siteY] no;printf(车辆已离开车位状态修改成功\n);//自动计算费用CountFee(pos);(*siteNum); } void FindParking(Parking** pcar)//通过车牌号查找 {char num[20];printf(请输入要查找车牌号\n);scanf(%s, num);Parking* pos FindByNum(*pcar, num);if (pos NULL){printf(要查找的用户不存在查找失败\n);return;}printf(查找成功\n);printf(%-4s %-10s %-10s %-8s %-13s %-10s %-8s\n, 类型, 车牌号, 电话, 位置, 停车时间, 离开时间, 费用);printf(%-4d %-10s %-10s (%d,%d) %d时%d分%d秒 %d时%d分%d秒 %d元\n,pos-data.carType,pos-data.licensePlateNum,pos-data.tel,pos-data.siteX,pos-data.siteY,pos-data.startTime-h,pos-data.startTime-m,pos-data.startTime-s,pos-data.leaveTime-h,pos-data.leaveTime-m,pos-data.leaveTime-s,pos-data.fee); }void ShowParking(Parking** pcar) {printf(%-4s %-10s %-10s %-8s %-13s %-10s %-8s\n, 类型, 车牌号, 电话, 位置, 停车时间,离开时间,费用);Parking* pos *pcar;while (pos){printf(%-4d %-10s %-10s (%d,%d) %d时%d分%d秒 %d时%d分%d秒 %d元\n,pos-data.carType,pos-data.licensePlateNum,pos-data.tel,pos-data.siteX,pos-data.siteY,pos-data.startTime-h,pos-data.startTime-m,pos-data.startTime-s,pos-data.leaveTime-h,pos-data.leaveTime-m,pos-data.leaveTime-s,pos-data.fee);pos pos-next;} }int Fee(int h1, int m1, int s1, int h2, int m2, int s2) {float timeS (h1 - h2) * 3600 (m1 - m2) * 60 s1 - s2;float timeH timeS / 3600.0;if (timeH (int)timeH){return (int)timeH;}else{return (int)timeH 1;} } void CountFee(Parking** pcar) {switch ((*pcar)-data.carType){case min://五元每小时(*pcar)-data.fee 5 * Fee((*pcar)-data.leaveTime-h, (*pcar)-data.leaveTime-m, (*pcar)-data.leaveTime-s,(*pcar)-data.startTime-h, (*pcar)-data.startTime-m, (*pcar)-data.startTime-s);break;case mid://六元每小时(*pcar)-data.fee 6 * Fee((*pcar)-data.leaveTime-h, (*pcar)-data.leaveTime-m, (*pcar)-data.leaveTime-s,(*pcar)-data.startTime-h, (*pcar)-data.startTime-m, (*pcar)-data.startTime-s);break;case big://七元每小时(*pcar)-data.fee 7 * Fee((*pcar)-data.leaveTime-h, (*pcar)-data.leaveTime-m, (*pcar)-data.leaveTime-s,(*pcar)-data.startTime-h, (*pcar)-data.startTime-m, (*pcar)-data.startTime-s);break;} }LoadParking(Parking** pcar, int arr[ROW_MAX 1][COL_MAX 1],int* sitenum) {FILE* pf fopen(C:/Users/16637/Desktop/Parking/Parking/Parking.txt, rb);if (pf NULL) {perror(fopen error!\n);return;}//循环读取⽂件数据 Info info;while (fread(info, sizeof(info), 1, pf)){SLTPushBack(pcar, info);}printf(历史数据导入成功\n);Parking* cur *pcar;while (cur){arr[cur-data.siteX][cur-data.siteY] yes;(*sitenum)--;cur cur-next;} }void SaveParking(Parking* car) {FILE* pf fopen(C:/Users/16637/Desktop/Parking/Parking/Parking.txt, wb,ccs UTF-8);if (pf NULL) {perror(fopen error!\n);return;}//将通讯录数据写入文件 Parking* cur car;while (cur){fwrite((cur-data), sizeof(cur-data), 1, pf);cur cur-next;}printf(通讯录数据保存成功\n); }void createSite(int arr[ROW_MAX 1][COL_MAX 1]) {int i 0;int j 0;//打印横坐标for (i 0; i ROW_MAX; i){for (j 0; j COL_MAX; j){arr[i][j] no;}} }void PrintSite(int arr[ROW_MAX 1][COL_MAX 1]) {int i 0;int j 0;//打印横坐标for (i 0; i ROW_MAX; i){printf(%d , i);}printf(\n);for (i 1; i COL_MAX; i){printf(%d , i);for (j 2; j COL_MAX * 2; j 2){if(arr[i][j/2]no){SetPos(j, i);wprintf(L%lc, BLANK);}else{SetPos(j, i);wprintf(L%lc, CAR);}}printf(\n);}printf(\n); }void ParkingDestroy(Parking** pcar) {SListDestroy(pcar); } 五、主函数 源文件 ParkingTest.c #includeSLT.hint main() {setlocale(LC_ALL, );system(mode con cols100 lines30);system(title 泊车系统);//登录系统int entry Entry();if (entry 1){//进入系统parking();}else {//退出系统;}return 0; } 六、操作提示 需要在控制台属性将终端修改为Windows控制台主机 显示结果 运行成功后就能按照提示进行接下来的操作了 登录账号1 密码1 选择界面 下载信息的文件路径由自己设定 车位样子如下星代表有车
http://www.zqtcl.cn/news/374321/

相关文章:

  • 麻涌镇网站仿做郑州做网页的公司
  • 做那个网站中山免备案网站建设
  • 软路由系统如何做网站全网营销式网站
  • 中国建设网官方网站视觉网站建设
  • 苏州乡村旅游网站建设策划书.docincapsula wordpress
  • 百度收录自适应网站滨海做网站哪家公司好
  • 东莞网站排名优化公司福田在线官网
  • 清湖网站建设天猫开店流程及费用2023
  • 邵阳建设网站公司网站建设构架
  • 怎样做网站卖网站网络营销概念
  • 怎样做网站能百度能搜到设计网站公司哪里好
  • 网站收缩栏专业定制网站公司
  • 烟台网站建设方案托管无锡网站制作企业
  • 网站网页是怎么做的用什么做网站 优化
  • 数据网站怎么做的网站开发的开题报告引言
  • 苏州专业网站制作设计做网站上海
  • 做网站可以用中文域名备案嘛山东省住房和城乡城乡建设厅网站
  • 网站建设推广多少钱站长工具seo综合查询关键词
  • 分类信息网站平台的推广做网站的花费
  • 还原wordpress站点地址恢复网站都要备案吗
  • 如何建立营销性企业网站论文如何修改wordpress
  • 全网营销销售郑州seo网站管理
  • dw怎么做网站首页邯郸网站建设品牌加盟
  • 辽宁省建筑工程造价信息网深圳市seo点击排名软件价格
  • 网站建设宗旨是指建设中英文网站
  • 浙江网站建设价格低东莞网站建设推广多少钱
  • 网站服务器重做系统怎么做快速提升网站权重
  • 怎么做自己的html网站网站收录不好的原因
  • 武夷山住房和城乡建设局网站网站提权
  • 电 器建设网站目的及功能定位百度的网站域名