1、 装订线内请勿答题 0 学号 专业 班级 学生姓名 0 - 1 - 文文 华华 学学 院院 2017 2018 学年度第 2 学期操作系统课程设计考查试卷 (A 卷) 课程性质:(必修 ) 使用范围:(本科) 考查时间:2018 年 3 月 2 日 考查方式:( 开卷) 考试类型 论文 大作业 调研报 告 其它 总分 课程设计 阅卷老 师签名 试 题: 要 求: 独立完成,3000-8000 字(不含附件)。 第 - 2 - 页 共 35 页 目录目录 一、一、课程设计任务及要求课程设计任务及要求. .3 3 1.1 设计任务.3 1.2 设计要求.3 二、二、算法及数据结构算法及数据结构.
2、.3 3 2.1 主要数据结构.3 2.2 用户管理模块.5 2.2.1 初始化用户函数.5 2.2.2 系统用户的输出函数.6 2.2.3 用户的查找函数.6 2.3 创建文件函数.6 2.4 删除文件函数.8 2.5 打开文件函数.9 3.6 读文件函数11 3.7 写文件函数11 3.8 关闭文件函数12 3.9 显示文件函数13 3.9.1 显示用户文件13 3.9.2 显示已打开的文件13 三、三、程序设计与实现程序设计与实现. .1818 4.1 程序流程图.18 4.2 程序说明.18 4.3 实验结果.19 四、四、参考文献参考文献2121 六、六、收获、体会和建议收获、体会和
3、建议. .2 22 2 七、附录源程序清单、附录源程序清单. .2323 装订线内请勿答题 0 学号 专业 班级 学生姓名 0 - 3 - 一、一、课程设计任务及要求课程设计任务及要求 1 1.1 .1 设计任务设计任务 设计、实现一个模拟的文件系统 1 1.2 .2 设计要求设计要求 建立文件存储介质的管理机制 建立目录(采用一级目录结构) 文件系统功能(显示目录、创建、删除、打开、关闭、读、写) 文件操作接口(显示目录、创建、删除、打开、关闭、读、写) 独立完成课程设计内容 文本的课程设计报告,内容包括调试记录和程序清单(附注释)。 二、算法及数据结构二、算法及数据结构 2.12.1 主要
4、数据结构主要数据结构 /* *定义文件数据结构 */ typedef struct file char file_name20 ; bool file_protect3 ; bool open_file_protect3 ; /仅在文件打开时有效 int read , write ; /定义为读写指针 int file_length ; struct file *next ; File ; /* *用户与文件的映射 */ typedef struct x_map char userName20 ; 第 - 4 - 页 共 35 页 File *file ; struct x_map *next
5、 ; Map ; /* *定义主文件目录 */ typedef struct mfd Map *head , *tail ; MFD ; /* *打开文件目录 */ typedef struct afd File *head , *tail ; int max_open ; int current_open ; AFD ; 主文件目录(主文件目录(MFDMFD)和用户文件目录(和用户文件目录(UFDUFD) 装订线内请勿答题 0 学号 专业 班级 学生姓名 0 - 5 - 打开文件目录(打开文件目录(AFDAFD) 2.22.2 用户管理模块用户管理模块 2.2.12.2.1 初始化用户函数初始化用户函数 void initUser(MFD *mfd) /初始化两个不同用户 for(int i = 1 ; i m-userName ; m-file = NULL ; m-next = NULL ; if(mfd-head = NULL) mfd-head = mfd-tail = m ; else 第 - 6 - 页 共 35 页 mfd-tail-next = m ; mfd-tail = m ; 初始化两个不同用户,把输入用户的用户名下的目录指针、文件指针 初始化 2.2.22.2.2 系统用户的输出函数系统用户的输出函数 void d