当前位置: 首页 > news >正文

电子政务网站课程设计山西教育学会网站建设

电子政务网站课程设计,山西教育学会网站建设,辽宁大连最新发布,北京文化馆设计公司哪种#x1f449;博__主#x1f448;#xff1a;米码收割机 #x1f449;技__能#x1f448;#xff1a;C/Python语言 #x1f449;专__注#x1f448;#xff1a;专注主流机器人、人工智能等相关领域的开发、测试技术。 系列文章目录 目录 系列文章目录一、设计要求二、设… 博__主米码收割机 技__能C/Python语言 专__注专注主流机器人、人工智能等相关领域的开发、测试技术。 系列文章目录 目录 系列文章目录一、设计要求二、设计思路1. 总体设计思路2. 数据结构设计2.1 定义车结构体Car2.2 定义停车场结构体Stack2.3 定义便道结构体Queue 3. 模块说明与代码3.1 初始化模块3.1.1 初始化栈3.1.2 初始化队列 3.2 判满/判空操作3.2.1 栈的判满与判空3.2.2 队列的判满与判空 3.3 基本数据操作3.3.1 栈操作入栈与出栈3.3.2 队列操作入队与出队 3.4 车辆到达处理模块3.5 车辆离开处理模块3.6 菜单与主函数3.6.1 显示菜单3.6.2 主函数 三、可视化分析 一、设计要求 一、停车场管理系统的设计与实现 1设计要求 1.1问题描述任务 设有一个可以停放n辆汽车的狭长停车场它只有一个大门可以供车辆进出。车辆按到达停车场时间的早晚依次从停车场最里面向大门口处停放最先到达的第一辆车放在停车场的最里面。如果停车场已放满n辆车则后来的车辆只能在停车场大门外的便道上等待一旦停车场内有车开走则排以便道上的第一辆车就进入停车场。停车场内如有某辆车要开走在它之后进入停车场的车都必须先退出停车场为它让路待其开出停车场后这些辆再依原来的次序进场。每辆车在离开停车场时都应根据它在停车场内停留的时间长短交费。如果停留在便道上的车未进停车场时允许其离去不收停车费并且仍然保持在便道上等待的车辆的次序。 1.2基本功能60~70分 要求程序输出每辆车到达后的停车位置停车场或便道上以及某辆车离开停车场应交纳的费用和它在停车场内停留的时间。 1.3建议拓展的功能20分 ①系统功能以菜单方式显示 ②车辆编号为字符型 ③设置屏幕字体颜色 ④单位时间收费值可以修改 二、设计思路 1. 总体设计思路 本系统模拟车辆进入停车场和在便道等待的管理情况主要思想包括 数据结构选择 用栈Stack来模拟停车场。停车场遵循先进后出LIFO原则当车离开时需要将后进车辆先弹出才能找到目标车辆然后再将中间车辆重新入栈。用循环队列Queue来模拟便道的等待队列。便道按照先进先出FIFO管理等待车辆可以依次进入停车场。 基本操作 车辆到达当车辆到达系统时若停车场未满则直接进入停车场否则车辆进入便道等待。车辆离开车辆在离开停车场时需要先从停车场中找到目标车辆计算费用并将临时存放的非目标车辆依次恢复入栈。同时便道队列中的第一辆车会进入停车场。收费设置系统支持修改每单位时间的收费标准。 菜单驱动 系统通过文本菜单与用户交互用户可选择车辆到达、车辆离开、修改收费值及退出系统。 2. 数据结构设计 2.1 定义车结构体Car 车的基本信息包括车牌号、到达时间和离开时间。 代码如下 typedef struct {char id[10]; // 车牌号int arrive_time; // 到达时间int leave_time; // 离开时间 } Car;2.2 定义停车场结构体Stack 使用栈结构模拟停车场数组保存车信息top 表示栈顶指针。 代码如下 #define MAX_CAR 10 // 定义停车场最大车位数typedef struct {Car cars[MAX_CAR];int top; } Stack;2.3 定义便道结构体Queue 采用循环队列模拟便道。数组存放等待车辆front、rear 分别为队头和队尾指针。 代码如下 #define MAX_WAIT 10 // 定义便道最大等待车位数typedef struct {Car cars[MAX_WAIT];int front;int rear; } Queue;3. 模块说明与代码 3.1 初始化模块 3.1.1 初始化栈 初始化时将 top 设为 -1表示栈为空。 void initStack(Stack *s) {s-top -1; }3.1.2 初始化队列 初始化队列时将 front 和 rear 都设置为 0。 void initQueue(Queue *q) {q-front q-rear 0; }3.2 判满/判空操作 3.2.1 栈的判满与判空 栈满判断当 top 达到 MAX_CAR - 1 时表示停车场已满栈空判断top 的值为 -1 时表示停车场为空 int isStackFull(Stack *s) {return s-top MAX_CAR - 1; }int isStackEmpty(Stack *s) {return s-top -1; }3.2.2 队列的判满与判空 队列满判断利用循环队列当 (rear 1) % MAX_WAIT front 时队列满队列空判断当 rear front 时队列为空 int isQueueFull(Queue *q) {return (q-rear 1) % MAX_WAIT q-front; }int isQueueEmpty(Queue *q) {return q-rear q-front; }3.3 基本数据操作 3.3.1 栈操作入栈与出栈 入栈在栈不满时将车辆数据存入数组并更新 top出栈在栈不空时从栈顶弹出车辆数据并将 top 减 1 void pushStack(Stack *s, Car car) {if (isStackFull(s)) {printf(停车场已满\n);return;}s-cars[s-top] car; }Car popStack(Stack *s) {if (isStackEmpty(s)) {printf(停车场为空\n);Car empty_car {, -1, -1};return empty_car;}return s-cars[s-top--]; }3.3.2 队列操作入队与出队 入队在队列未满时将车辆添加到 rear 处并更新队尾出队在队列非空时从 front 处取出车辆并更新队头 void enqueue(Queue *q, Car car) {if (isQueueFull(q)) {printf(便道已满\n);return;}q-cars[q-rear] car;q-rear (q-rear 1) % MAX_WAIT; }// 此处省略20行代码}Car car q-cars[q-front];q-front (q-front 1) % MAX_WAIT;return car; }3.4 车辆到达处理模块 当车辆到达时首先构造车辆记录包括车牌、到达时间及初始化离开时间然后判断停车场是否有空位 如果停车场满则将车辆加入便道队列否则直接入栈到停车场。 void carArrival(Stack *parking, Queue *waiting, char *id, int time) {Car car;strcpy(car.id, id); // 设置车牌号car.arrive_time time; // 设置到达时间car.leave_time -1; // 初始化离开时间if (isStackFull(parking)) {enqueue(waiting, car); // 停车场满将车加入便道printf(车牌号%s的车停在便道上\n, id);} else {pushStack(parking, car); // 停车场未满将车推入停车场printf(车牌号%s的车停在停车场内\n, id);} }3.5 车辆离开处理模块 当车辆离开时需要从停车场中找到目标车辆因此需要使用一个临时栈辅助 从停车场栈中依次弹出车辆直到找到目标车辆。找到车辆后设置离开时间并计算停车持续时间及费用。将临时栈中暂时移出的车辆重新推入停车场以保持原有顺序。如果便道有等待车辆则将便道队首的车辆进入停车场并更新其到达时间为当前离开的时间。 void carDeparture(Stack *parking, Queue *waiting, char *id, int time, int fee_per_unit) {Stack temp_stack;initStack(temp_stack); // 初始化临时栈Car car;int found 0;// 从停车场中寻找要离开的车while (!isStackEmpty(parking)) {car popStack(parking);if (strcmp(car.id, id) 0) {found 1;car.leave_time time; // 设置离开时间break;// 此处省略20行代码printf(车牌号%s的车从便道进入停车场\n, next_car.id);}} }3.6 菜单与主函数 3.6.1 显示菜单 菜单函数将显示系统支持的操作选项包括车辆到达、离开、修改收费值以及退出系统。 void displayMenu() {printf(\n停车场管理系统\n);printf(1. 车辆到达\n);printf(2. 车辆离开\n);printf(3. 修改收费值\n);printf(4. 退出系统\n);printf(请选择操作: ); }3.6.2 主函数 在 main() 函数中首先初始化停车场和便道数据结构然后进入菜单循环根据用户选择调用相应模块最后程序退出。 int main() {Stack parking;Queue waiting;initStack(parking); // 初始化停车场栈initQueue(waiting); // 初始化便道队列int fee_per_unit 2; // 每单位时间收费值int choice;char id[10];int time;// 主循环显示菜单并处理用户选择while (1) {displayMenu();scanf(%d, choice);switch (choice) {case 1:printf(请输入车牌号: );scanf(%s, id); // 输入车牌号printf(请输入到达时间: );// 此处省略20行代码default:printf(无效的选择请重新输入\n);}}return 0; }三、可视化分析
http://www.w-s-a.com/news/22125/

相关文章:

  • p2p网站建设公司排名成都装饰公司
  • 网站被k怎么恢复wordpress缓存类
  • 做外贸有哪些网站平台最近文章 wordpress
  • joomla网站模板一个人做网站的swot
  • 南京建设网站需要多少钱深圳专业网站建设制作价格
  • 天河建网站装修公司线上推广方式
  • 超市网站怎么做的目前最流行的拓客方法
  • 做文字logo的网站贵阳商城网站开发
  • 沧州有没有做网站的中国建筑设计
  • 建设网站 系统占用空间在线代理浏览网站
  • 做海报有什么参考的网站网站建设验收合同
  • 酒店网站制作wordpress文章评论设置
  • 造一个官方网站wordpress mysql类
  • 怎么做卡商网站河南做网站找谁
  • 网站建设招标方案模板上线啦 图谱智能网站
  • 龙口网站建设公司哪家好wordpress 上传类型
  • 做外贸主要看什么网站服务平台的宗旨
  • 宜昌营销型网站购买网站
  • 如何查询网站建设时间wordpress 框架解析
  • 网站建设年终总结网站建设公司顺义
  • 网页给别人做的 网站后续收费吗获取更多付费流量
  • 金融交易网站建设金融 网站建设
  • 长沙网站建设联系电话怎么做表格
  • 网站怎么做域名实名认证龙华网站 建设信科网络
  • 企业网站规划方案网站是做排行榜
  • 万维网网站个人申请网站
  • 我想做网站怎么做昆山网站建设 全是乱码
  • 单位做网站怎么做圣诞树html网页代码
  • 网页开发与网站开发企业网站托管服务常用指南
  • 一站式服务图片临沂做进销存网站