C语言课程设计停车场管理.docx

上传人:rrsccc 文档编号:9357379 上传时间:2021-02-21 格式:DOCX 页数:17 大小:172.82KB
返回 下载 相关 举报
C语言课程设计停车场管理.docx_第1页
第1页 / 共17页
C语言课程设计停车场管理.docx_第2页
第2页 / 共17页
C语言课程设计停车场管理.docx_第3页
第3页 / 共17页
C语言课程设计停车场管理.docx_第4页
第4页 / 共17页
C语言课程设计停车场管理.docx_第5页
第5页 / 共17页
点击查看更多>>
资源描述

《C语言课程设计停车场管理.docx》由会员分享,可在线阅读,更多相关《C语言课程设计停车场管理.docx(17页珍藏版)》请在三一文库上搜索。

1、中国地质大学(武汉)设计名称:停车场管理2班级序号:姓名:学号:指导老师:C 语言程序设计报告前言设计目的 :通过设计一个停车场管理系统,进一步消化和巩固已学过的C 语言程序设计基础理论,学习和实践程序设计的各种技能,利用C 语言来设计各种应用程序和管理系统,为社会提供各种现代化的管理工具,同时也掌握与数组有关的算法、函数的调用、结构体类型变量的定义和使用;文件打开、关闭、读、写等文件操作函数的使用,提高实际运用能力。设计内容题目要求: 27 题:停车场管理2内容: 1 有一个两层的停车场,每层有6 个车位,当第一层车位停满后才允许使用第二层(停车场可用一个二维数组实现,每个数组元素存放一个车

2、牌号)每辆车的信息包括车牌号,层号,车位号,停车时间共四项,其中停车时间按分钟计算。2 假设停车场初始状态为第一层已经有四辆车,其车位号依次为 1-4 ,停车时间依次为 20,15,10,5。即先将这四辆车的信息存入文件“ car.dat ”中(数组的对应元素也要进行赋值)3 停车操作:当一辆车进入停车场时,先输入其车牌号,再为它分配一个层号和一个车位号(分配前先查询车位的使用情况, 如果第一层有空位则必须停在第一层),停车时间设为 5,最后将新停入的汽车的信息添加文件“ car.dat ”中,并将在此之前的停车时间加 5。(此题简化时间的处理:当有一辆车进入时才对别的车加时间 5 分钟)4

3、收费管理(取车):当有车开走时,输入其车牌号,先按其停车时间计算费用,每 5 分钟 2 毛钱。同时从文件“ car.dat ”k 删除该车的信息,并将该车对应的车位设置为可使用状态(即二维数组清零) 。按用户的选择来判断是否要输出 停车收费的总计。5 输出 停车场中全部车辆的信息。6 退出系统。需求分析车辆信息要用文件存储,提供文件的输入输出操作;当车开走时要删除文件- 2 -中该车的信息, 因而要提供文件的删除操作; 另外还要用键盘式菜单实现功能选择。总体设计整个管理系统可设计为停车模块、取车模块、车辆信息浏览模块。停车场管理系统停车模块车辆信息浏取车模块览模块详细设计首先定义包含与标准库有

4、关的变量定义和宏定义和文件包含所用的文件#include #include #include#include#include 然后用 一个二维数组来表示一个停车场的位置,每个数组元素存放一个车牌号int cars124=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,2,1,0,0,2,2,0,0,2,3,0,0,2,4,0,0,2,5,0,0,2,6,0;/*二维数组代表停车信息*/后定义一个文件夹来储存所停车的信息,开始有四辆车在车库voidsave()FILE *fp;int i,j;if(fp=fopen

5、(car.dat,w)=NULL)printf(cannot open filen);return;for(i=0;i12;i+)for(j=0;j4;j+)if(fwrite(cars,2,1,fp)!=1)- 3 -printf(file write errorn);fclose(fp);getchar();一. 停车模块开始输入车牌号N车牌号在1000 至 9999 之间?存入停车系统结束void car_park(void)/*停车操作 */int x,i,j;printf(n-欢迎您的光临!-n );printf( nn请输入车牌号:nn);车牌号要在1000 至 9999 之间,输

6、入错误的车牌号将返回主菜单for (i=0;i12;i+)if(carsi0=x|x9999)break;if(i!=12)printf(n错误的号码或已经停过了!n);getchar();/*如果此车号以在,打印此车已停*/else if(i=12&x=1000&x=9999)for (i=0;i12;i+)if(carsi0=0) carsi0=x;save();printf(nn成功 nn);为车选择一个停车的位置,包括层号与位置号层号车位位置序号- 4 -printf(层=%d,车位 =%dn,carsi1,carsi2);printf(nnnTwo times Enter to en

7、d.);break;/*如果此车号不在,则进行停车操作*/for (i=0;i12;i+)if(carsi0!=0) carsi3+=5;/*所有停车时间 +5*/save();/*保存以上信息到文件*/二车辆信息浏览模块把停车信息存入文件中打开文件车辆信息存入文件关闭文件void printfdata()/*停车信息 */int i,j;FILE *fp;fp=fopen(car.dat,r);/*打开文件 car.dat*/printf( n Number Floor Position Timen);for(i=0;i12;i+)for(j=0;j4;j+)fread(cars,2,1,f

8、p);/*读文件 */printf( %6d,carsij);printf(n);fclose(fp);/*关闭文件 car.dat*/void save();void car_park(void);void car_get(void);void printfdata();char readcommand();void initialization();插入主函数int main() char c;printf(按 enter开始 n);while(1)- 5 -initialization();/*初始化界面 */c=readcommand(); /*读取停车场状况*/system(cls)

9、;请选择所需要的操作,停车,取车,计时,选择以下操作“P”“g”“d”停车操作取车操作计算停车时间switch(c) case p: car_park();break;/*停车操作 */case P: car_park();break;/*停车操作 */case g: car_get();break;/*取车操作 */case G: car_get();break;/*取车操作 */case d: printfdata();printf(nn please press Enter to continue.n);scanf(%c,&c);break;/*停车信息 */case D: printf

10、data();/*停车信息 */printf(nn rreupklfdkplease press Enter to continue.n);scanf(%c,&c);break;casee:printf(nnnnPressEnterto continue.);exit(0);break;caseE:printf(nnnnPressEnterto continue.);exit(0);break;default:printf(ERROR! PressEntertocontinue.);getchar();break;/*/void initialization()/*初始函数 */int i;g

11、etchar();printf(n*- 6 -*n);printf( 1.停车 -p2.取车 -g3.停车时间 -d4.退出 -E);printf(nn* *n);char readcommand()/*选择函数 */char c;while(c!=p)&(c!=P)&(c!=g)&(c!=G)&(c!=d)&(c!=D)&(c!=e)&(c!=E)printf(输入 p,g,d,e选择 !n);c=getchar();printf(n);break;return c;三 . 取车操作- 7 -开始输入车牌号车牌号在N1000 至 9999 之间?车牌号是车库已存的牌号N计算时间和停车费删除结

12、束void car_get(void)/*取车操作 */int i,y;float paid;int a;printf(n取车 nnn输入车牌号 :nnnn);printf(n车牌号在1000 至 9999 之间 n错误的号码 nn);scanf(%d,&y);/*输入要取车的车牌号*/for(i=0;i12;i+)for(i=0;i12;i+)if(carsi0=y)取车后车牌号清零carsi0=0;paid=0.2*carsi3/5;计算停车费printf(n计费 (1- 是2或任意键 - 否 )nnn);scanf(%d,&a);switch(a)- 8 -case 1:printf(n

13、nn价格是 %8.2fyuann,paid);/*打印停车费用*/carsi3=0;/*时间清零 */save();break;case 2:printf(欢迎您下次光临);carsi3=0;/*时间清零 */save();break;default: break;else;break;if(i=12)printf(n此车不在停车场!n);/*如果此车不在,打印号码不在*/运行与测试报告:一 . 停车操作,请选择操作种类:- 9 -二 . 输入停车信息,寻找车位三 . 取车操作,计算价格- 10 -后记设计感想: 众所周知, C 语言程序是一种最基本的应用程序, 只有熟练的掌握和运用才能便于以

14、后的编程。通过此次程序设计实习, 我成功地完成了课堂上老师所要求的内容,更加理解和懂得运用结构化程序设计的思想和方法,初步掌握开发一个小型实用系统的基本方法,学会调试一个较长程序的的基本方法,学会利用流程图表示算法, 进一步掌握和提高利用C语言进行程序设计的能力。在编程过程中我们需要多练习,多思考,要有耐心。在进行调试程序检错的时候,要从头开始,不要放过每一个小的环节。在实习中我也遇到了好多的问题, 通过老师的细心讲解以及和同学们在一起讨论,不仅解决了许多问题,而且还学到了许多知识。- 11 -附录:源程序如下:#include /*包含了与标准I/O 库有关的变量定义和宏定义*/#inclu

15、de /*文件包含所用的文件*/#include#include#include int cars124=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,2,1,0,0,2,2,0,0,2,3,0,0,2,4,0,0,2,5,0,0,2,6,0;/*二维数组代表停车信息*/voidsave()FILE *fp;int i,j;if(fp=fopen(car.dat,w)=NULL)printf(cannot open filen);return;for(i=0;i12;i+)for(j=0;j4;j+)if(fw

16、rite(cars,2,1,fp)!=1)printf(file write errorn);fclose(fp);getchar();void car_park(void)/*停车操作 */int x,i,j;printf(n-欢迎您的光临!-n );printf( nn请输入车牌号:nn);printf(n注意:车牌号要在1000 至 9999 之间 n输入错误的车牌号将返回菜单nn);scanf(%d,&x);/*输入要停车的车牌号*/for (i=0;i12;i+)if(carsi0=x|x9999)break;if(i!=12)printf(n错误的号码或已经停过了!n);getch

17、ar();/*如果此车号以在,打印此车已停*/- 12 -else if(i=12&x=1000&x=9999)for (i=0;i12;i+)if(carsi0=0) carsi0=x;save();printf(nn成功 nn);printf(层 =%d,车位 =%dn,carsi1,carsi2);printf(nnnTwo times Enter to end.);break;/*如果此车号不在,则进行停车操作*/for (i=0;i12;i+)if(carsi0!=0) carsi3+=5;/*所有停车时间 +5*/save();/*保存以上信息到文件*/void car_get(v

18、oid)/*取车操作 */int i,y;float paid;int a;printf(n取车 nnn输入车牌号 :nnnn);printf(n车牌号在1000 至 9999 之间 n错误的号码 nn);scanf(%d,&y);/*输入要取车的车牌号*/for(i=0;i12;i+)for(i=0;i12;i+)if(carsi0=y)carsi0=0;/*取车后车牌号清零*/paid=0.2*carsi3/5;/*计算停车费用 */printf(n计费 (1- 是2或任意键 - 否 )nnn);scanf(%d,&a);switch(a)case 1:printf(nnn价格是 %8.2

19、fyuann,paid);/*打印停车费用*/carsi3=0;/*时间清零 */save();break;case 2:printf(欢迎您下次光临);carsi3=0;/*时间清零 */save();- 13 -break;default: break;else;break;if(i=12)printf(n此车不在停车场!n);/*如果此车不在,打印号码不在*/void printfdata()/*停车信息 */int i,j;FILE *fp;fp=fopen(car.dat,r);/*打开文件 car.dat*/printf( n Number Floor Position Timen

20、);for(i=0;i12;i+)for(j=0;j4;j+)fread(cars,2,1,fp);/*读文件 */printf( %6d,carsij);printf(n);fclose(fp);/*关闭文件 car.dat*/void save();void car_park(void);void car_get(void);void printfdata();char readcommand();void initialization();int main()char c;printf(*停车场管理操作程序*n);printf(设计者 : 秦民凯专业 : 岩土工程学号 :20081002

21、763日期 :2010/9/2n);printf(-n);printf(按 enter开始 n);while(1)- 14 -initialization();/*初始化界面 */c=readcommand(); /*读取停车场状况*/system(cls);switch(c)case p: car_park();break;/*停车操作 */case P: car_park();break;/*停车操作 */case g: car_get();break;/*取车操作 */case G: car_get();break;/*取车操作 */case d: printfdata();printf

22、(nn please press Enter to continue.n);scanf(%c,&c);break;/*停车信息 */case D: printfdata();/*停车信息 */printf(nn rreupklfdkplease press Enter to continue.n);scanf(%c,&c);break;casee:printf(nnnnPressEntertocontinue.);exit(0);break;caseE:printf(nnnnPressEntertocontinue.);exit(0);break;default:printf(ERROR! P

23、ressEntertocontinue.);getchar();break;/* */void initialization()/*初始函数 */int i;getchar();printf(n*n);printf( 1.停车 -p2.取车 -g3.停车时间 -d4.退出 -E);printf(nn* *n);char readcommand()/*选择函数 */char c;- 15 -while(c!=p)&(c!=P)&(c!=g)&(c!=G)&(c!=d)&(c!=D)&(c!=e)&(c!=E)printf(输入 p,g,d,e选择 !n);c=getchar();printf(n);break;return c;- 16 -

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 社会民生


经营许可证编号:宁ICP备18001539号-1