停车场管理系统程序设计

程序 停车场管理系统

( 2013 /2014 学年 第 1学期)

题 目:

专 业 网络工程 组长 学号姓名 组员 学号姓名 李洬翊 B12070319 指 导 教 师 周 剑 指 导 单 位 软件教学中心 日 期 2013年11月 20 日

停车场管理系统

停车场管理系统

一、 课题内容和要求

(1) 管理人员根据口令进入系统;

(2) 管理车位信息(车位编号,状态)和每分钟的收费费率;

(3) 停车时录入汽车停泊信息(车牌号,车型,停泊位置,停泊开始时间);如果车位已满要给出提示;

(4) 取车时,根据车牌取,如果没有给出提示;需要根据车辆停泊时间自动计算费用并显

示在屏幕上。

二、 需求分析

停车场管理系统的功能框架图如图1所示。

图1 停车场管理系统功能框架图

(1)管理员登陆:其实现是在设计程序时定义一个字符串数组作为密码,在管理员想通过主菜单界面登陆到管理系统的时候,系统要求管理员输入密码,将保存的密码和管理员输入的密码进行比较,如果一致则跳出密码登陆函数进入管理界面。 (2)车位信息:可查询当前时间车库的基本停车情况。

(3)车辆驶入:进入此系统后,输入当前时间和车牌号码,若有空位则停车成功,否则显示车库已满,自动返回上一层操作系统。

(4)车辆驶离:进入此系统后,依次输入车牌号码,停车时间,当前时间,若查找到所输入的车牌信息,则显示本次停车应付金额,并显示取车成功。若无输入的车牌号码信息,则显示取车错误并返回上层操作系统。

(5)退出系统:当程序使用结束的时候,通过该项功能即可终止程序。

...... ......

三、概要设计

1.用户登录

2.信息查询

3.主体程序

四、源程序代码

#include #include #include #include #include using namespace std; class car {

public: char no[9]; int pos; double fee; void putcar(); void takecar();

}; class Time {

public: int hour; int min;

void getime(); };

int i,poi;

int position[100]={0};//全局变量 car carin[100]; Time catime[100]; int juge(); int comp();

void search_no(); void search_pos(); void main() {

/////////////////////////////////////////////用户登录 const char ha[10]="hahaha";//管理员用户名const char hb[10]="1234";//////管理员密码 char cn[10],cm[10]; int ci=0; while(1) {

cout>cn;

if(strcmp(ha,cn)) {

ci++; if(ci==3) return; continue; } else {

cout>cm; }

if(!strcmp(hb,cm)) break; else {

cout

////////////////////////////////////////////////主程序 int k;

cout

ofstream outfile("车辆信息.txt",ios::app); if(! outfile)

{cerr

//ifstream infile("车辆信息.txt",ios::in); //if(! outfile)

//{cerr

}

while(cin>>k) {

if(k==1) {

i=juge();

cin>>carin[i].no; carin[i].putcar(); cout

string time1; time_t t; time(&t);

time1=ctime(&t);

cout

outfile

continue; }

if(k==2) {

poi=comp(); carin[poi].takecar(); cout

if(k==3) { int x; while(1) {

cout>x; if(x==1) {

search_no();break; }

else if(x==2) {

search_pos();break; }

else if(x==3) {

string a,time1[100][5];////定义二维数组读取数据 int i,j,m,n;

ifstream infile("车辆信息.txt",ios::in); if(! infile)

{cerr

infile>>a;

for(i=0;i

for(m=0;m>time1[m][i]; coutcout

else if(x==4) {

break; } else

cout

}

cout

}

outfile.close(); }

}

int juge() ///////////////////////判断出第一个空的车位 {

int j=0;

while(position[j]==1&&j

if(j

} int comp() {

char ch[9];

cout>ch;

for(int k=0;k

if(!strcmp(ch,carin[k].no)) {

if(position[carin[k].pos-1]==1) {

return (carin[k].pos-1); break; } } }

if(k=100) return k; }

void car::putcar() { int t;

while(1) {

cout>t; if(t==1) {

carin[i].fee=7.0;break; }

else if(t==2)

{

carin[i].fee=5.0;break; }

else if(t==3) {

carin[i].fee=4.0;break; }

else if(t==4) {

carin[i].fee=4.0;break; }

cout

if(i==100)

cout

cout

cout

}

void car::takecar() {

int hour1,min1; double charge; if(poi

position[poi]=0;//重新设置为空位 hour1=catime[poi].hour; min1=catime[poi].min; catime[poi].getime();

hour1=catime[poi].hour-hour1; min1=catime[poi].min-min1; if(min1

charge=carin[poi].fee*hour1+carin[poi].fee*0.5; else

charge=carin[poi].fee*hour1+carin[poi].fee;

cout

cout

}

void Time::getime() {

struct tm *newtime; //获取停车时间 time_t long_time;

time( &long_time );

newtime = localtime( &long_time ); hour=newtime->tm_hour; min=newtime->tm_min;

}

void search_no() {

int poi=comp(); if(poi

cout

cout

void search_pos() {

int loc;

cout>loc;

if(position[loc-1]==1) {

cout

cout

cout

///////////////////////////////////////程序结束

五、测试数据及其结果分析

图1为密码和用户名输入正确后进入主程序

图1

图2为输入车牌号界面

图2

图3为车辆类型选择界面

图3

图4为取车操作界面

图4

图5为查询信息界面

图5

图6为按车牌查询界面

图6

图7为按车位查询界面

图7

图8为历史信息查询界面

图8

图9为查询信息的退出界面

图9

图10为存储信息的文档的截图

图10

六、调试过程中的问题

(1)各种零碎的编译错误;

(2)密码问题,没有接触过该类型的程序;

(3)函数调用问题;

(4)不同数据类型之间的兼容问题;

(5)数据的存储。

七、课程设计总结

刚开始拿到题目,我觉得无从下手,毕竟我对C 语言掌握的并不多所以就用了拿手的c++,参考了网上的程序结果好多的错的,最后还是需要我自己反复修改程序、反复调试、各种查阅资料才能完成作业。

在编写程序的过程中,我思考最多的问题就是在停车过程中会发生的各种情况,这也是程序不断完善的关键。有时,不断产生的问题会导致整过程序无法运行,所以及时保存是非常必要的。

一个能真正应用的程序是分为很多的模块,模块之间的相互联系就需要团队之间的讨论交流。所以团队合作非常重要,但是我们小组情况有点特殊,各做各的,完成挺累的。

在这次实习之前我从未自己写过什么较长一点的程序,而且自C 语言课程结束之后基本上没有看过书,忘记了相当多的知识,所以在编写程序时感觉很困难。我觉得在之前的学习当中我根本没注意培养一种正确的编程的思维,在拿到程序题时脑海里没有一个清晰的思路。所以经过这次实习之后我会在以后的学习当中强化对一些编程思想的学习,通过多写程序多体会来提升自己。就我个人来说我是很希望能在编程上有所提升,我有计划准备在以后的时间里花一个学期好好强化一下C 语言,然后再开始学C++,并把C++作为以后唯一学习的一门计算机编程语言来学习。

程序 停车场管理系统

( 2013 /2014 学年 第 1学期)

题 目:

专 业 网络工程 组长 学号姓名 组员 学号姓名 李洬翊 B12070319 指 导 教 师 周 剑 指 导 单 位 软件教学中心 日 期 2013年11月 20 日

停车场管理系统

停车场管理系统

一、 课题内容和要求

(1) 管理人员根据口令进入系统;

(2) 管理车位信息(车位编号,状态)和每分钟的收费费率;

(3) 停车时录入汽车停泊信息(车牌号,车型,停泊位置,停泊开始时间);如果车位已满要给出提示;

(4) 取车时,根据车牌取,如果没有给出提示;需要根据车辆停泊时间自动计算费用并显

示在屏幕上。

二、 需求分析

停车场管理系统的功能框架图如图1所示。

图1 停车场管理系统功能框架图

(1)管理员登陆:其实现是在设计程序时定义一个字符串数组作为密码,在管理员想通过主菜单界面登陆到管理系统的时候,系统要求管理员输入密码,将保存的密码和管理员输入的密码进行比较,如果一致则跳出密码登陆函数进入管理界面。 (2)车位信息:可查询当前时间车库的基本停车情况。

(3)车辆驶入:进入此系统后,输入当前时间和车牌号码,若有空位则停车成功,否则显示车库已满,自动返回上一层操作系统。

(4)车辆驶离:进入此系统后,依次输入车牌号码,停车时间,当前时间,若查找到所输入的车牌信息,则显示本次停车应付金额,并显示取车成功。若无输入的车牌号码信息,则显示取车错误并返回上层操作系统。

(5)退出系统:当程序使用结束的时候,通过该项功能即可终止程序。

...... ......

三、概要设计

1.用户登录

2.信息查询

3.主体程序

四、源程序代码

#include #include #include #include #include using namespace std; class car {

public: char no[9]; int pos; double fee; void putcar(); void takecar();

}; class Time {

public: int hour; int min;

void getime(); };

int i,poi;

int position[100]={0};//全局变量 car carin[100]; Time catime[100]; int juge(); int comp();

void search_no(); void search_pos(); void main() {

/////////////////////////////////////////////用户登录 const char ha[10]="hahaha";//管理员用户名const char hb[10]="1234";//////管理员密码 char cn[10],cm[10]; int ci=0; while(1) {

cout>cn;

if(strcmp(ha,cn)) {

ci++; if(ci==3) return; continue; } else {

cout>cm; }

if(!strcmp(hb,cm)) break; else {

cout

////////////////////////////////////////////////主程序 int k;

cout

ofstream outfile("车辆信息.txt",ios::app); if(! outfile)

{cerr

//ifstream infile("车辆信息.txt",ios::in); //if(! outfile)

//{cerr

}

while(cin>>k) {

if(k==1) {

i=juge();

cin>>carin[i].no; carin[i].putcar(); cout

string time1; time_t t; time(&t);

time1=ctime(&t);

cout

outfile

continue; }

if(k==2) {

poi=comp(); carin[poi].takecar(); cout

if(k==3) { int x; while(1) {

cout>x; if(x==1) {

search_no();break; }

else if(x==2) {

search_pos();break; }

else if(x==3) {

string a,time1[100][5];////定义二维数组读取数据 int i,j,m,n;

ifstream infile("车辆信息.txt",ios::in); if(! infile)

{cerr

infile>>a;

for(i=0;i

for(m=0;m>time1[m][i]; coutcout

else if(x==4) {

break; } else

cout

}

cout

}

outfile.close(); }

}

int juge() ///////////////////////判断出第一个空的车位 {

int j=0;

while(position[j]==1&&j

if(j

} int comp() {

char ch[9];

cout>ch;

for(int k=0;k

if(!strcmp(ch,carin[k].no)) {

if(position[carin[k].pos-1]==1) {

return (carin[k].pos-1); break; } } }

if(k=100) return k; }

void car::putcar() { int t;

while(1) {

cout>t; if(t==1) {

carin[i].fee=7.0;break; }

else if(t==2)

{

carin[i].fee=5.0;break; }

else if(t==3) {

carin[i].fee=4.0;break; }

else if(t==4) {

carin[i].fee=4.0;break; }

cout

if(i==100)

cout

cout

cout

}

void car::takecar() {

int hour1,min1; double charge; if(poi

position[poi]=0;//重新设置为空位 hour1=catime[poi].hour; min1=catime[poi].min; catime[poi].getime();

hour1=catime[poi].hour-hour1; min1=catime[poi].min-min1; if(min1

charge=carin[poi].fee*hour1+carin[poi].fee*0.5; else

charge=carin[poi].fee*hour1+carin[poi].fee;

cout

cout

}

void Time::getime() {

struct tm *newtime; //获取停车时间 time_t long_time;

time( &long_time );

newtime = localtime( &long_time ); hour=newtime->tm_hour; min=newtime->tm_min;

}

void search_no() {

int poi=comp(); if(poi

cout

cout

void search_pos() {

int loc;

cout>loc;

if(position[loc-1]==1) {

cout

cout

cout

///////////////////////////////////////程序结束

五、测试数据及其结果分析

图1为密码和用户名输入正确后进入主程序

图1

图2为输入车牌号界面

图2

图3为车辆类型选择界面

图3

图4为取车操作界面

图4

图5为查询信息界面

图5

图6为按车牌查询界面

图6

图7为按车位查询界面

图7

图8为历史信息查询界面

图8

图9为查询信息的退出界面

图9

图10为存储信息的文档的截图

图10

六、调试过程中的问题

(1)各种零碎的编译错误;

(2)密码问题,没有接触过该类型的程序;

(3)函数调用问题;

(4)不同数据类型之间的兼容问题;

(5)数据的存储。

七、课程设计总结

刚开始拿到题目,我觉得无从下手,毕竟我对C 语言掌握的并不多所以就用了拿手的c++,参考了网上的程序结果好多的错的,最后还是需要我自己反复修改程序、反复调试、各种查阅资料才能完成作业。

在编写程序的过程中,我思考最多的问题就是在停车过程中会发生的各种情况,这也是程序不断完善的关键。有时,不断产生的问题会导致整过程序无法运行,所以及时保存是非常必要的。

一个能真正应用的程序是分为很多的模块,模块之间的相互联系就需要团队之间的讨论交流。所以团队合作非常重要,但是我们小组情况有点特殊,各做各的,完成挺累的。

在这次实习之前我从未自己写过什么较长一点的程序,而且自C 语言课程结束之后基本上没有看过书,忘记了相当多的知识,所以在编写程序时感觉很困难。我觉得在之前的学习当中我根本没注意培养一种正确的编程的思维,在拿到程序题时脑海里没有一个清晰的思路。所以经过这次实习之后我会在以后的学习当中强化对一些编程思想的学习,通过多写程序多体会来提升自己。就我个人来说我是很希望能在编程上有所提升,我有计划准备在以后的时间里花一个学期好好强化一下C 语言,然后再开始学C++,并把C++作为以后唯一学习的一门计算机编程语言来学习。


相关文章

  • (最新版)停车场管理系统毕业论文
  • 毕业设计 课题:停车场管理系统 学生: 刘星成 院 班级: 智能楼宇1202 指导教师:朱承 装订交卷日期: 学院: 学号: 建筑与材料学 本论文根据停车场的管理工作需要,设计了一个简洁.稳定.实用的停车场管理信息系统.相对一些现有的停车场 ...查看


  • 机械式停车库
  • 机械式停车库(场)设计规程 1.总则 1.0.1为使机械式停车库(场)(以下简称停车库)的设计符合相关建设项目的使用要求和城市交通等的管理要求,特别制定本规程. 1.0.2本规程适用于本市新建的停车库设计.扩建或改建的停车库设计可参照执行. ...查看


  • 城市地下空间规划设计书
  • 河南城建学院 <城市地下空间规划理论>课程设计 说明书 课 程 名 称: 城市地下空间规划 题 目: 单建式地下停车库规划 专 业: 城市地下空间工程 学 生 姓 名: 王荣亮 学 号: 073412138 指 导 教 师: 罗 ...查看


  • 关于地下停车场的设计分析
  • (郑州市建筑设计院,河南,郑州,450000) [摘要]随着城市的发展,城市供给土地越来越少,而中国人均拥有汽车的比例呈显著增长的趋势, 为了能在有限的土地上解决更多的停车问题, 地下停车场也就成为每个建筑不可或缺的组成部分,本文重点对建筑 ...查看


  • 物联网产业与技术导论报告
  • 天津电子信息学院 课程报告 班级: 学号: 姓名: 日期: 摘要:本文介绍了射频识别技术,简称 RFID,是一种非接触式的自动识别技术,它通过 射频信号自动识别目标对象并获取相关数据,识别工作无须人工干预,操作快 捷方便.无线射频识别技术是 ...查看


  • 机械式停车库(场)设计规程
  • 机械式停车库(场 设计规程 机械式停车库 场)设计规程[ 字体: 大 中 小 ] 发布日期:[ 2007-4-16 ] 共阅[ 1052 ]次1.总则 1.0.1 为使机械式停车库(场)(以下简称停车库)的设计符合相关建设项目的使用要求 和 ...查看


  • 车辆管理系统设计方案
  • 车辆管理系统 设 计 方 案 济南蓝鹏电子有限公司 二零零九年八月 目 录 1.企业概况 ................................................. 2 1.1 济南蓝鹏电子有限公司简介 ...... ...查看


  • [停车场管理系统]实验设计报告
  • <数据结构>实验设计报告 题目:停车场管理系统 姓名:** 学号: 2010211998 班级:0491002 学院:计算机科学与技术学院 目录 一. 问题描述---------------------03 二. 问题分析--- ...查看


  • 车牌识别停车场管理系统设计方案
  • 车牌识别停车场管理系统设计方案 第1章 前言 随着现代化管理手段的进步和科学技术的日益发展,用户对停车场管理的要求越来越高.过去的人工管理方式已经不适应现代化发展的需要,针对目前快节奏,高速度的工作模式,要求管理方法和制度要有一个根本的改善 ...查看


  • 景区门票系统及停车场管理系统设计方案
  • 票务及车辆管理系统 新都"******" 景区票务及车辆出入管理系统设计方案 四*******科技有限公司 2013-12-13 目 录 第一章 公司简介 ................................ ...查看


热门内容