




版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
《数据结构课程设计》《数据结构课程设计》设计题目:停车场管理系统学院:信息工程学院专业:医学信息系统班级:班姓名:学号:指导老师:成绩:20年9月7日目录1项目研究背景与意义…………………12需求分析………………33概要设计………………34详细设计(算法设计的思想)…………45源代码及调试…………66问题及难点所在………157使用说明及测试结果…………………168总结与体会……………199参考文献………………20第1页,共20页1项目研究背景与意义1.1课题简介课程设计题目名称:停车场管理系统课程设计目的:通过《数据结构》课程的学习,将数据结构应用在具体的编程方面,更加了解课程所学习的内容及思维逻辑,提高程序开发能力,能运用合理的控制流程编写清晰高效的程序。开发一个中小型系统,掌握系统研发全过程,培养分析问题、解决实际问题的能力。课程设计意义:利用数据结构课程设计,了解学生对《数据结构》的理解和加强学生对数据结构方面的应用知识。帮助学生好好利用数据结构的知识和思想,解决各方面的编程难题。课程设计内容:(1)问题描述:设有一个可以停放n辆汽车的狭长停车场,它只有一个大门可以供车辆进出。车辆按到达停车场时间的早晚依次从停车场最里面向大门口处停放(最先到达的第一辆车放在停车场的最里面)。如果停车场已放满n辆车,则后来的车辆只能在停车场大门外的便道上等待,一旦停车场内有车开走,则排以便道上的第一辆车就进入停车场。停车场内如有某辆车要开走,在它之后进入停车场的车都必须先退出停车场为它让路,待其开出停车场后,这些辆再依原来的次序进场。每辆车在离开停车场时,都应根据它在停车场内停留的时间长短交费。如果停留在便道上的车未进停车场时,允许其离去,不收停车费,并且仍然保持在便道上等待的车辆的次序。编制一程序模拟该停车场的管理。(2)基本要求:以栈模拟停车场,以队列模拟车场外的便道,按照从终端读入的输入数据序列进行模拟管理。每一组输入数据包括三个数据项:汽车“到达”或“离去”信息、汽车牌照号码、到达或离去的时刻,对每一组输入数据进行操作后的输出数据为:若是车辆到达,则输出汽车在停车场内或便道上的停车位置;若是车离去;第2页,共20页则输出汽车在停车场内停留的时间和应交纳的费用(在便道上停留的时间不收费)。栈以顺序结构实现,队列以链表实现。(3)测试数据:汽车的模拟输入信息格式可以是:(到达/离去,汽车牌照号码,到达/离去的时刻)。例如,(‘A’,1,5)表示1号牌照车在5这个时刻到达,而(‘D’,5,20)表示5号牌照车在20这个时刻离去。整个程序可以在输入信息为(‘E’,0,0)时结束。本题可用栈和队列来实现。(4)实现提示需另设一个栈,临时停放为给要离去的汽车让路而从停车场退出来的汽车,也用顺序存储结构实现。输入数据按到达或离去的时刻有序。栈中每个元素表示一辆汽车,包含两个数据项:汽车的牌照号码和进入停车场的时刻。课程设计预期实现效果:开发可完成每一项基本功能的小型停车场管理系统1.2方案及其论证语言:C++运行环境:MicrosoftVisualC++6.0设计进度安排:李俊鹏杨茂铨黄庭华李嘉伟设计界面,查找资料完成初步的程序设计查资料解决调试中的问题改进程序,验收并完成报告第3页,共20页2需求分析IT行业的高速发展让计算机技术深入日常生活的每一个细节。随着城市化程度的加深,房地产行业日益兴盛,越来越多的小区散布在城市里,小区的车辆也与日俱增,停车场是小区里不可缺少的一部分,对停车场飞管理变得非常重要。通过开发小区停车场管理系统,使小区里的车辆能得到有序的管理,这个系统使用对象为停车场的管理人员。系统需要满足的要求:若是车辆到达,则输出汽车在停车场内或便道上的停车位置;若是车离去,则输出汽车在停车场内停留的时间和应交纳的费用(在便道上停留的时间不收费)。3概要设计(特殊功能)1、设计思想此停车场管理系统是在一个狭长的通道上的,而且只有一个大门可以供车辆进出,并且要实现停车场内某辆车要离开时,在它之后进入停车场的车都必须先退出停车场为它让路,待其开出停车场后,这些辆再依原来的次序进场的功能,就可以设计两个堆栈,其中一个堆栈用来模拟停车场,另一个堆栈用来模拟临时停车场,该临时停车场用来存放当有车辆离开时,原来停车场内为其让路的车辆。至于当停车场已满时,需要停放车辆的通道可以用一个链队列来实现。当停车场内开走一辆车时,通道上便有一辆车进入停车场,此时只需要改变通道上车辆结点的连接方式就可以了,使通道上第一辆车进入停车场这个堆栈,并且使通道上原来的第二辆车成为通道上的第一辆车,此时只需将模拟通道的链队列的头结点连到原来的第二辆车上就可以了。2、实现方法对于此停车场管理系统的实现,就是用两个堆栈来分别模拟停车场以及停车场内车辆为其它车辆让路时退出停车的临时停放地点。至于通道上车辆的停放则用一个链队列来实现,此时,通道上车辆的离开或者进入停车场只需改变此链队第4页,共20页列上的结点而已。对于要对停车场内的车辆根据其停放时间收取相应的停车费用,可以记录下车辆进入以及离开停车场的时间,再用时间差乘以相应的单价并且打印出最后的费用就可以实现了。3、功能(函数)设计本程序从总体上分为四个功能模块,分别为:(1)程序功能介绍和操作提示模块(2)汽车进入停车位的管理模块(3)汽车离开停车位的管理模块(4)查看停车场状态的查询模块在以上各个模块中,出现的调用的函数为:voidInitStack(StackCar*);//初始化栈intInitQueue(LinkQueueCar*);//初始化队列intArrival(StackCar*,LinkQueueCar*);//进站登记voidLeave(StackCar*,StackCar*,LinkQueueCar*);//出站登记voidList(StackCar,LinkQueueCar);//查询车位状态4详细设计流程图:第5页,共2页车辆到达以堆栈来模拟停车场和以堆栈里的数据元素我设计成汽车的车牌号初始化车站,初始化让路的临时栈,初始化通道车场未满,车进车场车辆到达以堆栈来模拟停车场和以堆栈里的数据元素我设计成汽车的车牌号初始化车站,初始化让路的临时栈,初始化通道车场未满,车进车场车场已满,车进便道判断车场是否已满车输入车子到达时间,车牌号未满车进入车场车进入车场判断车场内是否有车判断车场内是否有车不做任何计算不做任何计算无点x无点x有有输入离开车辆的离开时间,进行停车费用的计算输入离开车辆的离开时间,进行停车费用的计算此车后面的车辆退出并进入临时栈此车后面的车辆退出并进入临时栈 车子离开车子离开第6页,共20页5源代码及调试程序代码#include<iostream.h>#include<stdio.h>#include<stdlib.h>#include<string.h>#defineMAX100#defineprice0.05typedefstructTime//时间结构体{ inthour; intmin;}Time;typedefstructCarNode//汽车结构体{ charnum[10]; Timereach; Timeleave;}CarNode;typedefstructStackCar//存储汽车的栈结构{ CarNode*stack[MAX+1]; inttop;}StackCar;第7页,共20页typedefstructQueueCarNode//存储汽车的队列结构{ CarNode*data; structQueueCarNode*next;}QueueCarNode;typedefstructLinkQueueCar//定义队列结构指针{ QueueCarNode*head; QueueCarNode*rear;}LinkQueueCar;voidInitStack(StackCar*);intInitQueue(LinkQueueCar*);intArrival(StackCar*,LinkQueueCar*);voidLeave(StackCar*,StackCar*,LinkQueueCar*);voidList(StackCar,LinkQueueCar);voidmain(){printf("\t\t===========欢迎你进入停车场管理系统===========\n");printf("\t\t小组成员:李嘉伟黄庭华杨茂铨李俊鹏\n");printf("\t\t班级:11级08班\n");StackCarEnter,Temp;LinkQueueCarWait;inta;intb=1;InitStack(&Enter);InitStack(&Temp);//汽车出站时,暂时按次序存放汽车的栈结构InitQueue(&Wait);第8页,共20页while(b){ cout<<"\n1.汽车进站登记"; cout<<"2.汽车出站登记"; cout<<"3.车位状态显示"; cout<<"4.退出系统\n"; cin>>a; while(b) { if(a==1||a==2||a==3||a==4)break; else { cout<<"\n错误!退出系统\n"; b=0; break; } } switch(a) { case1:Arrival(&Enter,&Wait);break; case2:Leave(&Enter,&Temp,&Wait);break; case3:List(Enter,Wait);break; case4:exit(0); default:break; }}}voidInitStack(StackCar*s)//初始化栈第9页,共20页{inti;s->top=0;for(i=0;i<=MAX;i++)s->stack[s->top]=NULL;}intInitQueue(LinkQueueCar*Q)//初始化队列{Q->head=(QueueCarNode*)malloc(sizeof(QueueCarNode));if(Q->head!=NULL){ Q->head->next=NULL; Q->rear=Q->head; return(1);}elsereturn(-1);}intArrival(StackCar*Enter,LinkQueueCar*W)//进站登记{CarNode*p;QueueCarNode*t;p=(CarNode*)malloc(sizeof(CarNode));cout<<"\n请输入车牌号:";cin>>p->num;if(Enter->top<MAX)//有空车位{ Enter->top++;第10页,共20页 cout<<"\n车辆在车场第"<<Enter->top<<"号车位"; cout<<"\n车辆到达时间(时):"; cin>>p->reach.hour; cout<<"\n车辆到达时间(分):"; cin>>p->reach.min; Enter->stack[Enter->top]=p; return(1);}else//没有空车位{cout<<"\n该车须在便道等待!有车位时进入车场!";t=(QueueCarNode*)malloc(sizeof(QueueCarNode));t->data=p;t->next=NULL;W->rear->next=t;W->rear=t;return(1);}}voidPRINT(CarNode*p,introom)//汽车离站时缴费显示{cout<<"\n车辆离开的时间(时):";cin>>p->leave.hour;cout<<"\n车辆离开的时间(分):";cin>>p->leave.min;printf("\n离开车辆的车牌号为:");cout<<p->num;cout<<"\n其到达时间为:"<<p->reach.hour<<"时"<<p->reach.min<<"分";cout<<"\n离开时间为:"<<p->leave.hour<<"时"<<p->leave.min<<"分";第11页,共20页cout<<"\n应交费用为:"<<((p->leave.hour-p->reach.hour)*60+(p->leave.min-p->reach.min))*price<<"元";free(p);}voidLeave(StackCar*Enter,StackCar*Temp,LinkQueueCar*W)//出站登记{ introom; CarNode*p,*t; QueueCarNode*q; if(Enter->top>0)//车站有车时 { while(1) { cout<<"\n请输入车在车场的位置:";cin>>room;if(room>=1&&room<=Enter->top)break; } while(Enter->top>room)//位置不在栈顶的汽车出站 { Temp->top++; Temp->stack[Temp->top]=Enter->stack[Enter->top]; Enter->stack[Enter->top]=NULL; Enter->top--; } p=Enter->stack[Enter->top]; Enter->stack[Enter->top]=NULL; Enter->top--; while(Temp->top>=1)//当暂时存储汽车的栈结构中有汽车时汽车重第12页,共20页新进站 { Enter->top++; Enter->stack[Enter->top]=Temp->stack[Temp->top]; Temp->stack[Temp->top]=NULL; Temp->top--; } PRINT(p,room); if((W->head!=W->rear)&&Enter->top<MAX)//车站有空位且便道有车时,便道车进站 { q=W->head->next; t=q->data; Enter->top++; cout<<"\n便道的"<<t->num<<"号车进入车场第"<<Enter->top<<"号车位."; cout<<"\n请输入"<<t->num<<"号车进入车场的时间(时):";cin>>t->reach.hour; cout<<"\n请输入"<<t->num<<"号车进入车场的时间(分):"; cin>>t->reach.min; W->head->next=q->next; if(q==W->rear) W->rear=W->head; Enter->stack[Enter->top]=t; free(q); } elsecout<<"\n便道里没有车.\n"; } elsecout<<"\n车场里没有车.";}第14页,共20页voidList1(StackCar*S)//车场车位显示{inti; if(S->top>0) { cout<<"\n车场车位状态:"; cout<<"\n车位号\t"<<"到达时间\t"<<"车牌号\n"; for(i=1;i<=S->top;i++) { cout<<""<<i<<"\t"; cout<<S->stack[i]->reach.hour<<"时"<<S->stack[i]->reach.min<<"分"; cout<<"\t"<<S->stack[i]->num<<"\n"; } } elsecout<<"\n车场里没有车";}voidList2(LinkQueueCar*W)//便道车位显示{QueueCarNode*p;p=W->head->next;if(W->head!=W->rear){ cout<<"\n便道内车队依次为:"; cout<<"\n<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<\n"; while(p!=NULL) {第15页,共20页 cout<<p->data->num<<"\t"; p=p->next; } cout<<"\n<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<";}elsecout<<"\n便道里没有车.";}voidList(StackCarS,LinkQueueCarW)//查询车位状态{intflag,choice;flag=1;while(flag){cout<<"\n请选择:";cout<<"\n\t\t1.车场列表\n\t\t2.便道列表\n\t\t3.返回主菜单\n";while(1) {cin>>choice;if(choice>=1||choice<=3)break;elsecout<<"选择错误,请重新选择!\n"; }switch(choice) {case1: List1(&S); break;case2:第16页,共20页 List2(&W); break; case3: flag=0; break; default: break; }}}调试过程中曾遇到的错误:最初调试中车牌号编写为int型,输入的只能是数字,但现实生活中车牌号都为汉字+英文字母+数字,在改进过程中,改成字符型;6特殊问题解决方法由于此停车场管理系统是分模块设计的,所以,运行时用户选择任务并且执行完任务后,又会回到供用户选择功能的主界面,因此整个程序从整体上来讲结构清晰,使用方便。当停车场已经达到最大容量,但仍有车辆进入停车场的时候,运行界面上没有出现或者说出现了但又跳掉了“停车场已满,该车辆需在便道上等待!”的提示信息。我们小组成员经过反复商量讨论,并且在查阅了多种资料后,在那一个printf语句后加了一个getch(),此时,程序运行结果就符合要求了。第16页,共20页7使用说明及测试结果这个程序用来实现对停车场内车辆的管理,整个操作界面为中文,更加符合人性化的标准,使得用户使用方便,而且每一个操作都有提示,使得初次接触该程序的用户也能很快适应程序的操作。测试结果的分析与讨论①欢迎界面②车辆到达为方便演示,把停车场的容量先设为3第17页,共20页第18页,共20页③车辆离开,收费④车辆信息(车场)第19页,共20页⑤车辆信息(便道)8总结与体会通过这一次课程设计,加深了我对《数据结构》这门课程所学内容的进一步的理解与掌握;同时,通过对停车场管理系统的开发,充分的理解了用栈和队列实现模拟停车场的基本原理,知道了栈的顺序存储结构和队列的链式存储结构的定义和算法描述,使得我将计算机课程所学知识与实际问题很好地相联接在了一起。在这次课程设计中,不仅培养了我开发一个中小型程序的能力,而且也培养了我的团队合作能力。在这次对停车场管理系统的开发过程中,我们小组成员互相合作,互相帮助,其中有程序功能成功实现时的欣喜,也有遇到问题、解决问题时的执着以及迷茫。在这次课程设计中,使得我很好地了解了在开发程序过程中合作的重要性。第20页,共20页9参考文献谭浩强.C语言程序设计(第三版)[M].北京:清华大学出版社,2021廖雷、罗代忠.C语言程序设计基础实验教程[M].北京:高等教育出版社,2021谭浩强.C程序设计解题与上机指导(第三版)[M].北京:清华大学出版社,2021廖雷等.C语言程序设计基础[M].北京:高等教育出版社,2021谭浩强,张基温,唐永炎.C语言程序设计教程.
北京:高等教育出版社,2021指导教师意见:签名:日期:
咖啡店创业计划书第一部分:背景在中国,人们越来越爱喝咖啡。随之而来的咖啡文化充满生活的每个时刻。无论在家里、还是在办公室或各种社交场合,人们都在品着咖啡。咖啡逐渐与时尚、现代生活联系在一齐。遍布各地的咖啡屋成为人们交谈、听音乐、休息的好地方,咖啡丰富着我们的生活,也缩短了你我之间的距离,咖啡逐渐发展为一种文化。随着咖啡这一有着悠久历史饮品的广为人知,咖啡正在被越来越多的中国人所理解。第二部分:项目介绍第三部分:创业优势目前大学校园的这片市场还是空白,竞争压力小。而且前期投资也不是很高,此刻国家鼓励大学生毕业后自主创业,有一系列的优惠政策以及贷款支持。再者大学生往往对未来充满期望,他们有着年轻的血液、蓬勃的朝气,以及初生牛犊不怕虎的精神,而这些都是一个创业者就应具备的素质。大学生在学校里学到了很多理论性的东西,有着较高层次的技术优势,现代大学生有创新精神,有对传统观念和传统行业挑战的信心和欲望,而这种创新精神也往往造就了大学生创业的动力源泉,成为成功创业的精神基础。大学生创业的最大好处在于能提高自己的潜力、增长经验,以及学以致用;最大的诱人之处是透过成功创业,能够实现自己的理想,证明自己的价值。第四部分:预算1、咖啡店店面费用咖啡店店面是租赁建筑物。与建筑物业主经过协商,以合同形式达成房屋租赁协议。协议资料包括房屋地址、面积、结构、使用年限、租赁费用、支付费用方法等。租赁的优点是投资少、回收期限短。预算10-15平米店面,启动费用大约在9-12万元。2、装修设计费用咖啡店的满座率、桌面的周转率以及气候、节日等因素对收益影响较大。咖啡馆的消费却相对较高,主要针对的也是学生人群,咖啡店布局、格调及采用何种材料和咖啡店效果图、平面图、施工图的设计费用,大约6000元左右3、装修、装饰费用具体费用包括以下几种。(1)外墙装饰费用。包括招牌、墙面、装饰费用。(2)店内装修费用。包括天花板、油漆、装饰费用,木工、等费用。(3)其他装修材料的费用。玻璃、地板、灯具、人工费用也应计算在内。整体预算按标准装修费用为360元/平米,装修费用共360*15=5400元。4、设备设施购买费用具体设备主要有以下种类。(1)沙发、桌、椅、货架。共计2250元(2)音响系统。共计450(3)吧台所用的烹饪设备、储存设备、洗涤设备、加工保温设备。共计600(4)产品制造使用所需的吧台、咖啡杯、冲茶器、各种小碟等。共计300净水机,采用美的品牌,这种净水器每一天能生产12l纯净水,每一天销售咖啡及其他饮料100至200杯,价格大约在人民币1200元上下。咖啡机,咖啡机选取的是电控半自动咖啡机,咖啡机的报价此刻就应在人民币350元左右,加上另外的附件也不会超过1200元。磨豆机,价格在330―480元之间。冰砂机,价格大约是400元一台,有点要说明的是,最好是买两台,不然夏天也许会不够用。制冰机,从制冰量上来说,一般是要留有富余。款制冰机每一天的制冰量是12kg。价格稍高550元,质量较好,所以能够用很多年,这么算来也是比较合算的。5、首次备货费用包括购买常用物品及低值易耗品,吧台用各种咖啡豆、奶、茶、水果、冰淇淋等的费用。大约1000元6、开业费用开业费用主要包括以下几种。(1)营业执照办理费、登记费、保险费;预计3000元(2)营销广告费用;预计450元7、周转金开业初期,咖啡店要准备必须量的流动资金,主要用于咖啡店开业初期的正常运营。预计2000元共计: 120000+6000+5400+2250+450+600+300+1200+1200+480+400+550+1000+3000+450+2000=145280元第五部分:发展计划1、营业额计划那里的营业额是指咖啡店日常营业收入的多少。在拟定营业额目标时,必须要依据目前市场的状况,再思考到咖啡店的经营方向以及当前的物价情形,予以综合衡量。按照目前流动人口以及人们对咖啡的喜好预计每一天的营业额为400-800,根据淡旺季的不同可能上下浮动2、采购计划依据拟订的商品计划,实际展开采购作业时,为使采购资金得到有效运用以及商品构成达成平衡,务必针对设定的商品资料排定采购计划。透过营业额计划、商品计划与采购计划的确立,我们不难了解,一家咖啡店为了营业目标的达成,同时有效地完成商品构成与灵活地运用采购资金,各项基本的计划是不可或缺的。当一家咖啡店设定了营业计划、商品计划及采购计划之后,即可依照设定的采购金额进行商品的采购。经过进货手续检验、标价之后,即可写在菜单上。之后务必思考的事情,就是如何有效地将这些商品销售出去。3、人员计划为了到达设定的经营目标,经营者务必对人员的任用与工作的分派有一个明确的计划。有效利用人力资源,开展人员培训,都是我们务必思考的。4、经费计划经营经费的分派是管理的重点工作。通常能够将咖啡店经营经费分为人事类费用(薪资、伙食费、奖金等)、设备类费用(修缮费、折旧、租金等)、维持类费用(水电费、消耗品费、事务费、杂费等)和营业类费用(广告宣传费、包装费、营业税等)。还能够依其性质划分成固定费用与变动费用。我们要针对过去的实际业绩设定可能增加的经费幅度。5、财务计划财务计划中的损益计划最能反映全店的经营成果。咖啡
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 2024年汽车地毯资金需求报告代可行性研究报告
- 2025年中国变速箱压铸件行业市场前景预测及投资价值评估分析报告
- 2025年中国北京农业行业市场前景预测及投资价值评估分析报告
- 2025年中国半导体测试设备行业市场规模调研及投资前景研究分析报告
- 团队合作与协同领导试题及答案
- 网店过户及后续品牌授权、技术转移与市场推广服务协议
- 抖音网红孵化合作权益分配与推广协议
- 抖音抖音火花算法短视频直播流量合作服务协议
- 快递末端网点承包经营及增值服务合作协议
- 新品上市广告视频策划、制作与媒体投放协议
- 商场超市公司章程
- 1与食品经营相适应的操作流程
- 农险理赔培训
- 制药车间5S标准化管理
- 写字楼租赁技巧培训
- T-CEEAS 003-2024 养老合规师职业技能评价标准
- 钢筋混凝土蓄水池设计方案
- 2025年保密知识试题库带答案(考试直接用)
- 伊斯兰教完整版本
- 【MOOC】大学物理-力学、电磁学-重庆大学 中国大学慕课MOOC答案
- 挡土墙施工图设计说明(完整版)
评论
0/150
提交评论