版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1、 24/29 学校代码: 学 号:课程设计题 目:文件系统的设计与实现学生某:学 院:系 别:计算机系 专 业:班 级:指导教师:某工业大学课程设计任务书(一)学院(系):信息学院计算机系课程名称:操作系统课程设计 指导教师(签名):专业班级: 软件工程 学生某: 学号:一、课程设计题目文件系统的设计与实现二、课程设计的目的通过设计一个小型文件系统,进一步掌握文件管理的方法和技术,使学生初步具有研究、设计、编制和调试操作系统模块的能力。三、课程设计的主要内容和要求(包括原始数据、技术参数、设计要求、工作量要求等) 原始数据:文件目录项结构体,盘块结构体。 技术参数:Windows XP系统,V
2、C+6.0开发工具。设计要求:设计基于位示图的文件连续分配算法;设计显示文件目录、建立文件、显示文件内容、复制和删除文件算法;画出以上算法流程图;编程实现算法功能;5编写课程设计说明书。工作量要求:完成以上设计要求中的所有算法功能。四、工作进度安排周四:布置、讲解题目,收集资料;周五:系统分析,算法设计;周一:编制、调试程序;周二:测试系统,形成设计结论,编写课设报告;周三:系统及材料验收,课设答辩。五、主要参考文献1X尧学编计算机操作系统教程(第三版)习题解答与实验指导:清华大学,20062 汤子瀛主编计算机操作系统(第三版)某:某电子科技大学,2001 3X坤等编操作系统实验教程:清华大学
3、,2008审核批准意见系(教研室)主任(签字)TOC o 1-3 h u 目 录 HYPERLINK l _Toc21645 第一章 设计内容 PAGEREF _Toc21645 1 HYPERLINK l _Toc31984 1.1系统环境 PAGEREF _Toc31984 1 HYPERLINK l _Toc12805 1.2设计目的 PAGEREF _Toc12805 1 HYPERLINK l _Toc19445 1.3程序设计思想 PAGEREF _Toc19445 1 HYPERLINK l _Toc18119 第二章 实现文件管理的数据结构 PAGEREF _Toc18119
4、2 HYPERLINK l _Toc24540 2.1数据结构 PAGEREF _Toc24540 2 HYPERLINK l _Toc3504 2.2 程序功能图 PAGEREF _Toc3504 2 HYPERLINK l _Toc6122 第三章 算法和算法流程图 PAGEREF _Toc6122 4 HYPERLINK l _Toc328 3.1整个系统的流程图 PAGEREF _Toc328 4 HYPERLINK l _Toc9084 3.2每个功能块的算法思想和流程图 PAGEREF _Toc9084 5 HYPERLINK l _Toc32419 3.2.1初始化盘块 PAGE
5、REF _Toc32419 5 HYPERLINK l _Toc20953 3.2.2用户选择功能 PAGEREF _Toc20953 5 HYPERLINK l _Toc27749 3.2.3显示文件目录 PAGEREF _Toc27749 5 HYPERLINK l _Toc22948 3.2.4创建文件 PAGEREF _Toc22948 5 HYPERLINK l _Toc12021 3.2.5显示文件内容 PAGEREF _Toc12021 6 HYPERLINK l _Toc7372 3.2.6复制文件 PAGEREF _Toc7372 7 HYPERLINK l _Toc3151
6、0 3.2.7删除文件 PAGEREF _Toc31510 7 HYPERLINK l _Toc21816 第四章 程序调试及运行情况 PAGEREF _Toc21816 8 HYPERLINK l _Toc25220 4.1初始化系统 PAGEREF _Toc25220 8 HYPERLINK l _Toc14199 4.2创建文件 PAGEREF _Toc14199 8 HYPERLINK l _Toc4683 4.3显示文件目录 PAGEREF _Toc4683 9 HYPERLINK l _Toc17463 4.4显示文件内容 PAGEREF _Toc17463 10 HYPERLIN
7、K l _Toc14570 4.5复制文件 PAGEREF _Toc14570 10 HYPERLINK l _Toc1632 4.6删除文件 PAGEREF _Toc1632 11 HYPERLINK l _Toc31363 4.7退出系统 PAGEREF _Toc31363 12 HYPERLINK l _Toc11000 第五章 课程设计出现的问题及解决的方法 PAGEREF _Toc11000 13 HYPERLINK l _Toc19372 第六章 课程设计的体会与自我评价总结 PAGEREF _Toc19372 14 HYPERLINK l _Toc2371 6.1课程设计的体会
8、PAGEREF _Toc2371 14 HYPERLINK l _Toc3994 6.2自我评价与总结 PAGEREF _Toc3994 14 HYPERLINK l _Toc9396 参考文献 PAGEREF _Toc9396 15 HYPERLINK l _Toc31925 附 录 PAGEREF _Toc31925 16 HYPERLINK l _Toc16308 程序清单 PAGEREF _Toc16308 16第一章 设计内容1.1系统环境工具:C语言。在WINDOWS环境下使用VC+进行编译及运行。 1.2设计目的通过设计一个小型文件系统,进一步掌握文件管理的方法和技术,使学生初步
9、具有研究、设计、编制和调试操作系统模块的能力。在任一OS下,建立一个大文件,把它假想成一X盘,在其中实现一个简单的小型文件系统。该文件系统没有子目录机制,文件连续分配,不考虑换“盘”和分区。做一个简单的操作界面,提供五条简单的命令:dir、mkfile、type、copy、delfile,分别用于显示文件目录、建立文件、显示文件内容、复制和删除一个文件。1.3程序设计思想参阅操作系统方面的书籍,了解操作系统的文件系统原理。结合分析课程设计要求,确定各个功能块以及它们之间的关系。详细设计三个功能块的具体实现,从而确定数据结构所包含的内容。通过构造这些实体的关系图,数据流图、程序流程图来进行具体的
10、设计。建立一个系统文件(模拟盘),并对此进行盘块的划分,第一个盘块存放文件目录,第二盘块存放盘块位示图,自第三个盘块开始存放各具体文件的内容,文件目录存放文件的名字,文件的扩展名,开始盘块号,所占用的盘块数目,文件的大小;盘块位示图用来标记盘块是否被占用。在具体编程之前,设计好每个功能块的具体实现方法,从而可以节省时间和精力,提高速率。第二章实现文件管理的数据结构 2.1数据结构设计该文件系统时,我用到了三个数据结构,分别是文件控制块FCB,盘块结构体和模拟盘块结构体,以下为三个数据结构的详细设计。/文件控制块typedef struct FCBchar name10;/文件名char ext
11、4;/扩展名int i;/开始块号int amount;/所用总块数long int size;/文件大小struct FCB *next;FCB;/盘块结构体struct empty /盘块结构体int map100; /盘块位示图 int filenum; /文件数量table; /模拟盘块的结构体(每个结构为一个盘块,共100个盘快)struct piecechar text2;/每个盘块的大小为2个字节piec200;2.2 程序功能图文件系统提供的文件操作具有显示文件目录,建立文件,显示文件内容,复制文件和删除文件五项功能,用户可以通过输入每个功能的选项来进入每个功能块,完成相应的功
12、能。如下为整个程序的功能图。图2.1程序功能图第三章算法和算法流程图 3.1整个系统的流程图文件系统提供的文件操作具有显示文件目录,建立文件,显示文件内容,复制文件和删除文件五项功能,用户可以通过输入每个功能的选项来进入每个功能块,完成相应的功能。开始初始化盘块输入命令分析命令有无该命令?显示错误信息创建文件显示目录显示内容复制文件删除文件有无执行命令结束图2.1系统流程图3.2每个功能块的算法思想和流程图3.2.1初始化盘块建立一个系统文件(模拟盘),并对此进行盘块的划分,第一个盘块存放文件目录,表示为table.map0=1;第二盘块存放盘块位示图,表示为table.map1=1,自第三个
13、盘块开始存放各具体文件的内容,用table.mapi=0表示盘块可用。文件系统自动进行初始化工作。 3.2.2用户选择功能创建一个友好界面void MainView(),清晰的列出各项功能块,用户通过输入选项进行功能选择,在主函数中调用switch语句,用case语句清晰的调用各个功能块。当用户输入错误信息时给予提示。用default:printf(输入错误,请重新输入!n);语句实现。3.2.3显示文件目录显示已经创建的文件的名字,文件的扩展名,开始盘块号,所占用的盘块数目,文件的大小。通过这个功能可以查询文件是否创建成功,是否复制成功,是否删除成功。3.2.4创建文件这个功能块是整个程序的
14、主要部分,每个盘块的字节为2,因此根据每个文件内容的大小应该合理的分配,避免造成文件内容的丢失,尤其是当又基数个字时,调用num=(strlen(tex)%2)?(strlen(tex)/2+1):(strlen(tex)/2)语句。同时,在创建文件时,由于该文件系统没有子目录机制,应该考虑文件重名的问题,通过if语句进行判断。整个文件系统是连续分配的,初始化point=2,从2号盘块开始连续存放,用for循环实现这个功能:for(int i=0;inext=p1-next删除。第四章程序调试及运行情况4.1初始化系统4.2创建文件4.3显示文件目录文件目录存放文件的名字,文件的扩展名,开始盘
15、块号,所占用的盘块数目,文件的大小4.4显示文件内容4.5复制文件通过显示文件目录,查看文件是否复制成功4.6删除文件通过显示文件目录,查看文件是否删除成功4.7退出系统第五章课程设计出现的问题及解决的方法1.在写个文件系统时,最难一点就是数据结构的表示方法,这是一个我们在大二学了数据结构以来,用到数据结构最全的,在做这个课程设计时,我们要不时的翻书来察看我们所需的知识点,在做的过程中,会不时的在结构体上再添加有关的内容,因为在第一次写的时候,还没有完全考虑好整个结构。2.由于一开始设计模型时过于简单,没有考虑文件重名的情况,导致在显示文件内容和删除文件时出现问题,因此在加入了判断文件重名的程
16、序段后很好的解决了这一问题。3.在编写主函数时,参照老师给出的程序段,利用switch语句,将每个功能块清晰的呈现出来。4.由于所设计的每个盘块的大小为两个字节,当创建文件的大小为奇数个数时,容易出现文件内容丢失的现象,添加如下这样的语句后可以避免文件内容丢失num=(strlen(tex)%2)?(strlen(tex)/2+1):(strlen(tex)/2);在通过运行实验时,或多或少的出现了很多问题,这些都是在通过调试,确定错误的根源,最后把错误都解决了。5.设计思想中提到,建立一个系统文件(模拟盘),并对此进行盘块的划分,第一个盘块存放文件目录,第二盘块存放盘块位示图,自第三个盘块开
17、始存放各具体文件的内容,通过如下程序段实现文件系统的初始化。void SystemInit() for(int i=2;i100;i+)table.mapi=0;/0表示盘快可用table.map0=1;/0号盘块被目录占用table.map1=1;/1号盘块被位示图占用 table.filenum=0;第六章课程设计的体会与自我评价总结6.1课程设计的体会课程设计是培养学生综合运用所学知识,发现,提出,分析,提出和解决实际问题,锻炼实践能力重要环节,是对学生实际工作能力的具体训练和考察过程,回顾起这次为期一个星期的操作系统课程设计,使我感慨颇多,从选题到分析,从理论到实践,在整整一个星期的日
18、子里,可以说是苦多于甜,但是可以学到很多很多的东西,同时不仅可以巩固以前学过的知识,而且学到了很多在书本上所没有学过的知识。通过这次课程设计使我懂得了理论和实践相结合是很重要的,只有理论知识是远远不够的,只有把所学的理论知识同实践相结合起来,从理论中得出结论,才能真正学以致用,从而提高自己实际动手能力和独立思考的能力。在设计中遇到的问题可以说是困难重重,期间遇到各种各样的问题,同时在设计过程中也发现了自己的不足之处,对以前所学过的知识理解不够深刻,掌握的不够牢固,通过这次课程设计之后,把以前所学过的知识重新温故了一遍。6.2自我评价与总结通过这次为期一周的操作系统课程设计,我从中收获了很多,同
19、时也发现了自己有很多的不足之处。在做一个系统设计时,在编程之前应该全面细致的了解题目,进行充分的理解,全面的设计,包括系统的每一个功能块都因做出详细的设计。否则,一边编程一边设计容易浪费时间与精力,打乱整个系统设计的思路。在写个文件系统时,数据结构的表示方法也是比较难掌握的,在做这个课程设计时,我要不时的翻书来察看我们所需的知识点,在做的过程中,会不时的在结构体上再添加有关的内容,因为在第一次写的时候,还没有完全考虑好整个结构。这周的课程设计从设计到最后书写实验报告,我学习到了许多书本上学习不到的知识,而且巩固了理论知识,将理论和实践结合起来,锻炼了自己独立思考的能力。同时,在完成这次操作系统
20、的课程设计中,发现自己掌握的知识远远不够,即使学习过的东西掌握的程度也不够。在今后的学习中更加努力的学习,弥补自己的不足。参考文献1 严蔚敏 吴伟民编数据结构C语言版:清华大学,20062 汤子瀛主编计算机操作系统(第三版)某:某电子科技大学,2001 3 X坤等编操作系统实验教程:清华大学,20084 X丽芬等编操作系统实验教程:清华大学,20065 Andrew S.Tanenbaum. Modern Operating Systems, Second Edition.Englewood Cliffs,N.J,Prentice Hall, 20016 屠祁等编.操作系统基础(第三版):清华
21、大学,20007 冯耀霖等编.操作系统.某:某电子科技大学,20018 左万历计算机操作系统教程(第二版):高等教育,2004附 录程序清单#include#includetypedef struct FCB/文件控制块char name10;/文件名char ext4;/扩展名int i;/开始块号int amount;/所用总块数long int size;/文件大小struct FCB *next;FCB;FCB *first,*end;/分别指向第一个和最后一个文件的FCBstruct emptyint map100;int filenum;table;/模拟盘快的结构体(每个结构为一
22、个盘块,共100个盘快)struct piecechar text2;/每个盘快的大小为2个字节piec200;int point=2;/顺序分配盘块时指示已分配到的盘块(因为0、1号盘块已被系统占用,所以从2开始)void MainView()printf(简单文件系统nn);printf(*输入0退出*n);printf(*输入1显示文件目录*n);printf(*输入2建立文件*n);printf(*输入3显示文件内容*n);printf(*输入4复制文件*n);printf(*输入5删除文件*nn);/初始化盘块void SystemInit() for(int i=2;inext;w
23、hile(p1!=NULL)if(strcmp(p1-name,name)=0)&(strcmp(p1-ext,ext)=0)printf(n文件重名,非法操作!n);return false;p1=p1-next;return true;/创建文件的函数void CreFile()int num;/临时存放所用块数char tex100;/临时存放文件内容FCB *p1;p1=new FCB;printf(请输入文件名:);scanf(%s,p1-name);printf(请输入扩展名:);scanf(%s,p1-ext);if(DeFileName(p1-name,p1-ext) prin
24、tf(请输入文件内容:); scanf(%s,tex); num=(strlen(tex)%2)?(strlen(tex)/2+1):(strlen(tex)/2); p1-amount=num; p1-i=point;for(int i=0;isize=strlen(tex)*sizeof(char);end-next=p1;end=p1;end-next=NULL;table.filenum+;printf(n文件创建成功!nn);/显示文件目录的函数void Display()FCB *p1;printf(文件名t初始块号t所占块数t文件大小n);p1=first-next;while(
25、p1!=NULL)printf(%s.%st%dt%dt%dn,p1-name,p1-ext,p1-i,p1-amount,p1-size);p1=p1-next;printf(nn);/显示文件内容的函数void ShowText()FCB *p1;p1=first-next;printf(系统现有文件如下: n);while(p1!=NULL)printf(%s.%sn,p1-name,p1-ext);p1=p1-next; char name10;char ext4;printf(请输入要查看的文件名:);scanf(%s,name);printf(请输入要查看的文件扩展名:);scan
26、f(%s,ext);p1=first-next;while(p1!=NULL)if(strcmp(p1-name,name)=0)&(strcmp(p1-ext,ext)=0)printf(n文件%s.%s的内容为:n,p1-name,p1-ext);for(int i=p1-i;ii+p1-amount);i+)/printf(%d,i);printf(%c,pieci.text0);printf(%c,pieci.text1);printf(nn);break;p1=p1-next;if(p1=NULL)printf(不存在此文件!n);/复制文件的函数void CopyFile()FCB
27、 *p1,*p2; char name10;char ext4;p1=first-next;printf(系统现有文件:n);while(p1!=NULL)printf(%s.%sn,p1-name,p1-ext);p1=p1-next;printf(n请输入要复制的文件名:);scanf(%s,name);printf(请输入要复制的文件扩展名:);scanf(%s,ext);p2=first-next;while(p2!=NULL)if(strcmp(p2-name,name)=0)&(strcmp(p2-ext,ext)=0)break;p2=p2-next; if(p2!=NULL)printf(请输入目标文件名:);scanf(%s,name);printf(请输入目标文件扩展名:);scanf(%s,ext);if(DeFileName(name,ext)p1=new FCB; strcpy(p1-name,name);strcpy(p1-ext,ext);p1-i=point;p1-amount=p2-amount;p1-size=p2-size;for(int i=p2-i;ii+p2-amount);i+)piecpoint.text0=pieci.text0;pie
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 2025年浙科版选择性必修3化学下册月考试卷
- 2025年浙科版选修6地理下册阶段测试试卷含答案
- 2025年人教A版九年级历史下册阶段测试试卷含答案
- 2025年岳麓版八年级地理下册阶段测试试卷含答案
- 2025年沪科版拓展型课程化学上册月考试卷
- 二零二五年度出口合同履约环节的知识产权侵权监测与应对合同3篇
- 2025年度生态环保型幕墙材料采购与施工合同4篇
- 2025年度车辆抵押贷款合同示范文本4篇
- 2025年度个人小额贷款合同签订流程详解4篇
- 二零二五版智能安防系统采购与安装合同4篇
- 中国末端执行器(灵巧手)行业市场发展态势及前景战略研判报告
- 北京离婚协议书(2篇)(2篇)
- 2025中国联通北京市分公司春季校园招聘高频重点提升(共500题)附带答案详解
- Samsung三星SMARTCAMERANX2000(20-50mm)中文说明书200
- 2024年药品质量信息管理制度(2篇)
- 2024年安徽省高考地理试卷真题(含答案逐题解析)
- 广东省广州市2024年中考数学真题试卷(含答案)
- 高中学校开学典礼方案
- 内审检查表完整版本
- 3级人工智能训练师(高级)国家职业技能鉴定考试题及答案
- 孤残儿童护理员技能鉴定考试题库(含答案)
评论
0/150
提交评论