计算机操作系统课程设计
- 格式:doc
- 大小:191.00 KB
- 文档页数:32
操作系统课程设计一、课程目标知识目标: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. 文件系统:介绍文件系统的基本概念、结构、存储原理,对应教材第四章内容。
《计算机操作系统》课程设计教学大纲课程编号:08120070课程名称:计算机操作系统/Computer Operating System课程总学时/学分:56/3.5(其中理论46学时,实验10学时课程设计时间/学分:1周/1学分适用专业:计算机科学与技术一、设计任务及目的《计算机操作系统》课程是计算机科学与技术专业的一门重要专业基础课,“计算机操作系统课程设计”的目的是在学生学习了《计算机操作系统》课程之后理论联系实践,一方面延续《计算机操作系统》课程实验的要求,进一步加深与巩固学生对计算机操作系统中概念、基本原理、算法的理解和掌握,培养学生对计算机常用操作系统的操作能力;另一方面通过本环节加强培养学生分析、修改和设计操作系统的能力。
期望达到学为所用,并且能进一步提高使用计算机和编程能力。
二、课程设计的基本要求1、了解所选择开发环境的调试功能,掌握跟踪,修改错误的技巧。
2、能根据实际问题选择数据结构,清淅的描述算法。
3、培养良好的编程风格。
4、撰写课程设计报告,按格式要求写出完整的、规范的报告并打印,其中模块图、流程图要清楚规范,特别要求学生独立完成。
三、设计需运用的基本理论设计需运用计算机系统知识、操作系统基本概念、进程管理、存储管理技术、I/O管理技术、文件管理、高级语言程序设计、数据结构等内容。
四、课程设计内容与时间安排1、设计内容:可以选择下面提供的参考选题,也可以自选,如果自选,需要将自选题,目的详细内容以及实现要求提供给老师,老师批准后方可采用。
课题一:进程管理演示设计目的:加深对进程概念及进程管理各部分内容的理解;熟悉进程管理中主要数据结构的设计及进程调度算法、进程控制机构、同步机构及通讯机构的实施。
设计内容:设计一个允许n个进程并发运行的进程管理模拟系统。
该系统包括有简单的进程控制、同步与通讯机构,其进程调度算法可任意选择(优先级调度,时间片轮转,短进程优先中的一种)。
每个进程用一个PCB表示,其内容根据具体情况设置。
操作系统多线程课程设计一、教学目标本节课的教学目标是使学生掌握操作系统中多线程的基本概念、原理和应用。
具体包括:1.知识目标:–理解多线程的定义、特点和作用;–掌握线程的创建、调度和管理方法;–了解多线程在操作系统中的应用场景。
2.技能目标:–能够使用操作系统提供的线程编程接口进行线程的创建和控制;–能够分析并解决多线程编程中可能遇到的问题,如线程同步、死锁等;–能够设计并实现基于多线程的并发程序。
3.情感态度价值观目标:–培养学生对操作系统中多线程技术的兴趣和好奇心;–使学生认识到多线程技术在现代计算机系统中的重要性;–培养学生团队协作、勇于探索和创新的意识。
二、教学内容本节课的教学内容主要包括以下几个部分:1.多线程基本概念:介绍多线程的定义、特点和作用,以及线程与进程的关系。
2.线程的创建和管理:讲解操作系统中线程的创建、调度和管理方法,包括线程的属性、线程池等。
3.多线程同步与互斥:介绍线程同步的基本概念,如互斥锁、信号量等,以及如何避免死锁和饥饿等问题。
4.线程通信:讲解线程之间的通信机制,如管道、消息队列等。
5.多线程编程实践:通过实例分析,使学生掌握操作系统提供的线程编程接口,并能够设计并实现简单的并发程序。
6.多线程在操作系统中的应用场景:介绍多线程在操作系统中的典型应用,如并发执行、实时系统等。
三、教学方法本节课采用多种教学方法相结合的方式,以提高学生的学习兴趣和主动性:1.讲授法:讲解多线程的基本概念、原理和应用。
2.案例分析法:分析实际的多线程编程案例,使学生更好地理解多线程的使用方法和技巧。
3.实验法:安排课堂实验,让学生亲自动手编写多线程程序,巩固所学知识。
4.讨论法:学生进行小组讨论,分享学习心得和经验,互相答疑解惑。
四、教学资源本节课的教学资源包括:1.教材:选用权威、实用的操作系统教材,如《操作系统概念》、《现代操作系统》等。
2.参考书:提供相关的参考书籍,如《多线程编程技术》、《线程同步与互斥》等。
操作系统课程设计内存管理一、课程目标知识目标:1. 理解内存管理的基本概念,掌握内存分配、回收的原理及方法;2. 掌握虚拟内存的原理,了解分页、分段等内存管理技术;3. 了解操作系统中内存保护、共享、碎片处理等相关问题。
技能目标:1. 能够运用所学知识,分析并设计简单的内存管理算法;2. 能够通过编程实践,实现基本的内存分配与回收功能;3. 能够运用虚拟内存技术,解决实际问题。
情感态度价值观目标:1. 培养学生对操作系统中内存管理知识的学习兴趣,激发学生主动探索精神;2. 培养学生的团队协作意识,学会与他人共同解决问题;3. 增强学生的信息安全意识,了解内存管理在操作系统安全中的重要性。
课程性质分析:本课程为操作系统课程设计的一部分,侧重于内存管理方面的知识。
内存管理是操作系统核心功能之一,对于提高系统性能、保障系统安全具有重要意义。
学生特点分析:学生为计算机科学与技术等相关专业的高年级本科生,具备一定的操作系统基础知识,具备一定的编程能力,但可能对内存管理的深入了解和应用尚有不足。
教学要求:1. 结合实际案例,深入浅出地讲解内存管理的基本原理和方法;2. 采用任务驱动法,引导学生通过实践,掌握内存管理技术;3. 注重培养学生的动手能力和创新能力,提高学生解决实际问题的能力。
二、教学内容1. 内存管理概述:介绍内存管理的基本概念、任务和目标;- 教材章节:第2章 内存管理概述- 内容:内存分配、回收原理,内存保护、共享机制。
2. 内存管理技术:讲解物理内存管理和虚拟内存管理技术;- 教材章节:第3章 内存管理技术- 内容:分页管理、分段管理、段页式管理,内存碎片处理。
3. 内存管理算法:分析常见的内存分配和回收算法;- 教材章节:第4章 内存管理算法- 内容:首次适应算法、最佳适应算法、最坏适应算法等。
4. 操作系统内存管理实例分析:结合具体操作系统,分析其内存管理实现;- 教材章节:第5章 操作系统内存管理实例- 内容:Linux内存管理、Windows内存管理。
windows项目课程设计一、课程目标知识目标:1. 理解Windows操作系统的基础知识,掌握常用功能及操作方法。
2. 学习计算机硬件与软件的基本概念,了解其相互关系。
3. 掌握文件管理的基本技巧,能够对文件进行有效的组织、存储和备份。
技能目标:1. 熟练使用Windows操作系统进行日常操作,提高计算机操作效率。
2. 学会利用Windows系统资源管理器进行文件查找、排序、移动和删除等操作。
3. 能够独立解决在使用Windows过程中遇到的常见问题。
情感态度价值观目标:1. 培养学生对计算机操作的兴趣,激发学习积极性。
2. 培养学生的团队协作意识,学会在小组合作中共同解决问题。
3. 增强学生的信息素养,培养良好的计算机使用习惯,关注信息安全。
课程性质:本课程为实践性较强的课程,旨在让学生通过动手操作,掌握Windows操作系统的基本知识和技能。
学生特点:学生处于年级阶段,对计算机有一定的了解,具备基本的操作能力,但尚需进一步培养系统性的计算机知识。
教学要求:结合学生特点,注重实践操作,将理论知识与实际应用相结合,提高学生的计算机操作技能和解决问题的能力。
在教学过程中,关注学生的个体差异,分层教学,确保每个学生都能在课程中取得进步。
通过课程目标的分解,使学生在学习过程中达到具体的学习成果,为后续教学设计和评估提供依据。
二、教学内容1. Windows操作系统概述- 计算机硬件与软件的关系- Windows发展历程及特点2. Windows基本操作- 桌面环境及个性化设置- 窗口、菜单、按钮等界面元素的认识与操作- 输入法设置与切换3. 文件管理与磁盘维护- 文件夹与文件的基本操作- 文件搜索、排序与筛选- 磁盘分区、格式化与维护4. 系统设置与优化- 控制面板的认识与应用- 系统更新与安全- 系统性能优化5. 常用软件安装与卸载- 软件安装方法及注意事项- 卸载软件及清理残留文件- 常用软件的推荐与使用6. 网络与共享设置- 网络连接与配置- 网络共享与文件共享- 网络安全防护措施教学内容安排与进度:第一周:Windows操作系统概述第二周:Windows基本操作第三周:文件管理与磁盘维护第四周:系统设置与优化第五周:常用软件安装与卸载第六周:网络与共享设置教学内容与教材关联性:本教学内容紧密结合教材,涵盖教材中Windows操作系统的基本知识与技能。
前言操作系统(Operating System, 简称OS)是管理和控制计算机硬件与软件资源旳计算机程序, 是直接运营在“裸机”上旳最基本旳系统软件, 任何其他软件都必须在操作系统旳支持下才干运营。
操作系统是顾客和计算机旳接口, 同步也是计算机硬件和其他软件旳接口。
操作系统旳功能涉及管理计算机系统旳硬件、软件及数据资源, 控制程序运营, 改善人机界面, 为其他应用软件提供支持, 让计算机系统所有资源最大限度地发挥作用, 提供多种形式旳顾客界面, 使顾客有一种好旳工作环境, 为其他软件旳开发提供必要旳服务和相应旳接口等。
事实上, 顾客是不用接触操作系统旳, 操作系统管理着计算机硬件资源, 同步按照应用程序旳资源祈求, 分派资源, 如: 划分CPU时间, 内存空间旳开辟, 调用打印机等。
操作系统旳重要功能是资源管理, 程序控制和人机交互等。
计算机系统旳资源可分为设备资源和信息资源两大类。
设备资源指旳是构成计算机旳硬件设备, 如中央解决器, 主存储器, 磁盘存储器, 打印机, 磁带存储器, 显示屏, 键盘输入设备和鼠标等。
信息资源指旳是寄存于计算机内旳多种数据, 如系统软件和应用软件等。
操作系统位于底层硬件与顾客之间, 是两者沟通旳桥梁。
顾客可以通过操作系统旳顾客界面, 输入命令。
操作系统则对命令进行解释, 驱动硬件设备, 实现顾客规定。
本次课程设计我们将对上学期所学旳知识进行系统旳应用, 而达到巩固知识旳作用目录1问题概述 (2)2需求分析 (2)3 概要设计 (2)3.1重要功能 (2)3.2 模块功能构造 (3)3.3 软硬件环境 (3)3.4数据构造设计 (3)4 具体设计 (4)4.1“先来先服务(FCFS)调度算法” (4)4.2“短进程调度算法(SPF)” (7)4.3“高响应比优先调度算法” (10)4.4“优先级调度(非抢占式)算法” (13)5 系统测试及调试 (15)5.1测试 (15)5.2调试过程中遇到旳问题 (16)6 心得体会 (17)7 参照文献 (18)8 附录 (19)1问题概述编写一种进程调度程序, 容许多种进程并发执行。
操作系统课程设计Linux一、教学目标本课程的教学目标是使学生掌握Linux操作系统的核心概念、原理和应用技能。
通过本课程的学习,学生将能够:1.理解操作系统的基本原理,包括进程管理、内存管理、文件系统和输入/输出系统。
2.掌握Linux操作系统的安装、配置和管理方法。
3.熟练使用Linux命令行界面,进行日常操作和系统管理。
4.掌握Linux常用命令、 shell脚本编写和系统监控工具的使用。
5.了解Linux操作系统在服务器、嵌入式设备和云计算等领域的应用。
二、教学内容本课程的教学内容分为五个部分:1.操作系统概述:介绍操作系统的定义、功能和分类,以及Linux操作系统的历史和发展。
2.进程管理:讲解进程的基本概念、进程控制、进程同步和互斥、死锁及其解决方法。
3.内存管理:介绍内存分配与回收策略、内存保护、虚拟内存和分页分段机制。
4.文件系统:讲解文件和目录结构、文件访问控制、文件系统性能优化和磁盘空间分配策略。
5.输入/输出系统:介绍I/O设备管理、中断和DMA机制、设备驱动程序和I/O调度策略。
三、教学方法本课程采用多种教学方法相结合的方式,以提高学生的学习兴趣和主动性:1.讲授法:教师讲解操作系统的核心概念和原理,引导学生掌握基本知识。
2.讨论法:学生针对实际案例和问题进行讨论,培养学生的思考和分析能力。
3.案例分析法:分析Linux操作系统的实际应用案例,使学生了解操作系统的应用场景。
4.实验法:安排实验室课时,让学生亲自动手进行系统安装、配置和调试,提高学生的实践能力。
四、教学资源本课程的教学资源包括:1.教材:选用权威、实用的Linux操作系统教材,如《Linux操作系统原理与应用》。
2.参考书:提供相关的学术论文、技术博客和在线文档,供学生拓展阅读。
3.多媒体资料:制作课件、教学视频和演示文稿,辅助学生理解和记忆。
4.实验设备:提供Linux服务器、虚拟机和实验室环境,让学生进行实际操作。
操作系统内核课程设计一、课程目标知识目标:1. 让学生理解操作系统内核的基本概念、结构和功能,掌握操作系统的进程管理、内存管理、文件系统等核心模块的工作原理。
2. 使学生掌握操作系统内核编程的基本方法,学会使用相关工具和接口进行系统调用和驱动程序开发。
3. 帮助学生了解操作系统安全性、稳定性的重要性,掌握基本的系统调试和优化技巧。
技能目标:1. 培养学生具备分析操作系统内核源代码的能力,能够阅读和理解常见的操作系统内核模块。
2. 培养学生具备设计、编写和调试简单的操作系统内核模块的能力,能够实现特定功能并进行性能优化。
3. 提高学生运用所学知识解决实际问题的能力,能够针对具体场景提出合理的操作系统内核设计方案。
情感态度价值观目标:1. 培养学生热爱操作系统内核技术,树立积极探索、持续学习的信念。
2. 培养学生的团队协作意识,学会与他人共同分析问题、解决问题,形成良好的沟通与协作能力。
3. 引导学生关注操作系统内核技术的发展趋势,认识到技术进步对社会发展的重要性,树立社会责任感。
本课程针对高年级学生,课程性质为专业核心课。
在教学过程中,需充分考虑学生的认知特点,注重理论与实践相结合,引导学生主动探究、动手实践。
通过本课程的学习,期望学生能够掌握操作系统内核的基本知识和技能,为未来从事相关领域的研究和工作打下坚实基础。
二、教学内容本课程教学内容围绕以下三个方面展开:1. 操作系统内核基础理论- 深入讲解操作系统内核的基本概念、结构、功能和设计原理。
- 分析进程管理、内存管理、文件系统、设备管理等核心模块的工作机制。
2. 操作系统内核编程实践- 介绍操作系统内核编程的基本方法,包括系统调用、驱动程序开发等。
- 结合教材示例,指导学生阅读和分析操作系统内核源代码。
教学大纲安排:1)第1-4周:操作系统内核基础理论2)第5-8周:进程管理、内存管理编程实践3)第9-12周:文件系统、设备管理编程实践3. 操作系统内核优化与调试- 讲解操作系统内核安全性、稳定性方面的知识,分析常见漏洞和防护措施。
实践课设计报告课程名称操作系统课程设计模拟设计内存管理中的地址题目转换(动态分区、页式十进制)学院班级学号姓名指导教师年月日课程设计任务书学生姓名:专业班级:指导教师:工作单位:题目: 模拟设计内存管理中的地址转换(动态分区、页式十进制)初始条件:1.预备内容:阅读操作系统的内存管理章节内容,理解动态分区、页式、段式和段页式存储管理的思想及相应的分配主存的过程。
2.实践准备:掌握一种计算机高级语言的使用。
要求完成的主要任务:(包括课程设计工作量及其技术要求,以及说明书撰写等具体要求)1.下列内部存储器管理中地址转换,在完成指定存储管理技术中的地址转换基础上还可以选择其它内部存储器管理中的地址转换进行模拟设计并实现:⑴动态分区方案,用最先适用算法对作业实施内存分配,然后把作业地址空间的某一逻辑地址转换成相应的物理地址。
能够处理以下的情形:输入某一逻辑地址,程序能判断地址的合法性,如果合法,计算并输出相应的物理地址。
如果不能计算出相应的物理地址,说明原因。
⑵页式存储管理中逻辑地址到物理地址的转换(十进制)。
能够处理以下的情形:输入某一十进制逻辑地址,能检查地址的合法性,如果合法进行转换,否则显示“地址非法”;物理地址用十进制表示。
⑶页式存储管理中逻辑地址到物理地址的转换(八进制)。
能够处理以下的情形:输入某一八进制逻辑地址,能检查地址的合法性,如果合法进行转换,否则显示“地址非法”;物理地址用八进制表示。
⑷页式存储管理中逻辑地址到物理地址的转换(十六进制)。
能够处理以下的情形:输入某一十六进制逻辑地址,能检查地址的合法性,如果合法进行转换,否则显示“地址非法”;物理地址用十六进制表示。
⑸段式存储管理中逻辑地址到物理地址的转换。
能够处理以下的情形:指定内存的大小,进程的个数,每个进程的段数及段大小;能检查地址的合法性,如果合法进行转换,否则显示地址非法的原因。
⑹段页式存储管理中逻辑地址到物理地址的转换。
计算机操作系统课程设计班级:计091-1姓名:学号:使用语言:C++指导老师:学院:一、系统要求1、实验目的通过一个简单多用户文件系统的设计,加深理解文件系统的内部功能及内部实现。
2、实验内容为linux系统设计一个简单的二级文件系统。
要求做到以下几点:(1)可以实现下列几条命令(至少4条);login 用户登陆dir 列文件目录create 创建文件delete 删除文件open 打开文件close 关闭文件read 读文件write 写文件(2)列目录时要列出文件名、物理地址、保护码和文件长度;(3)源文件可以进行读写保护。
二、系统分析1、设计思想本文件为二级文件系统,即要实现对文件的增删改查,同时又具备登陆系统、注册用户的功能,各个用户之间的文件系统互不干扰。
本文件系统采用两级目录,其中第一级对应于用户账号,第二级对应于用户帐号下的文件。
另外,为了简便文件系统未考虑文件共享,文件系统安全以及管道文件与设备文件等特殊内容。
系统采用结构体来存储用户、文件目录、文件数据内容:0 48*5 48*5+44*50 48*5+44*50+264*200每个分区都是由结构体组成,每个个去的结构体的个数由格式化系统是决定。
整个系统的编码构成主要分为:Allstruct.h 定义了每个分区的结构体;Mysys.h 声明了对系统操作的各种方法;Myuserfile.h 声明了对文件操作的各种方法;Mymain.cpp 整个系统的主函数,操作入口;Mysys.cpp 包含了mysys.h,实现了操作系统的各种方法;Myuserfile.cpp 包含了myuserfile.h,实现了操作文件的各种方法;2、主要数据结构Allstruct.h文件的内容:struct s_user //用户区结构体{long isuse; //是否使用char name[20]; //用户名char psd[20]; //密码long address; //目录地址};struct s_list //目录结构体{long isuse; //是否使用char name[20]; //文件名字long myaddress; //本条目录地址long pointaddress; //指向的文件的地址long isfile; //是否锁定long pointsize; //目标文件的大小long nextaddress; //下条目录的地址};struct s_file //文件结构体{long isuse; //是否使用char content[256]; //文件内容long next; //下个文件块地址};三、系统执行1、如果首次进入系统,还没有文件系统,则会提示格式化文件系统,创建分区,并初始化分区:2、刚初始化后,没有用户,提示创建用户:3、用户创建成功后出现对系统操作的菜单4、注册用户功能:5、用户登录,登录成功后显示当前用户下的所有文件及其详细信息,同时显示对文件操作的菜单:6、新注册的用户默认为没有文件,选择创建文件,并且每次对文件操作后显示当前用户的所有文件和操作菜单:7、此次新建的文件为锁定状态,不能被删除:8、对文件查看,默认创建的时候用0填充文件内容:9、修改文件内容:10、对文件的锁定进行装换:11、删除文件:12、注销登录退出系统:四、功能实现Mysys.h#include <stdio.h>#include "myuserfile.h"class MSysterm{ //封装了管理系统的方法//成员变量private:FILE *myfile;MUser myuser;//成员函数public:MSysterm(){}void outName(); //打印登陆后的用户名int cheack(); //检查虚拟文件系统跟是否存在int myformat(); //初始化虚拟磁盘int createuser(); //创建用户int login(); //用户登录void mymain(); //主控制程序int logout(); //用户注销};Myuserfile.h#include <stdio.h>class MUser //封装了管理文件的方法{//成员变量public:FILE *myfile;char name[20]; //用户名char psd[20]; //密码long listaddress; //目录地址long myaddress; //此用户的地址private:long lastaddress; //最后一个目录的地址//成员函数public:int createFile(); //增加文件int delFile(char filename[20]);//删除文件int revampFile(char filename[20]);//修改文件int mydir(); //列出当前目录的所有文件(夹)int viewFile(char filename[20]);//查看文件int myConversion(char filename[20]);//转换是否锁定状态private:int isSame(char filename_f[20],char filename_s[20]);};Mymain.cpp#include <stdio.h>#include <iostream>#include "mysys.h"#include <limits>using namespace std;int main(){char nod1;int n_select = 2 , i_1 =0;MSysterm mysys;/***********文件不存在的程序入口************/if(mysys.cheack()==-1)//磁盘空间不存在{cout<<"虚拟磁盘文件不存在,是否生成?Y/N "<<endl;cin>>nod1;cin.clear(); // 清除流的错误标记cin.ignore(numeric_limits<streamsize>::max(),'\n'); // 清空输入流if(nod1=='Y'||nod1=='y'){cout<<"正在创建。
"<<endl;if(mysys.myformat()!=1)//创建磁盘空间{cout<<"创建磁盘空间失败!即将退出。
"<<endl;cin>>nod1;return 2;}cout<<"创建完成!是否创建用户?Y/N "<<endl;cin>>nod1;cin.clear(); // 清除流的错误标记cin.ignore(numeric_limits<streamsize>::max(),'\n'); // 清空输入流if(nod1=='Y'||nod1=='y'){if(mysys.createuser()==1)//创建用户{cout<<"创建用户成功。
"<<endl;}else{cout<<"创建用户失败!即将退出。
"<<endl;return 3;}}else{cout<<"匿名用户无法进入系统,正在退出。
"<<endl;return 4;}}else{cout<<"程序已结束!按任意键退出。
"<<endl;return 1;}}/***********文件存在的程序入口**************/for (;;){cout<<"*********************"<<endl;cout<<"请选择:"<<endl;cout<<" 1. 登录"<<endl<<" 2. 注册"<<endl<<" 3. 退出"<<endl;cout<<"*********************"<<endl;cin>>n_select;cin.clear(); // 清除流的错误标记cin.ignore(numeric_limits<streamsize>::max(),'\n'); // 清空输入流if (n_select == 1){for (int i_1=0;i_1<=3;i_1++)//登录{if (mysys.login()==1){cout<<"登陆成功!欢迎您";mysys.outName();break;}else{cout<<"用户名不存在或密码错误!"<<endl;}}if (i_1==4){cout<<"非法用户!"<<endl<<"输入任意键退出。
"<<endl;cin>>nod1;return 5;}break;}if (n_select == 2){if(mysys.createuser()==1)//创建用户{cout<<"创建用户成功。
"<<endl;}else{cout<<"创建用户失败!"<<endl;}}if (n_select == 3){return 6;}}mysys.mymain();return 0;}Mysys.cpp#include "mysys.h"#include "allstruct.h"#include <iostream>#include <stdio.h>#include <limits>//用于清除残留的输入流using namespace std;int MSysterm::cheack()//检查虚拟空间是否存在{myfile=fopen("test1.txt","r");if(myfile==NULL){return -1;//返回-1,代表文件不存在}fclose(myfile);return 1;}int MSysterm::myformat(){int i =1;myfile=fopen("test1.txt","w");if(myfile==NULL){return -1;}s_user ms_user;ms_user.isuse=0;s_list ms_list;ms_list.isuse=0;s_file ms_file;ms_file.isuse=0;for (i =1 ; i<=5 ; i++){if(fwrite(&ms_user,sizeof(ms_user),1,myfile)!=1)//用户区格式化{cout<<"用户格式信息写入失败!"<<endl;fclose(myfile);return -2;}}for (i = 1; i<=50 ;i++){if(fwrite(&ms_list,sizeof(ms_list),1,myfile)!=1)//目录区格式化{cout<<"目录格式信息写入失败!"<<endl;fclose(myfile);return -3;}}for (i=0;i<=199;i++){if(fwrite(&ms_file,sizeof(ms_file),1,myfile)!=1)//数据区格式化{cout<<"数据格式信息写入失败!"<<endl;fclose(myfile);return -4;}}fclose(myfile);return 1;}int MSysterm::createuser()//创建用户{s_user ms_user,ms_user2;int nowaddress = 0 ,issame=0 ,m=0 , i =1 ;//记录当前的扫描指针,密码比对标志位,循环使用的变量cout<<"正在检查用户空间是否足够。