- 1、本文档共58页,可阅读全部内容。
- 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
数据结构课程设计:电梯模拟
问题描述:
模拟某校九层教学楼的电梯系统。该楼有一个自动电梯,能在每层停留。九个楼层由下至上依次称为地下一层、第一层、第二层、……第八层,其中第一层是大楼的进出层,即是电梯的“本垒层”,电梯“空闲”时,将来到该层候命。
乘客可随时地进出于任何层。对于每个人来说,他有一个能容忍的最长等待时间,一旦等候电梯时间过长,他将放弃。
模拟时钟从0开始,时间单位为0.1秒。人和电梯的各种动作均要消耗一定的时间单位(简记为t),比如:有人进出时,电梯每隔40t检测一次,若无人进出,则关门;关门和开门各需要20t;每个人进出电梯均需要25t;如果电梯在某层精致时间超过300t,则驶回1层候命。
基本要求:
按时序显示系统状态的变化过程,即发生的全部人和电梯的动作序列。
需求分析:
(1)用系统计时,每当有新的动作要输入时要暂停计时,等输入完成后即可继续计时。
(2)输入各个动作,最后,输入完毕后,可以保存所有动作序列,并有序输出。
设计:
设计思想
(1)存储结构
根据问题描述,可采用单链表结构。
结点描述:
a[1000] mytime *next 事件内容 时间发生的时间 下一个事件指针
定义如下:
typedef struct Node
{
char a[1000];//信息
int mytime;//时间
struct Node *next;
}SLNode;
(2)基本思想
a.用 time.h 里面的clock()来计时,当有输入时,记录下开始输入的时间和结束输入的时间,之后就可以算出动作的时间了。
b.将各个动作发生的时间进行处理,算出每个事件的发生顺序和时间。
c.将各个数据插入链表,即可实现题目要求。
设计表示法
(1)过程或函数调用的关系图
main
yunxing
print
ListInsert
LinListSort
各个动作函数(n个)
ge)
ListInitiate
Destroy
(2)基于数据结构的操作组
主要在于yunxing()函数,它将各个时间动作处理成时间事件,并将事件插入到链表中。
(3)过程与接口规格说明
无
实现注释
未实现。
详细设计
无
调试分析
用户手册
测试结果
没有成功
源程序清单
#include stdio.h
#include stdlib.h
#include time.h
#include string.h
typedef struct //规定最大乘坐人数为13
{
int lc;//电梯所在楼层
int rs;//电梯中的人数
int men;//门的状态 0关1开(假设关了门时除了在第一层等人时之外,都在移动)
}dianti;
typedef struct
{
int rrsj;//一个人的容忍时间
int sz;//所在楼层
int md;//目的楼层
}man;
typedef struct Node
{
char a[1000];//信息
int mytime;//时间
struct Node *next;
}SLNode;
void ListInitiate(SLNode * * head)
{
if((*head = (SLNode * )malloc(sizeof(SLNode))) == NULL) exit(1);
( *head)-next = NULL;
}
int ListInsert(SLNode *head,int i,char a[1000],int t)
{
SLNode *p,*q;
int j;
p=head;
j=-1;
while(p-next!=NULL ji-1)
{
p=p-next;
j++;
}
if(j!=i-1)
{
printf(插入位置参数错!);
return 0;
}
if((q=(SLNode *)malloc(sizeof(SLNode))) == NULL) exit(1);
q-mytime = t;
strcpy(q-a,a);
q-next =p-next;
p-next =q;
return 1;
}
void LinListSort(SLNode *head)
{//用时间排序
SLNode *curr,*pre,*p,*q;
p=head-next;
head-next
您可能关注的文档
- 房地产开发经营行业税务管理指引.doc
- 房地产开发项目融资-ppt课件.ppt
- 房地产开发项目融资-ppt课件.ppt.ppt
- 房地产投资商融资秘诀外文翻译.doc
- 房地产成本控制论文项目成本控制论文.doc
- 房地产拓展客户与行销_图文.ppt
- 房地产拓展客户与行销图文.ppt
- 房地产法学教学大纲.doc
- 房地产拓展客户与行销图文.ppt.ppt
- 房地产类-写字楼物业管理委托合同.doc
- 岸基供电系统 第4部分:工频电源.pdf
- 人教版八下英语Unit 5 What were you doing when the rainstorm came_测试卷.docx
- 热带作物品种区域试验技术规程 木薯.pdf
- 草原防火阻隔带建设技术规程.pdf
- 渔用气胀救生筏技术要求和试验方法-.pdf
- 浙江省杭州市2024-2025学年八年级下学期期中考试英语试卷(含答案).docx
- 重庆市渝北区六校联盟2024-2025学年九年级下学期期中教学大练兵语文试卷.docx
- 食品安全-花椒籽油 (2).pdf
- 2025年海博思创分析报告:储能集成“小巨人”,国内外业务进展可期.pdf
- 地理标志产品 宽城板栗.pdf
最近下载
- 毕业设计(论文)-徐州某小区1#住宅楼工程工程量清单与招标控制价的编制.docx
- 南山森林抚育补贴试点项目作业设计.pdf VIP
- 2022年北京市自来水集团有限责任公司校园招聘考试笔试试题及答案解析.pdf VIP
- 全国《职业教育》专业知识(重点)考试题库(300题).docx
- 青春期男女生交往.pptx
- 北京市自来水集团有限责任公司校园招聘85人公开引进高层次人才和急需紧缺人才笔试参考题库答案详解版及参.docx VIP
- 物理专业英语词汇.pdf
- 简易装修合同电子版3篇 .pdf VIP
- 瓦楞纸箱印刷过程中的质量控制.pdf
- GB∕T 35379-2017 木门分类和通用技术要求(高清版).pdf
文档评论(0)