资源预览内容
第1页 / 共20页
第2页 / 共20页
第3页 / 共20页
第4页 / 共20页
第5页 / 共20页
第6页 / 共20页
第7页 / 共20页
第8页 / 共20页
第9页 / 共20页
第10页 / 共20页
亲,该文档总共20页,到这儿已超出免费预览范围,如果喜欢就下载吧!
资源描述
1课程设计课程设计( (论文论文) )任务书任务书软件学院软件学院 学院软件工程软件工程 专业项目管理项目管理 061班一、课程设计(论文)题目简单文件管理系统的设计及实现简单文件管理系统的设计及实现 二、 课程设计(论文)工作自 20092009 年 1 1 月 5 5 日起至 20092009年 1 1 月 9 9日止。 三、课程设计(论文) 地点:15#52015#520 软件机房软件机房 四、课程设计(论文)内容要求: 1本课程设计的目的本课程设计的目的通过课程设计,使学生理论联系实际,在程序设计实践中进一步了解 操作系统的原理和算法的实现,了解设计系统时应考虑的因素。培养学生分析、解决问题的能力,提高学生的论文写作能力。2课程设计的任务及要求课程设计的任务及要求1)基本要求:)基本要求:(1)熟悉 C 语言的运用,掌握和理解操作系统中的原理和算法;(2)结合操作系统的基本原理,进行程序设计;(3)对操作系统的设计和实现有进一步认识和理解。2)课程设计论文编写要求)课程设计论文编写要求(1) 理论设计部分以课程设计论文的形式提交, 格式必须按照课程设 计论文标准格式进行书写和装订。(2)课程设计报告(论文)包括目录、设计目的和要求、正文(相关原理分析、 程序设计、 流程图、 程序实现和程序调试等内容) 、 设计小结、参考文献等。3)课程设计评分标准:)课程设计评分标准:(1)考勤与学习态度:20 分(2)理论理解与课程设计报告论文:30 分;(3)动手操作与程序设计:30 分;(4)设计论文答辩:20 分。4)参考文献:)参考文献:(1)汤子瀛. 计算机操作系统M. 西安电子科技大学出版社. 2006.95)课程设计进度安排)课程设计进度安排1准备阶段(2 学时) :选择设计题目、了解设计目的要求、查阅相2关资料2程序模块设计分析阶段(2 学时) :程序总体设计、详细设计3代码编写调试阶段(6 学时) :程序模块代码编写、调试、测试4撰写课程设计论文阶段(2 学时) :总结课程设计任务和设计内容, 撰写课程设计论文学生签名: 2009 年1月5日6)选择课程设计题目具体要求:)选择课程设计题目具体要求:根据文件系统的相关原理,设计并用 C 或 C+编程实现一个文件管理系统, 该文件系统可以对系统中所有文件进行管理, 同时具有创建新文件、删除文件、复制文件、创建文件夹,打开关闭文件等功能,需要设计一定的目录结构来管理文件的基本操作,设计相关文件结构来存储文件信息,考虑外存存储空间的管理。 基本的文件操作建议不要直接调用 Windows 系统功能,宜自行设计实现。课程设计课程设计( (论文论文) )评审意见评审意见(1)考勤与学习态度(20 分) :优() 、良() 、中() 、一般() 、 差() ;(2)理论理解与课程设计报告论文(30 分) :优() 、良() 、中() 、 一般() 、差() ;(3)动手操作与程序设计(30 分) :优() 、良() 、中() 、一般 () 、差() ;(4)设计论文答辩(20 分) :优() 、良() 、中() 、一般() 、 差() ;(5)格式规范性及考勤是否降等级:是() 、否()评阅人:职称:讲师 2009 年 1月日3目 录一:设计目的和要求4二;设计内容.5三:流程图.14四:程序实现.15五:程序调试.18六:设计小结19七:参考文献194一:设计目的和要求1设计目的:文件系统是操作系统顶层的模块,用户使用计算机时与之打 交道最多的就是文件系统,比如查找文件、打印文件内容、删除 文件、建立一个新的文件等。所谓文件系统实际上就是把用户操 作的抽象数据映射成为在计算机物理设备上存放的具体数据,并 提供数据访问的方法和结构。 具体来说,用户使用的抽象数据就是文件,通常的形式为流 式文件(如源程序)和记录式文件(如数据库文件) 。用户建立文 件时只需提供名字,然后给定具体内容就行了,这实际上是数据 的一种抽象结构;而具体存放在外存上的数据形式称之为文件的 物理组织,那是信息的最终存放形式,数据的这种物理结构用户 是无需了解的,这种结构只是更便于计算机数据的内部保存和操 作,在管理上效率更高。所以,文件系统对信息的抽象,它既为 用户提供了用户习惯的操作形式,也为系统内部的管理提供了数 据有效的访问和存储形式,它是这两种不同形式之间的桥梁。 文件系统是操作系统在计算机的硬盘上存储和检索数据的逻 辑方法,这些硬盘可以是本地驱动器、可以在网络上使用的卷或 存储区域物理上的导出共享。 目录是文件系统维护的特殊文件,它包含了一个项目列表。 对于用户来说,项目显示为一个文件并通过其符号项目名称(即 用户的文件名)来访问。项目名称只需要在它所在的目录中是唯 一的。2设计要求 在内存中开辟一个虚拟的磁盘空间作为文件存储器,在其上实 现一个简单的单用户文件系统。在退出这个文件系统时应将该文 件系统保存到磁盘上,以便下次可以再将它恢复到内存的虚拟磁 盘空间中。 要求提供以下操作: format: 对文件存储器进行格式化 exit:退出文件系统 craete: 创建文件 del:删除文件 open:打开文件5close: 关闭文件 write: 写文件 read:读文件 createdir: 用于创建子目录 deldir: 用于删除子目录 dir:用于显示当前目录的子目录 cd :更改当前目录 主函数主要调用了文件模块和目录模块用一个 if 语句来进 行功能的选择。当然在选择之前调用了初始化功能模块。在文 件模块下中有相应的文件操作, 选择文件操作是使用了 switch 语句,这样会一目了然。同样在目录模块下也有相应的目录操 作,也是使用了 switch 语句。这些具体操作是存放在一个二 维数组中,之所以使用二维数组是满足功能的不同组合,比如 可以在创建了目录下再创建文件。最后在运行是从键盘输入相 应的操作名称,系统会自动进行名称匹配。比如:create 就是 创建文件初,open 就是打开文件,deldir 就是删除子目录等 等。二:设计内容1、主要数据结构及算法 整个文件系统采用二叉树型存储结构,每一个结点的结构如下: struct FileNode char filenameFILENAME_LEN;/文件名/目录名 int isdir;/目录文件识别标志 int i_nlink;/文件的连接数 int adr;/文件的地址 struct FileNode *parent,*child; /指向父亲的指针和指向左孩子的指针 struct FileNode *sibling_prev,*sibling_next; /指向前一个兄弟的指针和指向后一个兄弟的指针 文件结构体如下: struct dir_entry char nameMAX_NAME;/文件名 #define MAX_NAME10 unsigned char attr;/文件属性6unsigned char fstblk; /文件所在的第一个块的块号 intfilesize;/文件大小 ; 文 件 的 属 性 有: ATTR_DIRECTORY( 表 示文 件 是 个目 录 ) , ATTR_FILE(普通文件),ATTR_READ(只读文件),ATTR_WRITE(可 写),ATTR_READ_WRITE(读写)。这些属性有些可以通过”|”运算 进行组合。2主函数 main() 功能:主函数主要采用 switch 选择语句,首先把模块分为两 大类,文件操作和目录操作,在文件操作模块中,有文件的基本 功能,在目录操作中,有目录的基本功能。 流程:先选择(1.文件操作 2. 目录操作)功能。接下来就是 调用 print_file()或者 print_direct()显示各自的具体功能表 在“Root”中选择合适的命令。以下图只是粗略的表达了思想, 在接下来的具体操作中有详细的设计图 1:主函数功能图73 以下是具体功能分析设计1).format()进行初始化 由于文件系统是虚拟在内存中的,所以操作相对较容易。这 里初始化 FAT 表。 定义了 item 和 em_disk 两个指针。 将它们置-1 和 1 来进行初始化. void format() int i; FILE *fp; fat = (struct fatitem *)(fdisk+DISKSIZE);/计算 FAT 表地址 /*-初始化 FAT 表-*/ fat0.item=-1;/*引导块*/ fat0.em_disk=1; for(i=1;i“; 这里的 bufferdir 为 chenxia 即在每次进行操作之前显示 “chenxia”提示用户输入操作。5输出函数 为了有一个良好的运行界面,一个可行性的输出函数是必要的。217在设计中我调用了系统的 API 句柄函数,在头文件也有定义 (#include /*句柄函数 API*/) void print() HANDLE hConsole; hConsole = GetStdHandle(STD_OUTPUT_HANDLE); SetConsoleTextAttribute(hConsole, 13); cout“*“endl; SetConsoleTextAttribute(hConsole, 177); cout “欢迎进入陈霞文件系统演示!”endl; SetConsoleTextAttribute(hConsole, 13); cout“*“endl; SetConsoleTextAttribute(hConsole, 10); cout“本系统提供以下接口命令:“endl; SetConsoleTextAttribute(hConsole, 158); cout“-“endl; SetConsoleTextAttribute(hConsole, 10); cout“1.文件操作(file)“endl; cout“2.目录操作(direct)“endl; SetConsoleTextAttribute(hConsole, 158);cout“-“endl; SetConsoleTextAttribute(hConsole, 10); 18五:程序调试19六:设计小结操作系统是最重要的计算机系统,同时也是最活跃的学科之 一,其发展极为迅速。操作系统是配制在计算机硬件上的第一层 软件,是对硬件的首次扩充。它在计算机系统中占据了特别重要 的地位,诸如汇编程序、编译程序、数据库管理等系统软件,以 及大量的应用软件,都依赖于操作系统的支持,取得它的服务。 文件系统是操作系统中数据信息抽象模块,因为是抽象,所 以对于开始的我来说也是摸不着头脑,后来通过查阅各种资料及 老师的视频以后,就稍微有所了解。它不仅提供给用户使用,也 提供给操作系统其他部分使用。在模拟的虚拟文件系统中,简化 了数据结构,但是目录和文件这些文件系统的关键数据结构在这 个课设中还是有所具体体现,尽管看上去简单。也花了将近 2 周 的时间准备,上网查资料,参考书籍以及观看视频。我知道这些 都是远远不够的,不过在短短两周能学到这些,作为文件系统
网站客服QQ:2055934822
金锄头文库版权所有
经营许可证:蜀ICP备13022795号 | 川公网安备 51140202000112号