版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1、中国地质大学(武汉)设计名称:停车场管理 2 班级序号:姓 名: 学 号: 指导老师:C 语言程序设计报告、八 、,前言设计目的 :通过设计一个停车场管理系统,进一步消化和巩固已学过的 C 语言程序设 计基础理论,学习和实践程序设计的各种技能,利用 C 语言来设计各种应用程序和管理系 统,为社会提供各种现代化的管理工具, 同时也掌握与数组有关的算法、函数的调用、 结构 体类型变量的定义和使用;文件打开、关闭、读、写等文件操作函数的使用,提高实际运用 能力。设计内容题目要求:27 题:停车场管理 2内容:1 有一个两层的停车场,每层有 6 个车位,当第一层车位停满后才允许使用第二层(停车场可用一
2、个二维数组实现,每个数组元素存放一个车牌号) 每辆车的信息包括车牌号,层号,车位号,停车时间共四项,其中停车时间按分 钟计算。2 假设停车场初始状态为第一层已经有四辆车,其车位号依次为1-4 ,停车时间依次为 20,15,10,5。即先将这四辆车的信息存入文件“ car.dat ”中(数 组的对应元素也要进行赋值)3 停车操作:当一辆车进入停车场时,先输入其车牌号,再为它分配一个层号 和一个车位号 (分配前先查询车位的使用情况, 如果第一层有空位则必须停在第 一层),停车时间设为 5,最后将新停入的汽车的信息添加文件“ car.dat ”中, 并将在此之前的停车时间加 5。(此题简化时间的处理
3、:当有一辆车进入时才对 别的车加时间 5 分钟)4 收费管理(取车):当有车开走时,输入其车牌号,先按其停车时间计算费 用,每 5分钟 2毛钱。同时从文件“ car.dat ”k 删除该车的信息,并将该车对 应的车位设置为可使用状态(即二维数组清零) 。按用户的选择来判断是否要输 出 停车收费的总计。5 输出 停车场中全部车辆的信息。6 退出系统。需求分析车辆信息要用文件存储,提供文件的输入输出操作;当车开走时要删除文件中该车的信息,因而要提供文件的删除操作;另外还要用键盘式菜单实现功能选 择。总体设计整个管理系统可设计为停车模块、取车模块、车辆信息浏览模块停车场管理匕 系统 丿停车模块、车辆
4、信息浏L丿L览模块丿取车模块详细设计首先定义包含与标准库有关的变量定义和宏定义和文件包含所用的文件#i nclude #i nclude #in clude#i nclude#in clude 然后用一个二维数组来表示一个停车场的位置,每个数组元素存放一个车牌号in t 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;/*二维数组代表停车信息*/后定义一个文件夹来储存所停车的信息,开始有四辆车在车库void
5、 save()FILE *fp;int i,j;if(fp=fope n(car.dat,w)=NULL)pri ntf(ca nnot ope n filen);return;for(i=0;i12;i+)for(j=0;j4;j+)if(fwrite(cars,2,1,fp)!=1)prin tf(file write errorn); fclose(fp);getchar();:停车模块void car_park(void)/* 停车操作 */i nt x,i,j;prin tf(nA-Aprintf( nn欢迎您的光临! a-an ); 请输入车牌号:nn);车牌号要在1000至999
6、9之间,输入错误的车牌号将返回主菜单for (i=0;i12;i+)if(carsi0=x| x9999)break;if(i!=12)pri ntf(n错误的号码或已经停过了!!n);getchar();/*如果此车号以在,打印此车已停*/else if(i=12& x=1000&x=9999)for (i=0;i12;i+)if(carsi0=0) carsiO=x;save();printf(nn成功 nn);为车选择一个停车的位置,包括层号与位置号printf(”层=%d,车位=%dn ,carsi1,carsi2);printf(nnnTwo times Enter to end.)
7、;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*/prin tf( n Number Floor Positi on Timen);for(i=0;i12;i+)for(j=0;j4;j+)fread(cars,2,1,fp);/*读文件 */print
8、f(” %6d,carsij);pri ntf(n);fclose(fp);/*关闭文件car.dat*/void save();void car_park(void);void car_get(void);void prin tfdata();char readcomma nd();void in itializatio n();插入主函数int mai n() char c;printf(”按en ter开始 n);while(1)initialization(); /*初始化界面 */c=readcommand(); /*读取停车场状况*/system(cls);请选择所需要的操作,停车
9、,取车,计时,选择以下操作k丿P”停车操作丿取车操作I)计算停车时间kswitch(c) case p:car_park();break;/*停车操作*/case P:car_park();break;/*停车操作*/case g:car_get();break;/*取车操作*/case G:car_get();break;/*取车操作*/case d: prin tfdata();prin tf(nn please press En ter to continu e.n);scanf(%c,&c);break;/*停车信息 */case D: printfdata();/*停车信息 */pr
10、in tf(nn rreupklfdkplease press En ter to con ti nu e.n);scan f(%c,&c);break;case e:prin tf(nnnnPressEn tertocontinu e.);exit(0);break;case E:prin tf(nnnnPressEn tertocontinu e.);exit(0);break;defaultprin tf(ERROR! PressEn tertocon ti nu e.);getchar();break;未*/初始函数*/void initialization() /* int i;ge
11、tchar();prin tf(n*nprintf( 1.停车 -p 2.取车 -g 3.停车时间 -d 4.退出 -E);printf(nn);*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;三. 取车操作void car_get(void)/*取车操作 */int i,y;float paid;int a;prin tf
12、(nprin tf(n取车nnn输入车牌号:nnnn);车牌号在1000至9999之间n错误的号码nn);sca nf(%d, &y);/*输入要取车的车牌号 */for(i=0;i12;i+)for(i=0;i12;i+)if(carsiO=y)取车后车牌号清零carsi0=0;paid=0.2*carsi3/5;计算停车费printf(n计费(1-是 2 或任意键-否)nnn);scan f(%d, &a);switch(a)case 1:printf(nnn价格是 %8.2fyuann,paid);/*打印停车费用 */carsi3=0;/*时间清零 */save();break;cas
13、e 2:printf( 欢迎您下次光临 );carsi3=0;/* 时间清零 */save();break;default: break;else;break;if(i=12)printf(n 此车不在停车场 !n);/* 如果此车不在,打印号码不在 */ 运行与测试报告:一. 停车操作,请选择操作种类:.输入停车信息,寻找车位三.取车操作,计算价格BiC: Docu ments and Setting5luo 1 D5Debug 1. ew e后记设计感想:众所周知,C语言程序是一种最基本的应用程序,只有熟 练的掌握和运用才能便于以后的编程。 通过此次程序设计实习,我成 功地完成了课堂上老师
14、所要求的内容,更加理解和懂得运用结构化程 序设计的思想和方法,初步掌握开发一个小型实用系统的基本方法, 学会调试一个较长程序的的基本方法, 学会利用流程图表示算法,进 一步掌握和提高利用C语言进行程序设计的能力。在编程过程中我们需要多练习,多思考,要有耐心。在进行调试 程序检错的时候,要从头开始,不要放过每一个小的环节。在实习中 我也遇到了好多的问题,通过老师的细心讲解以及和同学们在一起讨 论,不仅解决了许多问题,而且还学到了许多知识。附录:源程序如下:#include /* 包含了与标准 I/O 库有关的变量定义和宏定义 */#include /* 文件包含所用的文件 */#include#
15、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;/* 二维数组代表停车信息 */ void save()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(fwrite(cars,2,1,fp)!=1)
16、printf(file write errorn);fclose(fp);getchar(); void car_park(void)/* 停车操作 */int x,i,j;printf(nA-A欢迎您的光临! A-An ”);printf( nn 请输入车牌号 :nn);nn);printf(n 注意:车牌号要在 1000 至 9999 之间 n 输入错误的车牌号将返回菜单 scanf(%d,&x);/* 输入要停车的车牌号 */for (i=0;i12;i+)if(carsi0=x|x9999)break;if(i!=12)printf(n 错误的号码或已经停过了 !n);getchar(
17、);/* 如果此车号以在,打印此车已停 */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(voi
18、d)/* 取车操作 */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
19、.2fyuann,paid);/* 打印停车费用 */carsi3=0;/* 时间清零 */save();break;case 2:printf( 欢迎您下次光临 );carsi3=0;/* 时间清零 */save();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 Posit
20、ion Timen); 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( 设计者 : 秦民凯专业 : 岩土工程车场管理操作学号 :20081002763程序日期 :2010/9/2n);printf(n);printf( 按 enter 开始 n); while(1)initialization(); /*初始化界面 */c=readcommand(); /*读取停车场状况 */system(cls); switch(c)case p:car_park();break;/*停车操作*/case P:car_park();break;/*停车操作*/case g:car_g
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 全员网络安全培训课件
- 全员安全培训档案卡课件
- 职业发展规划书模板大全
- 全员安全专项培训通知课件
- 城市安全整治行动讲解
- 沟通话术思维训练
- 幼儿消防安全小口诀大全
- 光电类仪器培训课件
- 直租业务话术模板
- 119消防安全板报设计
- 以青春之名赴时代之约-高中爱国主题班会-2025-2026高中主题班会
- 2025年传达学习医疗机构重大事故隐患判定清单会议记录
- 桂林学院《新时代中国特色社会主义与实践》2024-2025学年第一学期期末试卷
- 企业无违规经营声明范本模版
- 2025年医疗器械直调申请表
- 道桥模拟考试题与答案
- 2025至2030中国家用燃气报警器市场现状发展分析及发展战略规划报告
- 毕业设计(论文)-小型混泥土搅拌机机械系统设计
- 物理●海南卷丨2021年海南省普通高中学业水平选择性考试高考物理真题试卷及答案
- 金融行业行政管理社会调查报告范文
- 选品协议书范本
评论
0/150
提交评论