大学C语言停车场管理系统设计c语言课程设计报告报告含调试图_第1页
大学C语言停车场管理系统设计c语言课程设计报告报告含调试图_第2页
大学C语言停车场管理系统设计c语言课程设计报告报告含调试图_第3页
大学C语言停车场管理系统设计c语言课程设计报告报告含调试图_第4页
大学C语言停车场管理系统设计c语言课程设计报告报告含调试图_第5页
已阅读5页,还剩15页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

1、-. z.*大学*系20*-20*学年第一学期C程序设计课程设计题目名称:停车场管理系统设计姓 名 :学 号 :班 级 :指导教师 :编写日期 : 20年1月5日20年1月31日成绩:-. z.目录 TOC o 1-3 h z uHYPERLINK l _Toc409085073(一)需求分析 PAGEREF _Toc409085073 h 3HYPERLINK l _Toc4090850741-1停车 PAGEREF _Toc409085074 h 3HYPERLINK l _Toc4090850751-2取车 PAGEREF _Toc409085075 h 3HYPERLINK l _To

2、c4090850761-3功能的选择 PAGEREF _Toc409085076 h 3HYPERLINK l _Toc409085077(二)总体设计(程序设计组成框图) PAGEREF _Toc409085077 h 3HYPERLINK l _Toc4090850782-1停车模块 PAGEREF _Toc409085078 h 3HYPERLINK l _Toc4090850792-2取车模块 PAGEREF _Toc409085079 h 3HYPERLINK l _Toc4090850802-3车辆信息浏览模块 PAGEREF _Toc409085080 h 4HYPERLINK

3、l _Toc4090850812-4程序设计组成框图 PAGEREF _Toc409085081 h 4HYPERLINK l _Toc409085082(三)详细设计 PAGEREF _Toc409085082 h 4HYPERLINK l _Toc4090850833-1停车场分析 PAGEREF _Toc409085083 h 4HYPERLINK l _Toc4090850843-2停车操作 PAGEREF _Toc409085084 h 4HYPERLINK l _Toc4090850853-3收费管理(取车) PAGEREF _Toc409085085 h 5HYPERLINK l

4、 _Toc4090850863-4车辆信息 PAGEREF _Toc409085086 h 5HYPERLINK l _Toc4090850873-5退出系统 PAGEREF _Toc409085087 h 5HYPERLINK l _Toc409085088(四)程序运行结果测试与分析 PAGEREF _Toc409085088 h 5HYPERLINK l _Toc409085089(五)结论与心得 PAGEREF _Toc409085089 h 7HYPERLINK l _Toc409085090(六)参考文献 PAGEREF _Toc409085090 h 7HYPERLINK l _

5、Toc409085091(七)致 PAGEREF _Toc409085091 h 8HYPERLINK l _Toc409085092附录: PAGEREF _Toc409085092 h 8-. z.(一)需求分析1-1停车车辆信息要用文件存储,因而要提供文件的输入输出操作。1-2取车当车离开时,要删除文件中该车的信息,因而要提供文件的删除操作。1-3功能的选择提供现实操作和用键盘式菜单实现功能选择。(二)总体设计(程序设计组成框图)2-1停车模块对车辆信息赋值,分配前检查车位使用情况(按行查找 park 数组,元素为 0 表示车位为空,则允许分配)。把新添加的车辆信息以追加的方式写入汽车信

6、息文件,并更改汽车信息文件中其他汽车信息的停车时间(停车时间加 5)。2-2取车模块计算费用(停车费用=停车时间*0.2 元),从文件中删除该车信息。并将该车位对应的二位数组变量设为 0,表示该车位可用。输出提示信息:是否输出停车费用总计?(Y/N)如果选择 Y,则输出停车费用,否则回到上级菜单。2-3车辆信息浏览模块输出车辆信息文件中的记录。另外,用户按 Esc 键退出系统。2-4程序设计组成框图停车场管理系统取车查看全部车辆信息 停车 退出(三)详细设计3-1停车场分析有一个两层的停车场, 每层有6个车位, 当第一层车停满后才允许使用第二层。 ( 停车场可用一个二维数组实现, 每个数组元素

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

8、一个变量进行保存), 同时从文件”car.dat”中删除该车的信息, 并将该车对应的车位设置为可使用状态(即二维数组对应元素清零). 按用户的选择来判断是否要输出停车收费的总计。3-4车辆信息 输出停车场中全部车辆的信息。3-5退出系统 退出系统。(四)程序运行结果测试与分析系统初始运行时,会显示如图4-1所示的输入界面,用户可以根据提示,进行相应的选择,来完成系统提供的各种功能。根据系统提示提示用户选择相应的数字键,按ENTER键后进入相应的功能菜单。如下图4-2是输入1,显示停车以及所需用户的车牌号输入后按ENTER键进入所要放车的停车位菜单,其中包含了系统分配的层号和一个车位号即图4-3

9、下面即为此程序执行此功能时的截图:图4-1输入界面图4-2输入1和车牌号界面图4-3详细信息界面(五)结论与心得通过这次实习,让我初步有了编写小系统的能力,我对很多的函数有了新的认识,也学会了运用多种函数,也明白了编写软件的基本过程和基本方法。编写软件的过程中我又学到了曾经自己不知道的函数或是自己不会的函数的用法。这次课程设计课总的来说让我受益匪浅。在软件的设计过程中遇到了很多的困难。在软件一次一次的调试失败下,曾经想过要放弃。我最后还是坚持了下来,毫不畏惧困难,在一起讨论论证到底是用什么函数,什么样的循环来最简单的实现程序的功能,经过几个日夜的努力我总算是顺利的完成了软件的设计。在程序的编写

10、过程中我发现有很多的知识漏洞和缺陷,需要进一步努力学习来巩固完善自己的知识面。在这几天的编写过程中我对c语言有了更进一步的认识和了解。此次编程过程的经验和知识肯定能促进我以后的学习,更是对我今后参加电子设计类软件编程大赛有较大的帮助(六)参考文献1谭浩强,C程序设计(第四版),:清华大学,2010.6 2.baidu.(七)致能够完成这次课程设计要感c语言课程的老师,感老师的悉心教导,帮助改错,还要感各位同学的帮助,我会继续努力的。附录:程序源代码:#include #include #include struct Garage char carnum8; /*车牌号*/ int lay; /

11、层号 int garagenum; /*车位号*/ int time; /*停车时间*/int isempty; /*该车位是否为空,1表示空,0表示有车*/;/*打印使用说明*/void Instruction() printf( 停车场管理系统使用说明n); printf( 停车请输入 1 取车请输入 2 n); printf( 查看全部车辆的信息请输入 3 退出请输入 0 n); /*初始化停车场信息,初始状态为第一层已经停有4辆车, * 其车位号依次为1-4 , 停车时间依次为20, 15, 10 , 5 */void Init(struct Garage gar6) int i, j

12、; /*给所有的车位的层号,车位号初始化,停车时间初始化为0,停车位全都初始化为空*/ for (i=0; i2; i+) for (j=0; j6; j+) garij.lay = i+1; garij.garagenum = j+1; garij.time = 0; garij.isempty = 1; /*第一层的1-4号车位停车*/ for (i=0; i4; i+) gar0i.isempty =0; strcpy(gar00.carnum, 0000); /*初始化的车牌号*/ gar00.time = 20; strcpy(gar01.carnum, 1111); gar01.t

13、ime = 15; strcpy(gar02.carnum, 2222); gar02.time = 10; strcpy(gar03.carnum, 3333); gar03.time = 5;/*新停入的汽车后,将在此之前的所有车的停车时间加5*/void AddTime(struct Garage gar6) int i, j; for (i=0; i2; i+) for (j=0; j6; j+) if (garij.isempty = 0) garij.time += 5; /*停车*/void Park(struct Garage gar6) int i; char num8;pr

14、intf(请输入车牌号:); scanf(%s, num); for (i=0; i6; i+) if (gar0i.isempty = 1) printf(第一层第%d号车位空着,请在此处停车n, i+1);strcpy(gar0i.carnum, num); printf(车牌号:%s 层号:1 车位号: %d n, num, i+1); AddTime(gar); /*在此之前停车的所有汽车时间加5*/ gar0i.isempty = 0; /*表示该车为已经停车*/ gar0i.time = 5; /*将时间设为5*/ return; printf(第一层已经没有空车位n); for

15、(i=0; i6; i+) if (gar1i.isempty = 1) printf(第二层第%d号车位空着,请在此处停车n, i+1); strcpy(gar1i.carnum, num); printf(车牌号:%s 层号:2 车位号: %d n, num ,i+1); AddTime(gar); /*在此之前停车的所有汽车时间加5*/ gar1i.isempty = 0; /*表示该车位已经停车*/ gar1i.time = 5; /*将时间设为5*/ return; printf(对不起,1 2层都没有空车位,您现在不能在此停车n);/*查看所有车辆信息*/void Informat

16、ion(struct Garage gar6) int i, j; printf( 车牌号 层号 车位号 停车时间n); for (i=0; i2; i+) for(j=0; j6; j+) if (garij.isempty = 0) printf( %s%8d%8d%8dn, garij.carnum, garij.lay, garij.garagenum, garij.time); printf(n);/*取车*/double Leave(struct Garage gar26) int i, j; char num8; double charge = 0; printf(请输入要取的车

17、牌号:); scanf(%s, num); for (i=0; i2; i+) for (j=0; j6; j+) if (!strcmp(garij.carnum, num) printf(您在%d层%d车位停车%d分钟n, garij.lay, garij.garagenum, garij.time);charge = garij.time/5*0.2; printf(停车费用为每5分钟0.2元,您需交%.2lf元n, charge); garij.isempty = 1; return charge; printf(没有您输入的车号。nn);return charge;/*是否查看总收入

18、*/void IsPrintTotal(double total) char ch; printf(是否查看停车收费总计?Y/N); scanf(%c, &ch); while (ch!=y & ch!=Y & ch!=n & ch!=N) printf(请输入Y或N ); scanf(%c, &ch); printf(n); switch (ch) case Y: case y: printf(停车收费总计为%.2lf元n, total); break; case N: case n: break; main() int choice; double total = 0; struct Garage gar26; Init(gar); /初始化第一层已经停有的4辆车

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论