




已阅读5页,还剩8页未读, 继续免费阅读
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
某某大学课程设计报告课程名称: 操作系统课程设计设计题目: 模拟实现文件系统 系 别: 计算机系 专 业: 计算机科学与技术 组 别: 学生姓名: 学 号: 起止日期: 指导教师: 11目 录目 录0第一章 需求分析11.1 课程设计题目11.2 课程任务及要求11.3课程设计思想:11.4软硬件运行环境及开发工具:2第二章 概要设计32.1流程图32.2用到的原理3第三章 详细设计4第四章 调试与操作说明94.1用户登陆界面94.2创建文件界面94.3删除文件界面104.4退出界面10第五章 课程设计总结与体会10第六章 致谢11第七章 参考文献11第一章 需求分析1.1 课程设计题目 课程设计题目:模拟实现文件系统1.2 课程任务及要求要求:实现文件的建立、打开、删除、关闭、复制、读、写、查询等功能给出实现方案(包括数据结构和模块说明等)画出程序的基本结构框图和流程图分析说明每一部分程序的设计思路实现源代码按期提交完整的程序代码和可执行程序根据要求完成课程设计报告总结1.3课程设计思想: 模拟实现文件系统问题是一个经典的关于文件的处理问题,包括:实现文件的建立、打开、删除、关闭、复制、读、写、查询等功能。设计思想如下:1 在内存中开辟一个虚拟磁盘空间作为文件存储器,在其上实现一个多用户多目录的文件系统。2 文件物理结构可采用显式链接或其他方法。3 磁盘空闲空间的管理可选择位示图或其他方法。如果采用位示图来管理文件存储空间,并采用显式链接分配方式,则可以将位示图合并到FAT中。4 文件目录结构采用多用户多级目录结构,每个目录项包含文件名、物理地址、长度等信息,还可以通过目录项实现对文件的读和写的保护。目录组织方式可以不使用索引结点的方式,但使用索引结点,则难度系数为1.2。5 设计一个较实用的用户界面,方便用户使用。要求提供以下相关文件操作:(1)具有login (用户登录)(2)系统初始化(建文件卷、提供登录模块)(3)文件的创建: create(4)文件的打开:open(5)文件的读:read(6)文件的写:write(7)文件关闭:close(8)删除文件:delete (9)列出文件目录:dir(10)退出:logout1.4软硬件运行环境及开发工具:a)程序设计语言:C+b)计算机及操作系统:PC机,WindowsXPc)开发平台:Microsoft Visual C+ 6.0d)运行平台:PC机,WindowsXP第二章 概要设计2.1流程图 模拟实现文件系统的主要流程图如下:2.2用到的原理1本系统初始化了十个用户,每个用户初始化五个文件,最多可拥有十个文件,所以每个用户在此基础上可为自己再创建五个文件,也可以在删除文件后再创建。2.系统使用create,open,read,write,close,delete,dir和exit来创建文件,打开文件,读文件,写文件,关闭文件,删除文件和显示文件。3程序采用二级文件目录(即设置主目录MFD)和用户文件目录(UED)。另外,为打开文件设置了运行文件目录(AFD)。4为了便于实现,对文件的读写作了简化,在执行读写命令时,只需改读写指针,并不进行实际的读写操作第三章 详细设计本次课程设计采用的是c+语言编写,部分主要程序代码如下:#include stdio.h #include #include #include #define getpch(type) (type*)malloc(sizeof(type) #define NULL 0 #define UserNumber 10#define UserFNumber 10#define UserOFNumber 5struct fname char fname1; int flag; fnameA26=a,0,b,0,c,0,d,0,e,0,f,0,g,0,h,0,i,0,j,0,k,0,l,0, m,0,n,0,o,0,p,0,q,0,r,0,s,0,t,0,u,0,v,0,w,0,x,0,y,0,z,0;struct afd char opname10;/* 打开文件名 */ int flag; char opfprotect3;/* 打开保护码 */ int rwpoint;/* 读写指针 */ AFDUserOFNumber;/* 用户打开的文件 */typedef struct char fname10;/* 用户文件名 */ int flag;/* 文件存在标志 */ int fprotect3;/* 文件保护码rwt */ int flength; ufd,UFUserFNumber;/* 用户文件 */struct mdf char uname10;/* 用户名 */ UF Udir;/* 用户文件目录 */ UFDUserNumber;/* 用户 */void intFSystem() int i,j,k,l; strcpy(UFD0.uname,a); strcpy(UFD1.uname,b); strcpy(UFD2.uname,c); strcpy(UFD3.uname,d); strcpy(UFD4.uname,e); strcpy(UFD5.uname,f); strcpy(UFD6.uname,g); strcpy(UFD7.uname,h); strcpy(UFD8.uname,i); strcpy(UFD9.uname,j); for(i=0;i10;i+) for(k=0;k5;k+) do j=rand()%26; while(fnameAj.flag); strcpy(UFDi.Udirk.fname,fnameAj.fname); fnameAj.flag=1; UFDi.Udirk.flength=rand()%2048+1; UFDi.Udirk.flag=1; UFDi.Udirk.fprotect0=rand()%2; UFDi.Udirk.fprotect1=rand()%2; UFDi.Udirk.fprotect2=rand()%2; for(j=0;j26;j+) fnameAj.flag=0; for(l=0;l5;l+) strcpy(AFDi.opname,); AFDl.flag=0; AFDl.opfprotect0=0; AFDl.opfprotect1=0; AFDl.opfprotect2=0; AFDl.rwpoint=0; void Create(int i) int k; for(k=0;k=10) printf(一个用户不能拥有超过10个文件nn);return; printf(请输入你想创建的文件名:); scanf(%s,UFDi.Udirk.fname); printf(请输入文件长度:); scanf(%d,&UFDi.Udirk.flength); printf(只读?(1 yes,0 no):); scanf(%d,&UFDi.Udirk.fprotect0); printf(可写?(1 yes,0 no):); scanf(%d,&UFDi.Udirk.fprotect1); printf(可执行?(1 yes,0 no):); scanf(%d,&UFDi.Udirk.fprotect2); UFDi.Udirk.flag=1; return;void Delete(int i)char file10; int k; printf(请输入你想删除的文件名:); scanf(%s,file); for(k=0;k10;k+) if(UFDi.Udirk.flag&!strcmp(UFDi.Udirk.fname,file) UFDi.Udirk.flag=0;break; else printf(出错n); return;void main() int i,n=0; char m10; char login10; intFSystem(); printf( 欢迎使用n); printf(1.本系统模拟文件管理2.系统已初始化10个用户,n用户名分别是aj,每个用户已分配五个文件n); printf(*本系统的命令包括如下:n); printf(*创建文件(create)n); printf(*删除文件(delete)n); printf(*打开文件(open)n); printf(*关闭文件(close)n); printf(*读取文件(read)n); printf(*编写文件(write)n); printf(*显示文件目录(printufd)n); printf(*显示打开文件目录(dir)n); printf(*退出(exit)n); lgin: printf(请输入用户名(aj):); scanf(%s,login); if(!strcmp(login,exit) return; for(i=0;i=10) printf(该用户名不存在!); goto lgin; printUFD(i); for(;n!=1;) printf(请输入命令:); scanf(%s,&m); if(strcmp(m,create)=0) Create(i); else if(strcmp(m,delete)=0) Delete(i); else if(strcmp(m,open)=0) Open(i); else if(strcmp(m,close)=0) Close; else if(strcmp(m,read)=0) Read(); else if(strcmp(m,write)=0) Write(); else if(strcmp(m,printufd)=0) printUFD(i); else if(strcmp(m,dir)=0) printAFD(); else if(strcmp(m,exit)=0) n=1; else printf(出错n); printf(Saving.n); printUFD(i); getch(); return; 第四章 调试与操作说明4.1用户登陆界面 4.2创建文件界面 4.3删除文件界面 4.4退出界面 第五章 课程设计总结与体会在设计过程中,查询了不少相关资料,不断的发现问题、提出问题、解决问题。在对自己所编写的源程序段的纠错的过程中,使我更好的理解了操作系统中文件系统的理论知识,同时在编程时用到了模块化的设计思想,这种编程方法可以使我们的编程变的更简单,可以使我们的查错与纠错变的更方便。总的来说通过这次的设计的学习使我学到了很多在平时的学习中学不到的很多东西,对操作系统有了更深一层的了解,同时也提高了编程语言的应用能力,由于时间紧,故还有很多的方面需要改进。以后的学习还得更加努力。课程设计的目的就是使自己对学过的知识的理解得到加深,同时巩固对知识的掌握,最终要把知识转化为实际的应用。在本次课程设计的过程中,我充分的感受到了学习一种新的知识以及把这种新的知识消化为己之所有,特别是要转化为实际应用根本是两个不同层次的概念,这也启迪了我今后无论学习什么,都应该在知其然的基础上深入研究,要知其所以然,如果要更进一步就要积极的把知识转化为应用。第六章 致谢在这次课程设计中,我得到了同学的热忱帮助。首先我要感谢我的老师在课程设计上给予我的指导、提供给我的支持和帮助,这是我能顺利完成这次报告的主要原因,更重要的是老师帮我解决了许多技术上的难题,让我能把系统做
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 农发行亳州市蒙城县2025秋招结构化面试15问及话术
- 2025年新能源汽车自动驾驶保险产品创新与行业协同发展报告
- 2025年婴幼儿配方食品营养配方中的过敏原检测与分析报告
- 新能源人才流动与竞争格局研究报告2025:技术创新驱动下的行业未来展望
- 四六级真题及答案
- 大同双题联考真题及答案
- 五年级人教版试卷及答案
- 2025年新能源行业安全生产标准化建设创新成果转化与应用前景展望
- 消防检测考试试题及答案
- 数字化技术推动零售门店智能化顾客服务报告
- 电机维护检修培训课件
- 物理课程与教学论 课件 第五章 物理教学模式、方法与策略
- 行政执法实务培训课件
- 烘焙类产品培训课件
- 湿疹教学课件
- 《会计基础》课程标准
- 常见消防工具的使用课件
- 九年级英语情境教学实施计划
- 智能停车场管理系统研究报告
- 振动电机技术协议书
- 2025-2030年中国反无人机行业市场深度调研及前景趋势与投资研究报告
评论
0/150
提交评论