文档库 最新最全的文档下载
当前位置:文档库 › 停车场管理系统软件工程课程设计

停车场管理系统软件工程课程设计

停车场管理系统软件工程课程设计
停车场管理系统软件工程课程设计

课程设计说明书

课程名称:_软件工程课程设计___

题目:_停车场管理系统____

院系:理学院

专业班级:

学号:

学生XX:

指导教师:__

2012 年6月8 日

XX理工大学课程设计(论文)任务书理学院院系信计教研室

2012年5月28日

XX理工大学课程设计(论文)

目录

第一章引言 (1)

1.1 系统制作背景 (1)

1.2 系统制作要求 (1)

第二章需求分析 (1)

2.1任务概述 (1)

2.2系统开发原因 (1)

2.3系统开发任务 (1)

第三章概要结构设计 (2)

3.1基本处理流程 (2)

3.2总体结构 (3)

第四章详细结构设计 (4)

4.1程序系统的结构 (4)

4.2菜单函数 (4)

4.3初始化模块设计

4.4车辆进入函数 (7)

4.5车辆离开函数 (8)

第五章测试分析10

5.1主菜单函数 (10)

5.2初始化操作 (11)

5.3车辆进入 (121)

5.4车辆离开并收费 ........................................ 错误!未定义书签。2 第六章总结. (13)

参考文献 (14)

第一章引言

1.1 系统制作背景

说明:

使用此软件系统的名称:停车场管理系统

随着计算机技术的发展,在各行各业的应用越来越广泛,停车场管理由原来的人工管理进入计算机系统管理那是个必然趋势,计算机系统管理可以大大提高管理的效率和正确性。

1.2 系统制作要求

设有一个可以停放n辆汽车的狭长停车场,它只有一个大门可以供车辆进出。车辆按到达停车场时间的早晚依次从停车场最里面向大门口处停放(最先到

达的第一辆车放在停车场的最里面)。如果停车场已放满n辆车,则后来的车辆只能在停车场大门外的便道上等待,一旦停车场内有车开走,则排在便道上的第一辆车就进入停车站。停车站内如有某辆车要开走,在它之后进入停车场的车都必须先退出停车站为它让路,待其开出停车场后,这些车辆再依原来的次序进场。每辆车在离开停车场时,都应根据它在停车场内停留的时间长短交费。如果停留在便道上的车未进停车场就要离去,允许其离去,不收停车费,并且仍然保持在便道上等待的车辆的次序。编制一程序模拟该停车场的管理。

第二章需求分析

2.1任务概述

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

2.2系统开发原因

随着经济的发展和人民生活水平的提高,买车成为人们的奋斗目标之一,当然已经有很多人买起了车。可是随着车辆的增多,车辆的停泊问题也随之出现。这就使得各停车场需要更加先进、更加完善的车辆管理系统。

2.3系统开发任务

实现停车场的现代化管理,记录车辆信息,动态分配车位,停车费用结算,查看停车场车位的使用状况,退出系统等功能,解决车辆停放难,乱收费等问题。

第三章概要结构设计3.1基本处理流程

图3-1

3.2总体结构

图3-2

第四章详细结构设计

4.1程序系统的结构

main()函数体内包含了界面选则部分menu()够方便返回到系统界面。即main()函数写为

如下:

void main()/*主函数*/ { menu();/*菜单函数*/

}

图4-1

4.2 菜单函数

void menu() {

int n,w;

do

{

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

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

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

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

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

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

printf("Please choice your number(1-4): [ ]\b\b");

scanf("%d",&n);

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

{

w=1;

getchar();

}

else w=0;

}while(w==1);

switch(n)

{

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

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

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

case 4:exit(0); /*退出*/

}

}

4.3初始化模块设计

【需求分析】

该模块是将每一天开始的停车场内和便道车位清零。首先建立场内场外的结构体,结构体内成员即车位的状态。用循环实现车位的致零即可。

struct changnei/*场内车道信息*/

{

int neikong;

}chn[N-1];

struct changwai/*场外车道信息*/

{

int waikong;

}chw[M-1];

N和M分别是停车场和便道的车位预设值,用宏定义。用户可根据实际情况改变。#define N 100/*预设停车场有100个车位*/

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

void chushi()/*初始化函数*/

{

int i,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();

}

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

4.4车辆进入函数

【需求分析】

车辆到达后,要指定车辆的停车位置。用户根据菜单函数进入车辆进入模块。

按照每辆车的到达次序给予车辆次序号,由0号开始。车辆信息也建立结构体。

struct car/*车辆信息*/ { int car_num;/*车辆次序号*/ int car_arr;/*车辆到达时间*/ int car_lef;/*车辆离开时间*/

int car_stay;/*车辆停放位置*/

}car[CIXUHAO];

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

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

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

图4-2

void jinru()/*车辆进入函数*/ { int i,a; int h=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();

}

程序执行完后回到菜单。

图4-3

4.5车辆离开函数

【需求分析】

若有一辆车要离开,则需要记录该车的离开时间,以计算出该车在停车场内的停车时间和应该缴纳的费用。该车离开后,要判断便道上是否有车等待进入,如有,则将便道上第一辆车停放在停车场内最后的位置并记录好进场时间;若无,则返回菜单。

void likai()/*车辆离开函数*/

{ int i,k,choi,time;

double fee;

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为预设停车场单位小时费用,用宏定义,便于以后修改。#define D 1.2/*预设车辆停车费为1.2元每小时*/

第五章测试分析

5.1主菜单函数

图5-1

5.2初始化操作

图5-2

5.3车辆进入

有车进入

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

5.4车辆离开并收费

图5-4 若便道上没车,则退回到主菜单

图5-5 若便道上有车

图5-6

第六章总结

首先通过这次课程设计,加强了我的动手和思考解决问题的能力,学到了很多书本上学不到的知识,同时也巩固了对课本的知识,对我将来也是有很大的帮助。刚开始拿到这个题目是信心满满的,但是在做的过程中还是遇到了很多的问题。在制作过程中心理虽然有很多创意和构思,但是实际操作却存在很大的困难。制作界面的时候学到的最主要的耐心,有恒心一切都会变得迎刃而解。通过该实例的实习,要求大家进一步理解和运用结构化程序设计的思想和方法,初步掌握开

发一个小型实用系统的基本方法,学会调试较长的程序,学会利用流程图表示算法,进一步掌握和提高利用C语言进行程序设计的能力。

参考文献

[1]齐志昌,谭庆平. 软件工程[M].:高等教育,2006.4

[2]王珊,萨师煊. 数据库系统概论[M].:高等教育,2006.5

相关文档