网站大量收购独家精品文档,联系QQ:2885784924

[工学]数据结构 电梯模拟 文件目录管理与显示 校园导航.doc

[工学]数据结构 电梯模拟 文件目录管理与显示 校园导航.doc

  1. 1、本文档共54页,可阅读全部内容。
  2. 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
[工学]数据结构 电梯模拟 文件目录管理与显示 校园导航

数据结构课程设计 院系: 班级: 姓名: 学号: 题号:第二题 题目:电梯模拟 1、问题描述: 模拟某校九层教学楼的电梯系统。该楼有一个自动电梯,能在每层停留,其中第一层是大楼的进出层,即是电梯的“本垒层”,电梯“空闲”时,将来到该层候命。 电梯一共有七个状态,即正在开门(Opening)、已开门(Opened)、正在关门(Closing)、已关门(Closed)、等待(Waiting)、移动(Moving)、减速(Decelerate)。有人进出时,电梯每隔40t测试一次,若无人进出,则关门关门和开门各需要20t每个人进出电梯均需要25t电梯加速需要15t上升时,每一层需要51t,减速需要14t下降时,每一层需要61t,减速需要23t如果电梯在某层静止时间超过300t,则驶回1层候命。 … 创建时要检查同一路径下不能有同名的目录或文件名。 (3)设计文件和目录信息树的输出格式(以凹入表的形式显示)。 (4)查找指定目录和文件。 (5)添加新目录或新文件。 (6)删除指定目录或文件,子目录能够被删除的前提是其为空,既不包含任何子目录和文件;根目录不能删除。 (7)扩充目录或文件信息,如创建时间、读写权限、文件长度或子目录包含的子目录和文件数等。 (8)对同一层次下的子目录或文件按创建时间有序输出。 (9)通配符的使用。如用“?”代表任意一个字符,用“*”表示任意多个任意字符。 扩展内容: 实现相对路径表示法需求分析 本程序中要给出目录和文件信息,要求编程实现将其排列成一棵有一定缩进的树。设计文件和目录信息树的存储结构,从文件或键盘输入目录和文件信息,输入格式采用绝对路径法,创建时要检查同一路径下不能有同名的目录或文件名,设计文件和目录信息树的输出格式,查找、添加、删除指定目录和文件,子目录能够被删除的前提是其为空,既不包含任何子目录和文件;根目录不能删除,可以扩充目录或文件信息,可以对同一层次下的子目录或文件按创建时间有序输出,使用通配符等。 2、设计 2.1设计思想 (1)数据结构设计 在存储结构方法上,采用二叉链表法,为简化对目录或文件的称呼,以下统称为 结点。每个目录和文件都有基本信息,根据要求建立结构体,如下: struct info { bool flag; //0表示不可访问 1表示可访问 bool cf; //0代表目录 1代表文件 char name[20]; //文件名 char filetype[10]; //文件类型 creat_time time; //创建时间 info*parent; //指向上一层目录指针 info*firstchild; //指向下一层目录或文件指针 info*brother; //指向同一层相邻目录或文件指针 int n; //包含文件数 int cenci; //目录或文件所在的层次 int size; //文件的大小 }; info*root,*U;//root 不变 U 可变 创建时间用结构体建立 struct creat_time { int year; //年 int month; //月 int date; //日 }; 对目录进行函数封装 class content { public: content(){root=NULL;} // void rootcreat(); //创建根目录 void creat(info*); //创建子目录或文件 void DELETE(info*); //删除目录或文件本身 int Delete(info*); //删除目录或文件下面的所有项目 void unfold(info*); //显示该目录下一层目录和文件 info*locate(info*); //定位到指定目录或文件 void traverser(info*); //遍历显示树形目录 }; (2)算法设计 1. 创建根目录 S1.申请结点,输入基本信息; S2.所有指针置空; 2.结点创建 P 代表母结点 S1.判断所给结点是否为目录。不是,则给出失败信息; if(p-cf){cout不能在文件下添加!\n;return;} S2.查看是否在同一层有重名,若有,给出失败信息; S3.申请结点,完善基本信息; S4.结点父指针指向母目录; q-parent=p; S5 根据母目录确定是否为孩子或孩子兄弟成员,建立链接关系; if(!p-firstchild){p-firstchild=q;} else {p=p-firstchild; while (p-brother){p=p-brother;} p-brother=q;} cout添加成功!\n S

您可能关注的文档

文档评论(0)

seunk + 关注
实名认证
内容提供者

该用户很懒,什么也没介绍

1亿VIP精品文档

相关文档