停车场管理系统软件工程课程设计范本模板.docx
- 文档编号:5891235
- 上传时间:2023-01-01
- 格式:DOCX
- 页数:21
- 大小:208.38KB
停车场管理系统软件工程课程设计范本模板.docx
《停车场管理系统软件工程课程设计范本模板.docx》由会员分享,可在线阅读,更多相关《停车场管理系统软件工程课程设计范本模板.docx(21页珍藏版)》请在冰豆网上搜索。
停车场管理系统软件工程课程设计范本模板
课程设计说明书
课程名称:
_软件工程课程设计___
题目:
_停车场管理系统____
院系:
理学院
专业班级:
学号:
学生姓名:
指导教师:
__
2012年6月8日
安徽理工大学课程设计(论文)任务书
理学院院系信计教研室
学号
学生姓名
专业(班级)
设计题目
停车场管理系统
设
计
技
术
参
数
系统平台:
WindowsXP
开发工具:
MicrosoftVC++6。
0
建模工具:
MicrosoftVisio2007
抓图工具:
红蜻蜓抓图精灵
设
计
要
求
利用软件工程的思想和方法完成停车场管理系统的分析、设计、实现等,主要实现的功能有:
记录车辆信息,动态分配车位,停车费用结算,查看停车场车位的使用状况,退出系统等功能,解决车辆停放难,乱收费等问题.
工
作
量
需求分析,概要设计,详细设计,编码设计以及调试。
工
作
计
划
5月28日—-5月30日完成需求分析
6月1日—-6月3日完成概要设计和详细设计
6月4日—-6月6日完成程序设计
6月7日完成Word文档编写及窗口截图
6月8日提交程序和课程设计说明书
参
考
资
料
[1]严蔚敏.数据结构[M]。
北京:
清华大学出版社.2009
[2]齐志昌,谭庆平。
软件工程[M].北京:
高等教育出版社,2006。
4
[3]谭浩强.C程序设计(第三版)[M]北京:
清华大学出版社.2008
[4]温秀梅。
VisualC++面向对象程序设计[M]北京:
清华大学出版社,2005
[5]王珊,萨师煊。
数据库系统概论[M].北京:
高等教育出版社,2006。
5
指导教师签字
教研室主任签字
2012年5月28日
学生姓名:
学号:
专业班级:
课程设计题目:
停车场管理系统
指导教师评语:
成绩:
指导教师:
李涛
2012年6月10日
安徽理工大学课程设计(论文)
第一章引言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。
2菜单函数4
4.3初始化模块设计
4。
5车辆离开函数8
第五章测试分析10
5。
1主菜单函数10
5.2初始化操作11
参考文献14
第一章引言
1.1系统制作背景
说明:
使用此软件系统的名称:
停车场管理系统
随着计算机技术的发展,在各行各业的应用越来越广泛,停车场管理由原来的人工管理进入计算机系统管理那是个必然趋势,计算机系统管理可以大大提高管理的效率和正确性。
1.2系统制作要求
设有一个可以停放n辆汽车的狭长停车场,它只有一个大门可以供车辆进出。
车辆按到达停车场时间的早晚依次从停车场最里面向大门口处停放(最先到达的第一辆车放在停车场的最里面)。
如果停车场已放满n辆车,则后来的车辆只能在停车场大门外的便道上等待,一旦停车场内有车开走,则排在便道上的第一辆车就进入停车站。
停车站内如有某辆车要开走,在它之后进入停车场的车都必须先退出停车站为它让路,待其开出停车场后,这些车辆再依原来的次序进场。
每辆车在离开停车场时,都应根据它在停车场内停留的时间长短交费。
如果停留在便道上的车未进停车场就要离去,允许其离去,不收停车费,并且仍然保持在便道上等待的车辆的次序。
编制一程序模拟该停车场的管理.
第二章需求分析
2.1任务概述
根据题目要求,因为停车场是一个单条的序列,可以用结构体实现;在程序中,需要知道每辆来车的具体停放位置,应提供提示、查找、标记工作。
车辆离开要计时计费。
另外,每天开始时,停车场要初始化。
2.2系统开发原因
随着经济的发展和人民生活水平的提高,买车成为人们的奋斗目标之一,当然已经有很多人买起了车。
可是随着车辆的增多,车辆的停泊问题也随之出现。
这就使得各停车场需要更加先进、更加完善的车辆管理系统。
2.3系统开发任务
实现停车场的现代化管理,记录车辆信息,动态分配车位,停车费用结算,查看停车场车位的使用状况,退出系统等功能,解决车辆停放难,乱收费等问题.
第三章概要结构设计
3.1基本处理流程
车进入车场
不做任何计算
无点x
有
输入离开车辆的离开时间,进行停车费用的计算
此车后面的车辆退出并进入临时栈
车子离开
图3—1
3.2总体结构
图3-2
第四章详细结构设计
4。
1程序系统的结构
main()函数体内包含了界面选则部分menu(),并单独抽出来作为一个独立函数,目的在于系统执行每部分模块后能够方便返回到系统界面。
即main()函数写为
如下:
voidmain()/*主函数*/
{
menu();/*菜单函数*/
}
图4-1
4.2菜单函数
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);/*退出*/
}
}
4。
3初始化模块设计
【需求分析】
该模块是将每一天开始的停车场内和便道车位清零。
首先建立场内场外的结构体,结构体内成员即车位的状态。
用循环实现车位的致零即可。
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();
}
函数出示化后将回到菜单界面。
4。
4车辆进入函数
【需求分析】
车辆到达后,要指定车辆的停车位置。
用户根据菜单函数进入车辆进入模块.按照每辆车的到达次序给予车辆次序号,由0号开始.车辆信息也建立结构体。
structcar/*车辆信息*/
{
intcar_num;/*车辆次序号*/
intcar_arr;/*车辆到达时间*/
intcar_lef;/*车辆离开时间*/
intcar_stay;/*车辆停放位置*/
}car[CIXUHAO];
其中,CIXUHAO是车辆次序号的宏定义:
#defineCIXUHAO1000/*预设车辆次序号。
不管车辆到达时停在场内或便道,均依次设置一个次序号,由0开始*/
给予车辆次序号之后,用循环判断停车场是否停满,再分别给予选择:
图4-2
voidjinru()/*车辆进入函数*/
{
inti,a;
inth=0;
printf("\n\n请输入该车次序号(从0号开始):
”);
scanf("%d”,&a);
for(i=0;i〈N;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车辆离开函数
【需求分析】
若有一辆车要离开,则需要记录该车的离开时间,以计算出该车在停车场内的停车时间和应该缴纳的费用。
该车离开后,要判断便道上是否有车等待进入,如有,则将便道上第一辆车停放在停车场内最后的位置并记录好进场时间;若无,则返回菜单.
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主菜单函数
图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
[3]王珊,萨师煊.数据库设计理论与实践[J]。
计算机应用与软件,1984.2
[4]刘浩,陈曜东。
c#编程实例与技巧[M].北京:
清华大学出版社,2002.1
[5]何鹏飞,王征。
C#实用编程百例[M].北京:
清华大学出版社,2004。
3
7原程序代码
#include
#include〈stdlib。
h>
#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(); } }
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 停车场 管理 系统软件 工程 课程设计 范本 模板