预览加载中,请您耐心等待几秒...
1/10
2/10
3/10
4/10
5/10
6/10
7/10
8/10
9/10
10/10

亲,该文档总共21页,到这已经超出免费预览范围,如果喜欢就直接下载吧~

如果您无法下载资料,请参考说明:

1、部分资料下载需要金币,请确保您的账户上有足够的金币

2、已购买过的文档,再次下载不重复扣费

3、资料包下载后请先用软件解压,在使用对应软件打开

PAGE\*MERGEFORMAT21 《数据结构》 课程设计报告 课题名称:电脑存储结构设计与实现 一、课题名称 电脑存储结构的设计与实现 二、主要内容 电脑存储结构设计与实现主要是模拟“我的电脑”中硬盘信息的建立、查找、插入、修改、删除等功能。可。基本功能如下: (1)硬盘初始化信息:我的电脑(根结点)。 (2)硬盘格式化:为我的电脑分区,分区的个数由后台终端输入决定,每个硬盘分区信息包括卷名、文件系统类型、容量等。 (3)文件或文件夹的添加:即创建某个分区的孩子结点信息(文件(夹)),孩子结点的数目由控制台端给出,信息包括文件(夹)名,文件(夹)大小,所有文件(夹)的文件名此处不能重复。创建好的文件夹中还能创建其孩子结点信息(文件(夹))。 (4)文件或文件夹信息的修改:可以修改某一文件或文件夹的信息,包括名字和大小。 (5)文件或文件夹的查询:查询某一文件或文件夹的具体路径。(从我的电脑开始) (6)文件或文件夹的删除:删除此文件,如果是文件夹,若其有后代,将删除其所有后代成员(文件或文件夹)。 三、课题设计的基本思想,原理和算法描述 首先,设计的电脑存储结构是一个非线性结构,因此不能用线性结构来做,要用树或是图。而,文件与文件之间的关系是一对多,所以,用树结构来描述。 在确定了使用树结构之后,接着就是设计函数以及函数的各功能的实现了。 然后,基本思路为:1、总程序包含了三个部分,有头文件,各个功能函数和主函数。头文件包含的是函数的外部声明,结构体的定义,以及符号常量的定义。各个功能函数就是通过设计代码,实现程序所需的各个功能的实现。主函数用于设计显示界面和调用各个功能函数。 接着,根据题目要求可知,需要实现的功能函数包括创建结点函数,查找函数,添加函数,修改函数和删除函数。 设计的流程图: 登陆界面 初始化我的电脑 格式化我的电脑 添加文件,查询文件路径,删除文件等操作 退出程序 程序中包含的各个功能函数的流程: 首先是初始化函数: 赋予初始化空间 输入初始化的主盘的名字 初始化成功 接着的是格式化函数: 输入需要添加的主盘名 判断是否存在该主盘 存在 输入分盘的数目以及名称等(for循环) 不存在 格式化成功! 文件的添加函数: 添加函数的开始部分需要判断flat是否等于1;来判断是否已经格式化。然后: 输入需要添加的文件的文件夹 判断是否已存在 存在 不存在 通过for循环,输入添加的各个文件信息 添加成功! 文件的修改流程: 输入需要修改的文件夹名 判断是否存在该文件夹 存在 不存在 输入修改后的文件夹名 修改成功! 文件的查询流程: 输入需要查询的文件夹 判断是否存在该文件夹 存在 不存在 输出所查询的文件信息与路径 四、运行示例及结果分析 图1将硬盘进行初始化 图2将硬盘进行格式化,分成了两个区c和d. 图3在c区内添加文件夹1和2. 图4查询硬盘中的文件,并且输出它的路径 图5修改文件名以及文件的容量 图6再次查询是否修改成功 图7通过删除操作删除了文件夹1,仍可点击查询文件夹2 五、调试和运行程序过程中产生的问题及采取的措施 1、在进行编写输出路径函数的时候,最初的程序中添加了指针parent,但是这样编写起来觉得很复杂了,于是取消了这个指针,这时没办法找到双亲结点,Path功能无法实现,查找资料,得到了path函数。首先通过判断被查询结点的层数,然后利用for循环中,从该层开始赋值到一个一维数组中,然后利用FindMother函数找到双亲结点,继续赋值给这个一维数组。最后,再通过for循环将数组反向输出,则可得到路径的输出。 2、由于每次运行一项选择之后,初始界面总是会再次的出现一遍,导致运行窗口显得杂乱,通过查询网上资料,得知使用头文件<stdlib.h>,可以使用system(“cls”);来进行清屏处理,显得整洁了不少,同时利用system(“pause”);也有效的使得在清屏前运行程序得到缓冲,不会一下子就进行清屏,让人反应不及。 3、运行调试的时候经常会出现如下图的情况,这时候重新查看代码,一点点的修改,尤其是把一些有可能错误的代码先注释掉,然后换一种表达方式进行调试。这样能更好的快速找到错误的语句在哪里。 六、总结 这四天左右的课程设计可以说让我学到很多东西,而且也让我在实际操作中掌握了更多的课程知识。感觉用一两句真的是不能概括总结的。 这已经是第二次的计算机课程设计了,同样是c语言的运用,大一时候的c语言还处于基础的阶段,现在这学期又学了不少的运用c语言编程的知识,包括链表,栈的建立,队列的使用,二叉树,图的编写等等,写程序能力进一步提高了些,但还是遇到了不少的问题。 题目是电脑存储结构的设计与实现,是利用树来实现