第一篇:停车场管理系统需求报告
停车场收费管理系统
需求报告
目录 1 2 3 摘要
项目背景介绍
停车场收费管理系统的现状
功能需求
4.1 通用基本功能 4.2 图像识别比较功能 4.3 先进的闸机安全安装 4.4 可增设中远距离车辆感应 5
性能需求
5.1 系统基本要求
5.2 数据管理能力要求
5.3 故障处理要求
外部接口说明
6.1 入口和出口部分 6.2 数据流程 7
修正系统开发计划 摘要
停车场电脑收费管理系统是现代化停车场车辆收费及设备自动化管理的统称,是将车场完全置于计算机管理下的高科技机电一体化产品。
根据多年设计、安装停车场收费系统的实际经验,我们在软件和系统设计上为停车场提供了一套最严格、最先进、易用、便于维护和运行可靠的收费系统;一套能有效的堵塞收费漏洞,降低操作成本,提高经济效益和减轻劳动强度,提高工作效率的现代化收费管理系统
随着时代的发展,私家车越来越多,而车位却十分紧张。在市区内有很多空间没
有被充分利用,大多车辆是停在路边或者简易停车场,缺乏管理,这样导致了资源的浪费,也造成了街道的拥堵。为了适应社会的发展,大量的现代化大规模的停车场会被投入使用,但管理方面又容易出现问题。因此,停车场管理系统的开发和应用是十分必要的。
此报告的目的重在分析此程序的总体需求,实现方案,并分析开发系统的可行性,为决策者提供是否开发该系统的依据和建议。项目背景介绍
2.1 开发软件名称:停车场管理系统 2.2项目开发者:
某软件开发小组
2.3用户单位:
某公司
2.4大体框架:
智能停车场收费管理系统 门禁管理系统 智能通道管理系统 考勤管理系统 智能巡更管理系统 收费管理系统等子系统 闭路监视系统(CCTV)
消防安全系统(FA)和保安系统(SA)紧急广播系统 停车场收费管理系统的现状
该系统具有很大的市场潜力,以现在的车辆增长速度推测,在不久的将来肯定会有许多大规模停车场(包括住宅小区)建成,此系统的开发很有价值。本系统现有的技术条件完全有能力顺利完成开发工作,硬件、软件上的配置也很容易满足开发者的要求,开发系统的计算机硬件已经非常普及,完全没有问题;现在的计算机各方面的技术都非常成熟,相对来说开发此系统的技术也要求比较简单,因此在技术方面是可行的;各类技术人员的数量、水平、来源等也能很容易满足;而且此系统的专业性不强,因此不需要相关行业人士,开发人员的选择就有很大余地。停车场计费管理系统的主要工作是减少人工计费带来的不便,提高办事效率,使车辆管理工作更加信息化,电子化。充分发挥计算机的信息传输速度快、准确度高的优势。功能需求
4.1通用基本功能:
入口读卡升闸、出口读卡验卡收费、车满显示、出入口与收费亭对讲、公正收费等等。
4.2 图像识别比较功能:
其他有图像识别功能的系统,其识别都是单向识别,即仅入口摄取,出口须由管理员目测比较。本系统入口、出口均采用摄像机比较,方便管理员直观比较。
4.3 先进的闸机安全安装:
道闸栏杆配的自动平稳装置,以及防抬杆、防砸车功能,检测功能具有高灵敏度和高可靠性。能很好地识别非机动车及人员等误报情况。
4.4 可增设中远距离车辆感应:
采用50-80cm中距离或5-8m远距离感应范围的读卡器,经多次实际认证为最方便的操作距离。系统如果没有特殊要求一般车辆经过读卡器的距离约为10--15cm。性能需求
5.1 系统基本要求
响应时间:系统的响应时间不能超过1分钟
警告时间及次数:每隔三分钟重复警告一次,每次警告时间持续一分钟。主存容量:内存:128MB RAM 磁盘容量:不小于1G
显示器:256色,800*600以上的兼容显示器
5.2 车辆管理能力要求
计费
分为入口和出口,中间设立岗楼,一人操作,高峰时期可两人操作,入口处发放计费卡,出口处凭借计费卡缴费,放行,操作简单快速方便。长期客户可办理月票。客户也可购买车位,实现车位预留 监控
全范围监控,无死角,监控画面与保安室相连接,可录像。一旦出现事故或意外,保安可第一时间赶到现场,必要时可以直接报警。出现紧急情况,如火灾时,会自动启动消防设备,并自动开启大门,放行车辆。自动引导车位
停车更加快速,有效,方便。
5.3 故障处理要求
列出可能的软件、硬件故障以及对各项性能而言所产生的后果和对故障处理的要求。输出发生错误时,在系统的代码部分进行修改 外部接口说明
6.1 入口和出口部分
入口控制部分: 智能停车场收费管理系统 门禁管理系统 智能通道管理系统 考勤管理系统 智能巡更管理系统
出口控制部分: 收费管理系统等子系统 闭路监视系统(CCTV)
消防安全系统(FA)和保安系统(SA)紧急广播系统
6.2 数据流程 修正系统开发计划
对于车辆的管理有待提高,如停车位置,出场路线等。在以后的系统中,会提供诸如此类的更加人性化的服务。
本系统会提供多国语言的电子录音,使此系统对不懂中文的客户也适用。
第二篇:《停车场管理系统》实验设计报告
重庆邮电大学计算机科学与技术学院
《数据结构》实验设计报告
题目:停车场管理系统 姓名:** 学号: 2010211998 班级:0491002 学院:计算机科学与技术学院
重庆邮电大学计算机科学与技术学院
目录
一、问题描述………………………………………………………03
二、问题分析………………………………………………………03
三、数据结构描述…………………………………………………04
四、算法设计………………………………………………………04
五、程序优缺点分析及优化………………………………………05
六、程序源代码……………………………………………………07
七、程序运行结果…………………………………………………13
八、心得体会………………………………………………………15 附
一、优化后的程序…………………………………………………16 附
二、优化后程序的运行结果………………………………………23
重庆邮电大学计算机科学与技术学院
一、问题描述
设计一个停车场管理系统。
设停车场是一个可停放n辆汽车的狭长通道,且只有一个大门可供汽车进出。汽车在停车场内按车辆到达时间的先后顺序,依次由北向南排列(大门在最南端,最先到达的第一辆车停放在停车场的最北端),若停车场内已停满n辆汽车,则后来的汽车只能在门外的便道上等候,一旦有车开走,则排在便道上的第一辆车即可开入;当停车场内某辆车要离开时,在它之后进入的车辆必须先退出车场为它让路,待该辆车开出大门外,其他车辆再按原次序进入车场,每辆停放在车场的车在它离开停车场时必须按它停留的时间长短交纳费用。试为停车场编制按上述要求进行管理的模拟程序。【基本要求】
以栈模拟停车场,以队列模拟车场外的便道,按照从终端读入的输入数据序列进行模拟管理。每一组输入数据包括三个数据项:汽车‚到达‛或‚离去‛信息、汽车牌照号码以及到达或离去的时刻。对每一组输入数据进行操作后的输出信息为:若是车辆到达,则输出汽车在停车场内或便道上的停车位置;若是车辆离去,则输出汽车在停车场内停留的时间和应交纳的费用(在便道上停留的时间不收费)。栈以顺序结构实现,队列以链表结构实现。【选作内容】
(1)两个栈共享空间,思考应开辟数组的空间是多少?
(2)汽车可有不同种类,则他们的占地面积不同,收费标准也不同,如1辆客车和1.5辆小汽车的占地面积相同,1辆十轮卡车占地面积相当于3辆小汽车的占地面积。
(3)汽车可以直接从便道上开走,此时排在它前面的汽车要先开走让路,然后再依次排到队尾。
二、问题分析
该问题需要以栈和队列作为基本的存储结构,以顺序栈模拟停车场,以链队列模拟车场外的便道。汽车进入停车场,即是在顺序栈上执行进栈操作,退出停车场即是在顺序栈上执行出栈操作;汽车进入便道,即是在链队列上执行入队操作,退出便道即是在链队列上执行出队操作。
当停车场内某辆车要离开时,在它之后进入的车辆必须先退出车场为它让路,待该辆车开出大门外,其他车辆再按原次序进入车场。设要删除的元素在顺序表St中位置为i,则从i到top之间的全部元素进入到一个临时栈St1中, 其次再删除该元素,然后将临栈St1的元素按照‚先进后出‛的原则重新回到St中。若链队不空,则使队头进栈St,并以当前时刻开始计费。
程序需要构造两个顺序栈St和St1,其中St用于模拟停车场,St1用作临时栈,临时停放为给要离去的汽车让路而从停车场退出来的汽车。此外还需要构
重庆邮电大学计算机科学与技术学院
造一个链队列Qu用于模拟便道。
三、数据结构描述
/*定义顺序栈类型*/ typedefstruct { intCarNo[N];
/*车牌号*/ intCarTime[N];
/*进场时间*/ int top;
/*栈指针*/ } SqStack;
/*定义顺序栈类型*/
/*定义链队类型*/ typedefstructqnode { intCarNo;
/*车牌号*/ structqnode *next;} QNode;typedefstruct { QNode *front;/*队首和队尾指针*/ QNode *rear;} LiQueue;
四、算法设计
1.对于子函数模块,则调用顺序栈的基本操作和链队列的基本操作。如下:
/*顺序栈的基本运算算法*/ voidInitStack(SqStack *&s)
intStackEmpty(SqStack *s)
intStackFull(SqStack *s)
/*S中的插入新元素*/ int Push(SqStack *&s,int e1,int e2)
重庆邮电大学计算机科学与技术学院
/*删除S的栈顶元素,并用e1,e2返回其值*/ int Pop(SqStack *&s,int&e1,int &e2)
voidDispStack(SqStack *s)
/*以下为链队列的基本运算算法*/ voidInitQueue(LiQueue *&q)
intQueueLength(LiQueue *q)
intQueueEmpty(LiQueue *q)
voidenQueue(LiQueue *&q, int e)} intdeQueue(LiQueue *&q,int&e)
voidDisplayQueue(LiQueue *q)
2.主程序模块 void main(){ 初始化; do { 接受命令;
处理命令;
} while(命令!=‛退出‛); }
五、程序优缺点分析及优化
1.程序的优点
在程序中设置了kind变量,用于保存车的类别,便于计算不同类别车的停车费用,如下程序段:
printf(“n请输入车的类别【车的类别:1.代表小汽车 2.代表客车 3.代表卡车】:n”);scanf(“%d”,&kind);
其中kind可取值1,2,3;若kind取2,则表示一辆客车单位时间内的停车费用
重庆邮电大学计算机科学与技术学院
是一辆小汽车的2倍,若kind取3,则表示一辆卡车单位时间内的停车费用是一辆小汽车的3倍。
当然printf(“n请输入车的类别【车的类别:1.代表小汽车 2.代表客车 3.代表卡车】:n”);中的1.2.3也可以根据实际情况改变。比如,若实际中,一辆小汽车单位时间内的停车费用
是一辆客车的2倍,一辆卡车单位时间内的停车费用是一辆客车的4倍,则可以改成:
printf(“n请输入车的类别【车的类别:1.代表客车2.代表小汽车 4.代表卡车】:n”);
则kind可取值1,2,4; kind取1时对应的是客车,表示计算停车费用时以一辆客车单位时间内的停车费用为基数,若kind取2,则表示一辆小汽车单位时间内的停车费用是一辆客车的2倍,若kind取4,则表示一辆卡车单位时间内的停车费用是一辆客车的4倍。
2.程序的缺点
(1)输入时间时,程序没有检测错误功能 程序的输入形式如下: 设n=2,输入数据为:(‘A’,1,5),(‘A’,2,10),(‘D’,1,15),(‘A’,3,20),(‘A’,4,25),(‘A’5,30),(‘D’,2,35),(‘D’,4,40),(‘E’,0,0)。其中:‘A’表示到达(arrival);‘D’表示离去(departure);‘E’表示输出结束(end)。
设每个输入项的形式为(Choose, CarNumber, Time),其中Choose表示每个括号中的第一项数据,即A/D/E; CarNumber表示每个括号中的第二项,即1/2/3;Time表示每个括号中的第三项,即5/10/15。设前后两次输入的数据中的第三项分别为Time1,Time2;则必须满足Time2≧Time1。而在实际输入过程中用户可能会忽略这一点,所以应该在输入Time是设置一个判断语句,若前后两次输入的Time不满足Time2≧Time1,则要求用户重新输入,直至满足要求为止。
(2)程序的界面不够清晰,一次性输入的数据项比较多,容易出错。3.改进思想(1)
为了保证前后两次输入的Time必须满足Time2≧Time1,使程序具有错误检测功能,在程序输入部分添加了如下代码:
printf(“输入现在的时刻:n”);
scanf(“%d”,&time2);
while(time2 { printf(“时间输入错误,请重新输入:n”); scanf(“%d”,&time2); 重庆邮电大学计算机科学与技术学院 } time1=time2;//time1定义为静态变量 (2)为了使程序有更清晰的界面,可在主函数中加入菜单的显示方式。且数据可以采用一次输入一个数据项,分步输入的方式,使输入过程少出错。于是可以将主函数进行修改。(见附录一) 六、程序源代码 #include /*停车场内最多的停车数*/ #define Price 2 /*每单位停车费用*/ typedefstruct { intCarNo[N]; /*车牌号*/ intCarTime[N]; /*进场时间*/ int top; /*栈指针*/ } SqStack; /*定义顺序栈类型*/ /*定义链队类型*/ typedefstructqnode { intCarNo; /*车牌号*/ structqnode *next;} QNode;typedefstruct { QNode *front;/*队首和队尾指针*/ QNode *rear;} LiQueue; /*顺序栈的基本运算算法*/ voidInitStack(SqStack *&s){ s=(SqStack *)malloc(sizeof(SqStack));s->top=-1; 重庆邮电大学计算机科学与技术学院 } intStackEmpty(SqStack *s){ return(s->top==-1);} intStackFull(SqStack *s){ return(s->top==N-1);} /*S中的插入新元素*/ int Push(SqStack *&s,int e1,int e2){ if(s->top==N-1) return 0;s->top++;s->CarNo[s->top]=e1;s->CarTime[s->top]=e2;return 1;} /*删除S的栈顶元素,并用e1,e2返回其值*/ int Pop(SqStack *&s,int&e1,int &e2){ if(s->top==-1) return 0;e1=s->CarNo[s->top];e2=s->CarTime[s->top];s->top--;return 1;} voidDispStack(SqStack *s){ int i;for(i=0;i<=s->top;i++) printf(“%d ”,s->CarNo[i]);printf(“n”);} /*以下为链队列的基本运算算法*/ 重庆邮电大学计算机科学与技术学院 voidInitQueue(LiQueue *&q){ q=(LiQueue *)malloc(sizeof(LiQueue));q->front=q->rear=NULL;} intQueueLength(LiQueue *q){ int n=0;QNode *p=q->front;while(p!=NULL){ n++; p=p->next;} return(n);} intQueueEmpty(LiQueue *q){ if(q->rear==NULL) return 1;else return 0;} voidenQueue(LiQueue *&q, int e){ QNode *s;s=(QNode *)malloc(sizeof(QNode));s->CarNo=e;s->next=NULL;if(q->rear==NULL)/*若链队为空,则新结点是队首结点又是队尾结点*/ q->front=q->rear=s;else { q->rear->next=s;/*将*s结点链到队尾,rear指向它*/ q->rear=s;} } intdeQueue(LiQueue *&q,int&e){ QNode *t;if(q->rear==NULL)/*队列为空*/ return 0; 重庆邮电大学计算机科学与技术学院 if(q->front==q->rear)/*队列中只有一个结点时*/ { t=q->front; q->front=q->rear=NULL;} else /*队列中有多个结点时*/ { t=q->front; q->front=q->front->next;} e=t->CarNo;free(t);return 1;} voidDisplayQueue(LiQueue *q){ QNode *p=q->front;while(p!=NULL){ printf(“%d ”,p->CarNo); p=p->next;} } void main(){ char choose;/*用于选择命令*/ int no,e1,time,e2,kind;/*用于存放车牌号、当前停车时刻*/ inti,j;SqStack *St,*St1;/*临时栈St1,当停车场中间的车要推出去时,用于倒车*/ LiQueue *Qu;InitStack(St);InitStack(St1);InitQueue(Qu);printf(“ #”);printf(“n# #”);printf(“n# 欢迎使用停车场管理系统 #”); 重庆邮电大学计算机科学与技术学院 printf(“n# #”);printf(“n# 【输入提示】:汽车状态由A、D、E 表示。其中,A:表示汽车到达 D:表示汽车离去, #”);printf(“n# E:表示输出结束。每次输入的数据由三项构成,即:(汽车状态,车牌号,当前时刻)#”);printf(“n# 数据项之间以逗号分开。例如输入示范:A,1,5 #”);printf(“n #n”);printf(“n正在读取汽车信息...n”); do { printf(“n*****************************************************************”);printf(“n请分别输入汽车状态(A/D/E)、车牌号和当前时刻(数据之间以逗号分开):n”);scanf(“ %c,%d,%d”,&choose,&no,&time); switch(choose){ /*************************** 汽车到达 ******************************/ case 'A': case 'a': if(!StackFull(St)) /*停车场不满*/ { Push(St,no,time); printf(“该车在停车场中的位置是:%dn”,St->top+1); } else /*停车场满*/ { enQueue(Qu,no); printf(“n停车场已满,该车进入便道,在便道中的位置是:%dn”,QueueLength(Qu)); } break;/************************* 汽车离开 ********************************/ case 'D': case 'd': 重庆邮电大学计算机科学与技术学院 printf(“n请输入车的类别【车的类别:1.代表小汽车 2.代表客车 3.代表卡车】:n”);scanf(“%d”,&kind); for(i=0;i<=St->top && St->CarNo[i]!=no;i++); if(i>St->top)/*要离开的汽车在便道上*/ { /*汽车可以直接从便道上开走,此时排在它前面的汽车要先开走让路,然后再依次排到队尾*/ while(Qu->front->CarNo!=no) { enQueue(Qu,Qu->front->CarNo); // deQueue(Qu,Qu->front->CarNo); Qu->front = Qu->front->next; } deQueue(Qu,no);printf(“n便道上车牌号为%d的汽车已离开!n”,no); printf(“n当前便道中的车辆的车牌号分别是:”); DisplayQueue(Qu); printf(“n”); } else /*要离开的汽车在停车场中*/ { for(j=i;j<=St->top;j++) { Pop(St,e1,e2);/*e1,e2用来返回被删元素的车牌号和停车时刻*/ Push(St1,e1,e2);/*倒车到临时栈St1中,将e1,e2插入到临时栈中*/ } Pop(St,e1,e2); /*该汽车离开*/ printf(“n车牌号为%d的汽车停车时间为:%d。停车费用为:%dn”,no,time-e2,(time-e2)*Price*kind); /*对小汽车而言:当前时刻 减去 该车当时停车的时刻,再乘以价格就是费用,而对于客车和卡车而言,就要乘以kind倍小汽车的价格*/ while(!StackEmpty(St1))/*将临时栈St1重新回到St中*/ { Pop(St1,e1,e2); Push(St,e1,e2); } if(!QueueEmpty(Qu))/*队不空时,将队头进栈St*/ { 重庆邮电大学计算机科学与技术学院 deQueue(Qu,e1); Push(St,e1,time);/*以当前时间开始计费*/ } printf(“n当前停车场中的车辆的车牌号分别是:”);//输出停车场中的车辆 DispStack(St); } break;/************************ 结束 *********************************/ case 'E': case 'e': printf(“n正在退出系统...n”); if(!StackEmpty(St))//显示停车场情况 { printf(“n当前停车场中的车辆的车牌号分别是:”);//输出停车场中的车辆 DispStack(St); printf(“n”); } else printf(“n当前停车场中无车辆nn”); break;/************************ 结束 *********************************/ default: /*其他情况*/ printf(“输入的命令错误!n”); break;} } while(choose!='E'&&choose!='e');} 七、程序运行结果 取N=2,即停车场内最多的停车数为2 取 Price=2,即每单位停车费用为2 输入数据为:(‘A’,1,5),(‘A’,2,10),(‘D’,1,15),(‘A’,3,20),重庆邮电大学计算机科学与技术学院 (‘A’,4,25),(‘A’5,30),(‘D’,2,35),(‘D’,4,40),(‘E’,0,0)。程序演示结果如下图所示: 重庆邮电大学计算机科学与技术学院 八、心得体会 (1)该实验涉及到顺序栈的建立、插入、删除等操作,涉及到了链队列的建立、插入、删除等操作。做这个实验,加深了我对以上知识点的认识和理解。(2)提高了 C 语言编程的能力。在程序设计过程中,需要经过反复地编写,调试,运行,发现问题并解决问题,在这次实验的设计中,我加深对程序的了解,提高自己的实际动手能力和独立思考的能力同时我也学会了综合以前学到的基本知识来解决较大问题的方法。 (3)一方面我养成了注重程序细节的意识。例如: printf(“n请分别输入汽车状态(A/D/E)、车牌号和当前时刻(数据之间以逗号分开):n”);scanf(“ %c,%d,%d”,&choose,&no,&time); 重庆邮电大学计算机科学与技术学院 %c,前面必须留一个空格,否则程序在显示的时候就会有一些问题。 (4)另一方面我也深刻地认识到了《数据结构》这门课程的重要性。“数据结构”在计算机科学中是一门综合性的专业基础课。数据结构的研究不仅涉及到计算机硬件的研究,而且和计算机软件的研究有着更密切的关系,无论是编译程序还是操作系统,都涉及到数据元素在存储器中的分配问题。在研究信息检索时也必须 考虑如何组织数据,以便使查找和存取数据元素更为方便。可以认为数据结构是介于数学、计算机硬件和计算机软件三者之间的一个核心内容,是从事计算机科学研究及其应 用的科技工作者必须掌握的重要内容 附 一、优化后的程序 #include /*停车场内最多的停车数*/ #define Price 2 /*每单位停车费用*/ typedefstruct { intCarNo[N]; /*车牌号*/ intCarTime[N]; /*进场时间*/ int top; /*栈指针*/ } SqStack; /*定义顺序栈类型*/ /*定义链队类型*/ typedefstructqnode { intCarNo;/*车牌号*/ structqnode *next;} QNode;typedefstruct { QNode *front;/*队首和队尾指针*/ QNode *rear;} LiQueue; /*顺序栈的基本运算算法*/ voidInitStack(SqStack *&s){ s=(SqStack *)malloc(sizeof(SqStack));s->top=-1;} 重庆邮电大学计算机科学与技术学院 intStackEmpty(SqStack *s){ return(s->top==-1);} intStackFull(SqStack *s){ return(s->top==N-1);} /*S中的插入新元素*/ int Push(SqStack *&s,int e1,int e2){ if(s->top==N-1) return 0;s->top++;s->CarNo[s->top]=e1;s->CarTime[s->top]=e2;return 1;} /*删除S的栈顶元素,并用e1,e2返回其值*/ int Pop(SqStack *&s,int&e1,int &e2){ if(s->top==-1) return 0;e1=s->CarNo[s->top];e2=s->CarTime[s->top];s->top--;return 1;} voidDispStack(SqStack *s){ int i;for(i=0;i<=s->top;i++) printf(“%d ”,s->CarNo[i]);printf(“n”);} /*以下为链队列的基本运算算法*/ voidInitQueue(LiQueue *&q){ q=(LiQueue *)malloc(sizeof(LiQueue)); 重庆邮电大学计算机科学与技术学院 q->front=q->rear=NULL;} intQueueLength(LiQueue *q){ int n=0;QNode *p=q->front;while(p!=NULL){ n++; p=p->next;} return(n);} intQueueEmpty(LiQueue *q){ if(q->rear==NULL) return 1;else return 0;} voidenQueue(LiQueue *&q, int e){ QNode *s;s=(QNode *)malloc(sizeof(QNode));s->CarNo=e;s->next=NULL;if(q->rear==NULL)/*若链队为空,则新结点是队首结点又是队尾结点*/ q->front=q->rear=s;else { q->rear->next=s;/*将*s结点链到队尾,rear指向它*/ q->rear=s;} } intdeQueue(LiQueue *&q,int&e){ QNode *t;if(q->rear==NULL)/*队列为空*/ return 0;if(q->front==q->rear)/*队列中只有一个结点时*/ { t=q->front; 重庆邮电大学计算机科学与技术学院 q->front=q->rear=NULL;} else /*队列中有多个结点时*/ { t=q->front; q->front=q->front->next;} e=t->CarNo;free(t);return 1;} voidDisplayQueue(LiQueue *q){ QNode *p=q->front;while(p!=NULL){ printf(“%d ”,p->CarNo); p=p->next;} printf(“n”);} void main(){ int choose;/*用于选择命令*/ int no,e1,time2,e2,no_away;/*no_away:汽车离开时输入车牌号;time2:当前停车时刻;*/ static int time1;/*静态变量time1用于存放上次时刻*/ inti,j;int kind;/*车的类别*/ time1=time2=0;SqStack *St,*St1;/*临时栈St1,当停车场中间的车要推出去时,用于倒车*/ LiQueue *Qu;InitStack(St);InitStack(St1);InitQueue(Qu);printf(“ ”);printf(“n# #”); 重庆邮电大学计算机科学与技术学院 printf(“n# 欢迎使用停车场管理系统 #”);printf(“n# #”);printf(“n n”);do { printf(“n******************** 主菜单 ****************************n”); printf(“** 1:车辆到达 **n”); printf(“** 2:车辆离开 **n”); printf(“** 3:显示停车场的车辆 **n”); printf(“** 4:显示便道中的车辆 **n”); printf(“** 0:退出 **n”); printf(“********************************************************n”); printf(“请选择:”); scanf(“%d”,&choose); switch(choose) { case 1: // #汽车到达 ###### printf(“输入输入车牌号、当前时刻(数据之间以逗号隔开):n”); scanf(“%d,%d”,&no,&time2);/*依次输入车牌号、当前停车时刻*/ while(time2 { printf(“时间输入错误,请重新输入当前时刻:n”); scanf(“%d”,&time2); } time1=time2; if(!StackFull(St)) /*停车场不满*/ { Push(St,no,time1); printf(“该车在停车场中的位置是:%dn”,St->top+1); 重庆邮电大学计算机科学与技术学院 } else /*停车场满*/ { enQueue(Qu,no); printf(“n停车场已满,该车进入便道,在便道中的位置是:%dn”,QueueLength(Qu)); } break; case 2: // ##汽车离开 #### printf(“输入车牌号:n”); scanf(“%d”,&no_away); printf(“请输入车的类别【车的类别:1.代表小汽车 2.代表客车 3.代表卡车】:n”);scanf(“%d”,&kind); printf(“输入现在的时刻:n”);/*现在的时刻time1得大于之前的时刻time1*/ scanf(“%d”,&time2); while(time2 { printf(“时间输入错误,请重新输入:n”); scanf(“%d”,&time2); } time1=time2; for(i=0;i<=St->top && St->CarNo[i]!=no_away;i++); if(i>St->top)/*汽车可以直接从便道上开走,此时排在它前面的汽车要先开走让路,然后再依次排到队尾*/ { while(Qu->front->CarNo!=no_away) { enQueue(Qu,Qu->front->CarNo); Qu->front = Qu->front->next; } deQueue(Qu,no_away);printf(“n便道上车牌号为%d的汽车已离开!n”,no_away); printf(“n当前便道中的车辆的车牌号分别是:”); DisplayQueue(Qu); printf(“n”); } else 重庆邮电大学计算机科学与技术学院 { for(j=i;j<=St->top;j++) { Pop(St,e1,e2);/*e1,e2用来返回被删元素的车牌号和停车时刻*/ Push(St1,e1,e2);/*倒车到临时栈St1中,将e1,e2插入到临时栈中*/ } Pop(St,e1,e2); /*该汽车离开*/ printf(“n车牌号为%d的汽车停车费用为:%dn”,no_away,(time2-e2)*Price*kind);/*对小汽车而言:当前时刻 减去 该车当时停车的时刻,再乘以价格就是费用,而对于客车和卡车而言,就要乘以kind倍小汽车的价格*/ while(!StackEmpty(St1))/*将临时栈St1重新回到St中*/ { Pop(St1,e1,e2); Push(St,e1,e2); } if(!QueueEmpty(Qu))/*队不空时,将队头进栈St*/ { deQueue(Qu,e1); Push(St,e1,time1);/*以当前时间开始计费*/ } } break; case 3: // #####显示停车场情况 if(!StackEmpty(St)) { printf(“当前停车场中的车辆的车牌号分别是:”);/*输出停车场中的车辆*/ DispStack(St); } else printf(“停车场中无车辆!n”); break; case 4: // ######显示便道情况 # if(!QueueEmpty(Qu)) { 重庆邮电大学计算机科学与技术学院 printf(“ 当前便道中的车辆的车牌号分别是:”);/*输出便道中的车辆*/ DisplayQueue(Qu); } else printf(“便道中无车辆!n”); break; case 0: // # 结束 ### printf(“n正在退出系统...n”); if(!StackEmpty(St)) { printf(“当前停车场中的车辆的车牌号分别是:”);/*输出停车场中的车辆*/ DispStack(St); } if(!QueueEmpty(Qu)) { printf(“ 当前便道中的车辆的车牌号分别是:”);/*输出便道中的车辆*/ DisplayQueue(Qu); } break; /**********************************************************/ default: /*其他情况*/ printf(“输入的命令错误!n”); break; } } while(choose!=0);} 附 二、优化后程序的运行结果 取N=2,即停车场内最多的停车数为2 取 Price=2,即每单位停车费用为2 输入数据为:(‘A’,1,5),(‘A’,2,10),(‘D’,1,15),(‘A’,3,20),(‘A’,4,25),(‘A’5,30),(‘D’,2,35),(‘D’,4,40),(‘E’,0,0)。程序演示结果如下图所示: 重庆邮电大学计算机科学与技术学院 重庆邮电大学计算机科学与技术学院 重庆邮电大学计算机科学与技术学院 重庆邮电大学计算机科学与技术学院 重庆邮电大学计算机科学与技术学院 大手控制 www.xiexiebang.com |引|领|停|车|管|理|新|概|念| 停车场收费管理系统 停车场收费管理系统是指基于现代化电子与信息技术,在停车区域的出入口处安装自动识别装置,通过非接触式卡或车牌识别来对出入此区域的车辆实施判断识别、准入/拒绝、引导、记录、收费、放行等智能管理,其目的是有效的控制车辆与人员的出入,记录所有详细资料并自动计算收费额度,实现对场内车辆与收费的安全管理。 出入口处安装自动识别装置,通过非接触式卡或车牌识别来对出入此区域的车辆实施判断识别、准入/拒绝、引导、记录、收费、放行等智能管理,其目的是有效的控制车辆与人员的出入,记录所有详细资料并自动计算收费额度,实现对场内车辆与收费的安全管理。停车场收费管理系统集感应式智能卡技术、计算机网络、视频监控、图像识别与处理及自动控制技术于一体,对停车场内的车辆进行自动化管理,包括车辆身份判断、出入控制、车牌自动识别、车位检索、车位引导、会车提醒、图像显示、车型校对、时间计算、费用收取及核查、语音对讲、自动取(收)卡等系列科学、有效的操作。这些功能可根据用户需要和现场实际灵活删减或增加,形成不同规模与级别的豪华型、标准型、节约型停车场收费管理系统。 停车场收费管理系统的组成 1、入口部分: 入口部分主要由入口票箱(内含感应式ID卡读写器、自动出卡机、车辆感应器、语音提示系统、语音对讲系统)、自动路闸、车辆检测线圈、入口摄像系统等组成。 2、出口部分: 出口部分主要由出口票箱(内含感应式ID卡读写器、自动吞卡机、语音提示系统、语音对讲系统)、自动路闸、车辆检测线圈、出口摄像系统等组成。 3、收费控制处: 收费控制处设备由收费控制电脑、UPS,报表打印机、操作台、入口手动按 大手控制 www.xiexiebang.com |引|领|停|车|管|理|新|概|念| 钮、出口手动按钮、语音提示系统、语音对讲系统组成[2]。 主要设备 停车场收费管理系统配置包括停车场控制器(也叫停车场出入口控制器)、自动吐卡机、远程遥控、远距离卡读感器、感应卡(有源卡和无源卡)、自动道闸、车辆感应器、压力波检测器、地感线圈、通讯适配器、摄像机、传输设备、停车场系统管理软件等。 这种系统有助于公司企业、政府机关等对于内部车辆和外来车辆的进出进行现代化的管理,对加强企业的管理力度和提高公司的形象有较大的帮助。 控制器介绍 停车场专用控制器:专为停车场系统自主研制,四层板设计,信号和电源分层走线,集成度高、可靠性强,功能全面,接口丰富,电压适应范围大,防脉冲冲击,确保使用的安全性和可靠性。 停车场收费管理系统设立在小区内,有若干入口和出口。所有出入口都要求联网,实现数据通讯,并采用统一的计算机管理。最远的出入口之间的距离约为800米,和两个办公楼的地下室设有一个出入口,整个停车场采用IC卡和视频图像管理。 停车场收费管理系统流程 车辆感应IC卡,可以存储持卡人的各种信息。感应IC卡安装在每辆车的驾驶室里面,当车驶过读感器的感应区(离读感器2米左右)时,感应IC卡通过读感器发过来的激发信号产生回应信号发回给读感器。读感器再将这个读取信号传递给停车场控制器,停车场控制器收到信息后,经自动核对为有效卡后,车闸自动开启,数字录像机开始录像,拍下该车进入时的照片,电脑记录车子牌号及驾驶员姓名和进出入的信息。 临时车收费功能,临时车进场时从出票机中领取临时卡,出场时需缴纳规定的费用,并经保安确认后方能离开。临时车进入停车场时,地感线圈自动检测到车辆的到来,自动出票机的中文电子显示屏上显示“欢迎光临,请取卡”。根据出票机上的提示,司机按“入口自动出票机”上的出票按钮,自动出票机将自己 大手控制 www.xiexiebang.com |引|领|停|车|管|理|新|概|念| 吐出一张感应IC卡,并且读卡器已自动读完临时卡。道闸开启,MP4NET数字录像机启动拍照功能,控制器记录下该车进入时间。临时车驶出停车场时,司机将感应IC卡(临时卡)在出口票箱处的感应区一晃,停车场控制自动检测出是临时卡,道闸将不会自动开启。出口票箱的中文电子显示屏上显示“请交**元”,司机将卡还给保安,交完费后,保安将各市停车特用发票给司机。交完费后,经保安载收费电脑上确认,道闸开启,数字录像机启动拍照功能,照片存入电脑硬盘,控制器记录下该出场时间。临时车将实行按次和时间停车交费,交费条件由用户自己在电脑的管理软件中设置。 大手控制 www.xiexiebang.com |引|领|停|车|管|理|新|概|念| 停车场收费管理系统功能 可选用读感距离和近距离两种形式,选远距离时,采用车载 有源卡最远可达到3-25米。可以根据用户实际需要进行选择。 图像对比功能:车辆进出停车场时,摄像机自动启动摄像功能,并将照片文件存储在电脑里。出场时,电脑自动将新照片和该车最后入场的照片进行对比,监控人员能实时监视车辆的安全情况。 常用卡管理:固定车主使用常用卡,确定有效期限(可精确到分、秒),在确认的时限内可随意进出车场,否则不能进入车场,常用卡资料包括卡号、车号、有效时间等。常用卡实行按月交费,到期后软件和中文电子显示屏上将提示该卡已到期,请办理续期和交款手续。 临时车收费功能,临时车进场时从出票机中领取临时卡,出场时需缴纳规定的费用,并经保安确认后方能离开。临时车进入停车场时,地感线圈自动检测到车辆的到来,自动出票机的中文电子显示屏上显示“欢迎光临,请取卡”。根据出票机上的提示,司机按“入口自动出票机”上的出票按钮,自动出票机将自己吐出一张感应IC卡,并且读卡器已自动读完临时卡。道闸开启,摄像机启动拍照功能,控制器记录下该车进入时间。临时车驶出停车场时,司机将感应IC卡(临时卡)在出口票箱处的感应区一晃,停车场控制自动检测出是临时卡,道闸将不会自动开启。出口票箱的中文电子显示屏上显示“请交**元”,司机将卡还给保安,交完费后,保安将各市停车特用发票给司机。交完费后,经保安载收费电脑上确认,道闸开启,MP4NET数字录像机启动拍照功能,照片存入电脑硬盘,控制器记录下该出场时间。临时车将实行按次和时间停车交费,交费条件由用户自己在电脑的管理软件中设置。 自动切换视频,进出场无冲突。所有摄入的车辆照片文件存在电脑的硬盘中,可备以后查证。每一幅图片都有时间记录,查验方便。 实时监视功能:无车进入时,可在监控电脑上实时监视进出口的车辆及一切事物的活动情况。 支持永久卡和临时卡的工作方式,自动识别,记录存储。 防砸车功能:当车辆处于道闸的正下方时,地感线圈检测到车辆存在,道闸 大手控制 www.xiexiebang.com |引|领|停|车|管|理|新|概|念| 将不会落下,直至车辆全部驶离其正下方。 满位检测功能:在管理电脑中设置好该停车场的车位,如进入该停车场的车辆到达车位数时,电脑提醒管理员,并在电子显示屏上显示车位已满。 支持脱机运行,网络中断或PC故障时,停车场系统工作正常。手动控制功能,停电时道闸能正常使用。系统自动维护,数据自动更新,自动检测复位。 停车场控制器支持局域网网络通讯功能,可实现多个出入口的联网。出入口联网时,必须安装局域网网络服务器和通讯服务器。 支持Wiegand26、Wiegand27、Wiegand32读感器格式,自动检测输入。支持5000个用户,可编辑用户详细信息。各种事件查询功能,提供摄像的图片时间查询。 强大的报表功能,能生成各类报表,并提供多功能数据检索。具有延时、过压、欠压自动保护。 停车场收费管理系统应用 随着科技的进步和人类文明的发展停车场无论是从外形、功能、操作方面都有跨越式的改进,国内目前最薄的停车场收费管理系统达到令人惊讶的170MM的厚度,而且配备双发卡模式和双倍卡量来降低故障率。 智能停车场收费管理系统在住宅小区、大厦、机关单位的应用越来越普遍。而人们对停车场管理的要求也越来越高,智能化程度也越来越高,使用更加方便快捷,也给人类的生活带来了方便和快乐。不仅提高了现代人类的工作效率,也大大的节约了人力物力,降低了公司的运营成本,并使得整个管理系统安全可靠。包括车辆人员身份识别、车辆资料管理、车辆的出入情况、位置跟踪和收费的管理等等。 停车场收费管理系统发展 前些年,我国停车场智能管理技术还是一片空白,也谈不上技术理念。为了摆脱这种现状,有关部门采取了相应的措施,制定了长远的发展规划,为我国停 大手控制 www.xiexiebang.com |引|领|停|车|管|理|新|概|念| 车场收费管理系统奠定了坚实的基础,技术获得较快发展。 目前,随着新的智能化停车管理技术不断发展,停车场管理正在向更开放、更灵活的方向发展。今后,车库系统将作为楼宇自控系统的一个子系统纳入建筑自动化网络,形成一个综合的计算机管理网络信息系统。远距离的管理人员可以通过联网的方式,直接监视与控制车库情况;停车场的信息也可通过网络传送到各部门,再由中心计算机对各部门的信息统一管理,形成决策支持信息系统,确保管理人员做出正确的决策。 停车场收费管理系统的一个主流技术是采用感应式IC/ID卡和图像识别作为管理手段,同时具有红外遥感控车门开关和防盗报警及倒车限位等功能。这套系统是伴随着ID/IC卡、近距RF射频识别卡、远距离RF射频识别卡等新型识别技术的兴起而发展起来的。它克服了磁卡及条码技术的缺点,具有寿命长、使用方便、不易损坏、高保密性等特点,使停车场智能管理上升到一个新的高度。 感应式ID/IC卡加图像识别的管理技术,支持远距离和近距离两种读感器,支持永久卡和临时卡的工作方式,具有自动识别、记录存储等功能,能够防止资金流失。由于这项技术是图形对比与ID卡配合使用,达到防盗车的目的。 此外,目前业内还有一种主流技术:非接触RFID卡识别技术。它继承了IC/ID卡技术的优点,保密性高,省去了刷卡过程,提高了识别速度。由于该技术在识别系统中不存在活动机械装置,杜绝了塞卡现象,提高了系统的可靠性。对于收费停车场而言,识别系统的可靠性就意味着停车场的可靠性。因此,只读式RFID非接触识别卡成为停车场收费管理系统中理想的识别技术。 停车场收费系统是小区建设的必然趋势 随着社会的进步和科学技术的迅猛发展,社会生活方式在不断变化,人类开始迈入以数字化、网络化为平台的智能化社会。人们追求人性化、智能化的生活条件。其中正在兴起的智能化小区,反映和适应了社会信息化和智能化的要求,是21世纪住宅的发展方向。 智能化小区为住户提供了一种更加安全、舒适、方便、快捷和开放的智能化、信息化的生活空间,同时,它依靠高科技,实现了回归自然的环境氛围,促进了 大手控制 www.xiexiebang.com |引|领|停|车|管|理|新|概|念| 优秀的人文环境发展,并依托先进的科学技术,实现小区物业运行的高效化、节能化、环保化。 根据这一发展形势,建设部1999年发布了《全国住宅小区智能化技术示范工程工作大纲》。目前,建设部正组织实施全国住宅小区智能化示范工程,根据建设部规定,将智能建筑分为三个层次:即普及型住宅小区、先进型住宅小区与领先型住宅小区。三个层次都将一卡通管理系统作为大纲的基本要求,如今一卡通系统已成为楼市经营的必备内容和重要卖点,而智能停车场收费管理系统又是一卡通管理系统的重要组成部分,是智能小区建设的必然。 智能停车场收费管理系统采用先进技术和高度自动化的机电设备,将机械、电子计算机和自控设备以及智能IC卡技术有机地结合起来,通过电脑管理可实现车辆出入控制管理、自动数据存储等功能,实现自动化运行,并提供—种高效管理服务的系统。非接触式IC卡是智能IC卡技术中应用最广的一种。非接触式IC卡停车场收费管理系统是目前较先进的电脑收费管理系统之一,具有方便快捷、收费准确可靠、保密性好、灵敏度高、使用寿命长、形式灵活、功能强大等众多优点,是磁卡、接触式IC卡所不能比拟的,它已取代磁卡、接触式IC卡而成为应用的主流。文章来源自:www.xiexiebang.com 武汉科技学院毕业设计(论文)开题报告 课题名称 智能停车场管理系统的设计与实现 院系名称 计算机科学学院 专业 网络工程 班级 计科077 学生姓名 黄易欣 一.课题的意义 当前,在停车场的信息化过程中,有许多信息需要处理和管理。现今,有很多门诊信息都是初步开始使用,甚至尚未使用计算机进行信息处理。根据调查得知,他们以前对信息管理的主要方式是基于文本、表格等纸介质的手工处理,对于管理过程中的很多信息都是用人工计算、手抄进行。数据信息处理工作量大,容易出错;由于数据繁多,容易丢失,且不易查找。总的来说,缺乏系统,规范的信息管理手段。 数据处理手工操作,工作量大,出错率高,出错后不易更改。基于这此问题,我认为有必要建立一个停车场管理系统,使停车场管理工作规范化,系统化,程序化,避免停车场管理的随意性,提高信息处理的速度和准确性,能够及时、准确、有效的查询和修改停车场情况。因此开发一个智能停车场管理系统是非常有必要的。二.开发背景 在停车场的信息化中,涉及停车场车位管理的信息化、车主管理的信息化、停车信息管理的信息化,做好信息化工作利于提高停车场的管理效率,提升停车场的竞争力。 要提高竞争力,既要有好的硬件环境,同时也要有好的客户服务,而要实现这些目标的办法就是信息化。本选题,针对停车场过程中的一些信息,对其进行信息化处理。 在停车场管理过程中,主要涉及固定车位信息、自由车位信息、车主信息、停车信息,通过对以上各个环节的信息化,提高档案的规范化管理,为以后的查询、统计打下基础。通过这前段时间的市场调查和分析,初步了解到现在各种停车场软件的优点及不足。比如说有些传统停车场软件是为替代手工录入,从传统数据记录中产生的,这些软件面对Internet及电子商务迅猛发展的网络经济时代显得如此脆弱,具体来说有以下几点不足: 1、体系封闭,无法实现网络化管理,更无法支持电子商务。传统软件由于产生的技术背景落后,无法实现网络化管理或只支持局部网络应用,更无法支持电子商务,不能适应网络时代企业的需求。 2、信息单 一、落后且缺乏前瞻性。由于技术方面的限制,传统软件无法做到库存信息的实时动态处理、事前的预测并提供前瞻性信息。 3、对管理考虑甚少。软件依旧没有摆脱传统束缚,以对外报告为其存在目的。三.研究内容 本系统应用有如下功能模块: (1)系统管理者部分:至少具有相应的添加、修改、删除用户的功能,具有修改用户权限的功能,并且进行用户分类的功能,还有对不同的用户进行停车费用的设置的功能。(2)系统使用者部分:对停车相关信息进行定时和临时管理,查询,统计和上报。四.研究方法 4.1 设计方法 1.查询相关资料,了解本系统的研究意义。可以上网搜索或者是去图书馆查阅相关资料。2.通过查询资料了解该系统要如何做,及要做哪些东西。3.设计出大体上的功能模块,画出模块图。 4.通过进一步的了解,对每个功能模块进行细化,将每一步都想清楚。制定出每一步的做法和注意的地方。 5.对设计好的程序进行调试,通过调试发现存在的问题并解决,从而达到完善系统的目的。6.最后,整理各阶段的设计记录文档,写成论文稿。4.2 开发工具 选用设计语言 目前的可用的设计技术在设计此类系统上的数据库技术已经非常成熟,可提供的开发工具也很多,例如:Visual C++ ,Visual Basic,PowerBuilder,Dephi, visual foxpro等,它们都是很好的数据库开发工具,都是可视化开发工具,功能强大,开发容易,开发周期短,对于本任务都能够胜任。 VC6.0是Microsoft Visual Studio 6.0家族成员之一,是一个功能极为强大的可视化软件开发工具,它提供了一个集源程序编辑、代码编译和调试于一体的可视化开发环境,即所谓的集成开发环境,包含文本编辑器、资源编辑器、工程编译工具、源代码浏览器、集成调试工具,以及一套联机文档。与其他的可视化编程环境(如Visual Basic)一样,VC6.0集程序的代码编辑、编译、链接、调试等功能于一体,加上AFX小组为VC6.0精心打造的、功能强大的MFC类库,给程序员提供了一个完整、全面而又方便的开发环境,并提供了许多有效的辅助开发工具。 VC6.0基于C/C++,所以它拥有两种以下编程方式。 一种是传统的基于Windows API的C编程方式,虽然其代码效率较高,但开发难度与开发工作量也随着增高,目前使用这种编程方式的用户已经很少。一种是基于MFC的C++编程方式,虽然其代码运行效率相对较低,但开发难度小、开发工作量小、源代码效率高,已成为Visual C++开发Windows应用程序的主流。 为了帮助开发人员开发Windows应用程序,VC6.0提供了丰富的向导窗口。用户在构建各种工程时,几乎都可以找到相应的工程向导窗口,利用向导窗口可以为用户生成工程框架。例如,用户在设计一个对话框应用程序时,只要选择MFC应用程序向导,根据向导提示的步骤进行操作,不需要编写一行代码,就可以创建一个窗口;用户只要在窗口中添加一些控件,在控件的命令消息中编写代码,就可以设计出一个简单的应用程序。4.3 选用SQL server作为后台数据库 SQL server 2000 就是关系数据库管理工具,数据库能汇集各种信息以供查询、存储和检索。SQL 的优点在于它能使用数据表示图或自定义窗体收集信息。数据表示图提供了一种类似于 Excel的电子表格,可以使数据库一目了然。另外,SQL允许创建自定义报表用于打印或输出数据库中的信息。SQL也提供了数据存储库,可以使用桌面数据库文件把数据文件置于网络文件服务器,与其他网络用户共享数据库。SQL 是一种关系数据库管理工具,关系数据库是已开发的最通用的数据库之一。如上所述,SQL 作为关系数据库开发具备了许多优点,可以在一个数据包中同时拥有桌面数据库的便利和关系数据库的强大功能。4.4 设计要求 智能停车场管理是一个典型的数据库管理信息系统,系统的开发用到许多数据库相关的理论,因此要求作者具有这方面的基础知识,能够正确运用数据库理论进行系统的分析、逻辑设计、实体属性以及ER图等的转换,明白范式的相关内容,从而能够根据系统实际要求,设计出满足要求的合理的数据库。 面向对象理论。当前流行的编程思想是面向对象思想,而且许多工具,如Visual C++,体现的也正是这种思想。面向对象思想与传统的面向过程编程思想相比,具有明显的优势,而且智能停车场管理系统的设计也要求用面向对象编程工具来实现。这就要求作者在进行毕业设计时,应该明白面向对象的思想,并能够运用其思想到实际的工作中。软件工程思想。大型系统的开发要用到软件工程相关的理论。虽然智能停车场管理系统比较小,但是最好也能按照系统设计的生命周期模型来进行。严格按照软件工程思想和管理信息系统的开发步骤,设计并实现一个智能停车场管理信息系统。以系统开发过程为主线,从需求分析,逻辑设计,总体设计,详细设计以及系统测试、实施各阶段的主要内容和成果,包括系统结构图、业务流程图、数据流程图、E-R模型、数据字典、物理表实现及其关系、功能模块算法流程、界面设计等等。 一定的实际动手能力和实际编程经验。系统最后要落实到windows下的编程,因此要求作者对windows下的数据库编程具有一定的基础,能够较为熟练的进行数据库相关程序的开发。以Microsoft公司的Visual Basic 6.0为开发工具,以SQL为后台数据库,对上述逻辑设计的成果进行转换,实现一个完整的可运行的智能停车场管理系统。4.5 设计环境 硬件环境: 随着计算机硬件的高速发展,现在普通的机子已经可以做为一个服务器端使用。CPU: 2.0Ghz或更高 硬盘:40G或更多 内存:512M或更高 软件环境: 操作系统 Windows 2000 Server /Windows XP 数据库 SQL Server 开发环境 Visual C++ 其它辅助软件:Microsoft Word等 五.实现步骤: 阶段一:11年01月01日-08年01月15日文献搜集与整理,撰写开题报告, 外文翻译;阶段二:11年02月16日-08年03月15日对要实现的处理进行需求分析,模块划分; 阶段三:11年03月16日-08年04月01日系统设计,包括模块分解,详细设计以及编写代码; 阶段四:11年04月02日-08年05月20日对开发的系统进行简单的测试和维护; 阶段五:11年05月21日-08年05月28日根据所做系统,撰写毕业论文。六.参考书目 [1] 王珊:《数据库系统概论》,高等教育出版社,2006年。[2] 赛奎春等:《VC数据库开发关键技术与实例应用》,人民邮电出版社,2003年。[3] 汪诗林等:《数据结构算法与应用》,机械工业出版社,2005年。[4] 约翰逊鲍尔:《面向对象程序设计:C++语言描述(原书第2版)》,机械工业出版社,2003年。 [5] 冯博琴等:《面向对象分析与设计》,机械工业出版社,2003年。[6] Awad.E.M, Gotterer M.H: Visual C++ 6.0, 1992.[7] Robert.H.Dependahl:《Database Principles and Applications》.Williams Brown,2003.指导教师签名: 年月日 图书管理系统 1引言 1.1编写目的 本项目为图书管理系统;书写此文档是为了确定客户的真正需求,因此我们在可行性分析的基础上进一步了解、调查、明确用户对系统的综合要求、数据要求等;确定了一份完整、准确、清晰、具体的系统要求,从而得出系统必须完成什么样的功能。 此文档包含了用户对系统的具体要求,系统的功能需求等;可做为用户需求的确定书和总体设计的依据,也是验证和维护系统的依据。 1.2背景 社会的信息化带来了极大的信息量,而图书作为一种重要的信息交流传输载体,不管是在数量还是种类上都大大增加;因此我们迫切需要设计图书管理系统来满足日益增加的服务需求和管理需求。图书管理信息化中的一个主要环节就是图书借阅和归还的管理,因此针对这个环节的就成为图书管理系统的一个重要组成部分,而且是必不可少的一部分,也是应用最广的一部分。我们开发的系统正是为满足这一部分的需求,期望该系统能给管理者和借阅者都带来利益。 说明: A.软件系统的名称:图书管理系统 B.开发者:徐达、金振兴、叶雷、王鹏 C.该软件系统同其他系统的关系 软件属于图书管理信息系统的一部分,应用中可能需要引用图书管理系统其它部分的数据内容,此处暂且使用自定义的数据表项 1.3定义 B/S:Browser/Server(浏览器/服务器)结构 SQL语言:用于数据库操纵的标准语言.NET:MS提供的一种高效的开发以及运行平台 ASP:全称为Active Server Pages,是一套由微软公司开发的服务器端运行的脚本平台,可用于开发动态网页 1.4参考资料 a.《软件工程导论 》 清华大学出版社 张海潘编著 b.《软件工程学实验 》 科学出版社 苏正、王文等编著 c.《数据库系统概论 》 高等教育出版社 王珊、萨师煊等编著 d.《C#.NET程序设计基础教程》 清华大学出版社 王华秋主编 2任务概述 2.1目标 2.1目标 图书查询系统的初衷是: (1).让用户在最快的时间内找到他所需要的书目 (2).让用户在最短的时间内了解新书的到馆的情况以及书刊在馆情况(3).让用户最大限度的使用图书这种公共资源 (4).让用户了解自己的学习目标以及有哪些相应的图书与之配套(5).让管理人员在尽可能短的时间内完成书刊的流通(6).让管理人员在短时间内了解学生们的需要(7).让管理人员及时更新在观书目 (8).让管理人员更好的控制书刊的流通 可以在广大的学校中或者小型图书馆推广这套系统,来提高图书管理的效率,解决人工管理的问题。2.2用户的特点 (1).在校读书的学生有很强的适应性可以在很短的时间内完成对这套系统的适应在最短的时间内提高效率(2).想不断加强自身学习的人可以在图书馆以外的地方使用客户端来完成自己想要借阅的书籍(3).对新鲜事物有很强好奇心的用户可以用这套系统来在最快时间内充实自己让系统可以更好的适应自己(4).有一定知识水平了解简单电脑操作的用户可以在熟悉系统的前提下深入的了解系统,使之更好的为自己服务(5).管理人员要熟悉服务器的维护数据的更新以及备份工作这就要求管理人员要了解数据库的一些基本原理在出现问题的情况下可以简单的处理(6).经过简单培训可以熟练使用该系统的服务人员 预计使用频度为平均一个5000人的学校为:大约平均500—1000人/天 2.3假定和约束 在开发中要考虑用户的可能出现的操作以及在出现问题后的处理: 假定使用查询功能的人员出现登陆不了的情况及时的恢复对原有数据的备份可以由管理人员来完成。 最大限度满足接受不同用户在同时发出的请求。例如可以有100人同时查询数据就可以有100人同时修改自己的数据 如果用户的知识结构不是很好可以进行一下简单的培训。应该教会用户相应的操作以及应对紧急情况的手段。 如果用户的密码丢失则需要重新验证,需要输入一个密码提示问题 管理人员对数据出现误操作则需要完成数据的恢复 管理人员如果没有及时更改书目信息则该书不能被借出 管理人员需要良好的职业素质来保证图书更新的情况 管理人员有良好的专业素养来应对突发事件如服务器操作系统的崩溃 3需求规定 3.1对功能的规定 用列表的方式,逐项定量和定性地叙述对软件所提出的功能要求,说明输入什么量、经怎样的处理、得到什么输出。3.2对性能的规定 3.2.1精度 该软件在使用中,对“按序列号查询”要求全数字外,其他查询方式并没有特殊要求,并且在按照书名查询时候支持“模糊查询”,如:你要查询的书名为“软件工程基础导论”,你可以在查询框里面输入“软件工程”,系统将把所有的书名含有“软件工程”字样的书名列出。 3.2.2时间特性要求 如果本系统使用局域网链接,网络速度较快,并且本系统只适应于中小型图书馆使用,不会造成数据拥塞的现象,所以查询时间、内容更新时间都是瞬间完成。如果使用互联网链接,则由于网络速度问题可能造成一定延迟。或者由于长期使用致使的软件老化或数据库负担增加也可能造成延时。 3.2.3灵活性 a. 可以使用多种查询方式查询,时间允许的前提下可以增加多重条件模糊查询功能。b. 适用多种windows版本。 c. 适当整理数据库,或者增加网络传输速度可以提高速度。 d. 在时间允许的情况下可以适当增加读者留言板、图书推荐等模块,方便用户使用。 3.3输入输出要求 输出数据:如果添加成功,输出成功提示信息,失败则提示检查信息,重新输入。3.4 数据字典 (1)读者(帐号,姓名,班级,性别,组号) 名字:帐号简述:用以唯一标识用户的信 息。范围:长度:使用位置:用户登录时进行相应的判断核对。名字:姓名简述:对用户加以说明,修饰。不能标识具体用户。范围:长度:使用位置:在进入系统时,显示相关的信息。名字:性别简述:对用户加以说明,修饰。不能标识具体用户。范围:长度:使用位置:在进入系统时,显示相关的信息。 名字:班级简述:对用户加以说明,修饰。不能标识具体用户。范围:长度:使用位置:在进入系统时,显示相关的信息。名字:组号简述:对用户的等级说明,并且管理最大借书量。范围:”01“„”05”长度:使用位置:借书时对借书量进行限制。(2)管理员(帐号,姓名) 名字:帐号简述:用以唯一标识用户的信 息。范围:长度:使用位置:用户登录时进行相应的判断核对。名字:姓名简述:对用户加以说明,修饰。不能标识具体用户。范围:长度:使用位置:在进入系统时,显示相关的信息。 (3)图书(图书编号,类别,书名,作者,出版日期,出版社,定价,总数量,剩下数量,备注) 名字:图书编号简述:唯一标识每一本图书的关键域 范围:长度:使用位置:在新书入库,借阅登记,借阅查询,图书整理,超期提示中使用到名字:书名名字:类名简述:标识每一本图书的十简述:每一个图书有一个类几名字 别,用以管理员分类管理 范围:范围:长度:长度:使用位置:在在新书入库,借阅登记,借阅查询,使用位置:用户查找的时候图书整理,超期提示中使用可以对查找的项目进行限制到名字:作者简述:标识每一本图书的写作者 范围:长度:使用位置:在新书入库,借阅等级,图书整理中使用到 名字:定价名字:类别简述:每一个图书有一个类简述:标识每一本图书的实别,用以管理员分类管理际价格 范围:长度:使用位置:用户查找的时候使用位置:在新书入库,借可以对查找的项目进行限制阅等级,图书整理中使用到名字:类型名字:类名简述:每一个图书有一个类 简述:标识图书的分类种类别,用以管理员分类管理 范围:范围:长度:长度:使用位置:在新书入库,借使用位置:用户查找的时候阅等级,图书整理中使用到可以对查找的项目进行限制名字:图书库存数量简述:管理每一种图书的现存量 范围:长度:使用位置:在新书入库,借阅等级,图书整理中使用到 名字:出版社简述:标识每一个图书的出版处 范围:长度:使用位置:在新书入库,借阅等级,图书整理中使用到名字:出版日期 简述:标识每一本图书的出版日期范围:长度:使用位置:在新书入库,借阅等级,图书整理中使用到(4)借还(用户帐号,图书编号,借书日期,到期日期,数量,还书日期)名字:帐号简述:用以唯一标识用户的信 息。范围:长度:使用位置:用户登录时进行相应的判断核对。名字:图书编号简述:唯一标识每一本图书的关键域 范围:长度:使用位置:在新书入库,借阅登记,借阅查询,图书整理,超期提示中使用到名字:数量简述:管理每一种图书的现存量 范围:长度:使用位置:在新书入库,借阅等级,图书整理中使用到 名字:借书日期简述:标识用户在何时借书 范围:长度:使用位置:在借阅等级中使用名字:到期日期简述:标识用户应在何时还书 范围:长度:使用位置:借阅登记中使用名字:还书日期简述:标识用户在何时还书 范围:长度:使用位置:在借阅登记中使用 (5)数据流图 a.新书入库 b.图书借阅 C.过期提示 d.借阅查询 e.还书处理 3.5数据管理能力要求 要求对两万左右的学生借阅信息和10万本以上的图书进行有效的管理,并且随着学生人数的增长和图书数量的增多,要能快速地查询出有效的信息,3.6故障处理要求 对于任何硬件或软件系统来说,都不可避免的会存在问题,当机器或者软件出现故障的时候,就应要有可靠的办法来解决才行。我们做的系统是可以通过网络运行的,所以应该考虑当网络发生拥塞时的处理情况。这个图书查询系统当遇到上述情况时会自动重新发送数据给服务器,避免了使用者再次输入信息的麻烦,而如果机器遇到突然死机就可能造成数据丢失,我们也设置了系统自动恢复到操作前状态的功能,尽可能的降低拥护的损失。 3.6其他专门要求 对于此系统来说,为了维护读者的权利,防止数据在传输的过程中泄露个人信息,必须给传输的数据加密,而且本系统界面全由图象和文字组成,使用方便。 在用户登录操作界面的时候,密码采用了密文的形式,防止用户使用不当造成密码泄露。在系统内部,考虑到不同拥护的需求以及系统的维护需要和长期发展的要求,我们的设计使得系统的可补充性好,维护简单,易读易懂,对系统软件的适应性强 4运行环境规定 4.1设备 a. 为了使系统稳定的运行,硬件要求cpu达到奔腾3以上,内存至少为256MB。 b.外存可以不做要求,但建议应该在20GB以上。 c. 本系统要求在联机情况下使用,用户可以通过网络(局域网或者Internet)访问,但是为了便于使用,建议用户使用局域网。 4.2支持软件 建议使用windowos2000及以上的系统,测试环境为windows xp操作系统下使用asp.net.4.3接口 软件与其他软件之间应该有较好的接口和通信协议,实现相互之间的通信需要,增强本软件的实用性和功能。 4.4控制 当使用者通过图形界面进行操作时,用户输入相应信息后,点击相应按键,激发内部数据传输。软件自身对输入数据进行对照识别,判断数据类型(和格式)是否相符,做出相应处理,把结果输出给用户。第三篇:停车场收费管理系统
第四篇:停车场系统开题报告
第五篇:图书管理系统需求分析报告