




已阅读5页,还剩13页未读, 继续免费阅读
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
院 系: 北华大学计算机科学与技术学院 班 级: 计算机软件方向05-1班 姓 名: 马 铁 学 号: 2 号 指导 老师: 李 益 民 2007年7月4日操作系统原理课程设计任务书(计算机科学与技术专业(软件方向)计软05-1)一、课程设计题目(任选一个题目)1.简易文件系统2.设备驱动程序3.自选题目(经指导教师审题认可)二、设计目的和要求1.设计目的操作系统原理课程设计是计算机科学与技术专业实践性环节之一,是学习完操作系统原理课程后进行的一次较全面的综合练习。其目的在于加深对操作系统的理论、方法和基础知识的理解,掌握操作系统结构、实现机理和各种典型算法,系统地了解操作系统的设计和实现思路,培养学生的系统设计能力,并了解操作系统的发展动向和趋势。2.基本要求:(1)学生自由组成课程设计小组,建议每组最多不超过3个学生。(2)选择课程设计题目中的一个课题,每组独立完成。(3)良好的沟通和合作能力(4)充分运用前序课所学的软件工程、程序设计等相关知识(5)充分运用调试和排错技术(6)简单测试驱动模块和桩模块的编写 (7)查阅相关资料,自学具体课题中涉及到的新知识。(8)课题完成后必须按要求提交课程设计报告,格式规范,内容详实。三、设计内容及步骤1.根据设计题目的要求,充分地分析和理解问题,明确问题要求做什么。2.根据实现的功能,划分出合理的模块,明确模块间的关系。3.编程实现所设计的模块。4.程序调试与测试。采用自底向上,分模块进行,即先调试低层函数。能够熟练掌握调试工具的各种功能,设计测试数据确定疑点,通过修改程序来证实它或绕过它。调试正确后,认真整理源程序及其注释,形成格式和风格良好的源程序清单和结果;5.结果分析。程序运行结果包括正确的输入及其输出结果和含有错误的输入及其输出结果。6.编写课程设计报告;设计报告要求:A4纸,详细设计部分主要叙述本人的工作内容设计报告的格式:(1)封面(题目、指导教师、专业、班级、姓名、学号)(2)设计任务书(3)本组课题、组长、组员及本人任务(4)目录(5)需求分析(6)概要设计(7)详细设计(含主要代码)(8)调试分析、测试结果(9)用户使用说明(10)附录或参考资料四、进度安排设计在学期的第17、18周进行,时间安排如下:序号内 容时间(天)1预习、讲课12设计33编码、测试54验收1 合计10五、成绩评定办法成绩分为优(A)、良(B)、中(C)、及格(D)、不及格(E)五个等级。其中设计表现占30%,验收40%,设计报告占30%。1.设计表现:教师可依据学生使用实验环境的能力、观察和分析实验现象的能力、实验结果和数据的正确性以及学生的课堂纪律、实验态度、保持实验室卫生等方面的表现进行综合考核。2.验收:按小组验收,要求学生演示设计的程序,讲解设计思路、方法、解决的主要问题,教师根据具体情况向每个学生提问2至3个问题。3.设计报告:学生设计后应按时完成设计报告。要求:内容充实、写作规范、项目填写正确完整、书面整洁等。项目名称:文件管理系统项目成员:组长:车辙 组员:马铁 王江目 录一、概述2二 需求分析32.1 问题获取32.2 分析3三 概要设计5四 详细设计以及实现16五 调试分析、测试结果235.1程序的调试235.2 程序的测试与运行23六 用户规格说明书266.1引言266.2 用户描述266.3小结27七 参考文献28一、概述 本项目全称为:简易文件管理系统。文件系统是操作系统顶层的模块。用户使用计算机时与之打交道最多的是文件系统。比如查找文件、打印文件内容、删除文件、建立文件等等。文件系统的设计与实现依赖于文件系统要达到的目标、文件的定义、数据结构的设计、文件存储介质的提供以及管理方案的制定与实施等诸多的因素,内容很多。但是,我们总是要从文件系统的应用与开发两个方面来掌握文件系统。从应用的角度出发,应该熟练的使用文件系统提供的命令或者系统调用;从开发的角度出发,则是应该从基本概念入手,先设计一些简单的功能,去体验一下文件系统中的基本数据结构的作用,然后再不断地扩充功能,根据需要完善开发过程。本项目就是一个简单的虚拟文件系统,实现了一些文件系统应有的基本因子:如创建新文件、删除文件、创建目录、删除目录及显示目录功能等。在开发工具方面,我们选择的是Win TC,使用C语言来完成了本次项目。【关键词】 文件管理 目录管理 操作系统 C语言二 需求分析2.1 问题获取我们以学生为调查对象。模拟询问了若干问题,这些问题的提出和解决有助项目的开发和方向定位。问题如下:1)有关用户操作方面的相关问题# 是否需要使用者的登录登出操作?# 允许用户执行哪些操作?# 各项操作的提示操作是设置在软件界面上还是在菜单里?# 允许用户对文件的操作有哪些?2)有关技术支持方面的相关问题# 用户使用的是那种操作系统?(WindowsXP / Linux/苹果?)# 是否使用数据库的相关技术?# 是否向用户提供相关的技术文档?2.2 分析经过相关的问题获取,我们分析了本项目的相关需求。本项目的名称:简易文件系统本系统的使用人员:所有使用计算机的人员本项目的开发工具:WinTc数据库设计:无界面设计:命令行提示方式的程序在用户操作方面,运行本系统前不需要用户的登录操作,运行后可以直接进入操作界面,用户可以直观的使用本程序。用户可以对文件做以下的操作:文件的建立,删除,查找,文件目录的相关管理,各项操作应可以直接操作,不会有任何的限制。用户大多使用的是WindowsXP操作系统,而且很多的用户安装了WinTc软件,这样我们以WinTc编写的程序用户可以直接使用三 概要设计本程序的功能模块图如图所示:文件管理系统创建文件创建目录查看文件删除目录删除文件查看目录 在此文件模拟系统上可以实现以下操作:# 创建目录:md + 空格 + 目录名,在指定路径下创建指定的目录,如果没有指定路径,则在当前目录下创建指定目录。对于重名的目录给与错误提示。# 创建文件:vi + 空格 + 文件名 + 文件长度, 创建一个指定名字的新文件,即在目录中增加一项,对于重名的文件给与错误提示。# 删除目录:del + 空格 + 目录名,删除指定的目录及此目录下的文件和子目录。# 删除文件:del + 空格 + 文件名,删除指定的文件。# 查看目录:cd + 空格 + 目录名,显示指定目录下的全部文件和一级子目录,如果没有指定目录名,则显示当前目录下的相应内容。# 查看文件:cat + 空格 + 文件名,显示指定的文件,如没有此文件,则显示错误提示。# 键入quit退出文件系统。四 详细设计以及实现/* HELLO.C - Hello, world */#include stdio.h#include #include #include int physic300; /* 文件地址缓冲区 */int style=1; /* 文件的类型 */char cur_dir10=c; /* 当前目录 */ struct command char com10;cmd12;struct block int n; /* 空闲的盘快的个数 */ int free50; /* 存放空闲盘快的地址 */ int a; /* 模拟盘快是否被占用 */memory200;struct block_super int n; /* 空闲的盘快的个数 */ int free50; /* 存放进入栈中的空闲块 */ int stack50; /* 存放下一组空闲盘快的地址 */super_block;struct node /* i结点信息 */ int file_style; /* i结点 文件类型 */ int file_length; /* i结点 文件长度 */ int file_address100; /* i结点 文件的物理地址 */ i_node64;struct dir /* 目录项信息 */ char file_name10; /* 文件名 */ int i_num; /* 文件的结点号 */ char dir_name10; /* 文件所在的目录 */ c64;void format() /* 格式化 */int i,j,k; super_block.n=50; for(i=0;i50;i+) /* 超级块初始化 */ super_block.freei=i; /* 存放进入栈中的空闲块 */ super_block.stacki=50+i; /* 存放下一组的盘块 */ for(i=0;i64;i+) /* i结点信息初始化 */ for(j=0;j100;j+) i_nodei.file_addressj=-1;/* 文件地址 */ i_nodei.file_length=-1; /* 文件长度 */ i_nodei.file_style=-1; /* 文件类型 */ for(i=0;i64;i+) /* 根目录区信息初始化 */ strcpy(ci.file_name,); ci.i_num=-1; strcpy(ci.dir_name,); for(i=0;i200;i+) /* 存储空间初始化 */ memoryi.n=0; /* 必须有这个 */ memoryi.a=0; for(j=0;j50;j+) memoryi.freej=-1; for(i=0;i200;i+) /* 将空闲块的信息用成组链接的方法写进每组的最后一个块中 */ /* 存储空间初始化 */ if(i+1)%50=0) k=i+1; for(j=0;j50;j+) if(k200) memoryi.freej=k;/* 下一组空闲地址 */ memoryi.n+; /* 下一组空闲个数 注意在memoryi.n+之前要给其赋初值 */ k+; else memoryi.freej=-1; memoryi.a=0; /* 标记为没有使用 */ continue; /* 处理完用于存储下一组盘块信息的特殊盘块后,跳过本次循环 */ for(j=0;j50;j+) memoryi.freej=-1; memoryi.n=0; printf(已经初始化完毕n); printf(欢迎进入UNIX文件模拟系统!nn);void write_file(FILE *fp) /* 将信息读入系统文件中 */ int i; fp=fopen(system,wb); for(i=0;i200;i+) fwrite(&memoryi,sizeof(struct block),1,fp); fwrite(&super_block,sizeof(struct block_super),1,fp); for(i=0;i64;i+) fwrite(&i_nodei,sizeof(struct node),1,fp); for(i=0;i64;i+) fwrite(&ci,sizeof(struct dir),1,fp); fclose(fp);void read_file(FILE *fp) /* 读出系统文件的信息 */ int i; fp=fopen(system,rb); for(i=0;i200;i+) fread(&memoryi,sizeof(struct block),1,fp); fread(&super_block,sizeof(struct block_super),1,fp); for(i=0;i64;i+) fread(&i_nodei,sizeof(struct node),1,fp); for(i=0;i=0;i-) k=physici; /* 需要提供要回收的文件的地址 */ m=49-super_block.n; /* 回收到栈中的哪个位置 */ if(super_block.n=50) /* 注意 当super_block.n=50时 m=-1;的值 */ /* super_block.n=50的时候栈满了,要将这个栈中的所有地址信息写进下一个地址中 */ for(j=0;j50;j+) memoryk.freej=super_block.freej; super_block.n=0; memoryk.n=50; memoryk.a=0; if(m=-1) m=49; /* 将下一个文件地址中的盘块号回收到栈底中,这个地址中存放着刚才满栈的地址的信息 */ super_block.freem=physici; /* 将下一个文件地址中的盘块号回收到栈中 */ super_block.n+; 五 调试分析、测试结果5.1程序的调试 本程序使用的函数均为标准C库函数,可以由任何支持标准C的编译器编译运行。经过Windows 平台:Win TC测试其他说明:l 支持相对路径和绝对路径;l 在新建文件或目录中,若文件名或目录名同名的文件或目录在创建目录下已存在,则创建失败并给予提示。l CD命令中,如果有遇到路径错误,将报错,并保持在当前路径下等待下一次命令。l 如果有命令格式或者文件目录操作有错,系统将报错。并提示用户,允许重试。l 不允许对
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 2025年事业单位工勤技能-河北-河北保健按摩师五级(初级工)历年参考题库含答案解析
- 2025年事业单位工勤技能-江西-江西有线广播电视机务员五级(初级工)历年参考题库含答案解析(5套)
- 2025年事业单位工勤技能-江苏-江苏假肢制作装配工五级(初级工)历年参考题库含答案解析(5套)
- 2025年事业单位工勤技能-广西-广西热处理工五级(初级工)历年参考题库典型考点含答案解析
- 2025年事业单位工勤技能-广西-广西机械冷加工二级(技师)历年参考题库典型考点含答案解析
- 2025年事业单位工勤技能-广西-广西垃圾清扫与处理工四级(中级工)历年参考题库含答案解析
- 焊工安全基本知识培训课件
- 焊工作业安全知识培训课件
- 2020-2025年投资项目管理师之宏观经济政策自测模拟预测题库(名校卷)
- 2025年银行金融类-金融考试-银行业专业人员初级(法规+银行管理)历年参考题库含答案解析
- 《机械制图》职业院校机械类专业全套教学课件
- 充电桩巡查记录表
- 人教版六年级数学上册第一单元测试卷
- 浙江省镇海中学高三一诊考试新高考物理试卷及答案解析
- JT-T-155-2021汽车举升机行业标准
- 化妆品质量意识培训大纲
- 八下单词表(Unit 1-10)大全
- YS-T 650-2020 医用气体和真空用无缝铜管
- JC-T 564-2000 纤维增强硅酸钙板
- 《建筑装饰工程质量检验与检测》课程标准
- PVC地胶板施工工艺流程图文
评论
0/150
提交评论