(完整版)模拟文件系统实验报告

(完整版)模拟文件系统实验报告
(完整版)模拟文件系统实验报告

操作系统大型试验

姓名:XX

班级:软件工程110x

学号:201126630xxx

一、名称

操作系统大型试验。

二、目的

用C++编写出一个简单的模拟文件系统,实现目录的添加、删除、重命名,文件的添加、删除、重命名、文件和目录、文件的拷贝。

三、要求

开发工具:word,vc win32api

1.设计和实现一个简单的文件系统,要求包括目录、普通文件和文件的存储

2.文件系统的目录结构采用类似Linux的树状结构;

3.要求模拟的操作包括:

a)目录的添加、删除、重命名;

b)目录的显示(列表)

c)文件的添加、删除、重命名

d)文件和目录的拷贝

4.用户进入时显示可用命令列表;用户输入help时显示所有命令的帮助文档;输入某个命令+?时显示该条命令的使用说明

5.用户输入exit时退出该系统

6.实验实现基于windows平台;

7.实验开发语言可以选用C/c++等

四、设计

1.主要思路说明

本模拟系统通过一个大小固定的数组要代表物理盘块,假设共有1024块,新增目录占一块,新增文件占一块,文件中可输入内容,内容假设定义为5个字符占一块,超出则应新申请空间。模拟物理盘块的数组中,数组内容为-99代表改物理盘块内容为空,可使用,其他数字均代表该物理盘块被占用,其中-3代表是占用文件的末结点,其他整数代表是文件内容的下一个寻址下标,另有一个string类型的数组来存储内容,模拟文件写入了对应下标的物理盘块中。设置了一个全局指针指向根结点,一个全局指针指向当前操作目录。搜索空白物理盘块时采用顺序搜索物理盘块数组。存储形式主要采用类似二叉树结构,如目录为根,目录下的第一个文件或目录存在根的子节点,目录下的其他文件或目录存在第一个文件或目录的兄弟节点,以此类推。

本程序仅seperate()函数使用现成代码,此函数功能为将输入命令串分离,仅仅起到美观作用,其余所有代码均为原创!

2.申优功能:

1)能实现动态增长,即当输入文件的内容大小大于分配的模拟物理盘块时系统能够自动寻找空物理盘块并分配,将超出的内容保存在新的物理盘块中,若超出模拟磁盘大小,则超出部分不保存且返回提示。

2)能实现级联删除,即当删除目录(文件夹)时,目录下的所有内容也应当删除并正确释放物理盘块空间。

3)能实现目录的复制,即复制目录时(文件夹)时,该目录下的所有文件和目录也应准确复制至目标目录中,并正确分配物理盘块空间。

3.主要函数和类的定义

1)主要函数定义

#define show_bnum 20 //显示物理盘块的块数

#define block_size 1024 //物理盘块块数

int block[block_size]; //假设有block_size块物理盘块

string content[block_size]; //存放文件内容

int Msize=5; //此处为模拟磁盘大小为输入5个字符

fnode *root=new fnode("WP:",0,0); //设置根目录

fnode *current_path=new fnode(); //当前路径

fnode *seek_flag=new fnode(); //作为查找标志

fnode *cp_flag=new fnode(); //作为复制的位置标志

void initialize(); //初始化

int seekTarget(string name); //搜索文件或目录

int seek_log(string name); //搜索目录

void delete_node(string name); //删除节点

int freeblock(fnode *); //释放物理盘块

int seekfreeblock(); //搜索可用物理盘块

void show_current_path(); //显示当前路径

void add_file(string name,int t); //增加目录、文件

void show_curpath_all(); //显示当前目录下的所有文件

void rename_file(string Oname,string Nname); //重命名

void seperate(); //分离命令

void cd(); //进入目录

void add_File(); //增加文件功能入口

void add_Log(); //增加目录功能入口

void delete_file(); //删除文件或目录功能入口

void show_memory(); //显示物理盘块占用情况

void re_name(); //重命名功能入口

void help(); //查看帮助

void show_content(); //查看文件内容

void write_file(); //写文件

void Clear_(); //清屏

void Exit(); //退出

void cp(); //复制功能入口

void cp_log(fnode *target,fnode *source); //复制目录

void cp_file(fnode *target,fnode *source); //复制文件

void cp_node(fnode *target,fnode *source); //复制节点

int find_target_log(); //找到复制的目标目录

int calculate_logsizeMain(fnode *); //计算目录大小

int calculate_logsize(fnode *);

2)文件节点类的定义:

class fnode

{

public:

string filename; //文件名

int type; //文件类型,1为普通文件,0为目录文件

fnode *parent; //父节点

fnode *child; //子节点

fnode *brother; //兄弟节点

int block_num; //表示占用的物理盘块块号

int isBro; //表示是否是在同级目录下,0表示不是,1表示是

int isCld; //是否为目录下第一个节点,1表示是,0表示不是

fnode() //初始化

{

type=-1;

parent=NULL;

child=NULL;

brother=NULL;

block_num=-1;

isBro=0;

isCld=0;

}

fnode(string n,int t,int b) //根节点初始化

{

type=t;

filename=n;

parent=NULL;

child=NULL;

brother=NULL;

block_num=b;

block[block_num]=-3;

isBro=0;

isCld=0;

}

fnode(fnode *p,string name,int t,int b) //文件节点初始化

{

parent=p;

filename=name;

type=t;

child=NULL;

brother=NULL;

block_num=b;

block[block_num]=-3;

isBro=0;

isCld=0;

}

void copy(fnode *cp) //拷贝函数

{

filename=cp->filename;

type=cp->type;

parent=cp->parent;

child=cp->child;

brother=cp->brother;

block_num=cp->block_num;

}

};

4.命令:

命令解释

echo echo命令可以在当前目录下创建一个文件,具体格式:echo+name md md命令可以在当前目录下创建一个目录文件,具体格式:md+name del del命令可以在当前目录下删除一个已存在的文件或目录(支持级联删除),具体格式:del+name

cd cd命令可以进入下一级目录或返回上级目录、根目录,具体格式:cd+name或cd+.或cd+..

cp cp命令可以复制当前目录下一个指定的文件或目录至指定的目录,具体格式:cp+name+road

dir dir命令可以显示当前目录下的所有文件和目录,具体格式:del

ren ren命令可以重命名一个存在于当前目录下的文件或目录,具体格式:ren+name +new name

typ typ命令可以查看当前目录下一个文件的内容,具体格式:typ+name wrt wrt命令可以在当前目录下写内容至一个已存在的文件,具体格式:wrt+name +content

mem mem命令可以查看模拟物理盘块的使用情况,具体格式:mem

cls cls命令为清屏命令,具体格式:cls

exit exit命令为退出命令,具体格式:exit

五、关键技术流程图及说明

提示:若图中文字无法看清,可用Micorsoft Visio打开压缩包下“部分程序流程图”文件夹的绘图文件查看。

1.增加文件或目录(此功能比较简单,流程图写的较详细就不做说明):

2.删除目录(实现级联删除):

说明:删除目录时删除文件和删除目录本身放在同一个函数中,删除目录下的所有文件放在freeblock函数里,这样比较好处理。下面给只给出递归函数的流程图。

3.将内容写入文件(实现动态增长):

说明:图中Msize为模拟规定的文件块字符串大小,比如Msize=5,那么一个物理盘块只能存5个字符,超出则要申请新的空间。主要采用双重循环方法写入,外层循环为需要的块数,内层循环为Msize,用string累加字符串内容,内层循环退出后新申请一个空间并

将对应下标赋给上一个物理盘块数组,再将对应内容存入content(为string类型的数组,模拟存储内容)数组中,直至退出外层循环。

4.复制目录:

说明:这里和删除目录一样,写了两个复制函数,这样写同样因为递归调用是比较方便,第一个函数传入参数为目标目录指针和被复制的目录的指针,第一个函数里新建了一个阶段

复制被复制的目录的内容,然后将新建节点的子节点和被复制目录的子结点传入下一个递归调用函数(因为目录的内容存于目录的子节点,与兄弟节点无关),第二个函数就是递归调用函数cp_node,下面就只给出cp_node的流程图(复制之前同样进行了路径的判误操作,内存大小的判断操作,是否重名的判断操作,被复制目录是否存在判断操作,这些操作在递归函数之前完成,所以下面的递归函数不体现这些操作)。

六、运行结果

1.主界面展示:

图:主界面展示2.help命令展示:

图:help命令展示3.echo命令展示:

图:echo命令展示4.del命令展示:

图:del命令展示-普通删除

说明:创建了目录log1,在log1中创建一系列文件和目录,磁盘使用情况显示已分配,实用del删除命令后查看磁盘分配证明级联删除是可靠的。

图:del命令展示-级联删除

5.md命令展示:

图:md命令展示

6.cd命令展示:

说明:图中展示了cd+name、cd+.、cd+..三种cd命令的使用和判别情况。

图:cd命令展示

7.dir命令展示:

图:dir命令展示8.typ命令展示:

图:typ命令展示 9.ren命令展示:

图:ren命令展示10.wrt命令展示:

图:wrt命令展示

说明:此处为了实验方便,将磁盘大小限定为5,每块磁盘输入的字符数限2,输入的内容112233445566778899需要9块磁盘块,而磁盘块为5,根目录占用一块,只能输入4块大小的内容,即11223344,所有文件file只写入了11223344 。

图:wrt动态增长展示

11.mem命令展示:

图:mem命令展示

12.cls命令展示:

图:cls命令展示-1

图:cls命令展示-2

13.cp命令展示:

说明:图中根目录(WP:)下创建了目录a(md a)、目录b(md b),在a目录下创建了b目录(md b),在b目录中创建了文件a(echo a)、目录c(md c),文件a中输入1111122222(wrt a 111112222)内容代表占了两块物理盘块(程序中Msize模拟大小,设为5个字符了),再进入目录c(cd c),c中先创建目录f(md f)再创建文件g(与之前创建顺序不同说明程序在不同情况下能正常运行),在g中输入5个3,5个2,5个1(wrt g 333332222211111)代表占用3块物理盘块空间,再返回目录a(cd . cd .),将目录a下的目录b复制给目录WP下的目录c(cp b WP:\c),再将目录a中的目录b删除(del b证明的确是复制而非简单指针指向),进入WP下的目录c查看刚复制的内容(dir)。物理盘块使用情况中第一个-3为根目录占用,第二个-3是目录a,第三个-3是目录c,接下来的8个-99是目录a中原目录b占用的空间(此处证明删除是可靠的),图中显示目录c中确实成功复制了目录b及目录下的所有内容(使用dir命令查看)。

图:cp命令展示

14.exit命令展示:

图:exit命令展示

15.综合展示:

说明:echo a在根目录(WP:)下创建了文件a,md b在根目录(WP:)下创建了目录b,dir显示根目录下的所有文件和目录,wrt a aaaaabbbbbccccc在文件a中输入了一串内容,typ a显示文件a中的内容,cd b进入目录b,md a在目录b下创建了目录a,cd a进入目录a,cd .返回目录b,cd .返回根目录WP:,ren b newname将目录b重命名为newname,mem显示内存情况,第一个-3代表根节点占用,第二个3代表文件a占用且下一块盘块下标

为3,第三个-3代表目录b占用,之后的4代表被文件a占用且的下一块盘块的寻找下标为4,下一个-3代表文件a的末盘块,下一个-3代表目录b内的目录a占用,del a在根目录WP:下删除文件a,mem查看物理盘块实验情况,图中显示原文件a占用的内存空间已经变为-99,代表成功删除a并释放磁盘空间(-99代表磁盘空间空闲可用),dir显示根目录WP:下所有文件和目录,显示只有newname,则证明重命名和删除操作是成功的。

图:综合展示

七、心得体会和调试中遇到的问题及解决办法

编写调试过程中遇到许多问题,一类是指针指向空还继续操作造成程序停止运行,经检查后修改正确,一类是逻辑上出现错误导致级联删除或者目录复制出错,经改正后成功实现。

主要的难点在于兄弟结点和子结点的处理,所以再程序中引入了isBro这个标志位来判断是否是兄弟结点即与父节点是否在同级目录,若不在同级目录则父节点为真父节点(是指向本目录而非本目录中上个文件)。还有一个难点是在进行递归调用删除或复制目录时发现处理目录和目录下的内容不太合适放在同一个递归程序中,所以单独写了两个函数处理目录的复制或删除,然后对应两个递归程序处理目录下的所有内容。

实验总结及有待改进的问题。

因为时间比较紧张,在几门考试中抽空写了这个小程序,所以并没有实现存盘,另因为对输入命令字符串的处理上有点瑕疵,所有在写文件内容中只能写入连续的字符串(中间不能插入空格),否则会被判定为命令输入错误,并且只实现了文件的写入,不能修改或插入,有待改进。没有实现目录树的展示,只能显示目录下所有文件,有待改进。但相信时间再充裕一些这些小问题都能很好地解决。

八、源代码

在压缩包内“源代码”文件夹内。

文件系统实验报告

嵌入式系统实验报告(二) --嵌入式文件系统的构建 138352019陈霖坤一实验目的 了解嵌入式操作系统中文件系统的类型和作用 了解JFFS2文件系统的优点及其在嵌入式系统中的作用 掌握利用Busybox软件制作嵌入式文件系统的方法 掌握嵌入式linux文件系统的挂载过程 二实验内容与要求 编译BusyBox,以BusyBox为基础,构建一个适合的文件系统; 制作ramdisk文件系统映像,用你的文件系统启动到正常工作状态; 研究NFS作为根文件系统的启动过程。 三Busybox介绍 BusyBox最初是由Bruce Perens在1996年为Debian GNU/Linux安装盘编写的,其原始构想是希望在一张软盘上能放入一个开机系统,以作为急救盘和安装盘。后来它变成了嵌入式Linux设备和系统和Linux发布版安装程序的实质标准,因为每个Linux可执行文件需要数Kb的空间,而集成两百多个程序的BusyBox可以节省大量空间。Busybox集成了包括mini-vi编辑器、/sbin/init、文件操作、目录操作、系统配置等应用程序。 Busybox支持多种体系结构,可以选择静态或动态链接,以满足不同需要。 四linux文件系统 文件系统是对一个存储设备上的数据和元数据进行组织的机制,linux文件系统接口设计为分层的体系结构,从而将用户接口层、文件系统实现层和操作存储设备的驱动程序分隔开。 在文件系统方面,linux可以算得上操作系统中的“瑞士军刀”。Linux支持许多种文件系统,从日志型文件系统到集群文件系统和加密文件系统,而且对于使用标准的和比较奇特的文件系统以及开发文件系统来说,linux是极好的平台,这得益于linux内核中的虚拟文件系统(VFS,也称虚拟文件系统交换器)。 文件结构 Windows的文件结构是多个并列的树状结构,不同的磁盘分区各对应一个树。Linux的文件结构是单个的树,最上层是根目录,其它目录都从根目录生成。不同的linux发行版集

C++图书管理系统实验报告

面向对象程序设计(C++语言)课程设计 设计说明书 图书管理系统的设计与实现 起止日期:年月日至年月日 学生姓名 班级 学号 成绩 指导教师(签字) 计算机与通信学院 年月日 图书管理系统

一.需求分析 图书馆是目前生活中除了网络外的另一个获取知识的重要场所。利用图书管理系统对图书记录进行统一管理,包括新增图书记录,更改图书记录,删除图书记录等功能,实现图书管理工作的系统化,规范化和自动化,为图书管理提供便利。同时是学习完《面向对象程序设计》课程后进行的一次全面的综合练习。有助于加深对面向对象程序设计中基础理论和基本知识的理解,培养了实践能力,促进理论与实践的结合。 二.设计要求: 1.图书信息包括:登录号、书名、作者名、分类号、出版单位、出版时 间、价格等。试设计一图书信息管理系统,使之能提供以下功能: 2.系统以菜单方式工作 3.图书信息录入功能(图书信息用文件保存)--输入 4.图书信息浏览功能--输出 5.查询和排序功能:(至少一种查询方式)--算法 6.按书名查询 7.按作者名查询 8.图书信息的删除与修改(可选项) 三.概要设计 1、类的设计 ①、Book类的设计(内部函数流程图):

②、BDatabase类的设计: ③、主函数流程图:

4多态的实现 class People { public: virtual void card(){cout<<"card people"<

《管理信息系统》课程设计实验报告

《管理信息系统》课程设计实验报告 课程名称:管理信息系统 指导老师: ******* 院系:商学院 专业班级: ******** 姓名: ******** 学号: ******** 实验日期: 2011.7.11 实验地点:一机房

《管理信息系统》课程设计任务书 一.课程设计目的及意义: 《管理信息系统》课程设计是在完成《管理信息系统》课程学习之后的一次实践性教 学,是本课程理论知识的一次综合运用。通过本课程设计,能够进一步加深对信息、信息系 统、管理信息系统等基础理论知识的理解,能初步掌握结构化的生命周期法、面向对象法等 系统工程方法,进一步加强熟练应用管理信息系统的操作技能,并能够借助于管理信息系统 解决实际问题。 二.课程设计要求: 1.本课程设计时间为一周。 2.本课程设计以教学班为单位进行上机操作及实验。 3.按照任务要求完成课程设计内容。 三.课程设计任务要求: 1.任务内容:进入山东轻工业学院主页,在“网络资源”区域进入“网络教学平台”,输入各自的用户名和密码(学生学号及密码),进入本网络教学平台系统,在充分熟悉本系统 的前提下,完成下列任务要求。 2.任务要求: ①按照课程讲解的系统分析步骤和理论对本系统进行系统分析。 ②绘制不少于 3 个的主要业务流程图。 ③描述上述主要业务流程图的逻辑处理功能。 ④分析本系统的优缺点,提出改进意见,并描述改进的逻辑处理功能,绘制业务流 程图。 四.课程设计评分标准: 按照《管理信息系统课程设计大纲》的要求,本课程 1 学分,采用百分制计分,其中 任务要求②占30 分,任务要求③占30 分,任务要求④占30 分,考勤及实践表现占10 分。五.本课程设计自2011 年 6 月 27 日至 2011 年 7 月 1 日。

Linux文件系统实验报告

黄冈师学院 提高型实验报告 实验课题文件系统的设计与实现(实验类型:□综合性 设计性□应用性) 实验课程操作系统原理 实验时间2015-2016 第二学期 学生何正发 专业班级软件工程1401 学号07

成绩: 一、实验目的和要求 1、熟悉操作系统设计的过程,巩固操作系统的基本知识,加深对操作原理、功能及各种不同的存储管理方法理解与应用; 2、学会运用各种语言、软件开发新软件的基本方法; 3、增强实际应用能力和动手操作能力。 二、实验条件 Win7 /Windows 8.1/Linux等操作系统,装有java、C、C++、C#等语言工具的环境。 三、实验原理分析 可以选择最佳适应算法,按照从小到大的次序组成空闲区自由链,当用户作业或进程申请一个空闲区时,存储管理 程序从表头开始查找,当找到第一个満足要求的空闲区时,停止查找。如果该空闲区大于请求表中的请求长 度,将减去请求长度后的剩余空闲区部分留在可用表中。回收时,从作链中删去要回收的作业块,同时在空 闲链中插入该作业大小的空闲区,并按顺序排列 四、实验方案或步骤 1、应用环境、需求分析 本模拟系统主要针对文件的管理和操作名主要有:创建用户、文件、文件夹,读文件,写文件,执行文件,关闭文件,删除用户、文件夹、文件的功能。 创建用户、文件、文件夹:在对系统发出操作命令之前必须先登录用户,然而登录之前必须创建该用户。在创建完后,可通过登录用户来创建文件和文件夹。在创建文件时可设置文件的属性和输入文件的容。 读文件:读取任何已创建的只读或读写文件的容;如果所要读的文件不是可读文件时,系统会显示该文件不可读;如果所读文件不存在,系统会显示文件不存在。 写文件用户可写或重写读写文件中的容,并保存文件中的重写容,以供下次读取;当所要写的文件不是可写的文件时,系统会显示该文件不可写;当所要写的文件并不存在时,系统会显示该文件不存在。

图书管理系统uml实验报告.doc

面向对象分析与设计大作业 学院:计算机科学与工程学院 班级:计算机软件 3 学生姓名:陈俊伟 学号:2174 指导老师:苏锦钿 提交日期:

华南理工大学 面向对象分析与设计大作业课程实验报告 实验题目 :_____ 图书管理系统 uml 图__________________________ 姓名 :___ 陈俊伟 ________学号:_ 2174_____ 班级 : ___09 软件 3 班________ 组别 : ________ 合作者 : __________________ 指导教师 : ______ 苏锦钿 __________ 实验概述 【实验目的及要求】 一.目的 1.掌握面向对象技术的基本原理和各种相关概念; Rational Rose 2003 、 IBM 2. 熟练掌握 UML的基本知识和9 种常见的 UML图形 , 并能够利 用 Software Architecture、或trufun UML工具进行建模; 3.根据问题进行学习,拓广、深化; 4.独立完成一个应用程序的分析、设计和建模,为以后软件项目的开发打下实践基础。 【实验原理】 UML建模,就是用模型元素来组建整个系统的模型,模型元素包括系统中的类、类和类 之间的关联、类的实例相互配合实现系统的动态行为等。UML提供了多种图形可视化描 述模型元素,同一个模型元素可能会出现在多个图中对应多个图形元素,人们可以从多 个视图来考察模型。UML建模主要分为结构建模、动态建模和模型管理建模 3 个方面,第 1 个方面是从系统的内部结构和静态角度来描述系统的,在静态视图、用例视图、实施视 图和配置视图中适用,采用了类图、用例图、组件图和配置图等图形。例如类图用于描述系 统中各类的内部结构(类的属性和操作)及相互间的关联、聚合和依赖等关系, 包图用于描述系统的分层结构等;第 2 个方面是从系统中对象的动态行为和组成对象间的相互 作用、消息传递来描述系统的,在状态机视图、活动视图和交互视图中适用,采 用了状态机图、活动图、顺序图和合作图等图形,例如状态机图用于一个系统或对象从 产生到结束或从构造到清除所处的一系列不同的状态;第 3 个方面描述如何将模型自身组织到高层 单元,在模型管理视图中适用,采用的图形是类图。建模的工作集中在前两 方面,而且并非所有图形元素都适用或需要采用

系统设计实验报告

系统设计实验报告——远程在线考试系统

目录软件需求说明书························1 引言··························· 1.1编写目的······················· 1.2背景························· 1.3定义························· 1.4参考资料······················· 2 程序系统的结构························ 3 程序设计说明·························

1引言 1.1编写目的 本文档的编写目的是为远程在线考试系统项目的设计提供: a.系统的结构、设计说明; b.程序设计说明; c. 程序(标识符)设计说明 1.2背景 随着网络技术的飞速发展,现在很多的大学及社会上其它的培训部门都已经开设了远程教育,并通过计算机网络实现异地教育。但是,远程教育软件的开发,就目前来说,还是处于起步的阶段。因此,构建一个远程在线考试系统,还是有很大的实际意义的。 根据用户提出的需求,本项目组承接该系统的开发工作 a.开发软件系统的名称:远程在线考试系统 b.本项目的任务提出者:福州大学软件学院 c.用户:各类大专院校学校、中小学校。 1.3定义 远程在线考试系统 远程在线考试系统是基于用Browser/Web模式下的,可以实现考试题库管理、多用户在线考试、自动阅卷功能的系统。

1.4参考资料 ?GB 8566 计算机软件开发规范 ?GB 8567 计算机软件产品开发文件编制指南?软件设计标准 ?《ASP与SQL-Server2000》清华大学出版社?《可行性研究报告》 ?《项目计划文档》 ? 2程序系统的结构 3程序1(标识符)设计说明

FAT文件系统操作系统课程设计实验报告

操作系统课程设计之三 设计任务:模拟OS文件系统 在任一OS(Window或者Dos;也可以是在Linux下,但要求能将结果演示给老 师看)下,建立一个大文件,把它假象成一张盘,在其中实现一个简单的模拟OS 字 ,第 ⑤、每个目录实际能放下文件或子目录30项。 ⑸、文件系统空间分配: ①、第0个盘块(1k)存放磁盘信息(可以设定为格式说明“FAT32”、盘块大小,盘块数等 内容) ②、第1个盘块起,至125盘块,共125个盘块(125k)存放FAT内容 ③、第126、127(2个)盘块,存放位示图

④、从第128盘块至10000盘块,皆为数据(区)盘块,其逻辑编号从0开始,至 9872号数据盘块,即第0数据盘块为128号盘块,第1数据盘块为129号盘块,… ⑤、第0数据盘块(即128号盘块),存放根目录(同样只用一个盘块作根目录), 由于第0、1目录项为“.”(本目录), “..”(父目录),因此根目录下同样只能存放30个文件或目录,并且从第2个目录项开始。 ⑥、文件或子目录数据,放在第1数据盘块及以后的数据盘块中,由用户按需要使 用。 内容 ⑺、删除文件 #DelFile 文件名.扩展名,在文件所在的目录项中,将第一个字节变为0xE5,并同时修改FAT内容和位示图内容;如果文件不存在,给出出错信息 ⑻、文件拷贝 #CopyFile 老文件,新文件,为新文件创建一个目录项,并将老文件内容复制到新文件中,并同时修改FAT内容和位示图内容 ⑼、显示位示图内容

#ShowBitMP,将位示图内容(已有信息部分),显示在屏幕上(按十六进制)⑽、显示FAT内容 #ShowFAT,将FAT内容(已有信息部分),显示在屏幕上(按十六进制) 4、程序的总体流程为: ⑴、输出提示符#,等待接受命令,分析键入的命令; ⑵、对合法的命令,执行相应的处理程序,否则输出错误信息,继续等待新命令 关于对FAT表和MAP表的用法 1.当要用到数据块是,查询MAP表(因为只做比较查询即可),查询到的未用位置 置1,然后在FAT表上进行相应记录,在本程序做出的规定是,当文件夹FAT 表做-1,若是文件则按照FAT做对应的顺序记录,最后一块同样是-1结束,2.回收的时候,是按照FAT表的首项,做顺序置0,然后MAP也在相应位置置0

图书馆管理系统实验报告

华北科技学院计算机系综合性实验 实验报告 课程名称数据库系统 实验学期2009至2010学年第2学期学生所在系部计算机系 年级专业班级网络B081 学生姓名王明仁学号200807024102 任课教师郭红 实验成绩 计算机系制

《图书馆管理系统》课程综合性实验报告 开课实验室:基础62010年6月19日实验题目 一、实验目的 利用一种DBMS作为设计平台,理解并应用课程中关于数据库设计的相关理论,能按照数据库设计步骤完成完整的数据库设计,包括需求分析、概念设计、逻辑设计、物理设计和实施。同时能够正确应用各个阶段的典型工具进行表示。 二、设备与环境 (1)硬件设备:PC机一台 (2)软件环境:安装Windows操作系统,安装数据库管理系统SQL Server2000等。 三、实验内容 完整实践应用数据库设计的工程过程:需求分析\概念设计\逻辑设计\物理设计和实施: (1)需求分析:选定一个应用(如图书管理系统),对所设计的数据库系统进行调研分析,其结果应该准确表达出选定 应用的功能需求; (2)概念分析:使用E-R图作为描述工具.必要时描述出局部和全局的E-R图; (3)逻辑设计:将上述绘制的E-R图转化为相应的关系模式,并根据范式理论进行优化分析。要求的关系模式不少于 3个,并根据实际应用的需要设计必要的视图; (4)物理设计:根据设计的结构,说明系统已经有的索引,并根据需要设计必要的索引; (5)实施:以SQL SERVER为平台创建出完整的数据库.在数据库中要表现出的知识点包括 ①登录控制(标准登录和混合登录) ②数据完整性:参照完整性、实体完整性、自定义完整性(包括触发器) ③安全性设计:设置用户,并相应设计用户的权限或角色(用户设计至少3个,有不同的权限) ④使用触发器、游标或存储过程完成相关操作,至少使用1种技术。 (6)以上内容,请详细描述,并有必要抓图. 四、实验结果及分析 根据我设计的图书馆数据库管理系统,我作了如下分析: 图书馆提供图书借阅业务,读者借阅需先办理借书卡(用条码识别身份),并交纳一定的押金。不同的书有着不同的借阅期限,比如期刊和某些新书最多只能借阅七天,而另一些书则可以借阅半个月或最长三个月不等。逾期不还,或丢失、损坏书籍则予以罚款。在交纳罚款前,借书卡被冻结。不同类别的读者不着不同的借阅数量限制,比如有的一次可以借阅7本,有的只能借阅5本等。对逾期不还的,系统给出报警,并打印催还通知单。读者可以事先从网上查询拟借书刊是否存在,并可查询书刊存放地点。 我设计的图书管理系统,功能包括: 一.图书管理系统: 1.图书查询 2.新书登记 3.图书下架 二.读者信息管理: 1.办卡 2.信息 3.挂失 4.注销 5.冻结 三.借阅管理系统: 1.借书(还书)

文件系统实验报告

实验二文件系统实验报告

一.实验简介 本实验要求在假设的I/O 系统之上开发一个简单的文件系统,这样做既能让实验者对文件系统有整体了解,又避免了涉及过多细节。用户通过create, open, read 等命令与文件系统交互。文件系统把磁盘视为顺序编号的逻辑块序列,逻辑块的编号为0 至L-1。I/O 系统利用内存中的数组模拟磁盘。 实际物理磁盘的结构是多维的:有柱面、磁道、扇区等概念。I/O 系统的任务是隐藏磁盘的结构细节,把磁盘以逻辑块的面目呈现给文件系统。逻辑块顺序编号,编号取值范围为0 至L .. 1,其中L 表示磁盘的存储块总数。实验中,我们可以利用字符数组ldisk[L][B] 构建磁盘模型,其中 B 表示每个存储块的长度。I/O 系统从文件系统接收命令,根据命令指定的逻辑块号把磁盘块的内容读入命令指定的内存区域,或者把命令指定的内存区域内容写入磁盘块。 我设计的文件系统拥有三个用户。 二.具体说明 1.文件系统的组织:磁盘的前k 个块是保留区,其中包含如下信息:位图和文件描述符。位图用来描述磁盘块的分配情况。位图中的每一位对应一个逻辑块。创建或者删除文件,以及文件的长度发生变化时,文件系统都需要进行位图操作。前k 个块的剩余部分包含一组文件描述符。每个文件描述符包含如下信息: ?文件长度,单位字节 ?文件分配到的磁盘块号数组。该数组的长度是一个系统参数。在实验中我们可以把它设置为一个比较小的数,例如3。 2.目录:我们的文件系统中仅设置一个目录,该目录包含文件系统中的所有文件。除了不需要显示地创建和删除之外,目录在很多方面和普通文件相像。目录对应0 号文件描述符。初始状态下,目录中没有文件,所有,目录对应的描述符中记录的长度应为0,而且也没有分配磁盘块。每创建一个文件,目录文件的长度便增加一分。目录文件的内容由一系列的目录项组成,其中每个目录项由如下内容组成: ?文件名 ?文件描述符序号 3.对文件的操作: 文件系统需提供如下函数;create, destroy, open, read, write。 ?create(filename): 根据指定的文件名创建新文件。 ?destroy(filename): 删除指定文件。 ?open(filename): 打开文件。该函数返回的索引号可用于后续的read, write, lseek, 或close 操作。 ?close(index): 关闭制定文件。 ?read(index, mem_area, count): 从指定文件顺序读入count 个字节mem_area 指定的内存位

C--大作业图书管理系统实验报告

附件1: 《面向对象程序设计》 大作业 题学专班姓目 院 业 级 名 学生成绩管理系统 文法学院 教育学 教育学1201 杨欣 指导教师鄢红国 2013 年12 月20 日学号:0121213640126

目录 一二三四五六七八十设计目的 (1) 大作业的内容 (2) 大作业的要求与数据 (3) 大作业应完成的工作 (4) 总体设计(包含几大功能模块) (5) 详细设计(各功能模块的具体实现算法——流程图) (6) 调试分析(包含各模块的测试用例,及测试结果) (7) 总结 (8) 参考资料 (9)

一二 大作业的目的 《面向对象程序设计》是一门实践性很强的课程,通过大作业不仅可以全方位检验学生知识掌握程度和综合能力,而且还可以进一步加深、巩固所学课程的基本理论知识,理论联系实际,进一步培养自己综合分析问题和解决问题的能力。更好地掌握运用C++语言独立地编写、调试应用程序和进行其它相关设计的技能。 大作业的内容 对图书信息(包括编号、书名、总入库数量、当前库存量、已借出本数等) 进行管理,包括图书信息的输入、输出、查询、删除、排序、统计、退出.将图书的信息进行记录,信息内容包含:(1)图书的编号(2)图书的书名(3)图书的库存量。假设,现收集到了一个图书馆的所有图书信息,要求用C语言编写一个简单的图书管理系统,可进行录入、查询、修改和浏览等功能。学习相关开发工具和应用软件,熟悉系统建设过程。 三大作业的要求与数据 1、用C语言实现系统; 2、对图书信息(包括编号、书名、总入库数量、当前库存量、已借出本数)进行管理,包括图书信息的输入、输出、查询、删除、排序、统计、退出. 3、图书信息包括:其内容较多,为了简化讨论,要求设计的管理系统能够 完成以下功能: (1)每一条记录包括一本图书的编号、书名、库存量 (2)图书信息录入功能:(图书信息用文件保存,可以一次完成若干条记录 的输入。) (3)图书信息显示浏览功能:完成全部图书记录的显示。 (4)查询功能:完成按书名查找图书记录,并显示。 (5)图书信息的删除:按编号进行图书某图书的库存量. (6)借书登记系统:可以输入读者编号和所借书号来借书。 (7)还书管理系统:可以输入读者编号和所借书号来还书。 (8)、应提供一个界面来调用各个功能,调用界面和各个功能的操作界面应 尽可能清晰美观!

操作系统课程设计实验报告

河北大学工商学院 课程设计 题目:操作系统课程设计 学部信息学部 学科门类电气信息 专业计算机 学号2011482370 姓名耿雪涛 指导教师朱亮 2013 年6月19日

主要内容 一、设计目的 通过模拟操作系统的实现,加深对操作系统工作原理理解,进一步了解操作系统的实现方法,并可练习合作完成系统的团队精神和提高程序设计能力。 二、设计思想 实现一个模拟操作系统,使用VB、VC、CB等windows环境下的程序设计语言,以借助这些语言环境来模拟硬件的一些并行工作。模拟采用多道程序设计方法的单用户操作系统,该操作系统包括进程管理、存储管理、设备管理、文件管理和用户接口四部分。 设计模板如下图: 注:本人主要涉及设备管理模块

三、设计要求 设备管理主要包括设备的分配和回收。 ⑴模拟系统中有A、B、C三种独占型设备,A设备1个,B设备2个,C设备2个。 ⑵采用死锁的预防方法来处理申请独占设备可能造成的死锁。 ⑶屏幕显示 注:屏幕显示要求包括:每个设备是否被使用,哪个进程在使用该设备,哪些进程在等待使用该设备。 设备管理模块详细设计 一、设备管理的任务 I/O设备是按照用户的请求,控制设备的各种操作,用于完成I/O 设备与内存之间的数据交换(包括设备的分配与回收,设备的驱动管理等),最终完成用户的I/O请求,并且I/O设备为用户提供了使用外部设备的接口,可以满足用户的需求。 二、设备管理函数的详细描述 1、检查设备是否可用(主要代码) public bool JudgeDevice(DeviceType type) { bool str = false; switch (type) { case DeviceType.a: {

实验四 文件系统实验报告

实验四文件系统实验 一 . 目的要求 1、用高级语言编写和调试一个简单的文件系统,模拟文件管理的工作过程。从而对各种文件操作命令的实质内容和执行过程有比较深入的了解。 2、要求设计一个 n个用户的文件系统,每次用户可保存m个文件,用户在一次运行中只能打开一个文件,对文件必须设置保护措施,且至少有Create、delete、open、close、read、write等命令。 二 . 例题: 1、设计一个10个用户的文件系统,每次用户可保存10个文件,一次运行用户可以打开5个文件。 2、程序采用二级文件目录(即设置主目录[MFD])和用户文件目录(UED)。另外,为打开文件设置了运行文件目录(AFD)。 3、为了便于实现,对文件的读写作了简化,在执行读写命令时,只需改读写指针,并不进行实际的读写操作。 4、算法与框图: ①因系统小,文件目录的检索使用了简单的线性搜索。 ②文件保护简单使用了三位保护码:允许读写执行、对应位为 1,对应位为0,则表示不允许读写、执行。 ③程序中使用的主要设计结构如下: 主文件目录和用户文件目录( MFD、UFD) 打开文件目录( AFD)(即运行文件目录)

文件系统算法的流程图如下: 三 . 实验题: 1、增加 2~3个文件操作命令,并加以实现。(如移动读写指针,改变文件属性,更换文件名,改变文件保护级别)。 #include #include #include #include #define MAXSIZE 100 #define ADDSIZE 50 #define PT elem+l-> length #define N 4 typedef struct term{/*班级和学期的结构体*/ char class1[10]; char term1[10]; }term; typedef struct student{/*学生成绩信息的结构体*/ term st;/*班级和学期结构体放于此结构体中*/ char num[10]; char name[12]; float course[4]; float total; float average; int bit; }lnode,*stu; typedef struct{ lnode *elem;/*指向上个结构体的指针*/ int size;/*最大能放lnode结构体成员的个数*/ int length;/*当前长度*/ }sqack,*sq; sqack *l; void init(void)/*动态分配存储空间*/ { l-> elem=(stu)malloc(MAXSIZE*sizeof(lnode)); l-> length =0; l-> size=MAXSIZE; } void input(void)/*输入学生的信息*/ { lnode *newbase,*p; char cla[10],ter[10],ch; int n,i; if(l-> length> =l-> size){ newbase=(stu)realloc(l-> elem,(l-> size +ADDSIZE)*sizeof(lnode));/*追加存储空间*/ l-> elem =newbase; l-> size +=ADDSIZE; } p=l-> elem; do { printf( "输入班级和学期(学期用这种格式,如2005年上学期2005 1,2005年下学期2005 2;先输入班级,回车后再输入学期)\n "); gets(cla); gets(ter); printf( "要输入多少个名单?"); scanf( "%d ",&n); printf( "输入学生的成绩\n学号\t姓名\t科目1\t科目2\t科目3\t科目4\n "); for(i=0;i num ,p-> name,p-> course[0],p-> course[1],p-> course[2],p-> course[3]); strcpy(p-> st.class1,cla); strcpy(p-> st.term1,ter); ++l-> length ; } printf( "要继续吗?(y/n) ");

图书馆管理信息系统实验报告完整版

图书馆管理信息系统实 验报告 HEN system office room 【HEN16H-HENS2AHENS8Q8-HENH1688】

管理信息系统实验报告 系部名称:国际学院 专业名称:会计 班级:0911 姓名: 第一章图书馆管理信息系统的系统规划 图书馆管理项目开发背景及开发目的 传统的图书馆管理工作主要是由于书籍管理、借阅管理、图书管理查询。该工作主要由学校图书管理人员来完成。近年来,随着招生规模的持续壮大,图书馆的容量也不断增加,有关图书的各种信息量也成倍的增加。面对庞大的信息量,传统的人工式的管理导致工作繁重,人力物力过多的浪费,图书馆的管理成本高,然而工作效率却不高,工作质量也难以得到可靠的保证,从而影响了整个图书馆的运作及管理。 时代的进步,计算机越来越广泛的运用,原先主要由手工操作的图书管理,正在慢慢的由计算机代替,并且日益完善。图书管理系统就是为了解决和减轻繁琐的手工管理,使图书馆可以上升到一个完善的电子化,信息化管理。在全球信息化的今天,是同计算机进行生产和管理已经成为一种趋势。计算机可以为我们选择最优的方案来达到我们的要求。在图书馆这一环境中,使用计算机管理可以最大程度减少操作难度,减轻工作人员的劳动负担。实现“以人为本,科学管理,创建新型现代化学校图书馆”的目标 图书馆管理可行性分析 图书馆是图书馆管理系统是利用计算机技术使书籍管理、借阅管理、图书管理查询等有机的结合在一起方便图书管理人员进行统一高效率的管理。对于系统的结构特性设计,应遵循提高系统实用性和操作简便灵活性的设计的原则。在业务流程上遵循了手工管理时的操作流程,使学生很快掌握操作程序等。 经济性可行性研究

文件系统存储空间管理模拟实验报告

课程名称计算机操作系统实验名称文件系统存储空间管理模拟姓名学号 专业班级实验日期 成绩指导老师 一、实验目的 根据提出的文件分配和释放请求,动态显示磁盘空闲空间的 态以及文件目录的变化,以位示图和索引分配为例:每次执行请求后要求显示或打印位示图的修改位置、分配和回收磁盘的物理块地址、更新的位示图、目录。 二、实验原理 用数组表示位示图,其中的每一位对应磁盘一个物理块的状态,0表示、空闲,1表示分配;当请求分配一个磁盘块时,寻找到数组中为0的位,计算相对磁盘块号,并计算其在磁盘中的物理地址(柱面号、磁道号、物理块号),并将其状态由0变到1。当释放某一物理块时,已知其在磁盘中的物理地址,计算其相对磁盘块号,再找到位示图数组中的相应位,将其状态由1变为0。 三、主要仪器设备 PC机(含有VC) 四、实验容与步骤 实验容:1. 模拟文件空间分配、释放过程,可选择连续分配、链式分配、索引分配法;2. 文件空闲空间管理,可采用空白块链、空白目录、位示图法; 步骤如下: 1. 输入磁盘基本信息参数,计算位示图大小,并随机初始化位示图; (1)磁盘基本信息:磁盘柱面数m, 每柱面磁道数p, 每磁道物理块数q; (2)假设采用整数数组存放位示图,则数组大小为: Size= ceil((柱面数*每柱面磁道数*每磁道物理块数)/(sizeof(int)*8))(3)申请大小为size的整数数组map,并对其进行随机初始化。 例如:假设m=2, p=4, q=8, 共有64个磁盘块,若sizeof(int)=2, 则位示图大小为4,map[4]如下: 地址到高地址位上。即map[0]的第0位到第15位分别对应0号磁盘块到15号磁盘块的状态,map[1]的第0位到第15位对应16号磁盘块到31号磁盘块的状

图书管理系统实验报告

上海电力学院 信息网络技术课程设计报告 题目: 图书馆借阅系统 姓名:白志强 学号:20111946 院系:电子与信息工程学院 专业年级:电子信息工程2011级

2014 年12月 5 日

●摘要 在大学生活中,图书馆是我们常去的一个地方,因而图书馆的管理无疑是我们需要关注的一个问题。 现在很多学校图书馆的借阅工作部分还是手工管理,工作效率很低并且不能及时了解图书的种类和学生们比较需求的图书等,不能更好的适应当前学生的借阅要求。计算机信息化管理有着存储量大,速度快等许多优点,提供给我们的处理信息及时快捷,因此利用计算机提供给我们的信息使学生们的借阅过程形成一整套动态的管理,能够极大提高图书馆理的效率,这也是学校的科学化,正规化管理。 图书借阅管理系统是一种信息管理系统,本系统采用数据库系统和VB平台,以https://www.360docs.net/doc/6b6402438.html, 为编程语言开发一个适合学校图书管理所需要的数据库管理软件。其开发主要包括后台数据库的建立和维护以及前端应用程序的开发两个方面。对于前者要求建立数据一致性和完整性强、数据安全性好的数据库。而对于后者则要求应用程序功能完备,易使用等特点。 ●实验目的 本课程设计的目的是综合应用https://www.360docs.net/doc/6b6402438.html,软件以及SQL数据库设计实现图书借阅系统。 ●设计环境 软件:VS2008,SQL Server2008 ●设计内容 基本要求:通过编程软件使系统可以进行管理员模块和用户使用模块。 管理员模块:添加图书,查询图书,查询用户,添加用户。 使用者模块:借阅图书,归还图书。 ●设计流程图 图书管理系统 用户界面管理者界面

设计步骤 建立数据库,新建表如图所示 打开表如图

软件设计与体系结构实验报告

福建农林大学计算机与信息学院 实验报告 课程名称:软件设计与体系结构 姓名:陈宇翔 系:软件工程系 专业:软件工程 年级:2007 学号:070481024 指导教师:王李进 职称:讲师 2009年12月16日

实验项目列表

福建农林大学计算机与信息学院实验报告 学院:计算机与信息学院专业:软件工程系年级:2007 姓名:陈宇翔 学号:070481024 课程名称:软件设计与体系结构实验时间:2009-10-28 实验室田实验室312、313计算机号024 指导教师签字:成绩: 实验1:ACME软件体系结构描述语言应用 一、实验目的 1)掌握软件体系结构描述的概念 2)掌握应用ACMESTUDIO工具描述软件体系结构的基本操作 二、实验学时 2学时。 三、实验方法 由老师提供软件体系结构图形样板供学生参考,学生在样板的指导下修改图形,在老师的指导下进行软件体系结构描述。 四、实验环境 计算机及ACMESTUDIO。 五、实验内容 利用ACME语言定义软件体系结构风格,修改ACME代码,并进行风格测试。 六、实验操作步骤 一、导入Zip文档 建立的一个Acme Project,并且命名为AcmeLab2。如下图:

接着导入ZIP文档,导入完ZIP文档后显示的如下图: 二、修改风格 在AcmeLab2项目中,打开families下的TieredFam.acme.如下图: 修改组件外观 1. 在组件类型中,双击DataNodeT; 在其右边的编辑器中,将产生预览;选择Modify 按钮,将打开外观编辑器对话框。 2. 首先改变图形:找到Basic shape section,在Stock image dropdown menu中选 择Repository类型. 3. 在Color/Line Properties section修改填充颜色为深蓝色。 4. 在颜色对话框中选择深蓝色,并单击 [OK]. 5. 修改图形的边框颜色为绿色 7. 单击Label tab,在Font Settings section, 设置字体颜色为白色,单击[OK] 产生的图形如下图:

图书管理系统实验报告资料

齐鲁工业大学认知实习报告 院系名称理学院 学生姓名曹哲川 专业班级信计13-2 指导教师王林 二○一六年十二月九日

认知实习情况一览表

C语言见习报告 前言 随着随着信息化迅猛发展,在各应用领域,如应用软件、数字计算、嵌入式设备开发、游戏软件开发、系统软件和图形处理以及对性能要求严格的领域等等,都已广泛运用到C语言,C语言被称为广泛的语言之一,在一些对性能有严格要求的地方也需采用C语言进行编程。所以从整个IT行业的运行情况来看,C语言工程师重要地位明显。 同时C语言又是一门基础语言,其职位发展方向不仅仅局限于C 语言程序员,同时还可往网络工程师、嵌入式工程师、数据库工程师等方向发展,而这几大方向已出现了严重的人才匮乏的现象。C语言开发工程师人才的紧缺促使该职位更极具发展潜力。不仅IT专业企业需要C语言开发工程师,众多非IT企业也表示对开发工程师有很大的需求,IT行业目前在国内为朝阳产业,C语言工程师便是这朝阳产业中具发展潜力的岗位之一。 因此,需要安排此次见习式训练,是为我们将来能够顺利步入社会做的准备,作为学生我们更应该抓住这次机会,学习该行业方面的知识,扩充自己的知识储备,提高自己在社会中的竞争力。

1.实习目的 随着计算机技术的不断应用和提高,计算机已经深入到社会生活的各个角落。而中小型租、借书机构仍采用手工管理图书的方法,不仅效率低、易出错、手续繁琐,而且耗费大量的人力。为了满足其管理人员对图书馆书籍,读者资料,借还书等进行高效的管理,在工作人员具备一定的计算机操作能力的前提下,此图书管理系统软件力求提高其管理效率。 本文档的编写是为了完善图书管理系统软件的开发途径和应用方法。以求在最短的时间高效的开发图书管理系统。 2.软件需求 2.1 管理员登陆 管理员以正确的用户名和密码登录后可以进行图书的维护、读者的维护等操作。 2.2 用户管理 2.2.1 添加读者 将新的读者信息添加到读者信息表。 录入信息:读者编号,读者姓名,读者年龄,读者单位,联系电话,已借书籍信息等。 2.2.2 读者信息修改 读者信息出现错误的地方,进行修改。 2.2.3删除读者 根据读者编号,将过期的读者从读者信息中删除。 2.2.4 检索读者信息 根据读者编号或姓名,检索读者的基本信息。 2.3 图书管理 2.3.3新图书入库 工作人员录入图书名称,图书价格,图书作者,出版社,图书状态(在架或已借)、图书数量等信息。 2.3.2图书信息修改 当图书信息录入发生错误或图书信息发生变化时,更改图书的基本信息。 2.3.3删除图书 将损坏、废旧的图书从图书信息中删除。 2.3.4 检索图书 根据图书编号、名称或作者检索图书的基本信息。 2.4 借书管理 根据读者编号和书籍编号,进行借阅登记。 2.5 还书管理 根据读者编号和书籍编号进行还书操作,如果图书超期、或者图书损坏则进

操作系统课程设计实验报告proj2

操作系统课程设计报告 班级: 团队成员:

目录 ................................................................................................................ 错误!未定义书签。 一、实验要求:建立线程系统................................................................... 错误!未定义书签。 1.1Task 2.1实现文件系统调用 (3) 1.1.1题目要求 (3) 1.1.2题目分析与实现方案 (3) 1.1.3关键点与难点 (4) 1.1.4实现代码 (4) 1.2 Task 2.2 完成对多道程序的支持 (5) 1.2.1题目要求 (5) 1.2.2题目分析与实现方案 (5) 1.2.3关键点与难点 (6) 1.2.4实现代码 (7) 1.3 Task 2.3 实现系统调用 (7) 1.3.1题目要求 (7) 1.3.2题目分析与实现方案 (8) 1.3.3关键点与难点 (9) 1.3.4实现代码 (9) 1.4 Task 2.4 实现彩票调度 (10) 1.4.1题目要求 (10) 1.4.2题目分析与实现方案 (10) 1.4.3关键点与难点 (11) 1.4.4实现代码 (11) 二、测试结果............................................................................................ 2错误!未定义书签。

简单文件系统的实现实验报告

操作系统课程设计报告简单文件系统的实现 专业: 班级: 姓名: 学号: 老师:

一、课程设计的目的 1. 通过具体的文件存储空间的管理、文件的物理结构、目录结构和文件操作的实现,加深对文件系统内部数据结构、功能以及实现过程的理解。 二、课程设计要求 1. 在内存中开辟一个虚拟磁盘空间作为文件存储分区,在其上实现一个简单的基于多级目录的单用户单任务系统中的文件系统。在退出该文件系统的使用时,应将该虚拟文件系统以一个Windows 文件的方式保存到磁盘上,以便下次可以再将它恢复到内存的虚拟磁盘空间中。2文件存储空间的分配可采用显式链接分配或其他的办法。 3空闲磁盘空间的管理可选择位示图或其他的办法。如果采用位示图来管理文件存储空间,并采用显式链接分配方式,那么可以将位示图合并到FAT中。 文件目录结构采用多级目录结构。为了简单起见,可以不使用索引结点,其中的每个目录项应包含文件名、物理地址、长度等信息,还可以通过目录项实现对文件的读和写的保护。 要求提供以下有关的操作命令: my_format:对文件存储器进行格式化,即按照文件系统的结构对虚拟磁盘空间进行布局,并在其上创建根目录以及用于管理文件存储空间等的数据结构。 my_mkdir:用于创建子目录。 my_rmdir:用于删除子目录。 my_ls:用于显示目录中的内容。 my_cd:用于更改当前目录。 my_create:用于创建文件。 my_open:用于打开文件。 my_close:用于关闭文件。 my_write:用于写文件。 my_read:用于读文件。 my_rm:用于删除文件。 my_exitsys:用于退出文件系统。 三、程序的设计细想和框图 1.打开文件函数fopen() (1)格式:FILE *fopen(const char *filename,const char *mode) (2)功能:按照指定打开方式打开指定文件。 (3)输入参数说明: filename:待打开的文件名,如果不存在就创建该文件。 mode:文件打开方式,常用的有: "r":为读而打开文本文件(不存在则出错)。 "w":为写而打开文本文件(若不存在则创建该文件;反之,则从文件起始位置写,原内容将被覆盖)。 "a":为在文件末尾添加数据而打开文本文件。(若不存在则创建该文件;反之,在原文件末尾追加)。 "r+":为读和写而打开文本文件。(读时,从头开始;在写数据时,新数据只覆盖所占的空间,其后不变) 。 "w+":首先建立一个新文件,进行写操作,随后可以从头开始读。(若文件存在,原内容将全部消失) 。 "a+":功能与"a"相同;只是在文件末尾添加新的数据后,可以从头开始读。 另外,上述模式字符串中都可以加一个“b”字符,如rb、wb、ab、rb+、wb+、ab+等组合,

相关文档
最新文档