停车场管理系统 c语言.docx
《停车场管理系统 c语言.docx》由会员分享,可在线阅读,更多相关《停车场管理系统 c语言.docx(12页珍藏版)》请在冰豆网上搜索。
![停车场管理系统 c语言.docx](https://file1.bdocx.com/fileroot1/2023-3/29/7630b517-9a35-4904-98c5-d8f4670dd3b3/7630b517-9a35-4904-98c5-d8f4670dd3b31.gif)
停车场管理系统c语言
学号
2015-2016学年第二学期
1508010109
《高级语言程序设计》
课程设计报告
题目:
停车场管理系统
专业:
计算机科学与技术
班级:
15级计科<1>班
姓名:
胡玉玉
指导教师:
陈广宏
成绩:
计算机学院
2016年4月25日
1.设计内容及要求
1.1课程设计内容
①通过本次课程设计,强化上级动手能力,在理论和实践的基础上巩固《C语言程序设计》课程的学习内容。
掌握软件设计的基本方法。
②熟悉C语言的基本内容从而掌握C语言的基本知识以及了解C语言的基本编写及运行。
③了解程序的分模块编写并对程序的每个模块进行详细的设计并且能理解一般C语言编写的程序。
④掌握书写程序设计说明文档的能力。
⑤熟悉C程序设计的开发环境及C程序的调试过程
1.2课程设计的要求
①分析课程设计题目的要求。
②写出详细设计说明。
③编写程序代码,调试程序使其能正确运行。
④设计完成的软件要便于操作和使用。
⑤设计完成后提交课程设计报告。
2.概要设计
2.1设计思路
停车场是一个可停放n辆汽车的狭长通道,并只有一个大门可供汽车进出,汽车在停车场内按车辆到达的先后顺序,依次由北向南排列(大门在最南端,最先到达的第一辆车停放在车场的最北端),如车长内已停满n辆汽车,则后来的汽车只能在门外的便道上等候,一旦有车开走,则排在便道上的第一辆车即可开入;当停车场内某辆车要离开时,在它后进入的车辆必须先退出车场为它让路,待该辆车开出大门外,其它车辆再按原次序进入车场,每辆停放在车场的车在它离开停车场时必须按它停留的时间长短交纳费用,以栈模拟停车场,以队列模拟车场外的便道,按照从终端读入的输入数据序列进行模拟管理.每一组输入数据包括三个数据项:
汽车”到达”或”离去”信息,汽车牌照号码以及到达或离去的时刻(到达或离去的时刻也可用计算机控制).对每一组输入数据进行操作后的输入信息为:
如是车辆到达,则输入汽车在停车场。
2.2程序基本框架结构图
3.设计过程或程序代码
3.1主要程序代码及解释
#include
#include
#include
#defineN3
#defineMAX50
#definesign10
#defineprice10
charpart[N][sign];
charRpart[MAX][sign];
chartime[N][20];
intP,R;
partadd(char*t)
{
strcpy(&part[P][0],t);
printf("请输入时间:
\n");
scanf("%s",&time[P][0]);
getchar();
P++;
}
Rpartadd(char*t)
{
if(R{
strcpy(&Rpart[R][0],t);
R++;
}
else
{
printf("过道已满无法停车\n");
}
}
newcar()
{
chartemp[sign];
printf("请输入车牌号码:
");
scanf("%s",temp);
getchar();
if(P{
partadd(temp);
}
elseif(R{
Rpartadd(temp);
}
}
inttimed(char*t1,char*t2)
{
inti=0,y=0,x=0,j,n=1;
while
(1)
{
if(t1[i]=='.')
{
for(j=i-1;j>=0;j--)
{
y=y+(t1[j]-'0')*(60*n);
n=n*10;
}
while
(1)
{
if(t1[j]==NULL)
{
for(n=1;j>i;j--)
{
y=y+(t1[j]-'0')*n;
n=n*10;
}
break;
}
j++;
}
i=0;
while
(1)
{
if(t2[i]=='.')
{
for(j=i-1;j>=0;j--)
{
x=x+(t2[j]-'0')*(60*n);
n=n*10;
}
while
(1)
{
if(t2[j]==NULL)
{
for(n=1;j>i;j--)
{
x=x+(t2[j]-'0')*n;
n=n*10;
}
break;
}
j++;
}
y=(x-y)*price;
returny;
}
i++;
}
}
i++;
}
}
Rpartcarout(inti)
{
intj;
for(j=i;j{
strcpy(&Rpart[j][0],&Rpart[j+1][0]);
R--;
}
}
partcarout(inti)
{
intj,money;
chart[20];
printf("请输入现在的时间:
\n");
scanf("%s",t);
getchar();
money=timed(t,&time[i][0]);
printf("收费:
%d\n",money);
for(j=i;j
{
strcpy(&part[j][0],&part[j+1][0]);
P--;
}
if(R!
=0)
{
strcpy(&part[N-1][0],&Rpart[0][0]);
P++;
strcpy(&time[P][0],t);
Rpartcarout(0);
}
}
carout()
{
chart[sign];
inti,get=0;
printf("请输入要离开的车牌号:
");
scanf("%s",t);
getchar();
for(i=0;i
{
if(strcmp(t,&part[i][0])==0)
{
get=1;
partcarout(i);
break;
}
}
for(i=0;i{
if(strcmp(t,&Rpart[i][0])==0)
{
get=1;
Rpartcarout(i);
break;
}
}
if(get==0)
{
printf("chawuciche\n");
}
}
jopart()
{
inti;
for(i=0;i
{
printf("%d.%s\n",i,&part[i][0]);
}
}
joRpart()
{
inti;
for(i=0;i{
printf("%d.%s\n",i,&Rpart[i][0]);
}
}
main()
{
intc;
while
(1)
{
printf("请选择要做的事:
\n");
printf("1.加入新车\n");
printf("2.有车离开\n");
printf("3.显示在停车场内的车\n");
printf("4.显示在过道上的车\n");
printf("5.退出\n");
c=getchar();
getchar();
switch(c)
{
case'1':
newcar();
break;
case'2':
carout();
break;
case'3':
jopart();
break;
case'4':
joRpart();
break;
case'5':
exit
(1);
break;
}
}
}
4.设计结果与分析
4.1程序运行结果截图与分析
程序主页截图
(图1)
说明:
图1是运行后进入的主页截图
1.加入新车
输入车牌号
输入开进时间
(图2)
2.有车离开
输入车牌号
输入离开时间
收费金额
(图3)
3.停车场内的车
(图4)
4.过道上的车
(图5)
5.退出
(图6)
5.参考文献
1.[美]MarkAllenWeiss,数据结构与算法分析——C语言描述(中文版第2版,人民邮电出版社。
2.严蔚敏,吴伟民《数据结构题集(C语言版)》清华大学出版社。
3.谭浩强《c语言程序设计》清华大学出版社。
6.总结
课程设计是培养学生综合运用所学知识,发现,提出,分析和解决实际问题,锻炼实践能力的重要环节,是对学生实际工作能力的具体训练和考察过程.随着科学技术发展的日新日异,当今计算机应用在是生活中可以说得是无处不在。
因此作为二十一世纪的大学来说掌握计算机开发技术十分重要的。
我的题目是停车场管理系统,对于我们这些新手来说,这是很大的考验,我一千次一万次的问自己,怎么才能找到课堂所学与实际应用的最佳结合点?
怎么才能让自己的程序在篇幅上简单,在使用价值上丰富?
怎样让自己的业余更靠近专业?
怎样让自己的计划更具有序性,而不会忙无一用?
机会是老师,学校,以及无数代教育工作者给的,而能力是自己的,耐性是需要的。
经过自己的琢磨,听取了师姐,师兄们的建议,还查阅了很多书籍,才做到了心中有数,才了解了C语言课程设计的真正用意——培养自学能力,养成程序编辑的好习惯。
我从来不相信车到山前必有路的说法,认为那只是懒惰者自寻懒惰的借口,我要积极,要把握,要努力。
回顾起此次课程设计,至今我仍感慨颇多,的确,从拿到题目到完成整个编程,从理论到实践,在整整半个学期的日子里,可以学到很多很多的的东西同时在设计的过程中发现了自己的不足之处,对以前所学过的知识理解得不够深刻,掌握得不够牢固,比如说结构体……通过这次课程设计之后,一定把以前所学过的知识重新温故。