停车场管理系统C语言课程设计.doc

上传人:wj 文档编号:1308583 上传时间:2023-04-30 格式:DOC 页数:12 大小:252KB
下载 相关 举报
停车场管理系统C语言课程设计.doc_第1页
第1页 / 共12页
停车场管理系统C语言课程设计.doc_第2页
第2页 / 共12页
停车场管理系统C语言课程设计.doc_第3页
第3页 / 共12页
停车场管理系统C语言课程设计.doc_第4页
第4页 / 共12页
停车场管理系统C语言课程设计.doc_第5页
第5页 / 共12页
停车场管理系统C语言课程设计.doc_第6页
第6页 / 共12页
停车场管理系统C语言课程设计.doc_第7页
第7页 / 共12页
停车场管理系统C语言课程设计.doc_第8页
第8页 / 共12页
停车场管理系统C语言课程设计.doc_第9页
第9页 / 共12页
停车场管理系统C语言课程设计.doc_第10页
第10页 / 共12页
停车场管理系统C语言课程设计.doc_第11页
第11页 / 共12页
停车场管理系统C语言课程设计.doc_第12页
第12页 / 共12页
亲,该文档总共12页,全部预览完了,如果喜欢就下载吧!
下载资源
资源描述

停车场管理系统C语言课程设计.doc

《停车场管理系统C语言课程设计.doc》由会员分享,可在线阅读,更多相关《停车场管理系统C语言课程设计.doc(12页珍藏版)》请在冰点文库上搜索。

停车场管理系统C语言课程设计.doc

C语言课程设计报告

停车场管理系统

1题目要求

设有一个可以停放n辆汽车的狭长停车场,它只有一个大门可以供车辆进出。

车辆按到达停车场时间的早晚依次从停车场最里面向大门口处停放(最先到达的第一辆车放在停车场的最里面)。

如果停车场已放满n辆车,则后来的车辆只能在停车场大门外的便道上等待,一旦停车场内有车开走,则排在便道上的第一辆车就进入停车站。

停车站内如有某辆车要开走,在它之后进入停车场的车都必须先退出停车站为它让路,待其开出停车场后,这些车辆再依原来的次序进场。

每辆车在离开停车场时,都应根据它在停车场内停留的时间长短交费。

如果停留在便道上的车未进停车场就要离去,允许其离去,不收停车费,并且仍然保持在便道上等待的车辆的次序。

编制一程序模拟该停车场的管理。

【基本要求】要求程序输出每辆车到达后的停车位置(停车场或便道上),以及某辆车离开停车场是的停车时间及它应该交的费用。

2需求分析

根据题目要求,因为停车场是一个单条的序列,可以用结构体实现;在程序中,需要知道每辆来车的具体停放位置,应提供提示、查找、标记工作。

车辆离开要计时计费。

另外,每天开始时,停车场要初始化。

3总体设计

这个系统可以分为:

初始化、有车进入、有车离开、退出四个模块。

4详细设计

开始

显示一系列选项功能

输入n,判断n是不是1-4?

Y根据n的值调用各功能模块函数

结束

main()函数体内包含了界面选则部分menu(),并单独

抽出来作为一个独立函数,目的在于系统执行每部分

模块后能够方便返回到系统界面。

即main()函数写为

N

如下:

voidmain()/*主函数*/

{

menu();/*菜单函数*/

}

菜单函数:

voidmenu()

{

intn,w;

do

{

puts("\t\t**************MENU**************\n\n");

puts("\t\t\t1.初始化");

puts("\t\t\t2.有车进入");

puts("\t\t\t3.有车离开");

puts("\t\t\t4.退出");

puts("\n\n\t\t*********************************\n");

printf("Pleasechoiceyournumber(1-4):

[]\b\b");

scanf("%d",&n);

if(n<1||n>4)/*对选择的数字作判断*/

{

w=1;

getchar();

}

elsew=0;

}while(w==1);

switch(n)

{

case1:

chushi();break;/*初始化函数*/

case2:

jinru();break;/*车辆进入函数*/

case3:

likai();break;/*车辆离开函数*/

case4:

exit(0);/*退出*/

}

}

初始化模块设计:

【需求分析】

该模块是将每一天开始的停车场内和便道车位清零。

首先建立场内场外的结构体,结构体内成员即车位的状态。

用循环实现车位的致零即可。

structchangnei/*场内车道信息*/

{

intneikong;

}chn[N-1];

structchangwai/*场外车道信息*/

{

intwaikong;

}chw[M-1];

N和M分别是停车场和便道的车位预设值,用宏定义。

用户可根据实际情况改变。

#defineN100/*预设停车场有100个车位*/

#defineM100/*预设便道有100个出位*/

voidchushi()/*初始化函数*/

{

inti,j;

for(i=0;i<=N-1;i++)

chn[i].neikong=0;/*将场内车道设置为空*/

for(j=0;j<=M-1;j++)

chw[i].waikong=0;/*将便道车道设置为空*/

printf("\n\n\t\t已初始化\n\n");

menu();

}

函数出示化后将回到菜单界面。

车辆进入函数:

【需求分析】

车辆到达后,要指定车辆的停车位置。

用户根据菜单函数进入车辆进入模块。

按照每辆车的到达次序给予车辆次序号,由0号开始。

车辆信息也建立结构体。

structcar/*车辆信息*/

{

intcar_num;/*车辆次序号*/

intcar_arr;/*车辆到达时间*/

intcar_lef;/*车辆离开时间*/

intcar_stay;/*车辆停放位置*/

}car[CIXUHAO];

其中,CIXUHAO是车辆次序号的宏定义:

#defineCIXUHAO1000/*预设车辆次序号。

不管车辆到达时停在场内或便道,均依次设置一个次序号,由0开始*/

给予车辆次序号之后,用循环判断停车场是否停满,再分别给予选择:

场内是否已满

已满,将车停在便道

未满,指定停车场位置

voidjinru()/*车辆进入函数*/

{

inti,a;

inth=0;

printf("\n\n请输入该车次序号(从0号开始):

");

scanf("%d",&a);

for(i=0;i

{

if(chn[i].neikong==0);/*无车标记0*/

if(chn[i].neikong==1)/*有车标记1*/

h=h+1;

}

if(h==N)

printf("停车场内已停满,请停在便道上\n");

else

{

car[a].car_stay=h;

chn[h].neikong=1;

printf("该车应该停在停车场内第道%d(从0道开始记)\n",h);

printf("请输入该车进停车场时刻(24小时整点计时):

\n");

scanf("%d",&car[a].car_arr);

}

便道上还有车吗?

menu();

}

程序执行完后回到菜单。

有车离开

记录该车离开时间

得到停车时间和费用

便道上还有车吗?

N

返回主菜单

Y

令其进场

输入次序号和进场时间

车辆离开函数:

【需求分析】

若有一辆车要离开,则需要记

录该车的离开时间,以计算出该车

在停车场内的停车时间和应该缴纳

的费用。

该车离开后,要判断便道

上是否有车等待进入,如有,则将

便道上第一辆车停放在停车场内最

后的位置并记录好进场时间;若无,

则返回菜单。

voidlikai()/*车辆离开函数*/

{ inti,k,choi,time;

doublefee;

printf("请输入离开车辆次序号[],并将此车之后的车先全部退出停车场!

");

scanf("%d",&i);

printf("\n请输入离开车辆的离开时刻(24小时整点计时):

\n");

scanf("%d",&car[i].car_lef);

fee=D*(car[i].car_lef-car[i].car_arr);

time=car[i].car_lef-car[i].car_arr;

printf("次序号为%d的车停车时间%d小时,应收费%f元\n",i,time,fee);

printf("\n\n\n请让场内退出的车再依次进场!

\n\n\n");

printf("便道上现在有车吗?

(请选择1或2)\n1.有\n2.没有\n");/*因便道上可能没有车,因此要做选择*/

scanf("%d",&choi);

if(choi==2)

{

menu();

}

if(choi==1)

{

printf("请让便道上的第一辆车进场\n");

printf("该车次序号为:

\n");

scanf("%d",&k);

printf("请输入该车进场时间:

\n");

scanf("%d",&car[k].car_arr);

menu();

}

}

D为预设停车场单位小时费用,用宏定义,便于以后修改。

#defineD1.2/*预设车辆停车费为1.2元每小时*/

5上机操作

(1)主菜单函数

(2)初始化操作

(3)有车进入

以上分别举例0,1,2三个车的进场情况

(4)有车离开

若便道上没车,则退回到主菜单

若便道上有车

6总结

通过该实例的实习,要求大家进一步理解和运用结构化程序设计的思想和方法,初步掌握开发一个小型实用系统的基本方法,学会调试较长的程序,学会利用流程图表示算法,进一步掌握和提高利用C语言进行程序设计的能力。

7原程序代码

#include

#include

#include

#defineN100/*预设停车场有100个车位*/

#defineM100/*预设便道有100个出位*/

#defineD1.2/*预设车辆停车费为1.2元每小时*/

#defineCIXUHAO1000/*预设车辆次序号。

不管车辆到达时停在场内或便道,均依次设置一个次序号,由0开始*/

voidmenu();

voidchushi();

voidjinru();

voidlikai();

structcar/*车辆信息*/

{

intcar_num;/*车辆次序号*/

intcar_arr;/*车辆到达时间*/

intcar_lef;/*车辆离开时间*/

intcar_stay;/*车辆停放位置*/

}car[CIXUHAO];

structchangnei/*场内车道信息*/

{

intneikong;

}chn[N-1];

structchangwai/*场外车道信息*/

{

intwaikong;

}chw[M-1];

voidmain()/*主函数*/

{

menu();/*菜单函数*/

}

voidmenu()

{

intn,w;

do

{

puts("\t\t**************MENU**************\n\n");

puts("\t\t\t1.初始化");

puts("\t\t\t2.有车进入");

puts("\t\t\t3.有车离开");

puts("\t\t\t4.退出");

puts("\n\n\t\t*********************************\n");

printf("Pleasechoiceyournumber(1-4):

[]\b\b");

scanf("%d",&n);

if(n<1||n>4)/*对选择的数字作判断*/

{

w=1;

getchar();

}

elsew=0;

}while(w==1);

switch(n)

{

case1:

chushi();break;/*初始化函数*/

case2:

jinru();break;/*车辆进入函数*/

case3:

likai();break;/*车辆离开函数*/

case4:

exit(0);/*退出*/

}

}

voidchushi()/*初始化函数*/

{

inti,j;

for(i=0;i<=N-1;i++)

chn[i].neikong=0;/*将场内车道设置为空*/

for(j=0;j<=M-1;j++)

chw[i].waikong=0;/*将便道车道设置为空*/

printf("\n\n\t\t已初始化\n\n");

menu();

}

voidjinru()/*车辆进入函数*/

{

inti,a;

inth=0;

printf("\n\n请输入该车次序号(从0号开始):

");

scanf("%d",&a);

for(i=0;i

{

if(chn[i].neikong==0);/*无车标记0*/

if(chn[i].neikong==1)/*有车标记1*/

h=h+1;

}

if(h==N)

printf("停车场内已停满,请停在便道上\n");

else

{

car[a].car_stay=h;

chn[h].neikong=1;

printf("该车应该停在停车场内第道%d(从0道开始记)\n",h);

printf("请输入该车进停车场时刻(24小时整点计时):

\n");

scanf("%d",&car[a].car_arr);

}

menu();

}

voidlikai()/*车辆离开函数*/

{ inti,k,choi,time;

doublefee;

printf("请输入离开车辆次序号[],并将此车之后的车先全部退出停车场!

");

scanf("%d",&i);

printf("\n请输入离开车辆的离开时刻(24小时整点计时):

\n");

scanf("%d",&car[i].car_lef);

fee=D*(car[i].car_lef-car[i].car_arr);

time=car[i].car_lef-car[i].car_arr;

printf("次序号为%d的车停车时间%d小时,应收费%f元\n",i,time,fee);

printf("\n\n\n请让场内退出的车再依次进场!

\n\n\n");

printf("便道上现在有车吗?

(请选择1或2)\n1.有\n2.没有\n");/*因便道上可能没有车,因此要做选择*/

scanf("%d",&choi);

if(choi==2)

{

menu();

}

if(choi==1)

{

printf("请让便道上的第一辆车进场\n");

printf("该车次序号为:

\n");

scanf("%d",&k);

printf("请输入该车进场时间:

\n");

scanf("%d",&car[k].car_arr);

menu();

}

}

12

展开阅读全文
相关资源
猜你喜欢
相关搜索
资源标签

当前位置:首页 > 求职职场 > 简历

copyright@ 2008-2023 冰点文库 网站版权所有

经营许可证编号:鄂ICP备19020893号-2