C语言课程设计报告 泊车系统
c语言停车场课程设计
c语言停车场 课程设计一、课程目标知识目标:1. 理解C语言中数组、函数和指针的基本概念,并能运用这些知识解决实际问题。
2. 学会使用C语言编写简单的停车场管理系统,掌握基本的编程技巧和逻辑思维能力。
3. 了解停车场管理系统的基本功能,如车位分配、查询、车辆进出等。
技能目标:1. 能够运用数组、函数和指针等C语言知识,设计并实现一个简单的停车场管理系统。
2. 培养学生分析问题、解决问题的能力,以及编程实践和调试技巧。
3. 提高学生的团队协作能力和沟通能力,通过小组合作共同完成课程项目。
情感态度价值观目标:1. 培养学生对计算机编程的兴趣和热情,激发学生主动探索新知识的精神。
2. 引导学生认识到编程在实际生活中的应用价值,提高学生对信息技术的重视程度。
3. 培养学生的责任感和使命感,使他们认识到停车场管理系统在现代社会中的重要性。
课程性质:本课程为实践性较强的学科,结合实际生活中的停车场管理系统,培养学生运用C语言编程解决问题的能力。
学生特点:考虑到学生所在年级,已具备一定的C语言基础,对数组、函数和指针等概念有初步了解,但实际应用能力有待提高。
教学要求:注重理论与实践相结合,强调动手实践,培养学生实际编程能力。
通过小组合作,提高学生的团队协作能力和沟通能力。
在教学过程中,关注学生的个体差异,因材施教,确保每个学生都能在课程中学有所获。
二、教学内容1. C语言基础知识回顾:数组、函数和指针的基本概念及其应用。
2. 停车场管理系统需求分析:介绍停车场管理系统的基本功能,如车位分配、查询、车辆进出等。
3. 系统设计:- 数据结构设计:数组、结构体等。
- 函数设计:功能模块划分,如车位分配、查询、车辆进出等。
- 指针应用:动态内存分配、函数指针等。
4. 编程实践:- 编写主程序框架,实现系统初始化。
- 编写功能模块,如车位分配、查询、车辆进出等。
- 整合各功能模块,形成完整的停车场管理系统。
5. 调试与优化:分析程序运行过程中可能出现的错误,进行调试和优化。
c语言课程设计停车场
c语言课程设计停车场一、教学目标本节课的教学目标是让学生掌握C语言的基本语法和编程技巧,通过编写程序实现停车场管理系统,培养学生的实际编程能力和问题解决能力。
具体目标如下:1.知识目标:(1)掌握C语言的基本数据类型、运算符和表达式;(2)了解函数的定义和调用方法;(3)熟悉数组的声明和使用;(4)理解指针的概念和应用。
2.技能目标:(1)能够运用C语言编写简单的程序;(2)学会使用函数 modularize 代码;(3)掌握数组在程序中的应用;(4)了解指针的基本操作和内存管理。
3.情感态度价值观目标:(1)培养学生的团队合作意识和沟通能力;(2)激发学生对计算机科学的兴趣和好奇心;(3)培养学生解决问题的能力和创新精神。
二、教学内容本节课的教学内容主要包括以下几个部分:1.C语言基础知识:数据类型、运算符、表达式、函数、数组、指针等;2.停车场管理系统的需求分析;3.停车场管理系统的程序设计;4.程序调试和优化。
具体安排如下:第1-2课时:C语言基础知识讲解和练习;第3-4课时:停车场管理系统的需求分析及总体设计;第5-6课时:停车场管理系统的详细设计和程序编写;第7课时:程序调试和优化。
三、教学方法为了提高学生的学习兴趣和主动性,本节课将采用以下教学方法:1.讲授法:讲解C语言的基本语法和编程技巧;2.案例分析法:通过分析停车场管理系统的实际案例,引导学生思考和解决问题;3.实验法:让学生动手编写程序,实现停车场管理系统;4.小组讨论法:分组进行讨论和合作,培养学生的团队合作意识和沟通能力。
四、教学资源为了支持教学内容和教学方法的实施,丰富学生的学习体验,我们将准备以下教学资源:1.教材:《C程序设计语言》;2.参考书:《C Primer Plus》、《C和指针》;3.多媒体资料:PPT课件、教学视频、在线教程等;4.实验设备:计算机、编程环境(如Visual Studio、Code::Blocks等)。
停车场管理系统C课程设计报告
重庆科技学院《面向对象程序设计》课程设计报告学院:电气与信息工程学院专业班级:计科2012-05学生姓名:蒋鑫学号: 2012442101设计地点(单位)_____I313________设计题目:_ 停车场管理系统 ___完成日期: 2014 年 1月 8 日指导教师评语: ______________________ _______________ ___________________________________________________________________________ ___________________________________________________________________________ ___________________________________________________成绩(五级记分制):______ __________指导教师(签字):________ ________重庆科技学院课程设计任务书设计题目:停车场管理系统设计学生姓名蒋鑫课程名称面向对象课程设计专业班级计科12-5班地点I313 起止时间12月30日~1月10日设计内容及要求1)问题描述定义车辆类,属性有车牌号、颜色、车型(小汽车、小卡、中卡和大卡)、到达的时间和离开的时间等信息和相关的对属性做操作的行为。
定义一个管理类,完成对停车场的管理。
停车场的具体要求:设停车场是一个可停放n辆汽车的狭长通道,且只有一个大门可供汽车进出。
汽车在停车场内按车辆到达时间的先后顺序,依次由北向南排列(大门在最南端,最先到达的第一辆车停放在车场的最北端),若车场内已停满n辆汽车,则后来的汽车只能在门外的便道上等待,一旦有车开走,则排在便道上的第一辆车即可开入;每辆停放在车场的车在它离开停车场时必须按它停留的时间长短交纳费用。
2)功能要求(1)添加功能:程序能够添加到达停车场的车辆信息,要求车辆的车牌号要唯一,如果添加了重复编号的记录时,则提示数据添加重复并取消添加。
C语言课程设计智能停车管理系统
目录摘要 (I)第一章绪论 (1)第二章系统分析 (3)2.1 停车场发展趋势分析 (3)2.2 智能停车管理系统功能需求 (4)2.3 系统菜单的主要功能 (6)第三章总体设计与详细设计 (7)3.1 算法分析 (7)3.2 系统流程图 (7)第四章编码实现 (10)4.1 判断便道是否拥挤 (10)4.2 判断该车是否在泊 (10)4.3 取车 (10)4.4 主函数 (11)第五章调试与测试 (12)5.1 存车 (12)5.2 取车 (13)总结与心得 (14)附录 (16)1 源代码 (16)2 参考资料 (22)摘要智能停车管理系统作为智能交通系统的一部分,其主要功能是从静态交通方面改善和缓解城市交通拥堵。
随着停车难和停车场泊位利用效率相对较低的矛盾日益突出,本文在分析现代智能停车管理系统功能需求、停车特性及有效泊位变化规律的基础上,提出了高效泊位诱导系统和停车场有效泊位短时预测方法,以充分发挥静态交通系统在改善城市动态交通方面的作用。
了解国内外停车管理系统发展趋势,结合国内停车管理需求和停车特性,提出完善的系统设计方案,在此基础上对泊车系统做出深入研究。
利用C语言和数据库开发技术实现泊位仿真演示系统。
分析研究停车场历史数据,此次停车时间以及费用。
关键词:智能停车管理;C语言;数据库第一章绪论随着经济发展和城市化进程的加快,我国城市机动车保有量得到了迅速增长,导致停车泊位和机动车数量增长的矛盾日益突出,但停车问题未受到应有的重视,随着城市交通和停车需求的不断增长,其势必将成为解决城市交通拥挤的瓶颈。
为满足日益增长的交通需求,改善交通设施现状和提高交通设施利用率迫在眉睫,具有诱人前景的“停车经济”必将蓬勃发展。
而随着大型停车场的不断兴建,旨在提高停车场运营效率的智能停车管理系统也将随之发展。
针对当前停车管理技术水平较低的现状,规划实施智能停车管理系统有利于对城市停车实现信息化、智能化、网络化的科学管理,通过合理配置、科学诱导,使驾驶员能够快速、准确、安全地停车,减少车辆因寻找泊位而产生对道路的占用,降低车辆尾气排放和噪声,缓解城市交通拥堵状况,同时最大程度地提高停车设施的利用率,减少违章停车现象,确保交通畅通、安全,具有很高的社会和经济效益。
泊车管理课程设计报告
应用技术研究所课程计划报告课程名称:C语言课程设计主题:停车管理< 1 >前面的语句C语言程序设计的课程设计是对学生的综合训练,包括问题分析、总体结构设计、用户界面设计、编程的基本技能和技巧、多人合作,甚至是一整套软件工作规则的训练和科学风格的培养。
是与课堂听讲、自学、练习相辅相成的不可或缺的教学环节。
通常课程设计的题目要比平时的习题复杂很多,也更贴近实际。
课程设计注重与应用的结合,让学生学会如何运用书本上学到的知识解决实际问题,培养软件工作所需的动手能力;另一方面可以让书本上的知识“活”起来,让学生更好地加深理解,灵活把握教学容量。
为了达到上述目的,本课程安排了十五个设计题目,训练重点是基本的编程方法和分析问题的能力,而不是强调各个方面。
学生可以选择其中一个问题进行设计。
设计结束后,他们可以写一份课程设计报告,并用A4纸打印成册。
并保存课程设计报告和源程序。
学习委员会将收集课程设计报告和磁盘(两者缺一不可)交给指导老师。
一.目的充分熟悉和掌握C语言的基础知识,掌握C语言程序设计中的顺序、分支、循环三种结构和C语言中数组、函数、基本图形编程的方法,编程与实践相结合,增强应用不同问题和灵活选择合适的数据结构描述算法的能力,熟悉程序编译和调试的技巧,掌握一些分析结果的有效方法,进一步提高动手能力。
培养使用计算机解决实际问题的能力,养成提供文档的习惯和规律编程的思想,为以后应用计算机系统解决专业课中的计算、分析、实验、设计等学习环节打下坚实的基础。
二。
基本信息课程:必修课课程学分:1学分课程时数:1周课程:电气工程0781,0782,0783,0784,0785,0786< 2 >设计和调试过程的策划要求1)需求分析分析系统功能需求,与用户沟通操作流程。
2)概要设计在需求分析的基础上,确定了系统的总体框架(系统功能结构图)。
3)详细设计定义数据存储结构,设计实现系统功能的具体算法,并绘制各算法的流程图。
C语言程序设计实习报告停车场管理系统
C语言课程设计实习报告0/ 25姓名:成帅安学号:20141002605院(系):工程学院专业:土木工程2016 年 6 月第一章停车场管理系统§1.1题目描述1、有一个两层的停车场,每层有6个车位,当第一层车停满后才允许使用第二层,(停车场可用一个二维数组实现,每个数组元素存放一个车牌号)每辆车的信息包括车牌号,层号,车位号,停车时间共4项,其中停车时间按分钟计算。
2、假设停车场初始状态为第一层已经停有4辆车,其车位号依次为1-4,停车时间依次为20,15,10,5。
即先将这四辆车的信息存入文件“"中(数组的对应元素也要进行赋1/ 25值)。
3、停车操作:当一辆车进入停车场时,先输入其车牌号,再为它分配一个层号和一个车位号(分配前先查询车位的使用情况,如果第一层有空则必须停在第一层),停车时间设为5,最后将新停入的汽车的信息添加文件""中,并将在此之前的所有车的停车时间加5。
4、收费管理(取车):当有车离开时,输入其车牌号,先按其停车时间计算费用,每5分钟0.2元。
(停车费用可设置一个变量进行保存),同时从文件""中删除该车的信息,并将该车对应的车位设置为可使用状态(即二维数组对应元素清零)。
按用户的选择来判断是否要输出停车收费的总计。
5、输出停车场中全部车辆的信息。
6、退出系统。
§1.2算法设计1、需求分析:车辆信息用文件储存,提供文件的输入输出操作;当车离开时要删除文件中该车的信息,因而要提供文件的删除操作;用键盘式菜单实现功能选择。
2、总体设计思路:整个管理系统设计可设计为停车模块、取车模块、车辆浏览信息模块。
另外车辆停放信息涉及到从中读取,保存和修改,为了方便起见和程序的模块化,我将文件的读入和保存单独设计为两个子程序。
整体模块图如下:2/ 253/ 253、各子程序设计如下:(1)使用全局变量数组,用一个二维数组实现停车场车位的信息, [12][4];(2)通过读取的数据,对程序初始化。
C语言课程设计报告停车场管理系统
算法与数据结构课程设计题目:停车场管理专业班级:软件四班姓名:学号:指导教师:成绩:______________目录一、题目及要求 (2)二、题目分析 (3)三、数据结构说明 (4)四、各函数算法分析 (5)(1)主函数 (5)(2)车辆到达函数 (7)(3)车辆离开函数 (8)(4)列表显示函数 (10)五、程序测试 (14)(1)测试信息对错误的处理 (14)(2)列表显示 (15)(3)同时输出等待的提示作息 (16)(4)计算它们的应交费用 (17)六、课程设计感悟与收获 (18)七、源代码 (19)八、参考文献 (25)一、题目及要求[要求]设有一个可以停放n辆汽车的狭长停车场,它只有一个大门可以供车辆进出。
车辆按到达停车场时间的早晚依次从停车场最里面向大门口停放(最先到达的第一辆车放在停车场的最里面)。
如果停车场已放满n辆车,则后来的车辆只能在停车场大门外的便道上等待,一旦停车场内有车开走,则排在便道上的第一辆国就进入停车场。
停车场内如有某辆车要走,在它之后进来的车都必须退出停车场为它让路,待其开出停车场后,这些车辆再依原来的次序进场。
每辆车在离开停车场时,都应根据它在停车场内停留的时间长短交费。
如果停留在便道上的车未进停车场就要离去,允许其离去,不收停车费,并且其他在便道上等待的车辆的次序不变。
编制一程序模拟停车场管理。
[提示]汽车的模拟输入信息格式可以是:(到达/离去,汽车牌照号码,到达/离去时刻)。
例如:(’A’,1,5)表示1号牌照车在5这个时刻到达,而(’D’,5,20)表示5号牌照车在20这个时刻离去,整个程序可以在输入信息为(’E’,0,0)时结束。
基本要求:要求程序输出每辆车到达后的停车位置(停车场或便道上),以及某辆车离开停车场时应交的费用和它在停车场内停留的时间。
根据题目要求,停车场可以用一个长度为n的堆栈来模拟。
由于停车场内如有某辆车要开走,在它之后进来的车都必须先退出停车场为它让路,待其开出停车场后,这些车辆再依原来的次序进场。
停车场c语言课程设计
停车场c语言课程设计一、教学目标本课程的教学目标是使学生掌握C语言的基本语法、数据类型、运算符、控制结构、函数等基本知识,培养学生使用C语言进行程序设计的能力,提高学生的逻辑思维和问题解决能力。
具体来说,知识目标包括:1.理解C语言的基本语法和规则。
2.掌握基本数据类型、运算符和表达式。
3.熟悉控制结构,如if语句、for循环、while循环等。
4.了解函数的定义和调用。
技能目标包括:1.能够使用C语言编写简单的程序。
2.能够阅读和理解简单的C语言程序。
3.能够使用C语言进行基本的输入输出操作。
情感态度价值观目标包括:1.培养学生的编程兴趣,激发学生学习编程的热情。
2.培养学生解决问题的能力,提高学生面对困难的勇气和毅力。
3.培养学生团队合作的精神,学会与他人交流和分享。
二、教学内容本课程的教学内容主要包括C语言的基本语法、数据类型、运算符、控制结构、函数等基本知识。
具体安排如下:1.第一章:C语言概述,介绍C语言的发展历程、特点和基本语法。
2.第二章:数据类型和运算符,讲解整型、浮点型、字符型数据以及各种运算符的使用。
3.第三章:控制结构,学习if语句、for循环、while循环等控制结构的使用。
4.第四章:函数,介绍函数的定义、声明和调用,学习常用库函数的使用。
5.第五章:输入输出操作,掌握文件读写、标准输入输出等操作。
三、教学方法本课程采用多种教学方法,包括讲授法、案例分析法、实验法等,以激发学生的学习兴趣和主动性。
1.讲授法:通过讲解示例程序和知识点,使学生掌握C语言的基本语法和编程方法。
2.案例分析法:分析实际编程案例,培养学生解决问题的能力。
3.实验法:让学生动手编写程序,巩固所学知识,提高编程技能。
四、教学资源本课程的教学资源包括教材、参考书、多媒体资料和实验设备等。
1.教材:《C程序设计语言》(K&R著)或《C Primer Plus》(Stephen Prata著)。
2.参考书:《C语言详解》(C.A.R. Hoare著)、《C专家编程》(Peter van der Linden著)。
停车场c语言课程设计
停车场c语言课程设计一、课程目标知识目标:1. 学生能理解C语言在现实问题解决中的应用,特别是停车场管理系统中的编程实现。
2. 学生能够掌握C语言中数组、结构体、函数等基本概念,并将其应用于停车场系统的设计。
3. 学生能够运用C语言中的条件语句和循环语句,实现对停车场车位的管理逻辑。
技能目标:1. 学生能够运用所学知识,设计并编写一个简单的停车场管理系统。
2. 学生通过课程实践,培养问题分析、程序设计、编码调试的能力。
3. 学生能够进行团队合作,共同完成课程设计任务,提高沟通与协作技巧。
情感态度价值观目标:1. 学生在课程实践中,培养对编程的兴趣,增强解决实际问题的信心。
2. 学生通过课程学习,认识到编程在现代社会中的重要作用,激发对计算机科学的热爱。
3. 学生在学习过程中,培养认真负责、严谨细致的学习态度,树立正确的价值观。
课程性质:本课程为信息技术学科的高年级课程,以C语言编程为核心,结合停车场管理系统实例,旨在提高学生的编程能力和实际问题解决能力。
学生特点:学生已具备一定的C语言基础,具有较强的逻辑思维能力,对实际应用有较高的兴趣。
教学要求:课程设计需贴近实际,引导学生主动探究,注重培养学生的动手能力和团队协作精神,提高学生的编程综合素质。
通过分解课程目标为具体学习成果,使学生在实践中达成预期目标,为后续教学设计和评估提供依据。
二、教学内容1. C语言基础知识回顾:数组、结构体、函数、指针、文件操作等。
- 教材章节:第二章数组、第三章函数、第四章结构体与联合、第六章指针、第七章文件操作。
2. 停车场管理系统需求分析:- 功能要求:车位管理、车辆进出管理、费用计算等。
- 教学大纲:第一节介绍停车场管理系统背景,第二节分析系统需求。
3. 停车场管理系统设计与实现:- 教学内容:系统架构设计、模块划分、代码编写与调试。
- 教材章节:第五章项目设计与实现。
4. C语言编程实践:- 教学内容:编写停车场管理系统相关功能模块,如车位分配、车辆查询、费用支付等。
c停车收费管理系统课程设计
c 停车收费管理系统课程设计一、教学目标本课程旨在通过学习C停车收费管理系统的设计与实现,使学生掌握停车场管理系统的基本原理、设计方法和实际应用。
在知识目标方面,要求学生了解停车场管理系统的相关概念、组成部分和工作原理;掌握C语言编程基础,能够运用C语言进行简单的系统开发。
在技能目标方面,要求学生能够运用所学的知识,独立设计并实现一个简单的停车场收费管理系统;具备一定的编程能力和问题解决能力。
在情感态度价值观目标方面,培养学生对计算机科学的兴趣和热情,提高学生运用计算机技术解决实际问题的意识。
二、教学内容本课程的教学内容主要包括停车场管理系统的理论知识、C语言编程基础以及停车场收费管理系统的具体设计。
具体安排如下:1.停车场管理系统的理论知识:介绍停车场管理系统的概念、组成部分、工作原理和分类,使学生了解停车场管理系统的整体框架。
2.C语言编程基础:讲解C语言的基本语法、数据类型、运算符、控制结构等,为学生实现停车场收费管理系统提供编程基础。
3.停车场收费管理系统的具体设计:引导学生运用所学的C语言知识,设计并实现一个简单的停车场收费管理系统,包括车位信息的录入、查询、停车费计算等功能。
三、教学方法为了提高学生的学习兴趣和主动性,本课程将采用多种教学方法相结合的方式进行教学。
包括:1.讲授法:讲解停车场管理系统的理论知识、C语言编程基础等,使学生掌握基本概念和原理。
2.案例分析法:分析实际停车场收费管理系统的案例,使学生了解停车场管理系统的应用场景和实际问题。
3.实验法:学生进行编程实践,设计并实现一个简单的停车场收费管理系统,提高学生的动手能力和问题解决能力。
四、教学资源为了支持教学内容和教学方法的实施,丰富学生的学习体验,我们将准备以下教学资源:1.教材:选用权威、实用的教材,为学生提供停车场管理系统的基本理论和C语言编程知识。
2.参考书:提供相关的参考书籍,为学生深入学习提供更多资料。
3.多媒体资料:制作精美的课件、教学视频等,提高学生的学习兴趣和效果。
数据结构c语言版课程设计停车场管理系统
课程设计:停车场c语言版本的数据结构课程设计,要求用栈模拟停车场,用队列模拟便道,实现停车场的收费管理系统停车场停满车后车会停在便道上面下面附上源码,vc:(下编译#include <stdio.h>//#include <stdlib.h> //malloc#include <time.h> //获取系统时间所用函数#include <conio.h> //getch()#include <windows.h> //设置光标信息mallco #define MaxSize 5 /*定义停车场栈长度*/#define PRICE 0.05 /*每车每分钟收费值*/#define BASEPRICE 0.5 //基础停车费#define Esc 27 //退出系统#define Exit 3 //结束对话#define Stop 1 //停车#define Drive 2 //取车int jx=0,jy=32; //全局变量日志打印位置typedef struct{int hour;int minute;}Time,*PTime; /*时间结点*/typedef struct /*定义栈元素的类型即车辆信息结点*/{int num ; /*车牌号*/Time arrtime; /*到达时刻或离区时刻*/}CarNode;typedef struct /*定义栈,模拟停车场*/{CarNode stack[MaxSize];int top;}SqStackCar;typedef struct node /*定义队列结点的类型*/{int num; /*车牌号*/struct node *next;}QueueNode;typedef struct /*定义队列,模拟便道*/ {QueueNode *front,*rear;}LinkQueueCar;/*函数声明*/PTime get_time();CarNode getcarInfo();void qingping(int a);void gotoxy(int x,int y);void printlog(Time t,int n,int io,char ab,int po,double f);void printstop(int a,int num,int x0,int y0);void printleave(int a,int po,int num);/*初始化栈*/void InitSeqStack(SqStackCar *s){s->top=-1;}/* push入站函数*/int push(SqStackCar *s,CarNode x) //数据元素x入指针s所指的栈{if(s->top==MaxSize-1)return(0); //如果栈满,返回0 else{s->stack[++s->top]=x; //栈不满,到达车辆入栈return(1);}}/*栈顶元素出栈*/CarNode pop(SqStackCar *s){CarNode x;if(s->top<0){x.num=0;x.arrtime.hour=0;x.arrtime.minute=0;return(x); //如果栈空,返回空值}else{s->top--;return(s->stack[s->top+1]); //栈不空,返回栈顶元素}}/*初始化队列*/void InitLinkQueue(LinkQueueCar *q){q->front=(QueueNode*)malloc(sizeof(QueueNode)); //产生一个新结点,作头结点if(q->front!=NULL){q->rear=q->front;q->front->next=NULL;q->front->num=0; //头结点的num保存队列中数据元素的个数}}/*数据入队列*/void EnLinkQueue(LinkQueueCar *q,int x){QueueNode *p;p=(QueueNode*)malloc(sizeof(QueueNode)); //产生一个新结点p->num=x;p->next=NULL;q->rear->next=p; //新结点入队列q->rear=p;q->front->num++; //队列元素个数加1}/*数据出队列*/int DeLinkQueue(LinkQueueCar *q){QueueNode *p;int n;if(q->front==q->rear) //队空返回0return(0);else{p=q->front->next;q->front->next=p->next;if(p->next==NULL)q->rear=q->front;n=p->num;free(p);q->front->num--;return(n); //返回出队的数据信息}}/********************* 车辆到达***************************///参数:停车栈停车队列车辆信息//返回值:空//功能:对传入的车辆进行入栈栈满则入队列void Arrive(SqStackCar *stop,LinkQueueCar *lq,CarNode x){int f;f=push(stop,x); //入栈if (f==0) //栈满{EnLinkQueue(lq,x.num); //入队printstop(1,lq->front->num,0,23);printlog(x.arrtime,x.num,1,'B',lq->front->num,0);qingping(0); printf("您的车停在便道%d号车位上\n",lq->front->num); //更新对话}else{printstop(0,stop->top+1,0,23);printlog(x.arrtime,x.num,1,'P',stop->top+1,0);qingping(0); printf("您的车停在停车场%d号车位上\n",stop->top+1); //更新对话}qingping(1); printf("按任意键继续");getch();}/************************** 车辆离开*************************************///参数:停车栈指针s1,暂存栈指针s2,停车队列指针p,车辆信息x//返回值:空//功能:查找栈中s1的x并出栈,栈中没有则查找队p中并出队,打印离开收费信息void Leave(SqStackCar *s1,SqStackCar *s2,LinkQueueCar *p,CarNode x){double fee=0;int position=s1->top+1; //车辆所在车位int n,f=0;CarNode y;QueueNode *q;while((s1->top > -1)&&(f!=1)) //当栈不空且未找到x{y=pop(s1);if(y.num!=x.num){n=push(s2,y);position--;}elsef=1;}if(y.num==x.num) //找到x{gotoxy(33,17);printf("%d:%-2d",(x.arrtime.hour-y.arrtime.hour),(x.arrtime.minute-y.arrtime.minute) );fee=((x.arrtime.hour-y.arrtime.hour)*60+(x.arrtime.minute-y.arrtime.minute))*PRICE+BASEP RICE;gotoxy(48,17); printf("%2.1f元\n",fee);qingping(0); printf("确认您的车辆信息");qingping(1); printf("按任意键继续");getch();while(s2->top>-1){ y=pop(s2);f=push(s1,y);}n=DeLinkQueue(p);if(n!=0){y.num=n;y.arrtime=x.arrtime;f=push(s1,y);printleave(p->front->num+1,position,s1->top+1); //出栈动画ji队列成员入栈printlog(x.arrtime,x.num,0,'P',position,fee);printlog(y.arrtime,y.num,1,'P',s1->top+1,0);}else{printleave(0,position,s1->top+2);printlog(x.arrtime,x.num,0,'P',position,fee);}}else //若栈中无x{while(s2->top > -1) //还原栈{y=pop(s2);f=push(s1,y);}q=p->front;f=0;position=1;while(f==0&&q->next!=NULL) //当队不空且未找到xif(q->next->num!=x.num){q=q->next;position++;}else //找到x{q->next=q->next->next;p->front->num--;if(q->next==NULL)p->rear=p->front;gotoxy(33,17); printf("0:0");gotoxy(48,17); printf("0元");qingping(0); printf("您的车将离便道");qingping(1); printf("按任意键继续");getch();printleave(-1,position,p->front->num+1); //出队动画printlog(x.arrtime,x.num,0,'B',position,0);f=1;}if(f==0) //未找到x{qingping(0); printf("停车场和便道上均无您的车");qingping(1); printf("按任意键继续");getch();}}}/*获取系统时间*///返回PTime类型PTime get_time(){Time *t;t=new Time;time_t timer;struct tm *tblock;timer=time(NULL);tblock=localtime(&timer);t->minute=tblock->tm_min;t->hour=tblock->tm_hour;return t;}/*移动光标*///蒋光标移动到(x,y)点void gotoxy(int x,int y){COORD coord;coord.X=x;coord.Y=y+3;SetConsoleCursorPosition(GetStdHandle(STD_OUTPUT_HANDLE),coord); }/*画图*///画出系统界面void panitPL(){gotoxy(20,4);printf("****************对话框****************");int x=18,y=6; //起始点int a[2][4]={2,0,0,1,-2,0,0,-1}; //方向for(int i=0;i<2 ;i++){for(int j=0; j<20; j++){x+=a[i][0]; y+=a[i][1];gotoxy(x,y);printf("═");}x+=a[i][0]; y+=a[i][1];gotoxy(x,y);if(i==0)printf("╗");elseprintf("╚");for(j=0; j<12; j++){x+=a[i][2]; y+=a[i][3];gotoxy(x,y);printf("║");}x+=a[i][2]; y+=a[i][3];gotoxy(x,y);if(i==0)printf("╝");elseprintf("╔");}gotoxy(22,8);printf("小王:");gotoxy(22,11);printf("顾客:");gotoxy(22,14); printf("*********** 停车信息***********");gotoxy(23,15); printf("车牌号:");gotoxy(42,15); printf("时间:");gotoxy(23,17); printf("停车时长:");gotoxy(42,17); printf("收费:");}/*清屏函数*///更新对话框前将原对话晴空void qingping(int a){if(a==0) //清空小王的对话{gotoxy(28,8); printf(" ");gotoxy(28,9); printf(" ");gotoxy(28,8);}else if(a==1) //清空顾客的对话{gotoxy(28,11); printf(" ");gotoxy(28,12); printf(" ");gotoxy(28,13); printf(" ");gotoxy(28,11);}else //清空车辆信息{gotoxy(31,15); printf(" ");gotoxy(48,15); printf(" ");gotoxy(33,17); printf(" ");gotoxy(48,17); printf(" ");gotoxy(31,15);}}//用上下键移动选择int getkey(){char c;int x=28,y=11;while(1){gotoxy(x,11); printf(" ");gotoxy(x,12); printf(" ");gotoxy(x,13); printf(" ");gotoxy(x,y); printf(">>");c=getch();if(c==13) return y-10; //enter键返回当前选项if(c!=-32)continue; //不是方向键进行下次循环c=getch();if(c==72) if(y>11) y--; //上if(c==80) if(y<13) y++; //下}}//输入车辆信息CarNode getcarInfo(){PTime T;CarNode x;qingping(0); printf("请输入您的车牌号\n");qingping(1); printf("在下面输入车辆信息");qingping(2);scanf("%d",&(x.num));T=get_time();x.arrtime=*T;gotoxy(48,15); printf("%d:%d",x.arrtime.hour,x.arrtime.minute);getch();return x;}//打印停车场void printcar(){gotoxy(0,20); //╔ ╗╝╚═║printf("═══════════════════════════════════════╗");printf(" 出场暂放区║ 1 2 3 4 5 ║");printf("---------------------------------------------------------------------- ║");printf(" 主车道║");printf("---------------------------------------------------------------------- ║");printf(" 12 11 10 9 8 7 6 5 4 3 2 1 ║");printf("═══════════════════════════════════╗ ║");printf(" ↑ ╔══════════════╝ ║");printf(" 便道停车区→ ║ 1 2 3 4 5 ║");printf(" ╚══════════════════╝");printf(" 停车场管理日志\n\n");printf(" 时间车牌号进(1)/出(0) 车位(B便道P停车场) 收费(元) "); }//打印日志记录void printlog(Time t,int n,int io,char ab,int po,double f){jy++;gotoxy(jx,jy);// printf(" 时间车牌号进(1)/出(0) 车位(B便道P停车场) 收费(元) ");if(io==0)printf("/ %2.1f",f);gotoxy(jx,jy);printf(" / %d / %c:%d",io,ab,po);gotoxy(jx,jy);printf(" %d:%d / %d",t.hour,t.minute,n);}void printstop(int a,int num,int x0,int y0){static char *car="【█】";// int x0=0,y0=23;int x=0,y=28;if(a==0){x=(num+6)*6;for(;x0<72;x0++){gotoxy(x0,y0); printf("%s",car); Sleep(30);gotoxy(x0,y0); printf(" ");}for(;y0<y;y0++){gotoxy(x0,y0); printf("%s",car); Sleep(100);gotoxy(x0,y0); printf(" ");}for(;x0>x;x0--){gotoxy(x0,y0); printf("%s",car); Sleep(50);gotoxy(x0,y0); printf(" ");}gotoxy(x,y);printf("%s",car);}else{x=(12-num)*6;y=y-3;for(;x0<x;x0++){gotoxy(x0,y0); printf("%s",car); Sleep(30);gotoxy(x0,y0); printf(" ");}gotoxy(x,y);printf("%s",car);}}void printleave(int a,int po,int num){static char *car="【█】";int x0=0,y0=23;int x=0,y=28;int i;if(a==-1){x=(12-po)*6;y=y-3;gotoxy(x,y); printf(" ");gotoxy(x,y-2); printf("%s",car);Sleep(100);if(12>num){gotoxy((12-num)*6,y);printf(" ");}gotoxy(x,y); printf("%s",car);for(;x>x0;x--){gotoxy(x,y-2); printf("%s",car); Sleep(30);gotoxy(x,y-2); printf(" ");}}else{i=num+1;for(;num>po;num--){x=(num+6)*6; y=28;for(;x<72;x++){gotoxy(x,y); printf("%s",car); Sleep(30);gotoxy(x,y); printf(" ");}for(;y>21;y--){gotoxy(x,y); printf("%s",car); Sleep(50);gotoxy(x,y); printf(" ");}for(;x>(i-num+6)*6;x--){gotoxy(x,y); printf("%s",car); Sleep(30);gotoxy(x,y); printf(" ");}gotoxy(x,y); printf("%s",car);}x=(po+6)*6; y=28;for(;x<72;x++){gotoxy(x,y); printf("%s",car); Sleep(30);gotoxy(x,y); printf(" ");}for(;y>23;y--){gotoxy(x,y); printf("%s",car); Sleep(50);gotoxy(x,y); printf(" ");}for(;x>0;x--){gotoxy(x,y); printf("%s",car); Sleep(30);gotoxy(x,y); printf(" ");}num++;for(;i-num>0;num++){x=(i-num+6)*6; y=21;for(;x<72;x++){gotoxy(x,y); printf("%s",car); Sleep(30);gotoxy(x,y); printf(" ");}for(;y<28;y++){gotoxy(x,y); printf("%s",car); Sleep(50);gotoxy(x,y); printf(" ");}for(;x>(num-1+6)*6;x--){gotoxy(x,y); printf("%s",car); Sleep(30);gotoxy(x,y); printf(" ");}gotoxy(x,y); printf("%s",car);}if(a>0){x=66;y=25;gotoxy(x,y); printf(" ");gotoxy(x,y-2); printf("%s",car); Sleep(100);if(12>a){gotoxy((12-a)*6,y);printf(" ");}if(a>1){gotoxy(x,y); printf("%s",car);}printstop(0,i-1,x,y-2);}}}/************************************************************ main ********************************************************/int main(void){SqStackCar s1,s2; //停车栈和暂存栈LinkQueueCar p; //队列InitSeqStack(&s1);InitSeqStack(&s2);InitLinkQueue(&p);printf(" 停车场管理系统\n\n");printf("************************* 欢(=^_^=)迎***************************\n");printf(" 收费标准:基础费0.5元,每分钟收取0.05元,收费精确到0.1元\n");printf(" PS:车牌号由阿拉伯数字组成");panitPL();printcar(); gotoxy(0,-3);char c=0; //接受按键while(1) //按ESC退出系统{for(int i=2;i>-1 ;i--) //初始化对话框qingping(i);printf("按ESC退出系统,其它键开始对话");c=getch();if(c==Esc){qingping(0);break;}while(1){qingping(2);gotoxy(28,8); printf("欢迎来到停车场!我是管理员小王。
c课程设计自助停车收费系统
c 课程设计自助停车收费系统一、教学目标本课程旨在让学生了解和掌握自助停车收费系统的基本原理和设计方法。
通过本课程的学习,学生将能够:1.知识目标:理解自助停车收费系统的运作原理,包括车辆识别、计费策略、支付方式等;掌握相关的编程语言和开发工具。
2.技能目标:能够独立完成自助停车收费系统的项目设计,包括系统分析、系统设计、程序编写和测试等;具备解决实际问题的能力。
3.情感态度价值观目标:培养学生的创新意识和团队协作精神,使他们在面对复杂问题时能够积极思考、勇于尝试,并能够有效地与他人合作。
二、教学内容本课程的教学内容主要包括以下几个部分:1.自助停车收费系统的概述:介绍自助停车收费系统的定义、功能和应用场景。
2.车辆识别技术:讲解车辆识别技术的原理和应用,包括车牌识别、车型识别等。
3.计费策略:介绍自助停车收费系统的计费策略,包括按时计费、按次计费等。
4.支付方式:讲解自助停车收费系统的支付方式,包括现金支付、微信支付等。
5.系统设计:介绍自助停车收费系统的整体设计,包括硬件选型、软件架构等。
6.编程实践:通过项目实践,让学生动手编写代码,实现自助停车收费系统的核心功能。
三、教学方法为了提高教学效果,本课程将采用多种教学方法相结合的方式进行教学:1.讲授法:教师通过讲解教材内容,让学生掌握自助停车收费系统的理论知识。
2.案例分析法:通过分析实际案例,让学生了解自助停车收费系统的应用场景和设计要点。
3.实验法:让学生动手实践,编写代码,从而加深对自助停车收费系统的理解和掌握。
4.小组讨论法:鼓励学生分组讨论,培养他们的团队协作能力和解决问题的能力。
四、教学资源为了支持本课程的教学,我们将准备以下教学资源:1.教材:选用国内权威出版社出版的教材,内容包括自助停车收费系统的理论知识和技术细节。
2.参考书:提供相关领域的参考书籍,为学生提供更多的学习资料。
3.多媒体资料:制作课件、视频等多媒体资料,丰富教学手段,提高学生的学习兴趣。
停车场管理系统—C语言课程设计
停车场管理系统1题目要求设有一个可以停放n辆汽车的狭长停车场,它只有一个大门可以供车辆进出。
车辆按到达停车场时间的早晚依次从停车场最里面向大门口处停放(最先到达的第一辆车放在停车场的最里面)。
如果停车场已放满n辆车,则后来的车辆只能在停车场大门外的便道上等待,一旦停车场内有车开走,则排在便道上的第一辆车就进入停车站。
停车站内如有某辆车要开走,在它之后进入停车场的车都必须先退出停车站为它让路,待其开出停车场后,这些车辆再依原来的次序进场。
每辆车在离开停车场时,都应根据它在停车场内停留的时间长短交费。
如果停留在便道上的车未进停车场就要离去,允许其离去,不收停车费,并且仍然保持在便道上等待的车辆的次序。
编制一程序模拟该停车场的管理。
【基本要求】要求程序输出每辆车到达后的停车位置(停车场或便道上),以及某辆车离开停车场是的停车时间及它应该交的费用。
2需求分析根据题目要求,因为停车场是一个单条的序列,可以用结构体实现;在程序中,需要知道每辆来车的具体停放位置,应提供提示、查找、标记工作。
车辆离开要计时计费。
另外,每天开始时,停车场要初始化。
3总体设计这个系统可以分为:初始化、有车进入、有车离开、退出四个模块。
4详细设计main()函数体内包含了界面选则部分menu(),并单独Array抽出来作为一个独立函数,目的在于系统执行每部分模块后能够方便返回到系统界面。
即main()函数写为如下:void main()/*主函数*/{menu();/*菜单函数*/}菜单函数: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);/*退出*/}}初始化模块设计:【需求分析】该模块是将每一天开始的停车场内和便道车位清零。
C语言课程设计+泊车管理系统
C语言课程设计+泊车管理系统------------------------------------------作者------------------------------------------日期《高级语言程序设计》课程设计报告题目:泊车管理系统得分班级:学号:姓名:年 月 日学生成绩简单管理程序 前言语言是我学习的第一个编程语言,在一年的学习中, 语言简洁使用方便灵活、语法限制不太严格、程序设计自由度大等一系列优点让我渐渐对 语言产生了浓厚的兴趣。
同时在这一年的学习中我也认识到了自己在学习方面的不足,对结构体、指针、文件等的学习仅停留在各个部分的学习上,还无法在编程时对其熟练的运用。
在编程总体把握上还有许多的欠缺。
对于算法也只是稍微的接触。
所以利用这次课程设计提高自己对提高自己编程效率,完善自己在 语言编程上算法的不足。
系统菜单及题目分析 系统菜单的主要功能( )进入存车系统( )进入取车系统( )退出程序题目分析泊车管理系统主要考察对结构体,指针,文件的操作,以及 语言算法的掌握 所以完成此道题目要求较强的设计能力,尤其是要有一种大局观的意识。
如何调程序也非常重要,通过这个程序可以学习到以前调试短程序没有的的经验。
菜单中的三个选项都对应三个子程序,子程序的算法是 语言学过,下面就三个子程序中的功能进行说明:存车系统的算法,通过两个输入函数♦♍♋⏹♐输入车牌和存车时间;并运用二维数组记录存车的相应的数据。
取车系统的算法,通过♦♍♋⏹♐函数输入正确的车牌和取车时间,计算出泊车时间和泊车费用,其中泊车时间不足 分钟的以 分钟计算是一个重点。
主函数的算法,通过函数的调用,实现主菜单的功能。
算法分析( )存车系统 用♍♋❒☐♋❒☎❖☐♓♎✆函数来实现,用来记录车辆停放的车牌、停放时间。
如果该车已在存放或便道拥挤,则分别提示此车已泊或在便道上等候车位。
( )取车系统 用 ♍♋❒♑♏♦()函数来实现,用来记录车辆取车时间,以及计算泊车的时间和费用,如果停放时间低于 分钟。
数据结构c语言版课程设计停车场管理系统
课程设计:停车场c语言版本的数据结构课程设计,规定用栈模拟停车场,用队列模拟便道,实现停车场的收费管理系统停车场停满车后车会停在便道上面下面附上源码,vc:(下编译#include <stdio.h>//#include <stdlib.h> //malloc#include <time.h> //获取系统时间所用函数#include <conio.h> //getch()#include <windows.h> //设立光标信息mallco#define MaxSize 5 /*定义停车场栈长度*/#define PRICE 0.05 /*每车每分钟收费值*/#define BASEPRICE 0.5 //基础停车费#define Esc 27 //退出系统#define Exit 3 //结束对话#define Stop 1 //停车#define Drive 2 //取车int jx=0,jy=32; //全局变量日记打印位置typedef struct{int hour;int minute;}Time,*PTime; /*时间结点*/typedef struct /*定义栈元素的类型即车辆信息结点*/ {int num ; /*车牌号*/Time arrtime; /*到达时刻或离区时刻*/}CarNode;typedef struct /*定义栈,模拟停车场*/{CarNode stack[MaxSize];int top;}SqStackCar;typedef struct node /*定义队列结点的类型*/{int num; /*车牌号*/struct node *next;}QueueNode;typedef struct /*定义队列,模拟便道*/{QueueNode *front,*rear;}LinkQueueCar;/*函数声明*/PTime get_time();CarNode getcarInfo();void qingping(int a);void gotoxy(int x,int y);void printlog(Time t,int n,int io,char ab,int po,double f);void printstop(int a,int num,int x0,int y0);void printleave(int a,int po,int num);/*初始化栈*/void InitSeqStack(SqStackCar *s){s->top=-1;}/* push入站函数*/int push(SqStackCar *s,CarNode x) //数据元素x入指针s所指的栈{if(s->top==MaxSize-1)return(0); //假如栈满,返回0 else{s->stack[++s->top]=x; //栈不满,到达车辆入栈return(1);}}/*栈顶元素出栈*/CarNode pop(SqStackCar *s){CarNode x;if(s->top<0){x.num=0;x.arrtime.hour=0;x.arrtime.minute=0;return(x); //假如栈空,返回空值}else{s->top--;return(s->stack[s->top+1]); //栈不空,返回栈顶元素}}/*初始化队列*/void InitLinkQueue(LinkQueueCar *q){q->front=(QueueNode*)malloc(sizeof(QueueNode)); //产生一个新结点,作头结点if(q->front!=NULL){q->rear=q->front;q->front->next=NULL;q->front->num=0; //头结点的num保存队列中数据元素的个数}}/*数据入队列*/void EnLinkQueue(LinkQueueCar *q,int x){QueueNode *p;p=(QueueNode*)malloc(sizeof(QueueNode)); //产生一个新结点p->num=x;p->next=NULL;q->rear->next=p; //新结点入队列q->rear=p;q->front->num++; //队列元素个数加1}/*数据出队列*/int DeLinkQueue(LinkQueueCar *q){QueueNode *p;int n;if(q->front==q->rear) //队空返回0return(0);else{p=q->front->next;q->front->next=p->next;if(p->next==NULL)q->rear=q->front;n=p->num;free(p);q->front->num--;return(n); //返回出队的数据信息}}/********************* 车辆到达***************************/ //参数:停车栈停车队列车辆信息//返回值:空//功能:对传入的车辆进行入栈栈满则入队列void Arrive(SqStackCar *stop,LinkQueueCar *lq,CarNode x){int f;f=push(stop,x); //入栈if (f==0) //栈满{EnLinkQueue(lq,x.num); //入队printstop(1,lq->front->num,0,23);printlog(x.arrtime,x.num,1,'B',lq->front->num,0);qingping(0); printf("您的车停在便道%d号车位上\n",lq->front->num); //更新对话}else{printstop(0,stop->top+1,0,23);printlog(x.arrtime,x.num,1,'P',stop->top+1,0);qingping(0); printf("您的车停在停车场%d号车位上\n",stop->top+1); //更新对话}qingping(1); printf("按任意键继续");getch();}/************************** 车辆离开*************************************///参数:停车栈指针s1,暂存栈指针s2,停车队列指针p,车辆信息x//返回值:空//功能:查找栈中s1的x并出栈,栈中没有则查找队p中并出队,打印离开收费信息void Leave(SqStackCar *s1,SqStackCar *s2,LinkQueueCar *p,CarNode x){double fee=0;int position=s1->top+1; //车辆所在车位int n,f=0;CarNode y;QueueNode *q;while((s1->top > -1)&&(f!=1)) //当栈不空且未找到x{y=pop(s1);if(y.num!=x.num){n=push(s2,y);position--;}elsef=1;}if(y.num==x.num) //找到x{gotoxy(33,17);printf("%d:%-2d",(x.arrtime.hour-y.arrtime.hour),(x.arrtime.minute-y.arrtime.minute) );fee=((x.arrtime.hour-y.arrtime.hour)*60+(x.arrtime.minute-y.arrtime.minute))*PRICE+BASEP RICE;gotoxy(48,17); printf("%2.1f元\n",fee);qingping(0); printf("确认您的车辆信息");qingping(1); printf("按任意键继续");getch();while(s2->top>-1){ y=pop(s2);f=push(s1,y);}n=DeLinkQueue(p);if(n!=0){y.num=n;y.arrtime=x.arrtime;f=push(s1,y);printleave(p->front->num+1,position,s1->top+1); //出栈动画ji队列成员入栈printlog(x.arrtime,x.num,0,'P',position,fee);printlog(y.arrtime,y.num,1,'P',s1->top+1,0);}else{printleave(0,position,s1->top+2);printlog(x.arrtime,x.num,0,'P',position,fee);}}else //若栈中无x{while(s2->top > -1) //还原栈{y=pop(s2);f=push(s1,y);}q=p->front;f=0;position=1;while(f==0&&q->next!=NULL) //当队不空且未找到xif(q->next->num!=x.num){q=q->next;position++;}else //找到x{q->next=q->next->next;p->front->num--;if(q->next==NULL)p->rear=p->front;gotoxy(33,17); printf("0:0");gotoxy(48,17); printf("0元");qingping(0); printf("您的车将离便道");qingping(1); printf("按任意键继续");getch();printleave(-1,position,p->front->num+1); //出队动画printlog(x.arrtime,x.num,0,'B',position,0);f=1;}if(f==0) //未找到x{qingping(0); printf("停车场和便道上均无您的车");qingping(1); printf("按任意键继续");getch();}}}/*获取系统时间*///返回PTime类型PTime get_time(){Time *t;t=new Time;time_t timer;struct tm *tblock;timer=time(NULL);tblock=localtime(&timer);t->minute=tblock->tm_min;t->hour=tblock->tm_hour;return t;}/*移动光标*///蒋光标移动到(x,y)点void gotoxy(int x,int y){COORD coord;coord.X=x;coord.Y=y+3;SetConsoleCursorPosition(GetStdHandle(STD_OUTPUT_HANDLE),coord); }/*画图*///画出系统界面void panitPL(){gotoxy(20,4);printf("****************对话框****************");int x=18,y=6; //起始点int a[2][4]={2,0,0,1,-2,0,0,-1}; //方向for(int i=0;i<2 ;i++){for(int j=0; j<20; j++){x+=a[i][0]; y+=a[i][1];gotoxy(x,y);printf("═");}x+=a[i][0]; y+=a[i][1];gotoxy(x,y);if(i==0)printf("╗");elseprintf("╚");for(j=0; j<12; j++){x+=a[i][2]; y+=a[i][3];gotoxy(x,y);printf("║");}x+=a[i][2]; y+=a[i][3];gotoxy(x,y);if(i==0)printf("╝");elseprintf("╔");}gotoxy(22,8);printf("小王:");gotoxy(22,11);printf("顾客:");gotoxy(22,14); printf("*********** 停车信息***********");gotoxy(23,15); printf("车牌号:");gotoxy(42,15); printf("时间:");gotoxy(23,17); printf("停车时长:");gotoxy(42,17); printf("收费:");}/*清屏函数*///更新对话框前将原对话晴空void qingping(int a){if(a==0) //清空小王的对话{gotoxy(28,8); printf(" ");gotoxy(28,9); printf(" ");gotoxy(28,8);}else if(a==1) //清空顾客的对话{gotoxy(28,11); printf(" ");gotoxy(28,12); printf(" ");gotoxy(28,13); printf(" ");gotoxy(28,11);}else //清空车辆信息{gotoxy(31,15); printf(" ");gotoxy(48,15); printf(" ");gotoxy(33,17); printf(" ");gotoxy(48,17); printf(" ");gotoxy(31,15);}}//用上下键移动选择int getkey(){char c;int x=28,y=11;while(1){gotoxy(x,11); printf(" ");gotoxy(x,12); printf(" ");gotoxy(x,13); printf(" ");gotoxy(x,y); printf(">>");c=getch();if(c==13) return y-10; //enter键返回当前选项if(c!=-32)continue; //不是方向键进行下次循环c=getch();if(c==72) if(y>11) y--; //上if(c==80) if(y<13) y++; //下}}//输入车辆信息CarNode getcarInfo(){PTime T;CarNode x;qingping(0); printf("请输入您的车牌号\n");qingping(1); printf("在下面输入车辆信息");qingping(2);scanf("%d",&(x.num));T=get_time();x.arrtime=*T;gotoxy(48,15); printf("%d:%d",x.arrtime.hour,x.arrtime.minute);getch();return x;}//打印停车场void printcar(){gotoxy(0,20); //╔ ╗╝╚═║printf("═══════════════════════════════════════╗");printf(" 出场暂放区║ 1 2 3 4 5 ║");printf("---------------------------------------------------------------------- ║");printf(" 主车道║");printf("---------------------------------------------------------------------- ║");printf(" 12 11 10 9 8 7 6 5 4 3 2 1 ║");printf("═══════════════════════════════════╗ ║");printf(" ↑ ╔══════════════╝ ║");printf(" 便道停车区→ ║ 1 2 3 4 5 ║");printf(" ╚══════════════════╝");printf(" 停车场管理日记\n\n");printf(" 时间车牌号进(1)/出(0) 车位(B便道P停车场) 收费(元) "); }//打印日记记录void printlog(Time t,int n,int io,char ab,int po,double f){jy++;gotoxy(jx,jy);// printf(" 时间车牌号进(1)/出(0) 车位(B便道P停车场) 收费(元) ");if(io==0)printf("/ %2.1f",f);gotoxy(jx,jy);printf(" / %d / %c:%d",io,ab,po);gotoxy(jx,jy);printf(" %d:%d / %d",t.hour,t.minute,n);}void printstop(int a,int num,int x0,int y0){static char *car="【█】";// int x0=0,y0=23;int x=0,y=28;if(a==0){x=(num+6)*6;for(;x0<72;x0++){gotoxy(x0,y0); printf("%s",car); Sleep(30);gotoxy(x0,y0); printf(" ");}for(;y0<y;y0++){gotoxy(x0,y0); printf("%s",car); Sleep(100);gotoxy(x0,y0); printf(" ");}for(;x0>x;x0--){gotoxy(x0,y0); printf("%s",car); Sleep(50);gotoxy(x0,y0); printf(" ");}gotoxy(x,y);printf("%s",car);}else{x=(12-num)*6;y=y-3;for(;x0<x;x0++){gotoxy(x0,y0); printf("%s",car); Sleep(30);gotoxy(x0,y0); printf(" ");}gotoxy(x,y);printf("%s",car);}}void printleave(int a,int po,int num){static char *car="【█】";int x0=0,y0=23;int x=0,y=28;int i;if(a==-1){x=(12-po)*6;y=y-3;gotoxy(x,y); printf(" ");gotoxy(x,y-2); printf("%s",car);Sleep(100);if(12>num){gotoxy((12-num)*6,y);printf(" ");}gotoxy(x,y); printf("%s",car);for(;x>x0;x--){gotoxy(x,y-2); printf("%s",car); Sleep(30);gotoxy(x,y-2); printf(" ");}}else{i=num+1;for(;num>po;num--){x=(num+6)*6; y=28;for(;x<72;x++){gotoxy(x,y); printf("%s",car); Sleep(30);gotoxy(x,y); printf(" ");}for(;y>21;y--){gotoxy(x,y); printf("%s",car); Sleep(50);gotoxy(x,y); printf(" ");}for(;x>(i-num+6)*6;x--){gotoxy(x,y); printf("%s",car); Sleep(30);gotoxy(x,y); printf(" ");}gotoxy(x,y); printf("%s",car);}x=(po+6)*6; y=28;for(;x<72;x++){gotoxy(x,y); printf("%s",car); Sleep(30);gotoxy(x,y); printf(" ");}for(;y>23;y--){gotoxy(x,y); printf("%s",car); Sleep(50);gotoxy(x,y); printf(" ");}for(;x>0;x--){gotoxy(x,y); printf("%s",car); Sleep(30);gotoxy(x,y); printf(" ");}num++;for(;i-num>0;num++){x=(i-num+6)*6; y=21;for(;x<72;x++){gotoxy(x,y); printf("%s",car); Sleep(30);gotoxy(x,y); printf(" ");}for(;y<28;y++){gotoxy(x,y); printf("%s",car); Sleep(50);gotoxy(x,y); printf(" ");}for(;x>(num-1+6)*6;x--){gotoxy(x,y); printf("%s",car); Sleep(30);gotoxy(x,y); printf(" ");}gotoxy(x,y); printf("%s",car);}if(a>0){x=66;y=25;gotoxy(x,y); printf(" ");gotoxy(x,y-2); printf("%s",car); Sleep(100);if(12>a){gotoxy((12-a)*6,y);printf(" ");}if(a>1){gotoxy(x,y); printf("%s",car);}printstop(0,i-1,x,y-2);}}}/************************************************************ main ********************************************************/int main(void){SqStackCar s1,s2; //停车栈和暂存栈LinkQueueCar p; //队列InitSeqStack(&s1);InitSeqStack(&s2);InitLinkQueue(&p);printf(" 停车场管理系统\n\n");printf("************************* 欢(=^_^=)迎***************************\n");printf(" 收费标准:基础费0.5元,每分钟收取0.05元,收费精确到0.1元\n");printf(" PS:车牌号由阿拉伯数字组成");panitPL();printcar(); gotoxy(0,-3);char c=0; //接受按键while(1) //按ESC退出系统{for(int i=2;i>-1 ;i--) //初始化对话框qingping(i);printf("按ESC退出系统,其它键开始对话");c=getch();if(c==Esc){qingping(0);break;}while(1){qingping(2);gotoxy(28,8); printf("欢迎来到停车场!我是管理员小王。
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
C语言课程设计报告题目:泊车管理系统学院:学号:姓名:指导教师:成绩:日期:《泊车管理系统》一、课程设计的目的与要求1.目的本课程设计是学生学习完《C语言程序设计》课程后,进行的一次全面的综合训练,通过课程设计,更好地掌握使用C语言进行程序设计的方法,加深对C语言特点和使用C语言进行程序设计开发过程的理解,加强动手能力。
其主要目的是:(1)进一步培养学生结构化程序设计的思想,加深对高级语言基本语言要素和控制结构的理解;(2)针对C语言中的重点和难点内容进行训练,独立完成有一定工作量的程序设计任务,同时强调好的程序设计风格。
(3)掌握C语言的编程技巧和上机调试程序的方法。
(4)掌握程序设计的常用算法。
2.要求:(1)要求从所给题目中任选若干个,每个学生必须独立完成课程设计,不能互相抄袭。
(2)设计完成后,对所完成的工作进行答辩。
(3)要求写出一份详细的课程设计报告。
(4)程序设计题目,须提交相应的程序,并需提供加注释的源程序,能正常运行。
二、开发环境1.硬件环境 : 机器型号:Hewlett-Packard Compaq Presario CQ40 Notebook PC内存配置:DDR2 SDRAM SO-DIMM 2.软件环境:操作系统:jdk1.5 + tomcat6 + mysql .开发工具:Microsoft Visual C++ 6.0三、题目描述及分析题目描述:本程序属于非数值计算型算法设计,学生需要设计出一个简单的泊车模拟系统所需要的基本功能,并设计简单的界面(无需图形化)。
假定有10个车位,汽车在到来的时候首先选择车位,然后记录当前停车的时间,在取车的时候再记录取车时间,根据停了多长时间来给出费用,本程序主要考察对自定义函数的熟悉程度,本程序中主要使用到的是数组的相关操作,包括数组的输入、输出、查找、插入、删除等操作,需要对数组有比较深入的掌握。
题目分析:(1)通过提示菜单选择可以进行的操作。
(2)本系统设计不存在需要存放的数据,因此不需要文件操作。
(3)本系统假设收费时间固定,假定每小时收费为5元(4)本停车场分为两个部分,一部分是停车位(10个),一部分是等候位(3个),所谓等候位就是目前停车场暂时全满,当有一辆车离开腾出一个停车位后,等候位的第一位用户就可以马上停车(5)等用户选择离开停车场后,根据停车时间给出停车费用(6)本系统主要包括的功能为:a)查看目前停车场的停车情况b)进入停车场,如果停车场满而等候位不满则可以提示用户是否要在等候位等候,如果用户选择是,则将该车辆放入等候位;如果停车场满而且等候位也满,则提示已无法停车。
用户在停车的时候需要选择要停靠的停车位,此时可以根据情况选择是否对输入的停车位正确性作判断,在停靠的时候需要输入牌照和停车位号码c)离开停车场,此时输入牌照,系统将计算费用并显示,同时查看等候位是否有车辆,如果有车辆则将等候位的第一辆车移入刚刚的车位,同时将等候位的其他车辆往前移,如果等候位没有车辆则将该停车位清空,需要对输入的牌照进行判断,如果输入错误应给出提示d)退出系统四、程序中使用函数说明situation():查看停车的情况parking() :停车的操作getting() :取车的操作exit() :退出系统clock() :时间函数,返回近似调用程序运行时间量的值,该值除以CLOCKS_PER_SEC 后转换为秒数。
(clock_t start[10]; clock_t end[10];则是应用的时间函数来计算时间。
)五、课程设计总结或结论经过这次泊车系统程序设计,让我对自定义函数有了更多的了解。
这次泊车系统主要运用了自定义函数,每一个自定义函数中又包括了顺序,选择,循环等结构,使我对这学期所学的编写程序的知识有了更多的认识,也更能熟练的运用。
数组的运用使泊车系统程序变的简明,也让我巩固了数组知识。
在这次程序设计中,还学会了运用时间函数去求时间,还有控制台的输出输入。
这一次完整的程序设计,让我全面的了解了程序设计,无论是从知识方面还是从实践方面,我都有所进步,也使我对程序设计有了更多的兴趣。
六、代码#include<stdio.h>#include<conio.h> //控制台输入,输出#include<time.h>void situation(); //停车情况void parking(); //停车void getting(); //取车void exit(); //退出系统clock_t start[10]; //时间开始clock_t end[10]; //时间结束int park[10]={0},wait[3]={0},sum=0;//车位数组,等待车位数组,总车位的和int select; //操作的选择void main(){do //主界面{printf("===========Welcome to Car Parking System==============\n");printf("1.Show Parking Situation\n");printf("2.Parking Car\n");printf("3.Getting Car\n");printf("4.Exit\n");printf("======================================================\n");printf("Please Select:");scanf("%d",&select);switch(select) //用户选择{case 1:situation();break;case 2:parking();break;case 3:getting();break;case 4:exit();break;}getch();}while(select>=1&&select<4);}void situation(){int i;printf("park area car number\n");for(i=0;i<10;i++){if(park[i]==0)printf("%d; no car\n",i); //没有停车的车位elseprintf("%d: %d\n",i,park[i]); //已停车的车位}printf("\n");}void parking(){int j,b,d;char c;if(sum==13) //是否总车位已满printf("No parking area!\n"); //既没有空余的车位也没有空余的等候车位else if(sum>=10) //是否有等候车位{printf("There are ten parking area!\n");printf("Now Left No Area!\n");printf("Do you want to wait?<Y/N>"); //是否想停入等候车位scanf("%c",&c); //输入Y或Nswitch(c){case 121: //停入等候车位{int m,h;printf("Please input car number:");scanf("%d",&h);for(m=0;m<3;m++){if(wait[m]==0){wait[m]=h;break;}}sum=sum+1;}case 110: //不停入等候车位printf("Thank you for using this system\n");printf("\n");select=4;break;}}else if(sum>=0&&sum<10) //有车位{printf("There are ten parking area!");printf("Now Left");for(j=0;j<10;j++) //空余车位{if(park[j]==0)printf("%d",j);}printf("Area!\n");printf("Which one do you want to park?");scanf("%d",&b); //输入停入的车位号if(park[b]!=0)printf("There is a car in this area!\n");else if(b<0||b>9){printf("No this parking area number!\n");}else{printf("Please input car number:"); //输入车牌号scanf("%d",&d);park[b]=d;start[b]=clock();sum=sum+1;}}printf("\n");}void getting(){int n,a;double t,money;printf("Please input you car number:");scanf("%d",&a);for(n=0;n<10;n++){if(park[n]==a){end[n]=clock();t=(end[n]-start[n])*1.0/CLOCKS_PER_SEC; //计算总共时间秒数money=t/3600*5; //需支付的钱数printf("You must pay %lf yuan\n",money);sum=sum-1;if(wait[0]!=0) //等候车位的第一位代替取走车得车位{park[n]=wait[0];int p;for(p=0;p<2;p++) //每个等候车位向前前进一个车位{wait[p]=wait[p+1];}wait[2]=0;}else{park[n]=0;}select=4;break;}}if(n==10)printf("Cannot find this car!\n"); //错误提醒printf("\n");}void exit(){printf("\n");}。