C语言综合程序设计停车场管理系统.docx

上传人:b****2 文档编号:11761345 上传时间:2023-06-02 格式:DOCX 页数:20 大小:152.64KB
下载 相关 举报
C语言综合程序设计停车场管理系统.docx_第1页
第1页 / 共20页
C语言综合程序设计停车场管理系统.docx_第2页
第2页 / 共20页
C语言综合程序设计停车场管理系统.docx_第3页
第3页 / 共20页
C语言综合程序设计停车场管理系统.docx_第4页
第4页 / 共20页
C语言综合程序设计停车场管理系统.docx_第5页
第5页 / 共20页
C语言综合程序设计停车场管理系统.docx_第6页
第6页 / 共20页
C语言综合程序设计停车场管理系统.docx_第7页
第7页 / 共20页
C语言综合程序设计停车场管理系统.docx_第8页
第8页 / 共20页
C语言综合程序设计停车场管理系统.docx_第9页
第9页 / 共20页
C语言综合程序设计停车场管理系统.docx_第10页
第10页 / 共20页
C语言综合程序设计停车场管理系统.docx_第11页
第11页 / 共20页
C语言综合程序设计停车场管理系统.docx_第12页
第12页 / 共20页
C语言综合程序设计停车场管理系统.docx_第13页
第13页 / 共20页
C语言综合程序设计停车场管理系统.docx_第14页
第14页 / 共20页
C语言综合程序设计停车场管理系统.docx_第15页
第15页 / 共20页
C语言综合程序设计停车场管理系统.docx_第16页
第16页 / 共20页
C语言综合程序设计停车场管理系统.docx_第17页
第17页 / 共20页
C语言综合程序设计停车场管理系统.docx_第18页
第18页 / 共20页
C语言综合程序设计停车场管理系统.docx_第19页
第19页 / 共20页
C语言综合程序设计停车场管理系统.docx_第20页
第20页 / 共20页
亲,该文档总共20页,全部预览完了,如果喜欢就下载吧!
下载资源
资源描述

C语言综合程序设计停车场管理系统.docx

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

C语言综合程序设计停车场管理系统.docx

C语言综合程序设计停车场管理系统

 

综合性程序设计报告

 

设计题目:

____停车场管理系统___________

指导教师:

_______________

班级:

_____________

学号:

_______________

设计者:

_______________

成绩:

_______________

设计时间:

年月日

停车场管理系统

1.题目描述

2.功能模块分解及说明

3.数据库设计及说明

4.界面说明

5.主要算法说明

6.代码清单及注释

7.设计测试说明

8.设计体会

停车场管理系统

1.题目描述

停车场的基本概述:

用于利用计算机实现停车场的管理,包括车位调度,停车记费。

车位记录,收费管理与计算。

停车场的主要功能:

1.车位调度。

2.停车时间与费用的计算。

3.车位记录。

2.功能模块分解及说明

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

车辆离开要计时计费。

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

所以,这个系统可以分为:

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

菜单函数:

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

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

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

即main()函数写为

如下:

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();

}

程序执行完后回到菜单。

车辆离开函数:

该模块一辆车要离开,则需要记

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

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

的费用。

该车离开后,要判断便道

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

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

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

则返回菜单.

 

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元每小时*/

3.数据库设计及说明

停车车道:

用宏定义管理数据。

N和M分别是停车场和便道的车位预设值

原因以及说明:

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

预设车辆次序号:

用宏定义。

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

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

停车费用:

用宏定义。

原因及说明:

以后便于修改。

车辆号码:

用数组。

原因及说明:

车辆数目较大,用数组更加有条理。

车道号码:

用数组。

原因及说明:

车辆数目较大,用数组更加有条理。

4.界面说明

主菜单函数

初始化操作

有车进入

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

有车离开

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

若便道上有车

5.主要算法说明

主菜单

 

车道是否停满。

 

便道上是否有车辆。

 

6.代码清单及注释

#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();

}

}

7.设计测试说明

 

8.设计体会

c语言程序设计是一门重要的专业基础课,通过这次课程设计使我了解了,c语言程序设计的思想,并且掌握了程序设计的基本方法,为后续课程打下了坚实的基础。

同时这次课程设计又是一次实践性较强的知识应用,在对我进行程序设计基础理论与技术技巧能力训练的同时,更加培养了我解决实际问题的编程能力。

在设计过程中,首先要解决的是与同学的合作,接下来分工与协商,共同探讨,大家取长补短,认清自己的不足之处和薄弱环节,加以弥补和加强,要做出一个好的程序就要有不懈追求的精神和对理想崇高的追求,有一种不完成不罢休的精神。

c语言作为一种高级编程语言具有方便灵活的特点,适合各种类型的软件开发,为我们以后学习单片机非常有用。

在设计初期,根据题目的要求和所学的知识,车库中的车辆是先进后出是栈结构,便道上的车辆是先进先出的,是一个队列,结构很明显,但是现阶段我所学的基础知识不够,掌握的不多,对应用栈和队列来解决这个问题有一定的困难,因此我在整个设计中使用了结构体数组,运用一个结构体数组来同时记录车库和便道中车辆的信息,这样也可以起到一个连续记录数据的功能,完成设计要求的任务。

课程设计为我提供了一个既动手又动脑,独立实践的机会,将课本上的知识与实践相结合起来,提高了我适应实际,实践编程的能力。

在这一系统中用到了结构体,它让我更加巩固了结构体的特点和用法,本设计最好使用的结构是栈和队列,但是我们现阶段还未作学习,使用起来不是很流畅,因此我在这个设计中使用了结构体,使用了新的思路。

总之,这次课程设计挖掘了我潜在的能力,是我更加自信,也对编程更加有兴趣,为以后的学习打下了良好的基础。

 

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

当前位置:首页 > 解决方案 > 学习计划

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

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