欢迎来到冰点文库! | 帮助中心 分享价值,成长自我!
冰点文库
全部分类
  • 临时分类>
  • IT计算机>
  • 经管营销>
  • 医药卫生>
  • 自然科学>
  • 农林牧渔>
  • 人文社科>
  • 工程科技>
  • PPT模板>
  • 求职职场>
  • 解决方案>
  • 总结汇报>
  • ImageVerifierCode 换一换
    首页 冰点文库 > 资源分类 > DOCX文档下载
    分享到微信 分享到微博 分享到QQ空间

    电脑存储结构设计与实现课程设计报告Word格式.docx

    • 资源ID:6547291       资源大小:578.94KB        全文页数:26页
    • 资源格式: DOCX        下载积分:3金币
    快捷下载 游客一键下载
    账号登录下载
    微信登录下载
    三方登录下载: 微信开放平台登录 QQ登录
    二维码
    微信扫一扫登录
    下载资源需要3金币
    邮箱/手机:
    温馨提示:
    快捷下载时,用户名和密码都是您填写的邮箱或者手机号,方便查询和重复下载(系统自动生成)。
    如填写123,账号就是123,密码也是123。
    支付方式: 支付宝    微信支付   
    验证码:   换一换

    加入VIP,免费下载
     
    账号:
    密码:
    验证码:   换一换
      忘记密码?
        
    友情提示
    2、PDF文件下载后,可能会被浏览器默认打开,此种情况可以点击浏览器菜单,保存网页到桌面,就可以正常下载了。
    3、本站不支持迅雷下载,请使用电脑自带的IE浏览器,或者360浏览器、谷歌浏览器下载即可。
    4、本站资源下载后的文档和图纸-无水印,预览文档经过压缩,下载后原文更清晰。
    5、试题试卷类文档,如果标题没有明确说明有答案则都视为没有答案,请知晓。

    电脑存储结构设计与实现课程设计报告Word格式.docx

    1、设计的流程图:程序中包含的各个功能函数的流程:首先是初始化函数:接着的是格式化函数:文件的添加函数:添加函数的开始部分需要判断flat是否等于1;来判断是否已经格式化。然后:文件的修改流程:文件的查询流程:四、运行示例及结果分析 图1 将硬盘进行初始化 图2 将硬盘进行格式化,分成了两个区c和d. 图3 在c区内添加文件夹1和2. 图4 查询硬盘中的文件,并且输出它的路径 图5 修改文件名以及文件的容量 图6 再次查询是否修改成功 图7 通过删除操作删除了文件夹1,仍可点击查询文件夹2五、调试和运行程序过程中产生的问题及采取的措施1、在进行编写输出路径函数的时候,最初的程序中添加了指针pare

    2、nt,但是这样编写起来觉得很复杂了,于是取消了这个指针,这时没办法找到双亲结点,Path功能无法实现,查找资料,得到了path函数。首先通过判断被查询结点的层数,然后利用for 循环中,从该层开始赋值到一个一维数组中,然后利用FindMother函数找到双亲结点,继续赋值给这个一维数组。最后,再通过for 循环将数组反向输出,则可得到路径的输出。2、由于每次运行一项选择之后,初始界面总是会再次的出现一遍,导致运行窗口显得杂乱,通过查询网上资料,得知使用头文件,可以使用system(“cls”);来进行清屏处理,显得整洁了不少,同时利用system(“pause”);也有效的使得在清屏前运行程序

    3、得到缓冲,不会一下子就进行清屏,让人反应不及。3、运行调试的时候经常会出现如下图的情况,这时候重新查看代码,一点点的修改,尤其是把一些有可能错误的代码先注释掉,然后换一种表达方式进行调试。这样能更好的快速找到错误的语句在哪里。六、总结这四天左右的课程设计可以说让我学到很多东西,而且也让我在实际操作中掌握了更多的课程知识。感觉用一两句真的是不能概括总结的。这已经是第二次的计算机课程设计了,同样是c语言的运用,大一时候的c语言还处于基础的阶段,现在这学期又学了不少的运用c语言编程的知识,包括链表,栈的建立,队列的使用,二叉树,图的编写等等,写程序能力进一步提高了些,但还是遇到了不少的问题。题目是电

    4、脑存储结构的设计与实现,是利用树来实现的,如果利用二叉树来做,显然这样每个文件夹里只能够添加两个文件,不合理,于是我采用了的是孩子兄弟链来实现程序的主体结构。同时在程序的初始阶段我也特别注意了在结构体中,添加了每个结点的所代表的文件或是文件夹的类型的判断,这样在每次添加新的结点的时候都可以判断是否为文件夹,是否可以继续添加结点,然而随着对于查询某一个结点的函数的编写,添加判断文件的类型,加大了难度,我只能舍弃了对于文件类型的判断,这算是整个程序的最大的缺陷了。不过,在编写别的函数的时候,也有很多的收获,比如对于递归函数的调用,好几个函数都是通过递归来实现的,这也大大加深了我对于递归调用的理解。

    5、尤其是查找双亲结点的递归调用,通过查找资料得到之后,理解后豁然开朗。在我看来,读懂递归程序不是难事,而递归调用的编写则是一大挑战,我在今后的学习中,要多多注意在这方面锻炼自己的编写能力。另外,在编写程序的时候的一大感受是千万不能够浮躁,看到别人编写完程序交作业,自己的心里就开始慌了,是不是做的不够好,怎么他这么快就完成了呢,这个一大忌。这种情况不要急躁,定下心来,钻研好自己的题目,把自己的做好,知道了与别人的差距就好,自己再继续努力就行。总之,我要努力,继续保持自己的信心,改进自己的不足,在这学期学习的基础和经验上,在下学期把知识好好领悟透彻,争取在以后的课程设计中有更大的进步!七、参考文献1

    6、 李建学等著.数据结构课程设计案例精编清华大学出版社(2007)2 唐宁九等主编数据结构与算法(C+版)实验和课程设计教程. 清华大学出版社,(2008)3谭浩强等编著 C语言教程 清华大学出版社 (2009年)程序如下:#include string.h#define MAX 30typedef struct Data char nameMAX; char typeMAX; int vol; ElemType;typedef struct tnode ElemType data; ElemType dateMAX; struct tnode *child; struct tnode *bro

    7、ther;TreeNode;int flat=0;void Display(TreeNode *q) printf(文件(夹)名:%sn,q-data.name);容量:%dndata.vol);int Generation(TreeNode *t,TreeNode *q) if(t=NULL) return 0; else if(strcmp(t-data.name,q-data.name)=0) return 1; if(Generation(t-brother,q)!=0) return Generation(t-brother,q); else if(Generation(t-chil

    8、d,q)! return (Generation(t-child,q)+1); else return 0; TreeNode *FindMother(TreeNode *t,TreeNode *q) TreeNode *p; if(t!=NULL) p=t-child; while (p!=NULL) if (p=q) return t; p=p-brother; p=FindMother(t-child,q); if(p! return p; else return FindMother(t- return NULL;TreeNode *FindNode(TreeNode *t,char

    9、name) return NULL; else if(strcmp(t-data.name,name)=0) return t; p=FindNode(t-child,name); return FindNode(t-brother,name);void Path(TreeNode *t,TreeNode *q) TreeNode *m; m=q; if(Generation(t,q)=0) printf(无路径!); int j; j=Generation(t,q); for(int i=1;idatei.name,FindMother(t,q)- q=FindMother(t,q);该文件

    10、(夹)路径为: for(i=j-1;i=1;i-) printf(%s-,t-datei.name);,m-void Create(TreeNode *&t) t=NULL; t=(TreeNode *)malloc(sizeof(TreeNode); if(flat=1)已经格式化了!n请输入主盘的名字: scanf(%s,&t- t-child=t-brother=NULL;硬盘初始化成功! system(pauseclsvoid CleNode(TreeNode *&t) TreeNode *pMAX,*q; int childnum; char name1MAX; if (flat=1

    11、)name1); q=FindNode(t,name1); while(q=NULL)不存在此盘,请重新输入: scanf(name); q=FindNode(t,name);请输入分区的数目:%dchildnum); for(int i=1;=childnum; pi=(TreeNode *)malloc(sizeof(TreeNode); pi-child=pi-请输入第%d个分区的信息:,i);卷名:pi-类型:data.type); if(i=1) q-child=pi; pi-1-brother=pi; flat=1;硬盘格式化成功!void Add(TreeNode *& if(f

    12、lat=0)t对不起,电脑硬盘还未格式化!nnn请输入需要添加到分区或文件夹的名称: while(q=NULL)不存在此文件,请重新输入: scanf( q=FindNode(t,name);请输入文件或文件夹的数目: pi=(TreeNode *)malloc(sizeof(TreeNode); pi-请输入第%d个文件或文件夹的信息:名字: if(i=1) q- pi-1-void change(TreeNode *t)硬盘还未进行格式化! TreeNode *q;请输入需要修改文件(夹)名: q=FindNode(t,name);不存在此文件(夹),请重新输入:请输入修改后的文件(夹)名

    13、为:q-请输入修改后的容量:void search(TreeNode *t)请输入你要查询的文件(夹)名:你要查询的文件(夹)的信息为: Display(q);你要查询的文件(夹)的路径为: Path(t,q);TreeNode * TreeFront(TreeNode *&t,char *name) if(t-brother!=NULL&child=NULL)brother-data.name,name) return TreeFront(t-child!brother=NULL)child-data.name,name)=0|strcmp(t- if(TreeFront(t-brother

    14、,name)=NULL)brother=NULL&void DelTreeNode(TreeNode *t) free(t); if(t- DelTreeNode(t-brother); DelTreeNode(t-child);void Delete(TreeNode *t) char name12;t请输入您要删除的文件(夹)名称:,name); TreeNode *p=FindNode(t,name); if(p=NULL)t该文件夹里无此文件(夹)!nn if(p=t) flat=0; if(p- DelTreeNode(p- TreeNode *q=TreeFront(t,name)

    15、; if(q-child=p) q-child=NULL; if(p- DelTreeNode(p- free(p); else DelTreeNode(p- child=p- free(p);brother=p- printf(t该文件夹信息已删除! system(void main() TreeNode *t; int n; while(1) 电脑存储结构设计与实现 n*n 1.硬盘初始化信息n 2.硬盘格式化n 3.文件或文件夹的添加n 4.文件或文件夹信息的修改n 5.文件或文件夹的查询n 6.文件或文件夹的删除n 0.退出nn请选择功能选项:n); switch(n) case 1: Create(t);break; case 2: CleNode(t); case 3: Add(t); case 4: change(t); case 5: search(t); case 6: Delete(t); case 0: return; default:printf(输入无效!重新输入!


    注意事项

    本文(电脑存储结构设计与实现课程设计报告Word格式.docx)为本站会员主动上传,冰点文库仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。 若此文所含内容侵犯了您的版权或隐私,请立即通知冰点文库(点击联系客服),我们立即给予删除!

    温馨提示:如果因为网速或其他原因下载失败请重新下载,重复下载不扣分。




    关于我们 - 网站声明 - 网站地图 - 资源地图 - 友情链接 - 网站客服 - 联系我们

    copyright@ 2008-2023 冰点文库 网站版权所有

    经营许可证编号:鄂ICP备19020893号-2


    收起
    展开