停车场管理系统设计报告.docx_第1页
停车场管理系统设计报告.docx_第2页
停车场管理系统设计报告.docx_第3页
停车场管理系统设计报告.docx_第4页
停车场管理系统设计报告.docx_第5页
已阅读5页,还剩34页未读 继续免费阅读

下载本文档

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

文档简介

计算机学院计算机科学与技术专业程序设计综合课程设计报告(200*/200*学年 第一学期) 学生姓名: * * * 学生班级: 计算机 学生学号: * 指导教师: * 200*年*月*日第一章 课程设计的目的和要求 一.综合要求和目的: C语言课程设计的主要目的是培养学生综合运用C语言程序设计课程所学到的知识,编写C程序解决实际问题的能力,以及严谨的工作态度和良好的程序设计习惯。通过课程设计的训练,学生应该能够了解程序设计的基本开发过程,掌握编写、调试和测试C语言程序的基本技巧,充分理解结构化程序设计的基本方法。C语言程序设计的主要任务是要求学生遵循软件开发过程的基本规范,运用结构化程序设计的方法,按照课程设计的题目要求,分析、设计、编写、调试和测试C语言程序及编写设计报告。二.本课程设计的目标:1. 巩固和加深学生对C语言课程的基本知识的理解和掌握2. 掌握C语言编程和程序调试的基本技能3. 掌握利用C语言进行软件设计的方法4. 提高书写程序设计说明文档的能力5. 提高运用C语言解决实际问题的能力三.基本要求:1. 分析课程设计题目的要求2. 对系统功能模块进行分析,写出详细的设计说明文档3. 编写程序代码,代码量要求不少于300行,调试程序使其能正确运行4. 设计完成的软件要便于操作和使用5. 设计完成后提交课程设计报告 目录第一章 课程设计的目的和要求1第二章 课程设计任务内容2第三章 详细设计说明33.1 函数功能说明33.2 函数参数说明53.3 函数流程图73.4 编码及调试12第四章 软件使用说明22第五章 课程设计心得与体会23附录一 参考文献24附录二 程序清单25 第二章 课程设计任务内容计算机科学与技术学院课程设计任务书课程设计名称程序设计基础综合课程设计课程设计题目停车场管理系统学生姓名蒋晓英专业班级计算机072002学号 200720010206课程设计任务内容设计一个程序实现停车场管理系统,管理人员根据口令进入系统。 管理车位信息(车位编号,状态)和每小时的收费费率(货车7元/小时,客车5元/小时,轿车4元/小时,其他3元/小时,由停车时开始计时选择录入)。 停车时,建立对象,录入信息(车牌号,停泊位置,停泊开始时间);停车位第一个为空的位置,由程序查询自动给出车位号,如果车位已满要给出提示。 取车时,需要根据车辆停泊时间自动计算费用(半小时内以半价计算,超出半小时不足一小时按一小时计算)并显示在屏幕上。 可以随时根据车牌查询是否入库。可以随时根据车位查询该位置上的相关信息。可以随时从文件中查询以前的停车记录。将车场信息保存到文件备份。 对系统功能模块进行分析,写出详细设计说明文档,编写程序代码,代码量要求不少于300行。调试程序使其能正确运行。指导教师:刘静 时 间: 2007年 12 月 8日 第三章 详细设计说明 3.1 函数功能说明该软件主要是实现对停车场进行系统化的管理,首先可以对停车场进行初始化设置,其次可以存放车辆,然后可以取走车辆并计算相应的停车费,还有就是可按车位查询此车位上的相关信息,可按车牌号查询该车是否入库、何时到达的等,可查询现在停车场的所有信息以及以前来停过的车的相关信息,而且可以对每天的车场信息进行保存备份,由此来系统化管理停车场,并达到简易操作的目的。3.1.1功能分析说明图该软件功能分析说明图如3-1-1所示:停车场管理系统退出系统查看车场全部信息按车牌号查询是否入库取车停车初始化停车场保存车场信息按车位查询相关信息 图3-1-13.1.2各项功能说明(1)停车场的初始化(Car *car_creat()):这部分的功能主要是实现停车场的全部初始化,将所有的车位统一成一种形式,便于以后停车。首先按程序提示输入车到达的日期(* * *)、车牌号(kong)、车位状态(nocar)、车停在车场的位置(1)、车到达的时间(00 00)、离开时间(00 00),用一个while循环,把所有的车位都初始化成这种状态,初始化完毕后给出提示:该车场已全部初始化!之后返回主菜单界面。 (2)停车(Car *car_park(Car *head):此功能是实现停车操作,首先根据提示输入该车到达的日期、车牌号以及到达时间,然后根据车位状态找到空的车位停放车,此时系统给出提示:欢迎来到我们的停车场,你的车位是第*号_ ,如果车场已全部停有车,给出提示:车场已满,没有空位!(3)取车(Car *car_leave(Car *head)):进入该功能界面后,按提示输入要取走的车的车牌号,然后找到该车(如果找不到,给出提示:车场里没有这辆车!)输出其其他的相关信息,再根据离开的时间和停车费率,计算出应支付的停车费,并显示在屏幕上。同时将该车的所有信息保存到文件(f:f1.dat)里,以便以后查询,再将该车位还原成初始化状态。(4)按车牌号查询是否入库(Car *search(Car *head):此项功能可以根据输入的车牌号找到该车,并得到其相关的所有信息,如:到达的日期、停在车场的位置以及到达的时间。如果没有找到,给出提示:车场里没有这辆车!(5)按车位查询相关信息(Car *find(Car *head):进入此功能,根据输入的要查看的车位号,找到该车位,显示出其相关信息:该车位上的车的到达日期、该车位状态、车牌号、车到达的时间以及离开时间。如果该车位上没有停放车辆,则输出的信息是其初始化设置的相关信息。(6)查看车场的全部信息(void print(Car *head): 选择此项功能后,系统将自动在屏幕上显示出停车场里所有车位上的相关信息。(7)保存车场信息(void printf(Car *head)): 选择此项功能后,系统将自动把停车场的全部信息保存到文件f2.dat里。(8)退出系统,结束停车场管理。 3.2 函数参数说明3.2.1 软件设计环境 Microsoft Visual C+ 6.03.2.2 软件模块的划分 该软件的主要组成模块和各模块之间的调用关系如图3-2-2:退出系统保存车场信息查看车场全部信息按车位查询相关信息取车按车牌号查询是否入库停车初始化停车场主函数(包含一下所有函数)主菜单停车场管理系统 图3-2-2各函数模块之间的调用关系主要是主函数调用所有其它功能函数和菜单函数,并利用循环使各个功能函数运行完毕后都返回到主菜单。3.2.3 采用的主要数据结构类型该程序采用的是结构体类型来处理停车场的所有基本信息,如下所述。包含的库函数有:# include # include #include#include #include # include 包含的函数和参数有: int main() /主函数 Car *car_creat() /初始化停车场Car *car_park(Car *head) /停车函数Car *car_leave(Car *head) /取车函数Car *search(Car *head) /根据车牌号查询函数Car *find(Car *head) /根据车位查询函数void print(Car *head) /查询车场的所有信息void printf(Car *head) /保存停车场信息Car *head /链表头指针char c /字符型变量int set,n /整型变量Car *p1,*p2,*p0,p /指针变量,指向链表int m=1 /整型变量,表示找到的车位string num /字符串变量,代表取走车的车牌号int leave_hour,leave_min /整型变量,代表车离开的时间int A,B,price /整型变量,表示停车的总时间和每小时的费率float free /浮点型变量,表示停车费包含的结构体:struct Car /声明结构体类型Carstring num; /车牌号 string state; /车位状态 int set; /停车车位 int reach_hour; /到达时的小时点 int reach_min; /到达时的分钟点 int leave_hour; /离开时的小时点 int leave_min; /离开时的分钟点 string reach_date3;/停车日期 Car *next; 3.3函数流程图一主函数退出3476521进入管理系统界面 图3-3-1二.初始化车场1P1=p2=new Car输入日期、车牌号等While循环,所有车位做一样的初始化初始化完毕,给出提示返回头指针 图3-3-2三.停车函数2P1=head,p0=new Car 输出车牌号、日期、时间 whlie循环,p1=p1-next找到空位?提示几号位是空的,停车p1=p0输出“车场已满,没有空位”return(head) 图3-3-3四.取车函数3定义变量,p1=head输入车牌号whlie循环,p1=p1-next找到要取的车输入离开时间和费率,计算停车费输出“车场里没有这辆车”保存该车信息到文件f1.dat还原车位信息return(head) 图3-3-44五.根据车牌号查询是否入库定义变量,p=head输入查询的车牌号,while循环p=p-next找到要查询的车输出车位、到达日期和时间输出“车场里没有这辆车”return(head) 图3-3-5六.根据车位查询相关信息5输入查询的车位,while循环p=p-next输出车位上的所有信息return(head) 图3-3-6七.查看车场全部信息6while(nnext输出全部信息if(getch()return 图3-3-7八.保存停车场信息7定义变量p=head打开文件f2.dat,while循环保存全部信息p=p-next关闭文件,return 图3-3-8 3.4 编码及调试 3.4.1软件中实现各功能的函数与程序代码一.一个包含停车全部信息的结构体struct Car string num; /车牌号 string state; /车位状态 int set; /停车车位 int reach_hour; /到达时的小时点 int reach_min; /到达时的分钟点 int leave_hour; /离开时的小时点 int leave_min; /离开时的分钟点 string reach_date3;/停车日期 Car *next;二.初始化停车场函数Car *car_creat()while(nreach_date0=*; /初始化日期p1-reach_date1=p1-reach_date2=*;p1-num=kong; /初始化车牌号num为kongp1-set=set;p1-state=nocar; /初始化车位状态为nocar(无车)p1-reach_hour=00; /初始化所有时间为00p1-reach_min=00;p1-leave_hour=00;p1-leave_min=00;p2-next=NULL;if(n=MAX)coutendl该车场已全部初始化!endl; /提示初始化完毕return(head);三.停车函数Car *car_park(Car *head)coutendl 请输入车到达的日期(* * *):; for(i=0;ip0-reach_datei;coutendlp0-num;coutendlp0-reach_hourp0-reach_min;while(p1-state!=nocar & p1-next!=NULL) /车位不为空,并且后面还有车位m=m+1; /车位号加1 p1=p1-next; /p1指向下一个车位else coutendl车场已满,没有空位!endl; /车场满了给出提示四取车函数Car *car_leave(Car *head)p1=head;coutendlnum;while(num!=p1-num& p1-next !=NULL)p1=p1-next;if(num=p1-num) coutendlleave_hourleave_min;coutendlprice;ofstream outfile(f:f1.dat,ios:app); /打开文件f1.dat,保存取走的车的相关信息 else coutendl 车场里没有这辆车! endl;/没有找到要取走的车辆return(head);五.根据车牌号查询Car *search(Car *head)coutendlnum;while(num!=p-num & p-next !=NULL)p=p-next;if(num=p-num) /找到车输出相关信息else coutendl 车场里没有这辆车! endl; 六.根据车位查询Car *find(Car *head)coutendlset;while(set!=p-set & p-next!=NULL)p=p-next;if(set=p-set) /找到要查看的车位,输出相关的全部信息 return(head);七.输出车场所有信息void print(Car *head)while(nnext; if(getch() return; 八.保存停车场信息void printf(Car *head)ofstream outfile(f:f2.dat,ios:app);/打开文件f2.dat,保存车场全部信息while(nnext;outfile.close(); if(getch() return; 九.菜单函数int main()while(1) /停车场管理系统界面coutendl endl 停车场管理系统 endl endl 1.初始化车场 endl endl 2. 停车 endl endl 3. 取车 endl endl 4.按车牌查询 endl endl 5.按车位查询 endl endl 6.输出车场信息 endl endl 7.保存信息 endl endl E.退出系统 endl endlendl请输入要进行的管理序号:;3.4.2 软件调试运行结果在此,我将把软件使用过程简要写出,并对此程序的一些细节和具体的操作方法加以说明,说明如下:1. 进入程序主菜单,界面如图3-4-1: 图3-4-1界面显示的是一个停车场管理系统,总的操作流程有八个方面:(1) 初始化停车场(2) 停车(3) 取车(4) 按车牌号查询(5) 按车位查询(6) 输出停车场信息(7) 保存停车场信息(8) 退出系统最后是提示用户做出要软件进行怎样功能运行的选择。2.初始化停车场: 输入1选中主菜单界面的第一个选项,出现界面如图3-4-2: 图3-4-2在这个界面上根据提示,录入如图信息(日期:* * *、车牌号:kong、车位状态:nocar、停车位:1、到达时间:00 00、离开时间:00 00),按Enter将停车场里的所有车位都初始化成统一的形式,部分如图3-4-3: 图3-4-3初始化完毕后,给出提示:该车场已全部初始化!操作完毕后自动返回主菜单界面3.停车:输入2选中主菜单界面第二个选项直接进入此界面,出现界面如图3-4-4: 图3-4-4 进入此界面进行相应的停车操作:根据提示输入车到达的日期、车牌号以及到达的时间,按Enter然后系统会自动找空的车位,并显示在屏幕上,用户就可将车停在该车位上。如果车场已满,系统也会给出提示:车场已满,没有空位!停车完毕后自动返回主菜单界面。4.取车:输入3选中主菜单界面的第三个选项,出现界面如图3-4-5 图3-4-5 进入界面办理相应的取车手续,根据提示输入要取走的车的车牌号、离开的时间以及每小时的停车价,按Enter系统自动根据停车时间和每小时的价位计算出应支付的停车费,并显示在屏幕上,同时系统将自动把该车在停车场的全部信息保存到文件f1.dat,以后可查询,该车位上的信息还原成初始状态。如果没有找到该车,则给出提示:车场里没有这辆车!(如图3-4-6)返回主菜单界面。 图3-4-65.按车牌号查询:从主菜单界面选4输入进入程序,出现界面如图3-4-7 图3-4-7进入程序界面,根据提示输入要找的车的车牌号,按Enter,找到该车后,系统会自动显示出该车到达的日期、停放的车位以及到达时间。如果没有找到该车,给出提示:车场里没有这辆车!(如图3-4-8)之后自动返回主菜单界面。 图3-4-86.按车位查询:从主菜单界面选5输入进入程序,出现界面如图3-4-9 图3-4-9 进入界面,根据提示输入要查看的车位号,按Enter键,就会显示出该车位上的所有信息,包括该车位上的车到达的日期、时间、车牌号、离开时间以及该车位的状态。如果该车位上没有停车,显示出来的就是初始化的信息(如图3-4-10),随后自动返回主菜单界面。 图3-4-107.输出停车场信息:在主菜单界面输入6进入程序,出现界面如图3-4-11 图3-4-11 界面上显示的是停车场里每个车位上的所有信息,通过此操作,管理人员可以轻松的查看到车场里的整体情况,简单、直观,之后自动返回主菜单界面。8.保存信息:在主菜单界面输入7进入程序,自动将停车场里的所有信息保存到文件f2.dat里,以作备份,之后返回主菜单界面。结果如图3-4-12:到达日期 车牌号 车位 车位状态 到达时间 离开时间 2008 10 1 shanA1234 1 havecar 12:30 0:0到达日期 车牌号 车位 车位状态 到达时间 离开时间 2008 10 1 shanM5678 2 havecar 12:50 0:0到达日期 车牌号 车位 车位状态 到达时间 离开时间 2008 10 1 shanN8888 3 havecar 13:56 0:0到达日期 车牌号 车位 车位状态 到达时间 离开时间 * * * kong 4 nocar 0:0 0:0到达日期 车牌号 车位 车位状态 到达时间 离开时间 * * * kong 5 nocar 0:0 0:0到达日期 车牌号 车位 车位状态 到达时间 离开时间 * * * kong 6 nocar 0:0 0:0到达日期 车牌号 车位 车位状态 到达时间 离开时间 * * * kong 7 nocar 0:0 0:0到达日期 车牌号 车位 车位状态 到达时间 离开时间 * * * kong 8 nocar 0:0 0:0到达日期 车牌号 车位 车位状态 到达时间 离开时间 * * * kong 9 nocar 0:0 0:0到达日期 车牌号 车位 车位状态 到达时间 离开时间 * * * kong 10 nocar 0:0 0:0 图3-4-129.退出系统:输入字母E退出管理系统,结束运行。 第四章 软件使用说明1.停车场管理系统是一个在Microsoft Visual C+ 6.0下运行的小型管理软件,用户进入菜单界面的选择,软件执行相应的功能。在第3.4节编码及调试,我就对该软件的使用做了详细的说明,在这儿我再做一下简单的介绍:首先可以对停车场进行初始化设置:在主菜单界面选择1,进入程序,根据提示输入相应信息,将停车场的全部车位初始化一致的。其次可以存放车辆:在主菜单界面输入2,进入该功能界面,按照提示录入车辆信息,停放车辆;如果停车场已满,会给出提示。然后可以取走车辆并计算相应的停车费:在主菜单界面输入3,进入操作,根据提示输入车牌号、离开时间以及每小时价位,系统就会自动算出停车的费用,并显示到屏幕上;如果没有找到该车,给出相应的提示。可按车牌号查询该车是否入库、何时到达的等:在主菜单界面选择4,根据提示输入要查找的车的车牌号,系统会自动查找并将该车到达的时间、日期、停放的车位等显示到屏幕上;如果没有找到,会给出相应的提示。可按车位查询此车位上的相关信息:在主菜单界面输入5,根据提示输入要查看的车位号,就会显示出该车位上的全部信息。可查询现在停车场里的所有信息:在主菜单界面选择6,系统就会自动在屏幕上显示出整个车场的全部信息。可查询以前来停过的车的相关信息:在f盘打开文件f1.dat,就可查看以前所有来停车场停过车的记录。可以对每天的车场信息进行保存备份:在主菜单界面输入7,系统就会自动把车场的全部信息保存到文件f2.dat里。最后退出系统:在主菜单界面输入E,退出系统,运行就全部结束了。2.该软件有较为美观简洁大方的菜单界面,能保证用户方便、直观、快捷的熟悉并使用软件的各项功能,进入主菜单界面用户可以根据自己的需要直接进行选择,实现相应的功能。3.该软件有严密正确的数据处理功能和数据保存功能,能够让用户轻松上手,并可对数据进行保存和读取,根据选择查看信息等。 第五章 课程设计心得与体会课程设计是培养学生综合运用所学知识,发现、提出、分析和解决实际问题,锻炼实践能力的重要环节,是对学生实际工作能力的具体训练和考察过程。这次课程设计历时3个星期,从选题到定稿,从理论到实践,在这三个星期的日子里,学到很多很多的东西,不仅巩固了以前所学过的知识,而且学到了一些平时在书本上所没有见到过的知识。通过这次课程设计使我懂得了只有理论知识是远远不够的,只有把所学的理论知识与实践相结合起来,从理论中得出结论,才能真正提高自己的实际动手能力和独立思考的能力。在设计的过程中也遇到了不少问题,发现了自己对以前所学过的知识理解得不够深刻,掌握得不够牢固通过这次课程设计之后,一定把以前所学过的知识重新温故。这次设计,进一步加深了我对结构体和链表的理解和运用。当每一个子模块分析完成时,心里特别的开心。中间遇到不少问题,但是在自己的努力和老师同学的帮助下,全都迎刃而解了。在此,对给过我帮助的所有同学和指导老师表示忠心的感谢! 总的来说,这次课程设计完成的还是比较成功的,心里挺高兴的,终于觉得平时所学的知识有了实用的价值,达到了理论与实际相结合的目的,不仅学到了不少知识,而且锻炼了自己的能力,不过这只是我们学习路上的驿站,我会继续努力学习它。最后,对给过我们帮助的所有同学和指导老师再次表示忠心的感谢!附录1:参考文献1.C+程序设计作者:谭浩强出版社:清华大学出版社参考内容:第四章 函数与预处理(94-109)第七章 自定义数据类型(201-217)第十三章 输入输出流 (439-441) 2.C+程序设计题解与上机指导 作者:谭浩强 出版社:清华大学出版社 参考内容:第七章 自定义数据类型(121-126) 附录2 程序清单#include#include#include#include#include#includeusing namespace std;#define NULL 0#define MAX 10struct Car /声明结构体类型Carstring num; /车牌号 string state; /车位状态 int set; /停车车位 int reach_hour; /到达时的小时点 int reach_min; /到达时的分钟点 int leave_hour; /离开时的小时点 int leave_min; /离开时的分钟点 string reach_date3;/停车日期 Car *next;int i;int main() /主函数Car *car_creat(); /初始化停车场Car *car_park(Car *); /停车函数Car *car_leave(Car *); /取车函数Car *search(Car *); /按车牌号查询函数Car *find(Car *); /按车位查询函数void print(Car *); /输出函数void printf(Car *); /保存函数Car *head;char c;while(1) /停车场管理系统界面system(cls);coutendl*endl - Welcome to our bus station ! - endl*endl;coutendl endl 停车场管理系统 endl endl 1.初始化车场 endl endl 2. 停车 endl endl 3. 取车 endl endl 4.按车牌号查询 endl endl 5.按车位查询 endl endl 6.输出车场信息 endl endl 7.保存信息 endl endl E.退出系统 endl endlendl请输入要进行的管理序号:;c=getch();switch(c)case 49:system(cls);head=car_creat();Sleep(8000);break; case50:system(cls);head=car_park(head);Sleep(8000);break; case51:system(cls);head=car_leave(head);Sleep(8000);break;case 52:system(cls);head=search(head); Sleep(8000); break;case 53:system(cls);head=find(head);Sleep(8000);break;case 54:system(cls);print(head);Sleep(6000);break;case 55:system(cls);printf(head);Sleep(1000);break;case 69: case 101:exit(1);default:cout输入错误!请重新选择!endl;Sleep(1000);break;return 0;Car *car_creat() /初始化停车场Car *head;int set;int n=0;Car *p1,*p2;p1=p2=new Car;coutendl请输入车到达的日期(* * *):;for(i=0;ip1-reach_datei;coutendlp1-num;coutendlp1-state;coutendlp1-set;coutendlp1-reach_hourp1-reach_min;coutendlp1-leave_hourp1-leave_min;head=NULL;while(nreach_date0=*; /初始化日期p1-reach_date1=p1-reach_date2=*;p1-num=kong; /初始化车牌号num为kongp1-set=set;p1-state=nocar; /初始化车位状态为nocar(无车)p1-reach_hour=00; /初始化所有时间为00p1-reach_min=00;p1-leave_hour=00;p1-leave_min=00;if(n=1) head=p1;else p2-next=p1;p2=p1;p1=new Car;coutendl请输入车到达的日期 :*年*月*日endl;cout请输入车牌号(例如:shanA1234):kongendl;cout车位状态为 :nocarendl;cout车停在车场的位置为第set号endl;cout车到达的时间/*:*/ :00:00endl;cout车离开的时间/*:*/ :00:00endlnext=NULL;if(n=MAX)coutendl该车场已全部初始化!endl; /提示初始化完毕return(head);Car *car_par

温馨提示

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

评论

0/150

提交评论