操作系统课程设计报告.pdf
操作系统课程设计报告
概述:
本课程设计旨在使学生熟悉文件管理系统的设计方法,加
深对所学各种文件操作的了解及其操作方法的特点。通过模拟
文件系统的实现,深入理解操作系统中文件系统的理论知识,
加深对教材中的重要算法的理解。同时通过编程实现这些算法,
更好地掌握操作系统的原理及实现方法,提高综合运用各专业
课知识的能力。
主要任务:
本课程设计的主要任务是设计和实现一个简单的文件系统,
包括建立文件存储介质的管理机制、建立目录(采用一级目录
结构)、文件系统功能(显示目录、创建、删除、打开、关闭、
读、写)和文件操作接口(显示目录、创建、删除、打开、关
闭、读、写)。
系统设计:
本系统模拟一个文件管理系统,要完成对文件的基本操作,
包括文件、文件夹的打开、新建、删除和读取写入文件,创建
更改目录,列出目录内容等信息。系统建立了文件目录树,存
储文件系统中的所有文件。对于用户名下的文件,用文件目录
树的分支来存储。采用命令行操作界面很直观,也方便用户进
行操作,用户只要按照操作界面所显示的命令来操作即可。
整体设计框架:
系统初始化界面由创建用户存储空间、管理文件、退出系
统三个模块组成。用户创建由创建用户存储空间、进入目录、
删除用户存储空间、显示所有用户存储空间等模块组成。然后
各个模块再由一些小模块组成。其中创建文件、打开关闭文件、
读写文件等文件操作模块包括在进入目录模块里面。
系统实现:
以下是本课程设计的主要内容的实现程序代码:
c
include
include
include
typedefstructfile{
charname[10];
structfile*next;
File;
typedefstructcontent{
charname[10];
File*file;
intf_num;
structcontent*next;
Content;
typedefstructuser{
charname[10];
charpsw[10];
Content*con;
structuser*next;
User;
charcur_user[20];
XXX;
intuser_num=0;
添加文件:
在该函数中,我们首先需要获取文件名,然后检查是否已
经存在该文件。如果存在,则输出错误信息;否则,创建一个
新的文件并将其添加到文件列表中。
voidadd_file(Content*con){
charf_name[10];
intexist=0;
File*file=con-file-next;
请输入文件名
strcat(f_name,tail);
while(file!=NULL){
if(strcmp(f_name,file-name)==0){
exist=1;
break;
file=file-next;
if(exist==1){
文件已存在
return;
FILE*q;
fclose(q);
while(file-next!=NULL)
file=file-next;
File*new_f=(File*)malloc(sizeof(File));
strcpy(new_f-name,f_name);
new_f-next=NULL;
file-next=new_f;
con-f_num++;
添加文件%s成功
读取文件:
在该函数中,我们需要获取文件名并检查是否存在该文件。
如果不存在,则输出错误信息;否则,打开该文件并读取其内
容。
voidread_file(Content*con){
charname[10];
intfind=0;
File*file=con-file-next;
请输入需要读取的文件名
strcat(name,tail);
while(file!=NULL){
if(strcmp(nam