资源简介
内附详细课程设计文档,以及可运行代码,数据结构文件系统模拟器
代码片段和文件信息
#include
#include
#include
#include
using namespace std;
char msg[] =“/“;//声明字符串,后面调用,防止char*内存错误
struct TreeNode {//树节点
struct TreeNode *parent;//父指针
struct TreeNode *FirstChild;//第一个儿子指针
struct TreeNode *xiongdi;//兄弟指针
bool flag_file;//true表示文件,false表示目录
char fileName[100];//文件名
int depth;//深度
int size;//子文件数目
};
typedef struct TreeNode *Position;//为了使用方便
typedef struct TreeNode *Tree;
typedef struct TreeNode *ptr;
class CatalogTree;
void cd_Position(CatalogTree *a Position x);//根据位置寻找路径
void deletePtr(CatalogTree *a ptr t);//根据位置删除
class CatalogTree {
public:
TreeNode *root;
ptr currentPosition;
public:
CatalogTree();//构造函数
~CatalogTree() {//析构函数
deletePtr(this root);
};
void mkdir(char *name Position t);//创建目录
void mkfile(char *name Position t);//创建文件
void ListDir();//列出当前目录下的文件
void Delete(char *str);//删除文件或目录
void cd();//打印当前路径
void cdStr(char *str);//跳到指定路径
void cdPre();//跳到父路径
void save(char *filename);//将目录结构保存至文件
void load(char *filename);//将目录结构从文件载入
void ListDirToFile(Position D int Depth FILE *file);//从文件打印出目录结构
void size(char *dirName);//打印当前目录下的文件个数
};
CatalogTree::CatalogTree()
{ //构造方法
ptr m_root = (struct TreeNode*)malloc(sizeof(struct TreeNode));
m_root->FirstChild = NULL;
memset(m_root->fileName 0 sizeof(m_root->fileName));
m_root->fileName[0] = ‘/‘;
m_root->flag_file = false;
m_root->parent = NULL;
m_root->xiongdi = NULL;
m_root->size = 0;
root = m_root;
currentPosition = root;
};
void CatalogTree::size(char *dirName) {//打印出当前路径下某目录的文件数
Position t;
bool flag = false;
for (t = currentPosition->FirstChild; t != NULL; t = t->xiongdi) {
if (strcmp(t->fileName dirName) == 0) {
flag = true;
break;
}
}
if (strcmp(dirName “/“) == 0) flag = true;
if (flag == false) {
printf(“ 没有该目录或文件\n“);
return;
}
if (strcmp(dirName “/“) == 0)//打印根目录的文件数
printf(“size of %s : %d\n“ dirName root->size);
else
printf(“size of %s : %d\n“ dirName t->size);
}
void CatalogTree::ListDirToFile(Position D int Depth FILE *file)//从文件打印出目录结构
{
ptr temp;
if (D!=NULL) {
for (int i = 0; i < Depth; i++) {
fprintf(file “\t“);
}
if (D->flag_file == true) {
//printf(“%s .f\n“ D->fileName);
fprintf(file “%s .f\n“ D->fileName);
}
else {
//printf(“%s .d\n“ D->fileName);
fprintf(file “%s .d\n“ D->fileName);
}
if (D->flag_file == false)
for (temp = D->FirstChild; temp != NULL; temp = temp->xiongdi)
ListDirToFile(temp Depth + 1 file);
}
}
void CatalogTree::save(char *filename) {//将目录结构保存至文件
FILE* file = fopen(filename “w“);
if (file == NULL) {
printf(“ 文件打开失败\n“);
return;
}
ListDirToFile(this->root 0 file);//将目录结构存入文件
fclose(file);
//printf(“ 保存文件成功\n“);
}
void ListFileToTree(CatalogTree *T Position D char preDir[] int preDepth FI
属性 大小 日期 时间 名称
----------- --------- ---------- ----- ----
文件 14016 2018-06-17 12:07 文件系统模拟器\FileSystem.cpp
文件 1934557 2018-06-17 12:15 文件系统模拟器\FileSystem.exe
文件 608287 2018-06-17 12:14 文件系统模拟器\文件系统模拟器.docx
目录 0 2018-06-17 12:15 文件系统模拟器\
- 上一篇:邱关源电路4版pdf
- 下一篇:STM32F1驱动APDS9960识别手势
相关资源
- 数据结构期末复习+试卷--杭电
- 数据结构高一凡.
- 简易聊天工具计算机网络课设
- 信息管理系统 答辩ppt 课设,毕设
- 课设:中型载货汽车驱动桥设计 cat
- 中南大学 数据结构课程设计
- 数据结构代码
- 数据结构习题集
- 数据结构-游八套.doc
- 嵌入式图形界面计时器课设报告
- 数据结构典型题解析及自测试题
- 上海理工大学848数据结构操作系统2
- 目前最完整的数据结构1800题内含完整
- zw_qq_30612787-10390434-数字信号处理—课
- 数据结构1800题及答案
- 数据库课设——学生选课系统
- UML课设移动端公交车查询系统需求分
- 数据结构1800
- 数据结构课程设计报告(最小生成树
- 超详细的数据结构知识点-个人笔记
- 数据结构期末考试题目10套含答案
- 程序员代码面试指南+IT名企算法与数
- 机械设计二级减速器课设
- 山东大学操作系统课设实验报告.zip
- 网页制作课设论文及作品
- 整套软件工程课设文档和程序
- 《algorithm design》/《算法设计》的pd
- 吉林大学数据结构课设
- 数据结构教程扫描版 蔡子经、施伯乐
- 算法竞赛入门经典第2版.刘汝佳(带书
评论
共有 条评论