C程序课程设计停车场管理系统.docx
《C程序课程设计停车场管理系统.docx》由会员分享,可在线阅读,更多相关《C程序课程设计停车场管理系统.docx(11页珍藏版)》请在冰点文库上搜索。
![C程序课程设计停车场管理系统.docx](https://file1.bingdoc.com/fileroot1/2023-7/12/0f95d862-167f-4755-bb52-a32f6d321b50/0f95d862-167f-4755-bb52-a32f6d321b501.gif)
C程序课程设计停车场管理系统
XXXXXX
C程序设计
课程设计说明书
设计(论文)题目:
停车场管理系统
所在院:
信息工程学院
专业班级:
14通信工程2班
学生姓名:
学号:
201451032
指导教师:
XXX
2016年3月7日
一、问题描述
某停车场有20车位(1-20号),车辆信息包括:
车位号,车牌号,进入时间,离开时间,计费(按每天20元收费)。
编程实现如下菜单驱动的停车场管理系统:
(1)查找空车位并显示车位号。
(2)车辆进入(判断有没有空车位,如果有,允许车辆进入,同时记录车位号,车牌号及辆进入时间)。
(3)查找车辆并显示车辆信息。
(4)车辆离开(按照车位号查找车辆,如果在车位,计费,同时让车辆离开)。
(5)显示所有在位车辆信息。
二、设计要求
1.界面清晰,美观大方。
2.要求使用菜单的形式描述功能项,菜单设计美观大方、实用,可仿照课程说明书模板或自行设计。
3.模块化程序设计:
要求在设计的过程中,按功能定义函数或书写多个文件,进行模块化设计,各个功能模块用函数的形式来实现。
4.程序以缩进格式书写,要求清晰、易懂。
5.各功能模块要求必须有准确描述函数功能的注释,重要语句最好也加上注释,以更好地让读者理解。
6.要求对2-3个重要功能模块进行描述。
7.课程设计题目选择要求一个班最多有两人可选择同一题目,但要求不得抄袭,最终每个人(即使题目相同)内容都是独立的。
8.课程设计至少包含5-10个功能模块,若题目中不够5-10个功能项,请自行设计功能项(5-10个功能项数目不同,得分也不同)。
9.可以选择老师提供的参考选题,也可以自选,如果自选,需要将自选题目的详细内容以及实现要求提供给老师,老师批准后方可采用。
10.要求利用结构化程序设计方法以及C的编程思想来完成系统的设计。
11.编辑平台选用MicrosoftVisualC++6.0。
三、分析与实现
本程序采用模块化设计,主函数清晰、明了,各功能分别在不同模块中实现。
共有七个功能模块,每个功能模块以函数的形式表示,实现了有关停车场管理的七项功能。
具体实现如下:
首先声明必要的变量及数据结构。
//相关头文件
#include
#include
#include
//符号常量定义
structGarage
{
charcarnum[8];/*车牌号*/
intlay;/*层号*/
intgaragenum;/*车位号*/
inttime;/*停车时间*/
intisempty;/*该车位是否为空,1表示空0表示有车*/
};
voidInstruction()
{
printf("停车场管理系统使用说明\n");
printf("停车请输入1\n");
printf("取车请输入2\n");
printf("查看全部车辆的信息请输入3\n");
printf("退出请输入0\n");
}
/*初始化停车场信息初始状态为第一层已经停有4辆车,*其车位号依次为1
—4,停车时间依次为20,15,10,5*/
voidInit(structGaragegar[][6])
{
inti,j;/*给所有的车位的层号车位号初始化停车时间初始化为0停车位
全都初始化为空*/
for(i=0;i<2;i++)
{
for(j=0;j<6;j++)
{
gar[i][j].lay=i+1;
gar[i][j].garagenum=j+1;
gar[i][j].time=0;
gar[i][j].isempty=1;
}
}
/*第一层的1-4号车位停车*/
for(i=0;i<4;i++)
{
gar[0][i].isempty=0;
}
strcpy(gar[0][0].carnum,"0000");/*初始化的车牌号*/
gar[0][0].time=20;
strcpy(gar[0][1].carnum,
"1111");gar[0][1].time=15;
strcpy(gar[0][2].carnum,"2222");
gar[0][2].time=10;
strcpy(gar[0][3].carnum,"3333");
gar[0][3].time=5;}
/*新停入的汽车后将在此之前的所有车的停车时间加5*/
voidAddTime(structGaragegar[][6])
{
inti,j;
for(i=0;i<2;i++)
{
for(j=0;j<6;j++)
{
if(gar[i][j].isempty==0)
{
gar[i][j].time+=5;
}
}
}
}
/*停车模块*/
voidPark(structGaragegar[][6])
{
inti;
charnum[8];
printf("请输入车牌号");
scanf("%s",num);/*查找空车位*/
for(i=0;i<6;i++)
{
if(gar[0][i].isempty==1)
{
printf("第一层第%d号车位空着请在此处停车\n",i+1);
strcpy(gar[0][i].carnum,num);
printf("车牌号%s层号1车位号%d\n",num,i+1);
AddTime(gar);/*在此之前停车的所有汽车时间加5*/
gar[0][i].isempty=0;/*表示该车为已经停车*/
gar[0][i].time=5;/*将时间设为5*/
return;
}
}
printf("第一层已经没有空车位\n");
for(i=0;i<6;i++)
{
if(gar[1][i].isempty==1)
{
printf("第二层第%d号车位空着请在此处停车\n",i+1);
strcpy(gar[1][i].carnum,num);
printf("车牌号%s层号2车位号%d\n",num,i+1);
AddTime(gar);/*在此之前停车的所有汽车时间加5*/
gar[1][i].isempty=0;/*表示该车位已经停车*/
gar[1][i].time=5;/*将时间设为5*/
return;
}
}
printf("对不起12层都没有空车位您现在不能在此停车\n");
}
/*查看所有车辆信息*/
voidInformation(structGaragegar[][6])
{
inti,j;
printf("车牌号层号车位号停车时间\n");
for(i=0;i<2;i++)
{
for(j=0;j<6;j++)
{
if(gar[i][j].isempty==0)
printf("%s%8d%8d%8d\n",gar[i][j].carnum,gar[i][j].lay,
gar[i][j].garagenum,gar[i][j].time);
}
}
printf("\n");
}
/*取车模块*/
doubleLeave(structGaragegar[2][6])
{
inti,j;
charnum[8];
doublecharge=0;
printf("请输入要取的车牌号");
scanf("%s",num);
for(i=0;i<2;i++)
{
for(j=0;j<6;j++)
{
if(!
strcmp(gar[i][j].carnum,num))
{
printf("您在%d层%d车位停车%d分钟\n",gar[i][j].lay,
gar[i][j].garagenum,gar[i][j].time);
charge=gar[i][j].time/5*0.2;
printf("停车费用为每5分钟0.2元您需交%.2lf元\n",charge);
gar[i][j].isempty=1;
returncharge;
}
}
}
printf("没有您输入的车号。
\n\n");
returncharge;
}
/*是否查看总收入*/
voidIsPrintTotal(doubletotal)
{
charch;
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()
{
intchoice;
doubletotal=0;
structGaragegar[2][6];
Init(gar);/*初始化第一层已经停有的4辆车*/
while
(1)
{
Instruction();
printf("请输入要进行的操作:
");
scanf("%d",&choice);
while(choice<0||choice>3)
{
printf("输入的不合法请输入0-3选择");
scanf("%d",&choice);
}
switch(choice)
{
case1:
Park(gar);
break;
case2:
total+=Leave(gar);
IsPrintTotal(total);
break;
case3:
Information(gar);
break;
case0:
exit(0);
}
}
return0;
}
四、运行与测试
5、总结与思考
两个星期的努力终于总算把课程设计给完成了。
这是一个坚苦而又漫长的过程。
看着辛苦得来的劳动成果很是欣慰。
刚开始可以说是一点头绪都没有于是就去图书馆找资料。
找到了一些关于停车场管理系统的。
可是这点进展却远远不够。
这只是一个小小的开始。
下一步是上网。
查找到了些与这个题目相似的,可以从中吸取一些知识。
又查到了些有关这方面的函数。
最后经过奋战终于完成了这个程序。
虽然设计程序很累。
可是当设计结束时真是别有一番滋味在心头。
世上无难事只怕有心人。
此次课程设计我受益匪浅,学会了很多,也知道了自己需要需要学的更多,同时,我也爱上了C,体会到了它的奇妙,实在是觉得它是一门大学问,它所蕴含的知识自己永远也学不完,唯有不断奋进,不断进步。
欢迎您的下载,
资料仅供参考!
致力为企业和个人提供合同协议,策划案计划书,学习资料等等
打造全网一站式需求