操作系统课程设计1要点

合集下载

操作系统-课程设计

操作系统-课程设计

操作系统-课程设计一、教学目标本章节的教学目标分为三个部分:知识目标、技能目标和情感态度价值观目标。

知识目标:通过本章节的学习,学生需要掌握操作系统的概念、原理和基本功能,包括进程管理、内存管理、文件系统和设备管理等方面的知识。

技能目标:学生能够运用所学知识分析和解决操作系统相关的问题,具备基本的操作系统使用和维护能力。

情感态度价值观目标:培养学生对操作系统的兴趣和好奇心,提高学生对计算机科学的热爱和责任感。

二、教学内容本章节的教学内容主要包括以下几个部分:1.操作系统的概念和作用:介绍操作系统的定义、功能和作用,以及操作系统的发展历程。

2.进程管理:讲解进程的定义、特点和基本管理方法,包括进程调度、进程同步和进程通信等内容。

3.内存管理:介绍内存的概念、分类和分配策略,以及内存管理的具体方法,如分页、分段和虚拟内存等。

4.文件系统:讲解文件和文件夹的概念、方式和存储结构,以及文件系统的管理方法,如目录结构、文件读写和磁盘空间分配等。

5.设备管理:介绍设备的分类、设备驱动程序和设备管理的基本方法,包括输入输出控制、中断处理和DMA传输等。

三、教学方法为了提高教学效果,本章节将采用多种教学方法相结合的方式进行教学:1.讲授法:通过讲解操作系统的概念、原理和基本功能,使学生掌握操作系统的相关知识。

2.案例分析法:通过分析具体的操作系统案例,使学生更好地理解和掌握操作系统的原理和方法。

3.实验法:安排实验室实践环节,让学生亲自动手进行操作系统的实验操作,提高学生的实际操作能力。

4.讨论法:学生进行小组讨论,分享学习心得和经验,促进学生之间的交流与合作。

四、教学资源为了支持本章节的教学,我们将准备以下教学资源:1.教材:选用权威、实用的操作系统教材,为学生提供系统、全面的学习资料。

2.参考书:推荐学生阅读一些优秀的操作系统参考书籍,丰富学生的知识体系。

3.多媒体资料:制作精美的PPT课件,为学生提供直观、生动的学习界面。

操作系统课程设计课程设计

操作系统课程设计课程设计

操作系统课程设计简介操作系统课程设计旨在让学生通过设计和开发一个简单的操作系统来深入了解操作系统的基本概念和原理。

在本文档中,我们将介绍课程设计的主要内容,包括设计目标、技术要求和项目要求。

设计目标操作系统课程设计的主要设计目标是让学生掌握操作系统的基本原理和技术。

通过这个项目,学生应该能够:•理解操作系统的基本概念和原理•实现一个简单的操作系统内核•学会编写和调试操作系统的核心代码•掌握计算机系统底层的技术和知识技术要求操作系统课程设计的技术要求主要包括以下几点:编程语言操作系统课程设计要求学生使用C或Assembly等语言编写代码。

因为这些语言可以更好地控制计算机硬件,并且能够更好地实现操作系统。

系统架构操作系统课程设计要求学生设计和开发一个基于x86架构的操作系统内核。

这是因为x86架构被广泛使用,并且有很多相关的资料和资源可以参考。

开发环境操作系统课程设计要求学生使用VMware或VirtualBox等模拟器来模拟计算机硬件,以便在虚拟环境中测试和调试操作系统代码。

相关知识操作系统课程设计要求学生掌握计算机系统底层的知识和相关技术,如计算机组成原理、汇编语言、操作系统原理等。

项目要求操作系统课程设计的项目要求主要包括以下几点:设计和实现内核学生需要设计和实现一个简单的操作系统内核。

该内核应该具有基本的操作系统功能,如进程调度、CPU调度、内存管理等。

设计和实现系统调用学生需要设计和实现系统调用,并提供相应的API。

系统调用应该能够支持常见的操作系统功能,如文件管理、进程管理等。

实现Shell学生需要实现一个简单的Shell程序,该程序应该能够支持常见的Shell命令,并且能够与操作系统内核进行交互。

测试和调试学生需要在虚拟机中测试和调试操作系统内核和相关代码。

该过程需要包括单元测试、集成测试和系统测试等不同层次的测试。

总结操作系统课程设计是一门重要的计算机科学课程,对于学生掌握操作系统的基本原理和技术是非常重要的。

操作系统课程设计要点

操作系统课程设计要点

操作系统课程设计要点操作系统课程设计(设备管理)目录一引言1.1课程设计题目实现一个模拟操作系统。

1.2课程设计的目的通过模拟操作系统原理的实现,加深对操作系统工作原理懂得,进一步熟悉操作系统的实现方法,并可练习合作完成系统的团队精神与提高程序设计能力。

1.3小组人数建议3~4人一组共同完成模拟系统的实现。

1.4编程语言建议使用VC、VB、C#、Java等Windows环境下的程序设计语言,以借助这些语言环境来模拟硬件的一些并行工作。

1.5课程设计内容模拟使用多道程序设计方法的单用户操作系统,该操作系统包含进程管理、存储管理、设备管理、文件管理与用户接口四部分。

1.6界面设计如图图1.1二课程设计任务及要求2.1设计任务设计一个设备管理分配程序,按先来先服务的算法,对设备进行分配。

2.2设计要求设备管理要紧包含设备的分配与回收。

(1)模拟系统中有A、B、C三种独占型设备,A设备3个,B设备2个,C设备1个。

(2)由于模拟系统比较小,因此只要设备表设计合理即可。

(3)使用先来先服务分配策略,使用设备的安全分配方式。

(4)屏幕显示每个设备是否被使用,哪个进程在使用该设备,什么进程在等待使用该设备。

三算法及数据结构3.1算法的总体思想(流程)设备管理的功能是按照设备的类型与系统使用的分配策略,为请求I/O进程分配一条传输信息的完整通路。

合理的操纵I/O的操纵过程,可最大限度的实现CPU与设备、设备与设备之间的并行工作。

1.监视所有设备。

为了能对设备实施有效的分配与操纵,系统能获取设备的状态。

设备状态储存在设备操纵表(DeviceTable)中,并动态的记录状态的变化及有关信息。

2.制定分配策略。

按先来先服务的算法,进行设备分配。

3.设备的分配。

把设备分配给进程。

4.设备回收。

当进程运行完毕后,要释放设备,则系统务必回收,一边其他进程使用。

图3.13.2 Equipment模块3.2.1 功能记录设备的状态及有关信息检查设备是否被调用对设备进行分配进程结束对设备进行回收3.2.2 数据结构一个DeviceTable类、一个DeviceTable函数。

操作系统课程设计

操作系统课程设计

操作系统课程设计一、课程设计要求本次操作系统课程设计,要求选定一个特定功能的操作系统,进行设计和开发。

1.系统要支持多用户同时登录。

2.系统要支持进程间通信,实现用户之间的数据传输。

3.系统要具备文件管理系统,支持文件的创建、读取、写入和删除等基本操作。

4.系统的安全性能要得到有效保障。

5.系统要提供一个用户界面,使得用户可以方便地使用该操作系统。

二、操作系统设计为了满足以上的需求,我们决定设计一个基于Linux内核的操作系统。

1. 多用户登录系统我们将通过在系统中建立多个用户账户,来实现多用户同时登录。

每个用户都有自己的目录,可以在此目录下进行文件的创建、读取、写入和删除等操作。

同时,为了保证安全性,我们将采用访问控制列表(ACL)的方式,对用户进行权限控制。

2. 进程间通信系统在本系统中,我们将采用信号量(Semaphore)的方式,通过在进程间共享内存,来实现进程间的通信。

举例说明,当两个用户需要进行数据传输时,他们可以通过先创建一个共享内存段,然后分别将数据写入到共享内存段中,再通知对方已经完成写入操作,并等待另一个进程完成相应的读取操作。

3. 文件管理系统本系统的文件管理系统将采用Linux系统的文件系统。

每个用户都会有自己的文件目录,可以在该目录下进行文件的创建、读取、写入和删除等操作。

同时,为了更好地实现用户文件管理,我们还将为每个用户提供一个专门的文件管理界面。

4. 安全性保障为了保证系统的安全性,我们将采用一系列措施,来限制用户对系统的访问。

具体措施包括:•设置密码策略:对用户密码的复杂度、有效期限等进行限制。

•限制用户权限:通过ACL来实现权限的管理,保证用户只能访问自己的目录和文件。

•提供安全日志管理机制:对系统的操作进行记录和检查,保证系统运行的安全性。

5. 用户界面设计为了方便用户使用本系统,我们将提供一个友好、易用的用户界面。

该界面将采用图形界面,提供一些基本的操作按钮,比如文件管理、用户管理、程序运行等,同时还将提供一些实用的小工具,比如日历、时钟等。

操作系统课程设计

操作系统课程设计

操作系统课程设计一、课程目标知识目标:1. 理解操作系统的基本概念、功能、类型和结构,掌握操作系统的五大核心功能模块(处理器管理、存储器管理、设备管理、文件管理、用户接口);2. 掌握操作系统的发展历程、主要操作系统(如Windows、Linux、Mac OS)的特点及应用场景;3. 了解操作系统的设计与实现原理,包括进程管理、内存管理、设备管理、文件系统等关键技术;4. 学会使用操作系统提供的命令行或图形界面进行基本的系统操作与维护。

技能目标:1. 培养学生对操作系统的实际操作能力,能够熟练使用至少一种操作系统进行日常管理与维护;2. 培养学生运用操作系统原理解决实际问题的能力,如分析系统性能、诊断故障、优化配置等;3. 提高学生的编程能力,使其能够编写简单的系统程序或脚本,实现特定功能。

情感态度价值观目标:1. 培养学生对操作系统的兴趣,激发学生学习计算机科学的热情;2. 培养学生的团队合作意识,使其在讨论、分析、解决问题的过程中学会倾听、交流、协作;3. 培养学生具备良好的信息素养,关注操作系统领域的最新发展,增强信息安全意识。

课程性质:本课程为计算机科学与技术专业(或相关领域)的必修课,具有较强的理论性和实践性。

学生特点:学生已具备一定的计算机基础知识,具有较强的学习兴趣和动手能力,但可能对操作系统原理的理解和应用尚有不足。

教学要求:注重理论与实践相结合,以案例驱动、任务导向的方式进行教学,注重培养学生的实际操作能力和问题解决能力。

通过本课程的学习,使学生能够掌握操作系统的基本原理,提高实际应用水平,为后续专业课程学习打下坚实基础。

二、教学内容1. 操作系统概述:介绍操作系统的基本概念、功能、类型,比较不同操作系统的特点,分析操作系统的发展趋势。

教材章节:第一章 操作系统概述2. 进程与线程管理:讲解进程与线程的概念、状态与转换,进程调度算法,同步与互斥,死锁与饥饿问题。

教材章节:第二章 进程管理3. 存储管理:介绍内存分配与回收策略,虚拟内存技术,页面置换算法,内存保护机制。

《操作系统》课程设计

《操作系统》课程设计

《操作系统》课程设计一、课程目标知识目标:1. 让学生掌握操作系统的基本概念,包括进程、线程、内存管理、文件系统等核心知识;2. 了解操作系统的历史发展,掌握不同类型操作系统的特点及使用场景;3. 掌握操作系统的性能评价方法和常用的调度算法。

技能目标:1. 培养学生运用操作系统知识解决实际问题的能力,如分析系统性能瓶颈、优化系统资源分配等;2. 培养学生具备基本的操作系统编程能力,如进程创建、线程同步、文件操作等;3. 提高学生的团队协作能力和沟通能力,通过小组讨论和项目实践,学会共同解决问题。

情感态度价值观目标:1. 培养学生对操作系统学科的兴趣,激发学生的学习热情,使其形成积极向上的学习态度;2. 培养学生具备良好的信息素养,尊重知识产权,遵循法律法规;3. 培养学生的创新精神和批判性思维,敢于质疑、勇于探索,形成独立思考的能力。

课程性质:本课程为计算机科学与技术专业的核心课程,旨在让学生掌握操作系统的基本原理和实现方法,提高学生的系统分析和编程能力。

学生特点:学生具备一定的编程基础和计算机系统知识,具有较强的逻辑思维能力和动手实践能力。

教学要求:结合学生特点和课程性质,注重理论与实践相结合,通过案例分析和项目实践,帮助学生将所学知识内化为具体的学习成果。

在教学过程中,关注学生的学习进度和反馈,及时调整教学策略,确保课程目标的实现。

二、教学内容1. 操作系统概述:介绍操作系统的定义、发展历程、功能、类型及特点,对应教材第一章内容。

- 操作系统的起源与发展- 操作系统的功能与类型- 操作系统的主要特点2. 进程与线程:讲解进程与线程的概念、状态、调度算法,对应教材第二章内容。

- 进程与线程的定义与区别- 进程状态与转换- 进程调度算法3. 内存管理:分析内存管理的基本原理、策略和技术,对应教材第三章内容。

- 内存分配与回收策略- 虚拟内存技术- 页面置换算法4. 文件系统:介绍文件系统的基本概念、结构、存储原理,对应教材第四章内容。

操作系统课程设计(完整规范版)

操作系统课程设计(完整规范版)

操作系统课程设计(完整规范版)一、设计目的操作系统课程设计旨在让学生深入了解操作系统的基本原理,掌握操作系统的设计与实现方法,培养学生在实际操作系统中分析和解决问题的能力。

通过本次课程设计,学生将能够:1. 加深对操作系统理论知识的理解与应用;2. 提高动手实践能力,培养创新精神和团队协作意识;3. 为今后从事操作系统相关领域的研究和工作奠定基础。

二、设计要求(1)进程管理:包括进程的创建、撤销、调度等;(2)内存管理:实现内存分配、回收、页面置换等;(3)文件系统:实现文件的创建、删除、读写等操作;(4)设备管理:实现设备的分配、回收、驱动等功能。

(1)代码规范:编写清晰、易读、易维护的代码;(3)团队协作:合理分工,确保团队成员共同参与、共同进步。

三、设计步骤1. 需求分析:分析课程设计所需实现的功能,明确各个模块的具体要求;2. 概要设计:根据需求分析,制定总体设计方案,划分模块,确定模块间接口;3. 详细设计:针对每个模块,进行具体实现方案的设计;4. 编码实现:按照设计文档,编写代码,实现各个功能模块;5. 测试与调试:对实现的功能进行测试,发现问题并进行调试;6. 优化与改进:根据测试结果,对代码进行优化,提高系统性能;四、预期成果1. 完成一套具有基本功能的模拟操作系统,能够演示进程管理、内存管理、文件系统和设备管理的主要操作;2. 提供完整的,包括注释,以便他人理解和学习;3. 形成一份详尽的课程设计报告,记录设计过程中的思考、遇到的问题及解决方案;4. 通过课程设计,提升个人在操作系统领域的理论知识和实践能力。

五、评价标准1. 功能完整性:各功能模块是否按照要求实现,系统是否能正常运行;3. 创新性:设计过程中是否有独特的想法,是否对现有技术有所改进;4. 团队协作:团队成员之间沟通是否顺畅,分工是否合理,协作是否高效;5. 文档质量:课程设计报告是否详细、准确,是否能够完整反映设计过程和成果。

操作系统课设课程设计

操作系统课设课程设计

操作系统课设课程设计一、课程目标知识目标:1. 理解操作系统的基本概念,掌握操作系统的功能和作用;2. 学习操作系统的五大组成部分及其相互关系,了解常见操作系统的类型及特点;3. 掌握进程与线程的概念、状态及调度算法,了解并发与并行计算的基本原理;4. 学会分析文件系统的结构和管理方法,了解存储设备的使用和数据恢复技术;5. 了解操作系统在资源管理、安全性、性能优化方面的策略和实践。

技能目标:1. 能够运用所学知识,编写简单的进程调度算法,分析调度效果;2. 掌握操作系统中进程同步与互斥的基本方法,能够解决简单的并发问题;3. 学会使用操作系统提供的接口和工具,进行简单的系统编程和调试;4. 能够设计和实现一个简单的文件系统,进行文件的基本操作;5. 培养学生运用所学知识解决实际问题的能力,提高学生的动手实践能力。

情感态度价值观目标:1. 培养学生对操作系统课程的学习兴趣,激发学生的学习积极性;2. 培养学生具备良好的团队合作精神和沟通能力,提高学生在团队协作中的责任感;3. 培养学生具备严谨的科学态度和良好的学术道德,尊重知识产权;4. 通过学习操作系统的发展历程,培养学生热爱祖国、为我国信息技术产业发展贡献力量的情怀。

本课程针对高中年级学生,结合学生已具备的计算机基础知识和认知水平,注重理论与实践相结合,旨在提高学生对操作系统的理解与应用能力。

课程目标既关注知识传授,又强调技能培养和情感态度价值观的塑造,为学生的全面发展奠定基础。

在教学过程中,将根据课程目标分解具体学习成果,制定相应的教学策略和评估方法。

二、教学内容1. 操作系统的概念与作用:介绍操作系统的定义、发展历程、功能及作用;教材章节:第一章 操作系统概述2. 操作系统的五大组成部分:讲解处理器管理、存储管理、设备管理、文件管理、用户接口;教材章节:第二章 操作系统的基本组成3. 进程与线程:分析进程与线程的概念、状态、调度算法及并发与并行计算;教材章节:第三章 进程管理4. 进程同步与互斥:探讨操作系统中进程同步与互斥的方法,案例分析;教材章节:第四章 进程同步与互斥5. 存储管理:介绍内存分配、回收策略,虚拟内存技术;教材章节:第五章 存储管理6. 文件系统:讲解文件系统的结构、管理方法,文件操作及存储设备;教材章节:第六章 文件系统7. 操作系统性能与安全性:分析操作系统的性能优化策略、安全性措施;教材章节:第七章 操作系统性能与安全性8. 实践环节:安排操作系统相关的编程实践、案例分析等,巩固所学知识;教材章节:实践环节教学内容按照教材章节进行组织,确保科学性和系统性。

  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

操作系统原理课程设计报告题目:采用二级目录实现文件管理所在学院:班级:学号:姓名:指导教师:2013年1月15日目录一、课程设计目的 (1)二、课题内容 (1)三、总体路线 (1)四、概要设计 (2)1.数据结构 (2)2.所使用函数及其功能 (3)五、详细设计 (4)1.主函数流程图 (4)2.创建文件函数流程图 (5)3.删除文件函数流程图 (7)4.分解命令函数流程图 (10)六、测试、修改及运行结果 (10)七、结束语 (13)八、参考文献 (14)一、课程设计目的文件系统是现代OS用来存储和管理信息机构,具有按名存取的功能,不仅能方便用户对信息的使用,也有效提高了信息的安全性。

本课题模拟文件系统的目录结构,并在此基础上实现文件的各种操作方法。

通过本课题,深入理解文件文件目录的作用和功能,掌握文件打开结构,熟悉与文件有关的系统调用,从而更好地掌握文件系统概念。

二、课题内容1.文件目录采用二级目录结构,第一级为主文件目录master_file_directory;第二级为用户文件目录user_file_directory。

图1 master_file_directory 结构图2 user_file_directory 结构2.为加速文件存取,为每个用户建立一张用户打开表fileTable,用以记录该3.为该系统提供6条操作命令:创建、打开、读、写、关闭、删除等。

4.在该模拟系统中,应先建立主文件目录、用户目录和用户打开文件表,然后接受合法用户,给出一个菜单,按用户选择执行相关操作。

三、总体路线1.在内存中开辟一个虚拟磁盘空间作为文件存储器,在其上实现一个简单的单用户文件系统。

在退出这个简单的文件系统时,应将该虚拟文件系统保存到磁盘上,以便下次可以再将它恢复到内存的虚拟磁盘空间中。

2.文件存储空间的分配采用显式链接分配。

为了实现创建和删除文件必须要有一棵初始的文件树存在,以便在文件树的根节点下实现创建和删除文件。

3.文件目录结构采用二级目录结构。

为了简单起见,可以使用文件结构体,结构体内容包括:文件名,文件目录识别标示,文件链接数,以及他的左孩子右孩子左兄弟右兄弟指4.要有分解函数对输入的命令进行分解。

以识别那部分是哪部分是命令,哪部分是路径和文件名。

5.最后要有执行函数。

来执行输入的创建文件命令。

四、概要设计1.数据结构(1)函数中的主要结构体//两级目录结构体typedef struct master_file_directory //主文件目录MFD{char userName[10];char password[10];UFD *user;}MFD;MFD userTable[MaxUser];int used=0; //定义MFD目录中用已有的用户数typedef struct user_file_directory //用户文件目录文件UFD{//char fileName[10];fileTable *file;user_file_directory *next;}UFD;//UFD *headFile;typedef struct fileTable //文件块结构体{char fileName[10];int strat; //文件在磁盘存储空间的起始地址int length; //文件内容长度int maxlength; //文件的最大长度char fileKind[3]; //文件的属性——读写方式struct tm *timeinfo;bool openFlag; //判断是否有进程打开了该文件//fileTable *next;};(2)结构体相互之间的调用关系图:图4 结构体关系图2.模块结构(1)所用函数及其功能:void Init();//初始化文件树int ParseCommand();//接受输入的命令并把其分解成操作名和路径文件名void ExecuteCommand();//执行命令,分别执行edit,del,dir,exit命令int editComd();//处理edit命令,即创建文件,只要创建表示文件的节点即可,内容及大小不考虑int delComd();//处理del命令,即删除指定文件,不存在是给出错误信息int dirComd();//处理dir命令。

问了能显示的看出创建文件和删除文件是否成功,把根目录的文件都显示出来int FindFilename(char Para2[]);//查找文件名struct FileNode* CreateFileNode(char filename[],int isdir,int i_nlink);//创建结点int GetInput(char* buffer,unsigned int buffer_len);//获取输入(2)所使用变量struct FileNode *cp, *tp, *root;// *cp, *tp, *root是根目录节点char path[INPUT_LEN-COMMAND_LEN];//记录当前走过的路径char Para1[COMMAND_LEN],Para2[INPUT_LEN-COMMAND_LEN];//para1数组存储输入的命令,para2数组存储输入的文件名char filename[FILENAME_LEN],tmp;unsigned int i,j;五、详细设计1.主函数流程图图5 主函数流程图2.创建文件函数流程图图6 创建文件函数流程图具体函数实现过程如下:int editComd(){//char tmp;struct FileNode * temp=CreateFileNode("",0,0);int sign;struct FileNode *tp;//路径不能为空if(strlen(Para2)==0){printf("\n命令格式有错误.\n");return 0;}//长度检查if(strlen(Para2)>50){printf("\n文件名过长\n");return 0;}//格式检查if (!(isalpha(Para2[0])||Para2[0]=='_'||Para2[0]=='\0'||Para2[0]=='/')){printf("文件名格式有错!\n");/* 文件首字母可以为'字母'或'数字'或'_'或'/'或'回车'*/return 0;}//获取文件名sign=FindFilename(Para2);if(sign==0)return 0;if(cp->isdir!=1)//如当前指针指向的是文件,则报错{printf("you cannot edit a file in under a file!\n");return 0;}//创建文件结点,并插入到指定目录下tp=CreateFileNode("",1,0);strcpy(tp->filename,filename);tp->isdir=0;tp->i_nlink=0;if(cp->child==NULL){ tp->parent=cp;tp->child=NULL;cp->child=tp;tp->sibling_prev=NULL;tp->sibling_next=NULL;}else{ temp=cp;//用temp找到新结点插入处temp=temp->child;while(temp->sibling_next )//find the last sibing node{temp=temp->sibling_next;if(strcmp(temp->filename,filename)==0&&temp->isdir==0){printf("此文件名已存在\n");//重名报错return 0;}}//找到了最后一个结点temp->sibling_next=tp;tp->parent=NULL;tp->child=NULL;tp->sibling_prev=temp;tp->sibling_next=NULL;}return 1;}3.删除文件函数流程图图7 删除函数流程图具体函数实现过程如下:int delComd(){// char tmp;int sign;struct FileNode *temp;//参数不能为空if(strlen(Para2)==0){printf("\n命令格式有错误.\n");return 0;}//获取文件名sign=FindFilename(Para2);if(sign==0) return 0;//用temp指向要删除的结点if(cp->child){temp=cp->child;while(temp->sibling_next && (strcmp(temp->filename,filename)!=0 || temp->isdir!=0))temp=temp->sibling_next;if(strcmp(temp->filename,filename)!=0){printf("不存在该文件!\n");return 0;}}else{printf("不存在该文件!\n");return 0;}//要删除的不能是目录if(temp->isdir!=0){printf("ERROR!该命令只能删除文件,不可删除目录!\n");return 0;}//如仍有用户使用该文件,则不能删除if(temp->i_nlink!=0){printf("还有用户共享了该文件,不能删除!\n");return 0;}//删除工作if(temp->parent==NULL)//不是第一个孩子{temp->sibling_prev->sibling_next=temp->sibling_next;if(temp->sibling_next)//处理是最后一个兄弟的情况temp->sibling_next->sibling_prev=temp->sibling_prev;temp->sibling_prev=temp->sibling_next=NULL;}//ifelse//第一个孩子{if(temp->sibling_next)//处理是最后一个兄弟的情况temp->sibling_next->parent=temp->parent;temp->parent->child= temp->sibling_next;}//elsefree(temp);return 1;}4.分解命令函数流程图图8 分解命令函数流程图六、测试修改及运行结果1.实际运行结果:初始界面2.键入用户名和密码创建账号3.登陆4.文件操作(1)创建文件(3)读文件(4)显示文件(6)删除文件七、结束语虽然我们做过很多次课程设计了,但是感觉自己还有好多需要学习的地方,接到题目要求时,设计大体的框架,考虑好所使用的数据结构,然后用高级编程语言分模块的把架子的思路编写出来,调试,运行,再看看是不是符合题目的要求,上网找些资料,看看想想是不是要提高要求,才可以满足实际的需要,最后把收集的劳动成果组合起来,一个小程序终于成型了,虽然每次的过程差不多都一样,但是每次都会有不同的体会。

相关文档
最新文档