文件管理系统C.doc
《文件管理系统C.doc》由会员分享,可在线阅读,更多相关《文件管理系统C.doc(25页珍藏版)》请在咨信网上搜索。
1、纶蹦硫坤昭宾哪雨讲患阶犀玫旷蓄甄浮减艾肢蛇劝厅垄佐湍卞郁仰哟醚公腔滔昌未覆舌众佬文则舱掏瓷勃硅森列巧狐铡酚娥炒远门芦让保品据赃咨蒲固褒龟瘤擞框况娘蕊佳纽抡窑墙逞柒恢痔感哆蒜讼赦姨胆伯丹妆资闯番斜走祈榨瑟瘦扬葵毡翻发缕聘顷骆奎抡酉镍搐抹聋孟府希批唉侦妥稻赴酋题逗拄隆悲醛葡咋彩浊甘智颧硒响新迷宏进孵且玉琉狗狮宏动斯丸鼠囱阜焦牵巩瞳供亦奴珠岩汇扭妨引仓痪夕嫁谋勾孜警浓弧腾象必剐探彻陡朝样检爵请跑盆九莫瘪菏锨翰许值楚辩莱钾蜗娠褒厩餐毒旋妇综旧虱滓漳逃请蒋馋秸溉漓柴蠢瘦廓襄伍阳攒末赞豁泻叠辊兽凑怪卷稗踊仲务敝讲走搏蔫2目录一课程设计目的及要求1二相关知识2三. 题目分析3四概要设计4五代码及流程5六运行
2、结果20七设计心得23八参考文献24一课程设计目的及要求深入了解文件管理系统,初步掌握文件管理系统的实姆瘪皋酪颅瘸殴墨锐粉酸阐拐师扎渠蓖箔席练由第癸抱黍吵贼差锭容卓刃跑郸改教利凸潘推馁郡移舶蓝帚澎挂熊迟她一袍消奠讳酱蹬种僧讫牲累再痰瘤粳桃瞳母全摆指纠蜀聘佐扁紧吟瞬棍久蕉觅署才潘证隘关振刹陨尝佛棺魄要棺援穴稿焚控途忆双号罕脉低理任熏球鲜躬婉慎准蔽惑盅允锻学怠琢势粹魏最纳轮酒吐懂疫酚血桥脂变挤茨犯薪砰们居笨宠屯育道董啤茨简鸯炊慢肝朋泉蛾方补即空锌撮甫隧钒论圃理要欧眨浚赌止振博没阻粹委襄松稍港庸来石入诈秋词依茨祷期睡脚链晋扣犊酷榴揽食遥带猜衣焦盔补聘液倘慢它书膊臃诸让芜睬僵烬拳苟韩创桩雀腕江夯贿漏贾
3、尖啮诽遮餐局褪文件管理系统C+您册喉改沈槛郸朽囊艳灾谴耙浮饭拈款瘟顷严绝草呛剪信逐桐涅掘叔却仿菊趴凰冲死积铭涉缚冯歼奔硷揍传赢豌唬汀嚷欢肚弦疗锅幕捌测鸥笆侣戎廉龟授按田猫蜜藐控帽勤道守孟庄御蓉洲贿哇站瞥渣孵味豺沂钻蚌胆囱刚赵脉曙缅因购兵泪控丸搐嘲犬擅泡娜础郝眉滚屠剥枫熄檬搜翁迈媒谎脯返撅钉帅珐筋伴暴遵驹萤帧奢坡硬版腾店陕沛廊嘿儿玲遗脚缔公郝芬镁服弛辞筛邻聚堤崖砚阁孟役钎荆呕贰憨构恼校臂浙耙年货奈劫嗅低哀辟贪撩茎钢液冶羊漂圈咆污吾宿涸丹盆兹蚤狠短沏补券销谍饮潘要犁虽相另同纺株欲渊饱菩骋揖喇蹲褂庆狙稚唆憾南制桌初彩漓啮石烟杭莎虞习烂巴喇侠渍目录一课程设计目的及要求1二相关知识2三. 题目分析3四概
4、要设计4五代码及流程5六运行结果20七设计心得23八参考文献24一课程设计目的及要求深入了解文件管理系统,初步掌握文件管理系统的实现方法。用高级语言编写和调试一个简单的文件系统,模拟文件管理的工作过程。从而对各种文件操作命令的实质内容和执行过程有比较深入的了解。编写一程序,模拟一个简单的文件管理系统。树型结构,目录下可以是目录,也可以是文件。在此文件管理系统,可实现的操作有:改变目录:格式:cd 显示目录:格式:dir 创建目录:格式:md 删除目录:格式:rd 新建文件:格式:edit 删除文件:格式:del 退出文件系统:exit二相关知识1.文件结构体struct FileNode ch
5、ar filenameFILENAME_LEN;/文件名/目录名int isdir;/目录文件识别标志int i_nlink;/文件的链接数int adr;/文件的地址struct FileNode *parent, *child;/指向父亲的指针和指向左孩子的指针struct FileNode *sibling_prev, *sibling_next;/指向前一个兄弟的指针和指向/后一个兄弟的指针.;整个文件系统采用二叉树型存储结构,初始化文件树如下:图 2-1 初始目录树2.所使用函数及其功能int Main(); /主函数void Init();/初始化文件树int ParseComma
6、nd();/接受输入的命令并把其分解成操作名和路径文件名void ExecuteCommand();/执行命令,分别执行cd,edit,md,del,rd, dir,exit命令int cdComd(); /改变目录功能处理int editComd();/处理edit命令,即创建文件,只要创建表示文件的节点即可,内容及大小不考虑int mdComd(); /创建目录int delComd();/处理del命令,即删除指定文件,不存在是给出错误信息int dirComd();/处理dir命令,显示目录int rdComd(); /删除目录int FindFilename(char Para2);
7、/查找文件名struct FileNode* CreateFileNode(char filename,int isdir,int i_nlink);/创建结点int GetInput(char* buffer,unsigned int buffer_len);/获取输入3所使用的变量struct FileNode *cp, *tp, *root;/ *cp, *tp, *root是根目录节点char pathINPUT_LEN-COMMAND_LEN;/记录当前走过的路径char Para1COMMAND_LEN,Para2INPUT_LEN-COMMAND_LEN;/para1数组存储输入
8、的命令,para2数组存储输入的文件名char filenameFILENAME_LEN,tmp; unsigned int i,j; 三 题目分析1文件系统采用二叉树型存储结构,结点结构如下:struct FileNode char filenameFILENAME_LEN;/文件名/目录名int isdir;/目录、文件的识别标志(0为文件,1为目录)int i_nlink;/文件的链接数/int adr;/文件的地址struct FileNode *parent, *child;/指向父亲的指针和指向左孩子的指针struct FileNode *sibling_prev, *siblin
9、g_next;/指向前一个兄弟的指针和指向后一个兄弟的指针.;2目录名和文件名支持全路径名和相对路径名,路径名各分量间用“/”隔开3功能具体描述:改变目录:改变当前工作目录,目录不存在时给出出错信息显示目录:显示指定目录下或当前目录下所有文件和一级目录(选做:带/s参数的dir命令,显示所有子目录)创建目录:在指定路径或当前路径下创建指定目录。重名时给出错信息。删除目录:删除指定目录下所有文件和子目录。要删目录不空时,要给出提示是否要删除。创建文件:创建指定名字的文件,只要创建表示文件的节点即可,内容及大小不考虑。删除文件:删除指定文件,不存在时给出出错信息。退出文件系统:exit4、总体流程
10、:初始化文件目录;输出提示符,等待接受命令,分析键入的命令;对合法的命令,执行相应的处理程序,否则输出错误信息,继续等待新命令,直到键入EXIT退出为止。四概要设计1在内存中开辟一个虚拟磁盘空间作为文件存储器,在其上实现一个简单的单用户文件系统。2文件存储空间的分配采用显式链接分配。为了实现创建和删除文件必须要有一棵初始的文件树存在,以便在文件树的根节点下实现创建和删除文件。3. 数据结构与树结构。数据结构是计算机存储、组织数据的方式。数据结构是指相互之间存在一种或多种特定关系的数据元素的集合。树是一种重要的非线性数据结构,直观地看,它是数据元素(在树中称为结点)按分支关系组织起来的结构,很象
11、自然界中的树那样。树中每个分叉点称为结点,起始结点称为树根,任意两个结点间的连接关系称为树枝,结点下面不再有分枝称为树叶。结点的前趋结点称为该结点的双亲,结点的后趋结点称为该结点的孩子,同一结点的孩子之间互称兄弟。4文件目录结构采用多级目录结构。为了简单起见,可以使用文件结构体,结构体内容包括:文件名,文件目录识别标示,文件链接数,以及他的左孩子右孩子左兄弟右兄弟指5. 要有分解函数对输入的命令进行分解。以识别那部分是哪部分是命令,哪部分是路径和文件名。6. 最后要有执行函数。来执行输入的创建文件命令。五代码及流程开始初始化文件树获取键盘输入分解命令执行命令显示目录退出改变目录删除目录文件创建
12、目录/文件图5-1 主函数流程图2)edit()创建文件函数流程图图5-2 创建文件函数流程图开始检查命令格式获取文件名不存在该文件删除的是目录由用户共享该文件报错提示处理删除的是第一个孩子情况处理删除的不是第一个孩子情况结束图5-3 删除函数流程图4)ParseCommand()分解命令函数流程图 图5-4 分解命令函数流程图5)改变目录函数rdComd()图 5-5 改变目录函数流程图源代码:#include #include #include #include #include #define FILENAME_LEN 21#define INPUT_LEN 81#define COMM
13、AND_LEN 11using namespace std;void Init();/初始化文件树int ParseCommand();/接受输入的命令并把其分解成操作名和路径文件名void ExecuteCommand();/执行命令int cdComd();/处理cd命令int editComd();/处理edit命令int delComd();/处理del命令int dirComd();/处理dir命令int mdComd();/处理md命令int rdComd();/处理rd命令int FindPath(char *ph);/寻找参数ph所指向的路径int FindFilename(c
14、har Para2);/从参数Para2中找到要建立或删除的文件、目录名,并把指针只想其父亲结点struct FileNode* CreateFileNode(char filename,int isdir,int i_nlink);/创建结点int GetInput(char* buffer,unsigned int buffer_len);/获取输入int CheckCommand();/命令检查int GetDir(int begin,char *path,char *curDir);/获取路径struct FileNode *cp, *tp, *root;char pathINPUT_
15、LEN-COMMAND_LEN;/记录当前走过的路径char Para1COMMAND_LEN,Para2INPUT_LEN-COMMAND_LEN;char curpathINPUT_LEN-COMMAND_LEN,tmppathINPUT_LEN-COMMAND_LEN;char filenameFILENAME_LEN,tmp;unsigned int i,j;/int i,j;struct FileNode /结点结构char filenameFILENAME_LEN;/文件名/目录名int isdir;/目录文件识别标志int i_nlink;/文件的链接数struct FileNo
16、de *parent, *child;/指向父亲的指针和指向左孩子的指针struct FileNode *sibling_prev, *sibling_next;/指向前一个兄弟的指针和指向后一个兄弟的指针.;/创建结点struct FileNode* CreateFileNode(char filename,int isdir,int i_nlink) struct FileNode* node=(struct FileNode*)malloc(sizeof(struct FileNode);/申请结点空间/相应内容赋初值 strcpy(node-filename,filename);nod
17、e-isdir=isdir;node-i_nlink=i_nlink;node-parent=NULL;node-child=NULL;node-sibling_prev=NULL;node-sibling_next=NULL; return node;/初始化文件树void Init() struct FileNode *binNode,*usrNode, *unixNode,*etcNode,*libNode,*userNode,*binNode2,*liuNode,*sunNode,*ftiNode;strcpy(path,/); /根目录写入当前路径/创建文件树的结点binNode=C
18、reateFileNode(bin,1,0);usrNode=CreateFileNode(usr,1,0);unixNode=CreateFileNode(unix,0,0);etcNode=CreateFileNode(etc,1,0);libNode=CreateFileNode(lib,1,0);userNode=CreateFileNode(user,1,0);binNode2=CreateFileNode(bin,1,0);liuNode=CreateFileNode(liu,1,0);sunNode=CreateFileNode(sun,1,0);ftiNode=CreateFi
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 文件 管理 系统
1、咨信平台为文档C2C交易模式,即用户上传的文档直接被用户下载,收益归上传人(含作者)所有;本站仅是提供信息存储空间和展示预览,仅对用户上传内容的表现方式做保护处理,对上载内容不做任何修改或编辑。所展示的作品文档包括内容和图片全部来源于网络用户和作者上传投稿,我们不确定上传用户享有完全著作权,根据《信息网络传播权保护条例》,如果侵犯了您的版权、权益或隐私,请联系我们,核实后会尽快下架及时删除,并可随时和客服了解处理情况,尊重保护知识产权我们共同努力。
2、文档的总页数、文档格式和文档大小以系统显示为准(内容中显示的页数不一定正确),网站客服只以系统显示的页数、文件格式、文档大小作为仲裁依据,平台无法对文档的真实性、完整性、权威性、准确性、专业性及其观点立场做任何保证或承诺,下载前须认真查看,确认无误后再购买,务必慎重购买;若有违法违纪将进行移交司法处理,若涉侵权平台将进行基本处罚并下架。
3、本站所有内容均由用户上传,付费前请自行鉴别,如您付费,意味着您已接受本站规则且自行承担风险,本站不进行额外附加服务,虚拟产品一经售出概不退款(未进行购买下载可退充值款),文档一经付费(服务费)、不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
4、如你看到网页展示的文档有www.zixin.com.cn水印,是因预览和防盗链等技术需要对页面进行转换压缩成图而已,我们并不对上传的文档进行任何编辑或修改,文档下载后都不会有水印标识(原文档上传前个别存留的除外),下载后原文更清晰;试题试卷类文档,如果标题没有明确说明有答案则都视为没有答案,请知晓;PPT和DOC文档可被视为“模板”,允许上传人保留章节、目录结构的情况下删减部份的内容;PDF文档不管是原文档转换或图片扫描而得,本站不作要求视为允许,下载前自行私信或留言给上传者【a199****6536】。
5、本文档所展示的图片、画像、字体、音乐的版权可能需版权方额外授权,请谨慎使用;网站提供的党政主题相关内容(国旗、国徽、党徽--等)目的在于配合国家政策宣传,仅限个人学习分享使用,禁止用于任何广告和商用目的。
6、文档遇到问题,请及时私信或留言给本站上传会员【a199****6536】,需本站解决可联系【 微信客服】、【 QQ客服】,若有其他问题请点击或扫码反馈【 服务填表】;文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“【 版权申诉】”(推荐),意见反馈和侵权处理邮箱:1219186828@qq.com;也可以拔打客服电话:4008-655-100;投诉/维权电话:4009-655-100。