




版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1、学号2014-2015学年 第二学期高级语言程序设计课程设计报告题 目:停车场管理系统的设计专业:计算机科学与技术班级:13级(3)班姓名:指导教师:陈茅成绩:计算机与信息工程系二0一五年 月 日目录1、设计内容及要求2、整体设计 停车模块 车辆信息浏览模块 取车模块3、运行与测试报告4、设计感想5、源程序代码设计目的:通过设计一个停车场管理系统, 进一步消化和巩固已学过的 C 语言程序设 计基础理论,学习和实践程序设计的各种技能,利用 C 语言来设计各种应用程 序和管理系统, 为社会提供各种现代化的管理工具, 同时也掌握与数组有关的算 法、函数的调用、结构体类型变量的定义和使用;文件打开、关
2、闭、读、写等文 件操作函数的使用,提高实际运用能力。设计内容:1 有一个两层的停车场, 每层有 6 个车位,当第一层车位停满后才允 许 使用第二层 (停车场可用一个二维数组实现, 每个数组元素存放一个车牌号) 每 辆车的信息包括车牌号,层号,车位号,停车时间共四项,其中停车时间按分钟 计算。2 假设停车场初始状态为第二层已经有四辆车,其车位号依次为1-4,停车时间依次为20, 15, 10, 5。即先将这四辆车的信息存入文件“ car.daf中 (数组的对应元素也要进行赋值)3 停车操作:当一辆车进入停车场时,先输入其车牌号,再为它分配一 个层号和一个车位号 (分配前先查询车位的使用情况, 如
3、果第一层有空位则必须 停在第一层),停车时间设为 5,最后将新停入的汽车的信息添加文件“ car.dat” 中,并将在此之前的停车时间加 5。(此题简化时间的处理:当有一辆车进入时 才对别的车加时间 5分钟)4 收费管理(取车):当有车开走时,输入其车牌号,先按其停车时间 计算费用,每 5分钟 2毛钱。同时从文件“ car.dat” k 删除该车的信息,并将该 车对应的车位设置为可使用状态(即二维数组清零) 。按用户的选择来判断是否 要输出 停车收费的总计。5 输出 停车场中全部车辆的信息。6 退出系统。需求分析车辆信息要用文件存储, 提供文件的输入输出操作; 当车开走时要删除文件中该车的信
4、息,因而要提供文件的删除操作;另外还要用键盘式菜单实现功能选择。总体设计整个管理系统可设计为停车模块、取车模块、车辆信息浏览模块。厂停车场管理系统yr停车模块车辆信息浏览模块取车模块_ 丿V丿详细设计首先定义包含与标准库有关的变量定义和宏定义和文件包含所用的 文件#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,
5、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)prin tf(file write error n);fclose(fp);getchar();-、停车模块停车模块void car_park(void)int x,i,j;pri
6、ntf(n A-A欢迎您的光临! A-An ”);printf( nn 请输入车牌号 :nn);车牌号要在 1000 至 9999 之间,输入错误的车牌号将返回主菜单 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);为车选择一个停车的位置,包括层号与位置号层号车位prin tf(层=%d,车位=%dn,ca
7、rsi1,carsi2);prin tf(nnn Two times En ter to en d.);break;for (i=0;i12;i+)if(carsi0!=0) carsi3+=5;save();二、车辆信息浏览模块把停车信息存入文件中void printfdata() int i,j;FILE *fp;fp=fopen(car.dat,r);for(i=0;i12;i+)printf( n NumberFloor Position Timen); for(j=0;j4;j+)fread(cars,2,1,fp); printf( %6d,carsij); printf(n);
8、fclose(fp); void save();void car_park(void);void car_get(void);void printfdata();char readcommand();void initialization();插入主函数 int main() char c;printf(”按en ter开始 n ”);while(1)in itializatio n();c=readcomma nd();system(cls);请选择所需要的操作,停车,取车,计时选择以下操作r、r“ p”a ”g“ d”停车操作取车操作计算停车时间丿 丿switch(c) case p: c
9、ar_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);sca nf(%c,&c);break;case D: prin tfdata();printf(nnrreupklfdkplease press Enterto continue.n);sca nf(%c,&c);break;case e: printf(nnnn Press E
10、nter to continue.); exit(0);break;case E: printf(nnnn Press Enter to continue.); exit(0);break;default : printf(ERROR! Press Enter to continue.); getchar();break;void initialization()int i;getchar();printf(n*n);printf( 1.停车-p 2.取车-g 3. 停车时间 -d4.退出-E);printf(nn*n);char readcommand()Char c;while(c!=p)
11、&(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;i nt a;printf(n取车nnn输入车牌号:nnnn);prin tf(n车 牌号在1000至 9999之间n 错误 的号码nn);sca nf(%d, &y);for(i=0;i12;i+)for(i=0;i12;i+)if(carsi0=y)取车后车牌号清零carsi0=
12、0;paid=0.2*carsi3/5;计算停车费printf(n 计 费 (1- 是 2 或 任 意 键 - 否 )nnn); scanf(%d,&a);switch(a)case 1:printf(nnn 价格是 %8.2fyuann,paid);carsi3=0;save();break;case 2:printf( 欢迎您下次光临 );carsi3=0;save();break;default: break;else;break;if(i=12)printf(n 此车不在停车场 !n);运行与测试报告TNumberFloor PositionT ineJ1234112523451220
13、345613154567141001500160021002200230024002500260pleasepress 9Enter*to continueTj D:我的文档CFreeTemp侏命名le“| cj | B| cj | BNunbet*4 5 6 73 4 5 62 3 4s12 3 4Floor Position1234T i ne00000001111112222226123pleasepress Entercont inue D:我的文档CFreeTemp侏命名le“1 停车一p 2.取车一g3停车时间一d4退岀一E设计感想:众所周知,C语言程序是一种最基本的应用程序 ,只
14、有熟练的掌握和运用才能便于以后的编程。通过此次程序设计实 习,我成功地完成了课堂上老师所要求的内容,更加理解和 懂得运用结构化程序设计的思想和方法,初步掌握开发一个 小型实用系统的基本方法,学会调试一个较长程序的的基本 方法,学会利用流程图表示算法,进一步掌握和提高利用C语言进行程序设计的能力。 在编程过程中我们需要多练 习,多思考,要有耐心。在进行调试程序检错的时候,要从 头开始,不要放过每一个小的环节。在实习中我也遇到了好 多的问题,通过老师的细心讲解以及和同学们在一起讨论, 不仅解决了许多问题,而且还学到了许多知识。/ 包含了与标准 I/O 库有关的变量定义和宏定义/ 文件包含所用的文件
15、源程序代码 #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; / 二维数组代表停车信息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;
16、j4;j+)if(fwrite(cars,2,1,fp)!=1)printf(file write errorn); fclose(fp); getchar();void car_park(void) / 停车操作int x,i,j;printf(nA-A欢迎您的光临! A-An );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 错误的号码
17、或已经停过了 !n);getchar(); / 如果此车号已在,打印此车已停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(); / 保存以上信息到文件v
18、oid 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) case 1
19、:printf(nnn价格是 %8.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 Position Timen); for
20、(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( 设 计 者 : 陈 霞专 业 : 计 算 机 科 学 与 技 术学号 :1308210204日期:19/04/2015n);printf(n);prin tf(按en ter开始 n);while(1)initialization();/ 初始化界面c=readcommand(); / 读取停车场状况 system(cls);switch(c)case pcar_park();break;/停车操作case P:car_park();break;/停车操作cas
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 2025农产品购销合同范本2
- 2025二手房屋买卖合同模板(可修改)
- 2025餐饮供货合同模板
- 2025年铝合金制作安装合同文件模板
- 2025合作协议书(无固定期限)范本
- 2025员工服务合同续签意向书
- 安徽省合肥市2024~2025学年 高二下册第二次检测数学试卷附解析
- 2024~2025学年 重庆市七校联考高一语文上册第一次联考试卷附答案
- 走进社会主义市场经济 同步练习
- 跨界融合下的职业转型策略-洞察阐释
- 实验室综合管理制度
- 施工现场脚手架搭设的示例图解
- 苗圃建设可行性研究报告
- 探寻生物活性肽:基于抗氧化作用的药理活性解析
- 《磁共振成像对比剂的应用与研究》课件
- 2022-2023学年浙江省金华市义乌市部编版六年级下册期末考试语文试卷(原卷版+解析)
- 幼儿园夏日饮食安全
- 2025年度医疗健康咨询服务兼职医生聘用合同
- 资产并购合同协议范本
- 工程法律培训
- 国开新媒体营销形考任务1-4答案国家开放大学学习网形考答案
评论
0/150
提交评论