C语言程序设计实习报告-停车场管理系统

合集下载

停车场系统程序设计总结1(样例5)

停车场系统程序设计总结1(样例5)

停车场系统程序设计总结1(样例5)第一篇:停车场系统程序设计总结1总结c 语言程序设计是一门重要的专业基础课,通过这次课程设计使我了解了c语言程序设计的思想,并且掌握了程序设计的基本方法,为后续课程打下了坚实的基础。

同时,这次课程设计又是一次实践性较强的知识应用,在对我进行程序设计基础理论与技术技巧能力训练的同时,更加培养了我解决实际问题的编程能力。

在设计过程中,首先要解决的是与同学的合作,接下来分工与协商,共同探讨,大家取长补短,认清自己的不足之处和薄弱环节,加以弥补和加强,要做出一个好的程序就要有不懈追求的精神和对理想崇高的追求,有一种不完成不罢休的精神。

c 语言作为一种高级编程语言具有方便灵活的特点,适合各种类型的软件开发,为我们以后学习单片机非常有用。

在设计初期,根据题目的要求和所学的知识,车库中的车辆是先进后出的,是栈结构,便道上的车辆是先进先出的,是一个队列,结构很明显,但是现阶段我所学的基础知识不够,掌握的不多,对应用栈和队列来解决这个问题有一定的困难,因此我在整个设计中使用了结构体数组,运用一个结构体数组来同时记录车库和便道中车辆的信息,这样也可以起到一个连续记录数据的功能,完成设计要求的任务。

课程设计为我提供了一个既动手又动脑,独立实践的机会,将课本上的知识与实践相结合起来,提高了我适应实际,实践编程的能力。

在这一系统中用到了结构体,它让我更加巩固了结构体的特点和用法,本设计最好使用的结构是栈和队列,但是我们现阶段还未作学习,使用起来不是很流畅,因此我在这个设计中使用了结构体,使用了新的思路。

总之,这次课程设计挖掘了我潜在的能力,是我更加自信,也对编程更加有兴趣,为以后的学习打下了良好的基础。

第二篇:停车场信息上传系统停车场信息上传系统索威尔停车场车辆信息采集报送系统索威尔停车场车辆信息采集报送系统是深圳市索威尔科技发展有限公司针对《深圳市经营性停车场设施管理办法》要求,结合深圳市停车场的现状和特情,为满足深圳停车场信息报送需求而专门研发的一整套可完成车辆信息数据实时采集报送应用系统。

C语言:停车场管理系统

C语言:停车场管理系统

#include<stdio.h>#include<stdlib.h>#include<string.h>#include<malloc.h>#include<time.h>//获取系统时间#include<conio.h>//包含屏幕操作函数#define NULL 0#define LEN sizeof(struct car)//用于存放时间typedef struct time{int intimeyear;int intimemounth;int intimeday;int intimehour;int intimeminute;int intimesecond;//驶入时间,驶入时系统获取int outtimehour;int outtimeminute;int outtimesecond;//驶出时间}TIME;//用于存放车辆信息typedef struct car{int number;//在头指针中代表空车位,在其它指针中代表其车位号,从1-15按顺序char license[10];//每辆车自己的型号TIME time;//时间struct car *next;}CAR;//用于存放每日费用,并写入文件,便于计算一个月收入struct oneday{int tyear;int tmounth;int tday;int onedayfee;}one;CAR *creat();void inbigcar();//驶入一辆大型客车或货车void inmiddlecar();//驶入一辆中型客车或货车void insmallcar();//驶入一辆轿车int outbigcar();//输出一辆大型客车或货车int outmiddlecar();//开出一辆中型客车或货车int outsmallcar();//开出一辆轿车void lookup1();//分别输出A区,B区,C区当前所停放的汽车的信息void lookup2();//分别输出A区,B区,C区当前空闲的车位号void lookup3();//输入车牌号,输出该车所停放的车位号void lookup4();//输出A区,B区,C区当前所停放的汽车的数量void lookup5();//输入当前时间,分别统计A区,B区,C区到当前时间为止,停车时间超过5小时的汽车数量,并输出这些汽车的信息void lookup6();//输入一个日期(年.月),统计该月停车场的收费金额int onemoufee(int year,int mounth);//计算一个月的收入CAR *Ahead,*Bhead,*Chead;void main(){printf("\n\n\n\n================================================================== ==============\n\n\n\n");printf("\t\t********欢迎使用Light停车场管理系统!********\n\n\n\n\n");printf("========================================================================= =======\n\n\n\n");printf("\t\t\t 请按任意键进入\n");getchar();FILE *fp,*fp1;int year,mounth,day,hour,m,n=1,i=0;int Amoney=0,Bmoney=0,Cmoney=0,summoney=0;if((fp=fopen("table.txt","a"))==NULL){printf("Cannot open file!\n");exit(0);}//end if创立一个文件,以便记录Ahead=creat();Bhead=creat();Chead=creat();time_t nowtime;struct tm *timeinfo;time( &nowtime );timeinfo = localtime( &nowtime );one.tyear =year= timeinfo->tm_year + 1900;one.tmounth =mounth=timeinfo->tm_mon + 1;one.tday =day= timeinfo->tm_mday;hour = timeinfo->tm_hour;printf("%d\n",hour);if(hour<6||hour>=22){system("cls");printf("\n\n\n=================================================================== =============\n");printf("\t\t * *\n");printf("\t\t * *\n");printf("\t\t * Light停车场管理系统close *\n");printf("\t\t * *\n");printf("\t\t * *\n");printf("\t\t * 营业时间:6:00-22:00 *\n");printf("\t\t * *\n");printf("\t\t * *\n");printf("\t\t * 请您营业时间再来!*\n");printf("\t\t * *\n");printf("\t\t * *\n");printf("========================================================================= =======\n");printf("\n\t\t\t\t请按任意键结束\n");getchar();exit(0);}//end iffprintf(fp,"%d年%d月%d日",year,mounth,day);while(n==1){system("cls");printf("\n");printf("========================================================================= =======\n");printf("\t\t * *\n");printf("\t\t * *\n");printf("\t\t * Light停车场管理系统*\n");printf("\t\t * *\n");printf("\t\t * *\n");printf("\t\t * *\n");printf("\t\t * 欢迎使用!*\n");printf("\t\t * *\n");printf("\t\t * *\n");printf("\t\t * *\n");printf("========================================================================= =======\n\n");printf("\t 1. 停车 3. 查询\n");printf("\t 2. 取车0. 退出\n\n");printf("\t 请选择: ");scanf("%d",&m);switch(m){case 1:while(n==1){system("cls");printf("\t\t欢迎您停车!\n\n\t\t请选择您的停车区域\n");printf("--------------------------------------------------------------------------------\n\n");printf("\t 1. A区停放轿车 3. C区停放大型客车或货车\n");printf("\t 2. B区停放中型客车或货车0. 退出\n\n");printf("\t 请选择您需要的服务(0-3):");printf("\n\t 请选择: ");scanf("%d", &m);getchar();//驶入状况下选择车型switch(m){case 1:insmallcar();break;case 2:inmiddlecar();break;case 3:inbigcar();break;case 0:break;default:printf("You input the wrong number.\n");}//end switchprintf("\n\t如果您想继续停车,请输入1;如果想进入主菜单或退出,请输入任意数字:");printf("\n\t 请选择: ");scanf("%d",&n);}break;case 2: while(n==1){system("cls");printf("\t\t欢迎您取车!\n\n\t\t请选择您的取车的区域!\n");printf("--------------------------------------------------------------------------------\n\n");printf("\t 1. 从A区取轿车 3. 从C区取大型客车或货车\n");printf("\t 2. 从B区取中型客车或货车0. 退出\n\n");printf("--------------------------------------------------------------------------------\n");printf("\t 请选择您需要的服务(0-3):");scanf("%d", &m);getchar();//驶出状况下选择车型switch(m){case 1:Amoney=outsmallcar();break;case 2:Bmoney=outmiddlecar();break;case 3:Cmoney=outbigcar();break;case 0:break;default:printf("You input the wrong number.\n");}printf("\n\t如果您想继续开车,请输入1;如果想进入主菜单或退出,请输入0:");printf("\n\t 请选择: ");scanf("%d",&n);}one.onedayfee =summoney=Amoney+Bmoney+Cmoney;break;case 3: while(n==1){system("cls");printf("--------------------------------------------------------------------------------\n");printf("\t欢迎进入管理系统\t\n");printf("--------------------------------------------------------------------------------\n");printf("What do you want to look up?\n");printf("1、分别输出A区,B区,C区当前所停放的汽车的信息;\n");printf("2、分别输出A区,B区,C区当前空闲的车位号;\n");printf("3、输入车牌号,输出该车所停放的车位号;\n");printf("4、输出A区,B区,C区当前所停放的汽车的数量;\n");printf("5、输入当前时间,分别统计A区,B区,C区到当前时间为止,停车时间超过5小时的汽车数量,并输出这些汽车的信息;\n");printf("6、输入一个日期(年.月),统计该月停车场的收费金额。

停车场管理系统--c语言

停车场管理系统--c语言
t->data=a.num;
t->next=NULL;
q->rear->next=t;
q->rear=t;//q->rear=q->rear->next;
printf("%d号车进入便道等待\n",q->rear->data);
q->geshu++;
}
}
int D_cars(SqStack *s,LinkQueue *q,struct car d)
{QNODE *front,*rear;
int geshu;
}LinkQueue;
QNODE *head;
struct Dcar dd[MAXSIZE];
A_cars(SqStack *s,LinkQueue *q,struct car a)
{QNODE *t, *p;
printf(" ** 停车场管理系统 ** \n");
printf(" ** ** \n");
a=s->top;
printf("停车场内车辆数: %d\n",(s->top)+1);
printf("停车场内剩余空位:%d\n",3-s->top);
printf("详细信息:\n");
while(s->top>=0)
{printf("%d号车,%d时停车\n",(s->G[s->top]).num,(s->G[s->top]).time);
{int i,j,l;

停车场管理系统C课程设计报告

停车场管理系统C课程设计报告

重庆科技学院《面向对象程序设计》课程设计报告学院:电气与信息工程学院专业班级:计科2012-05学生姓名:蒋鑫学号: 2012442101设计地点(单位)_____I313________设计题目:_ 停车场管理系统 ___完成日期: 2014 年 1月 8 日指导教师评语: ______________________ _______________ ___________________________________________________________________________ ___________________________________________________________________________ ___________________________________________________成绩(五级记分制):______ __________指导教师(签字):________ ________重庆科技学院课程设计任务书设计题目:停车场管理系统设计学生姓名蒋鑫课程名称面向对象课程设计专业班级计科12-5班地点I313 起止时间12月30日~1月10日设计内容及要求1)问题描述定义车辆类,属性有车牌号、颜色、车型(小汽车、小卡、中卡和大卡)、到达的时间和离开的时间等信息和相关的对属性做操作的行为。

定义一个管理类,完成对停车场的管理。

停车场的具体要求:设停车场是一个可停放n辆汽车的狭长通道,且只有一个大门可供汽车进出。

汽车在停车场内按车辆到达时间的先后顺序,依次由北向南排列(大门在最南端,最先到达的第一辆车停放在车场的最北端),若车场内已停满n辆汽车,则后来的汽车只能在门外的便道上等待,一旦有车开走,则排在便道上的第一辆车即可开入;每辆停放在车场的车在它离开停车场时必须按它停留的时间长短交纳费用。

2)功能要求(1)添加功能:程序能够添加到达停车场的车辆信息,要求车辆的车牌号要唯一,如果添加了重复编号的记录时,则提示数据添加重复并取消添加。

C语言综合程序设计停车场管理系统.doc

C语言综合程序设计停车场管理系统.doc

综合性程序设计报告设计题目:____停车场管理系统___________指导教师: _______________班级: _____________学号: _______________设计者: _______________成绩: _______________设计时间: 年月日停车场管理系统目录1.题目描述2.功能模块分解及说明3.数据库设计及说明4.界面说明5.主要算法说明6.代码清单及注释7.设计测试说明8.设计体会停车场管理系统1.题目描述停车场的基本概述:用于利用计算机实现停车场的管理,包括车位调度,停车记费。

车位记录,收费管理与计算。

停车场的主要功能:1.车位调度。

2.停车时间与费用的计算。

3.车位记录。

2.功能模块分解及说明根据题目要求,可以用结构体实现,在程序中,需要知道每辆来车的具体停放位置,应提供提示、查找、标记工作。

车辆离开要计时计费。

另外,每天开始时,停车场要初始化。

所以,这个系统可以分为:初始化、有车进入、有车离开、退出四个模块。

○1菜单函数:main()函数体内包含了界面选则部分menu(),并单独抽出来作为一个独立函数,目的在于系统执行每部分模块后能够方便返回到系统界面。

即main()函数写为如下:void main()/*主函数*/{menu();/*菜单函数*/}void menu(){int n,w;do{puts("\t\t**************MENU**************\n\n");puts("\t\t\t 1.初始化");puts("\t\t\t 2.有车进入");puts("\t\t\t 3.有车离开");puts("\t\t\t 4.退出");puts("\n\n\t\t*********************************\n");printf("Please choice your number(1-4): [ ]\b\b");scanf("%d",&n);if(n<1||n>4) /*对选择的数字作判断*/{w=1;getchar();}else w=0;}while(w==1);switch(n){case 1:chushi();break; /*初始化函数*/case 2:jinru();break; /*车辆进入函数*/case 3:likai();break; /*车辆离开函数*/case 4:exit(0); /*退出*/}}○2车道信息该模块是将每一天开始的停车场内和便道车位清零。

大学设计方案方案——利用所学C语言知识方案报告停车场管理系统

大学设计方案方案——利用所学C语言知识方案报告停车场管理系统

2008.12.25班级:55071——28学号:20071003753指导教师:刘文中姓名:谢永诚停车场管理一一.要求:1.设计一个停车场用长度为N的堆栈来模拟。

由于停车场内如有某辆车要开走,在它之后进来的车都必须先退出为它让道,待其开出停车场后,这些车再依原来的顺序进入。

2.程序输出每辆车到达后的停车位置,以及某辆车离开停车场时应交纳的费用和它在停车场内停留的时间。

二、程序中所采用的数据结构及存储结构的说明以栈模拟停车场,以队列模拟车场外的便道,按照从终端读入的输入数据序列进行模拟管理。

栈以顺序结构实现,队列以链表实现。

程序中分别采用了“栈”和“队列”作为其存储结构。

“栈”的定义可知,每一次入栈的元素都在原栈顶元素之上成为新的元素,每一次出栈的元素总是当前栈顶元素使次栈元素成为新的栈顶元素,即最后进栈者先出栈。

程序中采用的结构是:typedef struct NODE{CarNode *stack[MAX+1]。

int top。

}SeqStackCar。

/*模拟车库*/“队列”是限定所有插入操作只能在表的一端进行,而所有的删除操作都只能在表的另一端进行。

插入端叫队尾,梦芭莎优惠券删除端叫对头。

按先进先出规则进行。

程序中采用的结构是:typedef struct Node{QueueNode *head。

QueueNode *rear。

}LinkQueueCar。

/*模拟通道*/三、算法的设计思想由于停车场是一个狭窄通道,而且只有一个大门可供汽车进出,问题要求汽车停车场内按车辆到达时间的先后顺序,依次由北向南排列。

由此很容易联想到数据结构中的堆栈模型,因此可首先设计一个堆栈,以堆栈来模拟停车场,又每个汽车的车牌号都不一样,这样一来可以根据车牌号准确找到汽车位置,所以堆栈里的数据元素我设计成汽车的车牌号。

当停车场内某辆车要离开时,在他之后进入的车辆必须先退出车场为它让路,待该辆车开出大门外,其他车辆再按原次序进入停车场。

C语言程序设计实习报告-停车场管理系统

C语言程序设计实习报告-停车场管理系统

C语言课程设计实习报告姓名:成帅安学号:20141002605院(系):工程学院专业:土木工程2016年6 月2016.6 中国地质大学C语言课程设计 1 第一章停车场管理系统§1.1题目描述1、有一个两层的停车场,每层有6个车位,当第一层车停满后才允许使用第二层,(停车场可用一个二维数组实现,每个数组元素存放一个车牌号)每辆车的信息包括车牌号,层号,车位号,停车时间共4项,其中停车时间按分钟计算。

2、假设停车场初始状态为第一层已经停有4辆车,其车位号依次为1-4,停车时间依次为20,15,10,5。

即先将这四辆车的信息存入文件“car.dat"中(数组的对应元素也要进行赋值)。

3、停车操作:当一辆车进入停车场时,先输入其车牌号,再为它分配一个层号和一个车位号(分配前先查询车位的使用情况,如果第一层有空则必须停在第一层),停车时间设为5,最后将新停入的汽车的信息添加文件"car.dat"中,并将在此之前的所有车的停车时间加5。

4、收费管理(取车):当有车离开时,输入其车牌号,先按其停车时间计算费用,每5分钟0.2元。

(停车费用可设置一个变量进行保存),同时从文件"car.dat"中删除该车的信息,并将该车对应的车位设置为可使用状态(即二维数组对应元素清零)。

按用户的选择来判断是否要输出停车收费的总计。

5、输出停车场中全部车辆的信息。

6、退出系统。

§1.2算法设计1、需求分析:车辆信息用文件储存,提供文件的输入输出操作;当车离开时要删除文件中该车的信息,因而要提供文件的删除操作;用键盘式菜单实现功能选择。

2、总体设计思路:整个管理系统设计可设计为停车模块、取车模块、车辆浏览信息模块。

另外车辆停放信息涉及到从car.dat中读取,保存和修改,为了方便起见和程序的模块化,我将文件的读入和保存单独设计为两个子程序。

整体模块图如下:23、各子程序设计如下:(1)使用全局变量数组,用一个二维数组实现停车场车位的信息,int cars[12][4];2016.6 中国地质大学C语言课程设计 3 (2)通过读取car.dat的数据,对程序初始化。

停车场管理系统实习报告

停车场管理系统实习报告

停车场管理系统实习报告一、实习背景及目的随着我国经济的快速发展和城市化进程的推进,城市交通问题日益凸显,特别是停车问题。

为了缓解停车难问题,提高停车场管理效率,本次实习我选择了停车场管理系统作为研究对象。

实习的目的是了解停车场管理系统的现状,掌握停车场管理系统的运作模式,探讨如何优化停车场管理系统,提高停车效率和管理水平。

二、实习内容及过程1. 停车场管理系统的了解在实习过程中,我首先对停车场管理系统的基本概念、组成部分和运作原理进行了学习。

停车场管理系统主要包括车位信息实时更新、车牌识别、车位预约、自动计费、支付处理等功能。

通过这些功能,停车场管理系统可以实现对车辆的快速进出、车位的高效利用和管理。

2. 停车场管理系统的实际操作为了更深入地了解停车场管理系统,我参与了实际操作。

在操作过程中,我学习了如何使用车位探测器收集车位信息,如何通过车牌识别系统快速识别车辆,以及如何处理预约车位、自动计费和支付等业务。

此外,我还学习了如何通过管理系统对停车场进行实时监控,确保车位的高效利用和管理。

3. 停车场管理系统的优化探讨在实际操作过程中,我发现停车场管理系统存在一些问题,如车位信息更新不及时、支付方式单一、客户服务不足等。

针对这些问题,我提出了以下优化建议:(1)引入智能算法,提高车位信息更新的实时性,减少误差。

(2)增加多种支付方式,如微信支付、支付宝支付等,方便顾客支付。

(3)加强客户服务,如设立客户服务中心,提供导航、咨询等服务。

(4)开展停车场共享计划,将空闲车位共享给周边商户和居民,提高车位利用率。

三、实习收获及反思通过本次实习,我对停车场管理系统有了更深入的了解,认识到了停车场管理的重要性。

同时,我也学会了如何使用停车场管理系统进行实际操作,掌握了相关技能。

实习过程中,我发现停车场管理系统还存在一些问题,这让我意识到优化停车场管理系统的重要性。

在今后的学习和工作中,我将不断探索停车场管理系统的优化方法,为提高停车场管理水平和停车效率做出贡献。

  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

C语言课程设计实习报告姓名:成帅安学号:20141002605院(系):工程学院专业:土木工程2016年6 月2016.6 中国地质大学C语言课程设计 1 第一章停车场管理系统§1.1题目描述1、有一个两层的停车场,每层有6个车位,当第一层车停满后才允许使用第二层,(停车场可用一个二维数组实现,每个数组元素存放一个车牌号)每辆车的信息包括车牌号,层号,车位号,停车时间共4项,其中停车时间按分钟计算。

2、假设停车场初始状态为第一层已经停有4辆车,其车位号依次为1-4,停车时间依次为20,15,10,5。

即先将这四辆车的信息存入文件“car.dat"中(数组的对应元素也要进行赋值)。

3、停车操作:当一辆车进入停车场时,先输入其车牌号,再为它分配一个层号和一个车位号(分配前先查询车位的使用情况,如果第一层有空则必须停在第一层),停车时间设为5,最后将新停入的汽车的信息添加文件"car.dat"中,并将在此之前的所有车的停车时间加5。

4、收费管理(取车):当有车离开时,输入其车牌号,先按其停车时间计算费用,每5分钟0.2元。

(停车费用可设置一个变量进行保存),同时从文件"car.dat"中删除该车的信息,并将该车对应的车位设置为可使用状态(即二维数组对应元素清零)。

按用户的选择来判断是否要输出停车收费的总计。

5、输出停车场中全部车辆的信息。

6、退出系统。

§1.2算法设计1、需求分析:车辆信息用文件储存,提供文件的输入输出操作;当车离开时要删除文件中该车的信息,因而要提供文件的删除操作;用键盘式菜单实现功能选择。

2、总体设计思路:整个管理系统设计可设计为停车模块、取车模块、车辆浏览信息模块。

另外车辆停放信息涉及到从car.dat中读取,保存和修改,为了方便起见和程序的模块化,我将文件的读入和保存单独设计为两个子程序。

整体模块图如下:23、各子程序设计如下:(1)使用全局变量数组,用一个二维数组实现停车场车位的信息,int cars[12][4];2016.6 中国地质大学C语言课程设计 3 (2)通过读取car.dat的数据,对程序初始化。

下图为car.dat的初始数据:在init()通过一个for循环完成对car.dat中数据的读取。

for(i=0;i<12;i++){fscanf(fp,"%d ", &cars[i][0]);fscanf(fp,"%d ", &cars[i][1]);fscanf(fp,"%d ", &cars[i][2]);fscanf(fp,"%d ", &cars[i][3]);}(3)设计一个子程序saveAll()用来保存停车场车位的信息到car.dat。

用for循环再将处理后的数据存入文件中。

for(i=0;i<12;i++){fprintf(fp,"%d ", cars[i][0]);fprintf(fp,"%d ", cars[i][1]);fprintf(fp,"%d ", cars[i][2]);fprintf(fp,"%d ", cars[i][3]);fprintf(fp,"\n" );}(4)停车模块:首先,输入车辆的车牌号,我们从键盘读取车牌号码,并判断车牌号码是否正确(五位数整型车牌号码)。

输入出错时要求继续输入。

我们引入flag标志量判断车牌号是否正确,初始int flag=1,从键盘读入车牌号码,并判断:4 printf("请输入您的车牌号:");do{scanf("%d",&temp);if((temp>9999)&&(temp<100000))break;flag=0;printf("请重新输入五位数车牌号\n :");}while(!flag);其次,读取的车牌号正确之后对标志量清零flag=0,代表没有没有找到车位,进行为车辆找停车位的操作,如下:flag=0;for(i=1;i<13;i++){if(cars[i][0]!=0)continue;cars[i][0]=temp;flag=1;break;}通过for循环和continue语句找到没有停车的车位,即car[i][0]不等于0,并将标志量flag赋值1,表示有车位,用break语句跳出循环。

再用if语句处理flag==1的情况,即停车场车位已满无法停车。

最后,对存入的车辆赋初始时间5,并且前面的已存入的车辆时间都加5。

语句如下:for(i=0;i<12;i++){if(cars[i][0]!=0)cars[i][3]+=5;cars[i][2]+=i;}又因为我在car.dat已经对车辆的停放楼层和车位有过初始赋值,可以省去再对cars[i][1]和cars[i][2]的操作。

并且可以满足“第一层有空位必须停在第一层”的要求,不过存在一个问题就是车辆只能按车位序号停放。

(5)取车模块:第一步,读取要提取车辆的车牌号码。

再通过flag标志量对所输入车牌号正误分别处理。

(初始flag=0)2016.6 中国地质大学C语言课程设计 5 第二步,对于输入正确的车辆进行操作:删除车辆信息,再计算费用,再对时间清零并标志取车成功。

第三步,进过上一步后取车不成功时即flag还是为0时,提示重复输入车牌号直道成功为止。

程序如下:do{scanf("%d",&temp);if((temp>9999)&&(temp<100000)){for(i=0;i<12;i++)if(cars[i][0]==temp){cars[i][0]=0;cost=0.2*cars[i][3]/5;cars[i][3]=0;flag=1;break;}}if(flag==0)printf("您输入的车牌号码有误,请重新输入。

\n");}while(!flag);第四步,有选择性的显示收费价格:printf("\n 显示停车费用?是(1)/否(2)");scanf("%d",&i);switch(i){case 1: printf("\n车牌号 : %d 费用 %8.2f元\n",temp,cost);case 2:default: break;}最后,调用saveAll()函数来保存数据到car.dat。

(6)车辆信息浏览模块:只需要显示有车的车位,可以用for循环语句再加上if判断语句来实现显示功能。

printf("车牌号\t\t楼层\t 车位 \t\t时间\n");for(i=0;i<12;i++)if(cars[i][0]!=0)printf("%d\t\t %d \t\t%d\t\t %d\n",cars[i][0],cars[i][1],cars[i][2],cars[i][3]);6 (7)主函数:调用子函数init()初始化读取car.dat文件。

用printf在屏幕上显示停车场的菜单。

再用switch语句实现选择执行哪个模块语句。

switch(a){case 1:putCar(); break;case 2:getCar();break;case 3:showInfo();break;case 4:exit(0); break;default:printf("您输入的信息有误!\n"); break;};getchar();§1.3程序设计及代码分析程序代码如下:#include <stdio.h>#include <stdlib.h>#include<conio.h>#include<io.h>int park[12][4]; /*停车场使用数组*/void init() /*初始化*/{char filename[] = "car.dat";FILE *fp;int i;if((fp = fopen(filename,"r")) == NULL){printf("无法打开文件 \" car.dat\"\n");return ;}for(i=0;i<12;i++){ /*读数据文件内容到数组*/ fscanf(fp,"%d ", &park[i][0]);fscanf(fp,"%d ", &park[i][1]);fscanf(fp,"%d ", &park[i][2]);fscanf(fp,"%d ", &park[i][3]);}2016.6 中国地质大学C语言课程设计7 fclose(fp);}void saveAll(){ /*保存数据到car.dat*/ char filename[] = "car.dat";FILE *fp;int i=0;if((fp = fopen(filename,"w")) == NULL){printf("无法打开文件 \" car.dat\"\n");return ;}for(i=0;i<12;i++){ /*写数据到文件*/ fprintf(fp,"%d ", park[i][0]);fprintf(fp,"%d ", park[i][1]);fprintf(fp,"%d ", park[i][2]);fprintf(fp,"%d ", park[i][3]);fprintf(fp,"\n" );}fclose(fp);}void putCar(){ /*停车操作*/ int i;int temp;int flag=1;printf("\n\n*********欢迎来到地大停车场*********\n");printf("请输入你的车牌号:");do{scanf("%d",&temp);if((temp>9999)&&(temp<100000))break;flag=0;printf("您输入的车牌号格式有误");}while(!flag);flag=0;8 for(i=0;i<12;i++){if(park[i][0]!=0)continue;park[i][0]=temp;flag=1;break;}if(flag==0){ /*没有找到位置,停车场已满*/ printf("很抱歉!车位已满:\n");return ;}for(i=0;i<12;i++){ /*所有车的停车时间一起加5*/ if(park[i][0]!=0)park[i][3]+=5;}saveAll();getchar();printf("存车成功!\n按任意键回到主菜单...");}void getCar(){ /*取车*/ int i,temp,flag=0;float cost;printf("\n\n*********从停车场取车*********\n ");printf(" 请输入你的车牌号码:");do{scanf("%d",&temp);if((temp>9999)&&(temp<100000)){for(i=0;i<12;i++)if(park[i][0]==temp){park[i][0]=0; /*删除该车位车辆信息*/cost=0.2*park[i][3]/5;park[i][3]=0;flag=1;break;2016.6 中国地质大学C语言课程设计9}}if(flag==0)printf("您输入的车牌号码有误,请重新输入。

相关文档
最新文档