停车场管理系统设计C语言课程设计.docx
学号20142015学年其次学期高级语言程序设计课程设计报告题目:停车场管理系统的设计专业:计算机科学与技术班级:13级(3)班姓名:指导老师:陈茅成果:计算机易信息工程系二。一五耳N日1、 设计内容及要求2、 整体设计停车模块车辆信息阅读模块取车模块3、 运行与测试报告4、 设计感想5、 源程序代码设计目的:通过设计个停车场管理系统,进步消化和巩固已学过的C语言程序设计基础理论,学习和实践程序设计的各种技能,利用C语言来设计各种应用程序和管理系统,为社会供应各种现代化的管理工具,同时也驾驭与数组有关的算法、函数的调用、结构体类型变量的定义和运用:文件打开、关闭、读、写等文件操作函数的运用,提高实际运用实力。设计内容:1 .有个两层的停车场,每层有6个车位,当第层车位停满后才允许运用其次U(停车场可用一个二维数组实现,每个数组元素存放一个车牌号)每辆车的信息包括车牌号,层号,车位号,停车时间共四项,其中停车时间按分钟计算。2 .假设停车场初始状态为其次层已经有四辆车,其车位号依次为1-4.停车时间依次为20,15,10,5.即先将这四辆车的信息存入文件car.datw(数组的对应元素也要进行赋值)3 .停车操作:当一辆车进入停车场时,先输入其车牌号,再为它安排一个层号和个车位号(安排前先查询车位的运用状况,假如第层有空位则必需停在第一层),停车时间设为5,最终将新停入的汽车的信息添加文件“car.dai”中,并将在此之前的停车时间加5。(此版简化时间的处理:当有一辆车进入时才对别的车加时间5分钟)4 .收费管理(取车):当仃车开走时,输入其车牌号,先按其停车时间计算贽用,每5分钟2毛钱。同时从文件“car.dai”k根除该车的信息,并将该车对应的车位设理为可运用状态(即二维数组清零按用户的选择来推断是否要输出停车收费的总计。5 .输出停车场中全部军辆的信息。6 .退出系统.)需求分析车辆信息要用文件存储,供应文件的输入输出操作:当车开走时要IW除文件中该车的信息因而要供应文件的恻除操作:另外还要用城盘式菜单.实现功能选择.总体设计整个管理系统可设计为停车模块、取车模块、车辆信息阅读模块.具体设计首先定义包含与标准库有关的变量定义和宏定义和文件包含所用的文件#inc1.ude<stdio.h>#inc1.ude<std1.ib.h>#inc1.ude<conio.h>#inc1.udc<io.h>#inc1.ude<std1.ib.h>然后用一个二维数组来表示一个停车场的位置.,每个数组元素存放一个车牌号intcars124=1234,1,1,20,2345,1,2,15,3456,1,3,10,4567,1,4,5,0,1.,5,0,0,1.,6,0,0,2J,0,0,2,20,0,2,3。,0,2AO,05,0,0,2,6,0);后定义一个文件夹来储存所停车的信息,起先有四辆车在车库voidsave()FI1.E*fp;inti.j:if(fp=fopen(,car.dat",w")=NU1.1.)printf("cannoiopenfi1.en");return;for(i=0;i<12;i+)for(j=0<4y+)if(fwrite(cars,2,1,fp)!=1)printf("fi1.ewriteerrorn");fc1.ose(fp);getchar();一、停车模块一.停车模块voidcar_park(void)intx,i,j;printf(*n-"欢迎您的光临!;pri11tfCnn请输入车牌号:nn");车牌号要在1000至9999之间,输入错误的车牌号将返回主菜单for(i=0;i<12;i+)if(carsi0=xx<1000ix>9999)break;if(i!=12)(printf11错误的号码或已经停过了!n");getchar():)e1.seif(i=12Mx>=1000&&x<=9999)for(i=0i<12H+)if(carsi0=0)carsi0=x;saveO;printf(*nn胜利nn"):为车选择一个停车的位置,包括层号与位置号printfC,层=%d,位=%dn*,carsi1.,carsi2);printfC,nnnTwotimes,Enter'toend")break;for(i=0;i<12:i+)if(carsi0!=0)carsi3+=5;save();二、车辆信息阅读模块把停车信息存入文件中voidprintfdata()i11ti.j;FI1.E*fp;fp=fope11(wcar.da1.","r");Printf("nNumberF1.oorPositionTimen,):for(i=0;i<12:i+)for(j=0J<4J+)fread(cars,2,1,fp):Printf("%6d*,carsij);)Printf("n");fc1.ose(fp);voidsaveO:voidcar_park(void);voidcar_get(void);voidprintfdata();charreadcommandO;voidinitia1.ization():插入主函数intmain()charc;Printf("按'enter,起先n");whiIe(I)(initia1.ization():c=readcommand();SyS1.Cm("cis");请选择所须要的操作,停车,取车,计时“P”停车操作选择以下操作“d”计算停车时间“g”取车操作、一switch(c)case'p':CaJPark();break;case'P':CajPark();break;case'g':CaJgeI();break;case'G':car_get();break;case,d':printfdata();printf(*nnp1.easepress'Enter,tocontinue.n*):scanf(*%c*,ftc);break;case,D':printfdata();printf(*nnrreupkIfdkp1.easepress,Enter'tocontinue.n*);scanf(*%c*,Ac);break;casete,:printf(*nnnnPress,Enter'tocontinue.*):exit(0):break;case'E':printf(*nnnnPress,Enter'tocontinue.*):exit(0):break;defau1.t:Prin1.f("ERROR!Press,Enter*tocontinue.;getchar();break;)voidinitia1.ization0inii;getchar();printf("n*n");Printfr1.停车一p2.取车一g3.停车时间一d4.退出-E");PrinIr(W*'4);)charreadco11unand()Charc;whi1.e(c!,p,)U(c!=tP')&&(c!='g')(c!=,G,)M(c!=,d,)&&(c!='D')&&(c!=e,)A<c1.=E,)Printfe'输入P,g,d,e选择!n");c=getchar();Prinif("n");break:)returnc;三.取车操作voidCaJgCt(VOid)ii11ti.y:f1.oatpaid:inia;printf(,n取车nnn输入车牌号:nnnn");printf(n车牌号在1000至9999之间n错误的号码nn"):scant'(%d*,fty);for(i=0;i<12:i+)(for(i=0:i<12;i+)if(carsi0=y)取乍后车牌号清零carsi0=0;paid=0.2*carsi3/5;计算停车费printf(n计费(1-是2或随意键一否)nnn");scanfC,%d,a):(switch(八)(case 1:printf(*nnn价格是%8.2fyuann*,paid):carsi3=0;saveO;break:case 2:PrinIf("欢迎您下次光临D;carsi3=0;save();break:defau1.t:break;I)e1.se:break:)if(i=12)printf(*n此车不在停车场!n"):)运行与测试报告"rx"3D8MffC-FreeTe11pVRS1.exe欢迎邱的光哈,清就入车牌号:102R展1.车位4wotfines,Enter,toend.唱Dg11SC-FreeTempVea1.exe取车输入车牌号:车牌号宜H至”99之间惜误的号码1A2A计费1一是2或任意便一否F1.oorPositionNunber1234234534564567123Tine2526IS10p1.easepressEnter*tocontinue.F1.oorPoaitionHunbcr1234234534564567123p1.easeprec*Enter*Tine2526151.continue.1停车一P2.取车一g3.停车时间一d4.退出一E院入p,g.d)Jtf设计感想:众所周知,C语言程序是一种最基本的应用程序,只有熟练的驾驭和运用才能便于以后的编程。通过此次程序设计实习,我胜利地完成了课堂上老师所要求的内容,更加理解和懂得运用结构化程序设计的思想和方法,初步驾驭开发一个小型好用系统的基本方法,学会调试一个较长程序的的基本方法,学会利用流程图表示