停车场管理系统05268_第1页
停车场管理系统05268_第2页
停车场管理系统05268_第3页
停车场管理系统05268_第4页
停车场管理系统05268_第5页
已阅读5页,还剩21页未读 继续免费阅读

下载本文档

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

文档简介

1、中国地质大学 C语言课程设计报告文档 课程名称 c语言课程设计 教师姓名赵曼 本科生姓名。 题目停车场管理系统2 本科生学号 20091001558 本科生专业资源勘查工程 所在院系资源学院 日期 2011 年1月14日 -11 - 目录 一,题目要求 3 二,题目设计 1.流程图4 2.设计思路 5 3各模块程序5 4.主程序 9 三,运行结果(附图) 10 四,程序设计小结16 第27题课程设计:停车场管理 Part 1 ; 【要求】 (1)有一个两成的停车场,每层有6个车位,当 地一层车停满后才允许使用第二层,每辆车 的信息包括车牌号,层号,车位号,停车时 间共4项,其中停车时间按分钟算

2、。 (2)假设停车场的初始状态为第一层已经停有4 辆车,其车位号依次为1-4,停车时间依次 为20,15,10,5,即先将这四辆车的信息 存入文件car.dat中 (3)停车操作:当一辆车进入停车场时, 先输入 其车牌号,在为他分配一个车位号和层号, 停车时间设为5,最后将新停近的汽车信息 加到文件中,并将在此之前的所有车的停车 时间加5。 (4)收费管理:当有车离开时,输入其车牌号, 先按其停车时间收费,每5分钟收费0.2元, 同时从文件car.dat中删除其信息,并将该车 为设置为可停车状态,按用户的选择来判断 是否要输出停车收费总计。 (5) 输出停车场中全部车辆的信息。 (6) 退出系

3、统 【提示】 (1) 需求分析:车辆信息要用文件存储,提供文件的输出输 入操作,当车离开时要删除文件中该车的信息,因而要 提供文件删除操作,另外还要用键盘式菜单功能选择。 (2) 总体设计:整个管理系统可设计为停车模块, 取车模块, 车辆信息浏览模块。 Part 2: 流 程图 Part 3 设计思路 (1)先设计一个结构体函数struct Garage,存储车牌号,层号,车位号, 停车时间等信息。 (2)初始化结构体中的变量,满足题目设 置的条件,然后自定义函数实现停 车,取车,查看停车信息,查看收费 的功能, (3) 最后在主函数中调用这些函数,实现 最终的功能,完成设计。 Part 4

4、:程序 #i nclude #i nclude #i nclude struct Garage char carnum8; /* 车牌号 */ int lay; /* 层号 */ int garage num; /*车位号 */ int time; /*停车时间*/ int isempty; /*该车位是否为空,1表示空,0表示有车*/ ; void In structio n() printf(停车场管理系统使用说明n); printf(停车请输入1取车请输入2 n); printf(查看全部车辆的信息请输入3退出请输入0 n); /*初始化停车场信息,初始状态为第一层已经停有 4辆车,*其

5、车位号依次为1 4,停车时间依次为20, 15, 10,5 */ void In it(struct Garage gar6) int i, j; /*给所有的车位的层号,车位号初始化,停车时间初始化为0,停车位 全都初始化为空*/ for (i=0; i2; i+) for (j=0; j6; j+) garij.lay = i+1; garij.garage num = j+1; garij.time = 0; garij.isempty = 1; /*第一层的1-4号车位停车*/ for (i=0; i4; i+) gar0i.isempty =0; strcpy(gar00.carnu

6、m, 0000); /* 初始化的车牌号 */ gar00.time = 20; strcpy(gar01.carnum, 1111); gar01.time = 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

7、 = 0) garij.time += 5; /*停车模块*/ void Park(struct Garage gar6) int i; char nu m8; printf(请输入车牌号:); seanf(%s, num); /*查找空车位 */ for (i=0; i6; i+) if (garOi.isempty = 1) printf(第一层第%d号车位空着,请在此处停车n, i+1); strcpy(garOi.carnum, nu m); prin tf(车牌号:%s 层号:1 车位号:%d n, nu m, i+1); AddTime(gar); /*在此之前停车的所有汽车时间加

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

9、停车*/ gar1i.time = 5; /* 将时间设为 5*/ return; n); garij.lay, printf(对不起,1 2层都没有空车位,您现在不能在此停车 /*查看所有车辆信息*/ void In formatio n(struct Garage gar6) int i, j; printf( 车牌号 层号车位号停车时间n); for (i=0; i2; i+) for(j=0; j6; j+) if (garij.isempty = 0) prin tf(%s%8d%8d%8dn, garij.carnum, garij.garage num, garij.time);

10、 prin tf(n); /*取车模块*/ double Leave(struct Garage gar26) int i, j; char nu m8; double charge = 0; printf(请输入要取的车牌号:); sca nf(%s, nu m); for (i=0; i2; i+) for (j=0; j6; j+) if (!strcmp(garij.car num, num) printf(您在 %d 层 %d 车位停车 %d 分钟 n, garij.lay, garij.garage num, garij.time); charge = garij.time/5*0

11、.2; printf(停车费用为每5分钟0.2元,您需交.2lf元n, charge); garij.isempty = 1; retur n charge; printf(没有您输入的车号。nn); retur n charge; /*是否查看总收入*/ void IsPri ntTotal(double total) char ch; printf(是否查看停车收费总计?Y/N); sca nf(%c, while (ch!=y sca nf(%c, prin tf(n); switch (ch) case Y: case y: printf(停车收费总计为%.2lf元n, total);

12、 break; case N: case n: break; /*主函数模块*/ mai n() int choice; double total = 0; struct Garage gar26; Init(gar); /*初始化第一层已经停有的4辆车*/ while (1) In structio n(); printf(请输入要进行的操作:); scan f(%d, while (choice3) printf(输入的不合法,请输入0-3选择:); scan f(%d, switch (choice) case 1: Park(gar); break; case 2: total +=

13、Leave(gar); IsPri ntTotal(total); break; case 3: In formatio n( gar); break; case 0: exit(0); return 0; 退出请输入0 2 3 运行结果: (1)初始化模块 说请请:- 用書心作 使取信操 统的的 系対仃 理入舂 要 场聖入 车書输 亠 替# 输入指令错误显示 2 3 明 臥请清:5 舟车自心= 4取信皐Ifl 范的的 S1SSK 理入441-合 入的 杳-谗输 S 选 -3 (2)停车模块 厂入入 明 说请请:1 甲丰息侑鹑 使取信操99 统囱囱: 2 3 明 富说请请:1 L9517:用车

14、息作88 ?.篮密取祐釀88 IJ-二一 -55V MT MT * K号 车5 停 处 nn: ft 一一一 盘一- zs- Jonr-PH * 系:期苜吓器99系t迥您万莉8系i迥伍!pm聶77系1 _ 理入99理入WHS蛇昉88理入牌營77理入至 855 Hnnj分.2计 用车息售万70f0总 0 1- 酗钟元? 使取信舊车飭费 统的的车停盅 系葫駕位每车 理入鑫停 工要要gl署 场逢I入入雷查 2 3 1A1A 明 说请请:2分.2计 用晉心售!P25脚总 使取信舊车肮费 统的的车停昭 系丄更位每车 术JLN / 12钟元? E 车書ww车否 !查请请您停是 要要战曙 场茎入入鴛查 车書

15、WW车否 停停查#炷冃您停是 输入某个车牌号后查找不成功显示 5555 层号 1 牛也亏 2 2222 3333 9999 4444 7777 7890 1122 5566 It 2 3 !/!A89 明 56 说请请:2 使取信 统一的的车车 系1饗占的 理入畫吳 场臺入入您 40 退出请输入0 二否查看停车收费总计? Y/N请输入Y或N (5)查看停车收费总计 是否查看停车收费总I? N请输入丫或 9 2 3 入入 明 元说请请: 40用書作 5.使取信操 为统囱眇 总理入舂 车车書输 Sb焊查请 退出诒输入0 程序设计小结 大学里接触到的第一门计算机语言课就是 c语言,虽然上课时 不怎么

16、认真,但还是坚持听完了赵老师一个学期的课程, 加上在考试 前的认真复习,感觉还不错。 通过对这一课题的设计和实现,我对 Micosoft Visual C+环境进行了 深一步的了解,并逐渐开始熟练Micosoft Visual C+环境的工作界面, 以及对每一个快捷键的熟悉。并认识到,熟悉这些快捷键,极为便捷 编写程序,但是还要更加熟悉。 编程时要养成良好的风格,注意相同内容的缩进和对齐。这样做, 可以使程序代码出错的情况下,可以快速并且便捷的查找到错误的 行,利于很好的修改。 通过这次编程我们深深的感受到对代码的变量命名,代码内注释 格式,甚至函数的自定义与调用和函数间的空行数字都有明确规定

17、, 良好的编写习惯,有助于代码的移植和纠错。 这个程序设计主要涉及到了 C语言中的结构体、循环及函数调 用操作等内容,只有充分掌握了 C语言中的结构体、循环及调用操 作等内容,才有可能组织好这些代码,使之符合运算逻辑,得到理想 的结果。 善于总结,也是学习能力的一种体现,每次完成一个编程任务, 完成一段代码,都应当有目的的跟踪该程序的应用状况,随时总结, 找到自己的不足,这样所编写的程序才能逐步提高,生活就是这样, 汗水预示着结果也见证着收获。通过实际动手做,我们才真正领略到 艰苦奋斗”这一词的真正含义,对我而言,知识上的收获重要,精神 上的丰收是可喜的。挫折是一份财富,经历是一份拥有。这次实

18、际操 作必将成为我人生旅途上一个非常美好的回忆! 回顾起此次课程设计,至今仍感慨颇多,的确,自从拿到题目到 完成整个编程,从理论到实践,在整整三天的日子里,可以学到很多 很多的东西,同时不仅可以巩固了以前所学过的知识, 而且学到了很 多在书本上所没有学到过的知识。通过这次课程设计使我懂得了理论 与实际相结合是很重要的,只有理论知识是远远不够的,只有把所学 的理论知识与实践相结合起来,从理论中得出结论,才能真正为社会 服务,从而提高自己的实际动手能力和独立思考的能力。 在设计的过 程中遇到问题,可以说得是困难重重,这毕竟第一次做的,难免会遇 到过各种各样的问题,同时在设计的过程中发现了自己的不足之处, 对一些前面学过的知识理解得不够深刻, 掌握得不够牢固,比如说结 构体,循环通过这次课程设计之后,我把前面所学过的知识又重 新温故了一遍。 同时,在老师的身上我学得到很多实用的知识,在此表示感谢! 同时,对给过我帮助的所有同学和指导老师再次表示忠心的感谢! -18 - 难得的是有份清闲时光,难得的是有种知途迷返,知之为知之,不知 为不知,知你冷暖,懂你悲欢,把你放在了心头上的人。难得的是面对片 深山广林、教你为人,怎样处事,面对人生 ;淡泊世事,践行伯乐,明镜心 扉。 心似无物化有物,道似无情渡有情,佛似无边胜有边,儒似学而不思 厌也,山高不止于流水,流水不止

温馨提示

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

评论

0/150

提交评论