文档介绍:《面向对象程序设计与C++》
课程设计
题目:文件管理系统
院、系: 计算机信息与技术
学科专业: 计算机科学与技术
学号:
学生姓名:
指导教师:
2011年12月12日
目录
一. 目的 3
二. 总体介绍 3
三. 详细介绍 3
四. 功能测试及运行效果 3
五. 设计体会及小结 3
六. 参考文献 3
中文摘要
本课程设计将实现一个文件管理系统。这个文件管理系统能实现对文件增、删、查、改等基本的文件的操作。
在课程设计中,采用了g++编译器。在程序设计中,采用了结构化与面向对象两种解决问题方法。结构化的思想主要应用在划分功能模块上,而面向对象的思想主要应用在把所有的属性和方法封装起来,以备各模块的调用,这样做的目的是为了让整个程序的结构清晰、体系完整,便于维护。
目的
此次课程设计的目的是用C++程序设计语言编写一个文件管理系统,这个文件管理系统需要实现一下几项目标:
角度
目标
程序功能
创建目录
删除目录
显示当前目录
进入任意目录
查看当前路径
打开子目录
创建文件
删除文件
读文件
写文件
复制文件(文件另存为)
查找文件中符合条件的内容
重命名文件或目录
显示文件属性
用户
操作简单,更需要简洁。有助于提高工作效率。
程序代码
层次、结构清晰,给用户功能的扩展留下空间,便于维护。
程序的整个操作均匀性命令行界面,所有的操作都可在任意目录下进行,可提供进入到任意目录的命令以实现全磁盘的文件管理。
总体介绍
我们先构造一个file_cls类,用于封装对文件的增,删,改,查等操作和管理。主要涉及到的操作有:文件的增删改查,查看文件属性,文件的重命名,复制文件,查找文件内容等常用的文件操作。这些常用的文件操作主要用于派生出其它建立在此基础之上的更为高级的操作类。这样的功能和操作层次分明的设计能使程序的结构层次更为清晰、紧密。
dir类公有继承了file_cls,在file_cls累的基础之上进行了功能上的扩展与增强。主要的操作为:对目录的增删改查,以及对目录下的文件以及子目录的所有操作,dir类被声明为info和dirlnk的友元类。info类用于存放目录及文件夹的详细信息,dirlnk类用于存放目录及文件夹的名字并将它们用链表的结构存储,以便检索。以下是整个程序的uml结构图:
file_cls
-fd:int
-f_name:string
-content:string
-file_stat:struct stat
+file_cls(string &name)
+file_cls()
+file_cls(file_cls &f)
+virtual ~file_cls()
+create_file():int
+read_file():void
+write_file():void
+delete_file():void
+get_file_detail():void
+ re_name():void
<<friend>>+ copy1(char *file1, char *file2):void
<<friend>>
dir
-cur_path[1024] :char
-dir_name:string
+dir()
+dir(string &name)
+cd_dir(string path_dir): void
+create_child_dir(): void
+del_child_dir():void
+get_dir_detail():void
+get_path():void
dirlnk
+ _name[256]:char d
+ next:class dirlnk*
info
+inode:unsigned long
<<friend>>
+permission[11]: char
+size:off_t
+mod_time:time_t
+name[256]:char
详细介绍
现在,我们依照总体介绍里的框架进行详细叙述。
file_cls类的实现:
:
file_cls(){}
file_cls类的构造函数,没有定义,当创建一个该类的对象是,表明开始了文件的操作。
file_cls :: ~file_cls(){
close(fd);
}
file_cls类的析构函数是用于结束对文件的操作时关闭该文件的任何输入与输出操作。从而达到保护文件的数据完整性的功能。
:
创建文件
int file_cls :: create_file() {
s