C语言课程设计 停车场管理Word文档格式.docx
《C语言课程设计 停车场管理Word文档格式.docx》由会员分享,可在线阅读,更多相关《C语言课程设计 停车场管理Word文档格式.docx(17页珍藏版)》请在冰豆网上搜索。
当有车开走时,输入其车牌号,先按其停车时间计算费用,每5分钟2毛钱。
同时从文件“car.dat”k删除该车的信息,并将该车对应的车位设置为可使用状态(即二维数组清零)。
按用户的选择来判断是否要输出停车收费的总计。
5.输出停车场中全部车辆的信息。
6.退出系统。
需求分析
车辆信息要用文件存储,提供文件的输入输出操作;
当车开走时要删除文件中该车的信息,因而要提供文件的删除操作;
另外还要用键盘式菜单实现功能选择。
总体设计
整个管理系统可设计为停车模块、取车模块、车辆信息浏览模块。
停车场管理系统
停车模块
车辆信息浏览模块
取车模块
详细设计
首先定义包含与标准库有关的变量定义和宏定义和文件包含所用的文件
#include<
stdio.h>
stdlib.h>
#include<
conio.h>
io.h>
然后用一个二维数组来表示一个停车场的位置,每个数组元素存放一个车牌号
intcars[12][4]={{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}};
/*二维数组代表停车信息*/
后定义一个文件夹来储存所停车的信息,开始有四辆车在车库
voidsave()
{FILE*fp;
inti,j;
if((fp=fopen("
car.dat"
"
w"
))==NULL)
{printf("
cannotopenfile\n"
);
return;
}
for(i=0;
i<
12;
i++)
for(j=0;
j<
4;
j++)
if(fwrite(cars,2,1,fp)!
=1)
printf("
filewriteerror\n"
fclose(fp);
getchar();
}
一.停车模块
开始
输入车牌号
车牌号在
1000至9999之间?
存入停车系统
结束
N
voidcar_park(void)/*停车操作*/
{intx,i,j;
printf("
\n^-^欢迎您的光临!
^-^\n"
\n\n请输入车牌号:
\n\n"
车牌号要在1000至9999之间,输入错误的车牌号将返回主菜单
for(i=0;
if(cars[i][0]==x||x<
1000||x>
9999)break;
if(i!
=12)
\n错误的号码或已经停过了!
!
\n"
getchar();
}/*如果此车号以在,打印此车已停*/
elseif(i==12&
&
x>
=1000&
x<
=9999)
{for(i=0;
if(cars[i][0]==0){cars[i][0]=x;
save();
\n\n成功\n\n"
为车选择一个停车的位置,包括层号与位置号
层=%d,车位=%d\n"
cars[i][1],cars[i][2]);
\n\n\nTwotimes'
Enter'
toend..."
break;
}/*如果此车号不在,则进行停车操作*/
if(cars[i][0]!
=0)cars[i][3]+=5;
/*所有停车时间+5*/
/*保存以上信息到文件*/
二.车辆信息浏览模块
把停车信息存入文件中
关闭文件
打开文件
车辆信息存入文件
voidprintfdata()/*停车信息*/
{inti,j;
FILE*fp;
fp=fopen("
r"
/*打开文件"
*/
\nNumberFloorPositionTime\n"
{for(j=0;
{fread(cars,2,1,fp);
/*读文件*/
%6d"
cars[i][j]);
}printf("
fclose(fp);
/*关闭文件"
voidsave();
voidcar_park(void);
voidcar_get(void);
voidprintfdata();
charreadcommand();
voidinitialization();
插入主函数
intmain()
{charc;
按'
enter'
开始\n"
while
(1)
{
initialization();
/*初始化界面*/
c=readcommand();
/*读取停车场状况*/
system("
cls"
请选择所需要的操作,停车,取车,计时,
switch(c)
{case'
p'
:
car_park();
break;
/*停车操作*/
case'
P'
g'
car_get();
/*取车操作*/
G'
d'
printfdata();
\n\npleasepress'
tocontinue....\n"
scanf("
%c"
&
c);
/*停车信息*/
D'
/*停车信息*/
\n\nrreupklfdkpleasepress'
e'
\n\n\n\nPress'
tocontinue..."
exit(0);
E'
default:
ERROR!
Press'
/********************************************************************************/
voidinitialization()/*初始函数*/
{
inti;
\n********************************************************************************\n"
1.停车--p2.取车--g3.停车时间--d4.退出--E"
\n\n********************************************************************************\n"
charreadcommand()/*选择函数*/
charc;
while((c!
='
)&
(c!
))
输入p,g,d,e选择!
c=getchar();
returnc;
三.取车操作
voidcar_get(void)/*取车操作*/
inti,y;
floatpaid;
inta;
\n取车\n\n\n输入车牌号:
\n\n\n\n"
\n车牌号在1000至9999之间\n错误的号码\n\n"
scanf("
%d"
y);
/*输入要取车的车牌号*/
for(i=0;
if(cars[i][0]==y)
取车后车牌号清零
cars[i][0]=0;
paid=0.2*cars[i][3]/5;
计算停车费
\n计费(1--是2或任意键--否)\n\n\n"
a);
switch(a)
case1:
\n\n\n价格是%8.2fyuan\n"
paid);
/*打印停车费用*/
cars[i][3]=0;
/*时间清零*/
save();
case2:
欢迎您下次光临"
default:
}else;
if(i==12)printf("
\n此车不在停车场!
/*如果此车不在,打印号码不在*/
运行与测试报告:
一.停车操作,请选择操作种类:
二.输入停车信息,寻找车位
三.取车操作,计算价格
后记
设计感想:
众所周知,C语言程序是一种最基本的应用程序,只有熟练的掌握和运用才能便于以后的编程。
通过此次程序设计实习,我成功地完成了课堂上老师所要求的内容,更加理解和懂得运用结构化程序设计的思想和方法,初步掌握开发一个小型实用系统的基本方法,学会调试一个较长程序