操作系统课程设计-一个简单的文件系统的详细设计
计算机操作系统实验课实验报告
实验报告实验课程: 计算机操作系统学生姓名:XXX学号:XXXX专业班级:软件2014年12月25日目录实验一熟悉Windows XP中的进程和线程 (3)实验二进程调度 (7)实验三死锁避免—银行家算法的实现 (16)实验四存储管理 (22)实验一熟悉Windows XP中的进程和线程一、实验名称熟悉Windows XP中的进程和线程二、实验目的1、熟悉Windows中任务管理器的使用。
2、通过任务管理器识别操作系统中的进程和线程的相关信息。
3、掌握利用spy++.exe来察看Windows中各个任务的更详细信息。
三、实验结果分析1、启动操作系统自带的任务管理器:方法:直接按组合键Ctrl+Alt+Del,或者是在点击任务条上的“开始”“运行”,并输入“taskmgr.exe”。
2、调整任务管理器的“查看”中的相关设置,显示关于进程的以下各项信息,并完成下表:表一:统计进程的各项主要信息3、启动办公软件“Word”,在任务管理器中找到该软件的登记,并将其结束掉。
再从任务管理器中分别找到下列程序:winlogon.exe、lsass.exe、csrss.exe、smss.exe,试着结束它们,观察到的反应是任务管理器无法结束进程,原因是该系统是系统进程。
4、在任务管理器中找到进程“explorer.exe”,将之结束掉,并将桌面上你打开的所有窗口最小化,看看你的计算机系统起来什么样的变化桌面上图标菜单都消失了、得到的结论 explorer.exe是管理桌面图标的文件(说出explorer.exe进程的作用)。
5、运行“spy++.exe”应用软件,点击按钮“”,切换到进程显示栏上,查看进程“explorer.exe”的各项信息,并填写下表:进程:explorer.exe 中的各个线程6、注意某些线程前有“+”,如图所示:,说明二者之间的差异前有“+”其器线程下有窗口。
四、心得体会通过本次实验,我了解到了windows系统中进程的管理与操作,我了解了如何切出任务管理器,任务管理器应用与其他与进程相关的知识,明白了有些系统程序不能够关闭,系统中的进程与线程虽然很多,但是其中有许多关联,只要弄清楚其中的关联那么就能够运用好进程与线程,达到我们的目的。
Windows Server 2003服务器配置课程设计报告
1、Windows server 2003的安装(1)实验目的:通过本实例的学习,让我们学会为服务器选择合适的操作系统并进行安装。
(2)实验环境:windows server 2003 +VMware workstation(3)实验步骤:1)打开虚拟机,安装windows server 2003,单击“下一步”;2)选好系统镜像所在位置,单击“下一步”;3)输入密钥,单击“下一步”;4)选择系统所安装磁盘大小,单击“下一步”;5)等待系统的安装6)安装好了的界面。
再此虚拟机上需要安装两个相同的windows server 2003系统,一个当作服务器,另一个作客户机。
6)配置服务器和主机的IP:网络基础配置,右键单击“网上邻居”,从菜单中选择“属性”命令。
打开网络连接。
在“此连接使用下列项目”列表框中选择“internet协议”组件。
单击“属性”按钮,打开对话框,设置服务器的IP,子网掩码是自动生成的;同理在设置客户机的IP要与主机的IP不一样;(4)遇到的问题及解决方法:网络号的作用,是划分子网。
(5)实验总结:本次在虚拟机上安装windows server 2003系统,使我第一次接触到windows server 2003这个系统,更加深入的了解了windows server 2003系统中的构造,觉得它与windows XP很相似,就是视觉上没有XP漂亮;学会了如何配置IP,如何通过DOS来查看IP地址。
2、FTP服务器搭建与配置(1)实验目的:利用IIS创建FTP站点,管理FTP站点。
(2)实验环境:windows server 2003 +VMware workstation+IIS(3)实验步骤:1)安装FTP在“控制面板”上找到“添加或删除程序”选中“应用程序服务器”,单击“详细信息”再选中“Internet 信息服务(IIS)”,单击“详细信息”,把“文件传输协议(FTP)服务”选上,单击“确定”至此成功安装了FTP组件;2)配置FTP服务器右键单击“我的电脑”图标,弹出的快捷菜单中选择“管理”命令。
2.3熟悉Windows 10操作系统 教案-《计算机应用基础》同步教学(航空工业出版社)
设计具体的教学活动,如角色扮演、实验、游戏等,以促进学生参与和互动。
角色扮演:让学生扮演不同的角色,如系统管理员、用户等,通过角色扮演的方,让学生理解和掌握Windows 10操作系统的不同功能。
实验:设置实验任务,让学生在实际操作中探索和理解Windows 10操作系统的基本操作,培养学生的实践能力和自主学习能力。
-设计预习问题:围绕Windows 10操作系统的基本操作,设计一系列具有启发性和探究性的问题,引导学生自主思考。
-监控预习进度:利用平台功能或学生反馈,监控学生的预习进度,确保预习效果。
学生活动:
-自主阅读预习资料:按照预习要求,自主阅读预习资料,理解Windows 10操作系统的基本操作。
-思考预习问题:针对预习问题,进行独立思考,记录自己的理解和疑问。
游戏:设计游戏任务,让学生在游戏中学习和掌握Windows 10操作系统的基本操作,提高学生的学习兴趣和参与度。
3.确定教学媒体和资源的使用
确定教学媒体和资源的使用,如PPT、视频、在线工具等,以提高教学效果和学生的学习体验。
PPT:制作详细的PPT演示文稿,展示Windows 10操作系统的基本操作,帮助学生理解和记忆知识点。
本节课的评价方法主要是通过学生的课堂表现和练习完成情况来进行评价,教师可以通过观察学生的操作过程和提问,了解学生对知识的掌握程度,并根据学生的表现给予及时的指导和反馈。
核心素养目标分析
本节课《计算机应用基础》旨在培养学生对计算机操作的兴趣和能力,同时也关注学生在政治认同、科学精神、法治意识、公共参与四个方面的核心素养。
政治认同方面,通过学习Windows 10操作系统的基本操作,学生能够了解和掌握计算机技术在现代社会中的重要作用,从而培养对我国科技发展的认同感。
《操作系统》课程设计说明书
河南城建学院《操作系统》课程设计说明书设计题目:UNIX/Linux文件系统分析专业:计算机科学与技术指导教师:邵国金耿永军陈红军班级:0614082学号:061408261姓名:贠炳森同组人:叶矿辉、陈宇计算机科学与工程系2011年1月7日前言在现在计算机更新如此迅速的时代要学好计算机软件技术,特别是操作系统的学习,不仅要努力学好课本上的基础知识,还要经常在图书馆看些有关这方面的书籍,而更重要的是要有足够的实践经验,也要注重和同学的交流,经常尝试性的做些小的操作系统,对自己技术的提升会有很大的帮助。
同时,学习计算机操作系统技术,除了需要刻苦努力外,还需要掌握软件和操作系统的原理与设计技巧。
如何学习和掌握操作系统技术的原理与实际技巧呢?除了听课和读书之外,最好的方法恐怕就是在实践中练习。
例如,自己设计一个小型操作系统,多使用操作系统,多阅读和分析操作源代码等。
但由于我们的条件和学时有限,在理论学习过程中没有给同学们提供更多的实验机会。
本操作系统课程设计,是给同学提供一个集中实验的机会。
希望同学们通过该设计加深对所学习课程的理解。
本设计是基于课程中学到的UNIX系统调用,使用操作系统环境是Red Hat Linux 9,言语开发环境是Linux的GNU C或C++。
我做的课程设计是:Linux/Unix文件系统分析。
在Linux系统下,使用与文件相关的系统调用实现对物理设备文件的读写,参照Linux系统源代码以及Grub 系统的源代码,对不同介质上的FAT格式文件系统进行分析。
要求在Linux环境下设计出C语言程序,实现以下功能:1)分析UNIX SysV/Linux系统引导记录的作用;2)分析UNIX SysV/Linux的超级块及其结构,并建立相关数据结构,通过编程实现UNIX SysV/Linux文件系统内各部分的定位。
3)至少要实现对给定i节点文件的只读访问目录一.系统环境 (3)1.1硬件环境 (3)1.2软件环境 (3)二.设计目的及要求 (3)三.总体设计 (5)四.详细设计 (6)五.调试与测试 (6)六.设计中遇到的问题及解决方法 (6)七.Linux/Unix文件系统分析源程序清单 (7)7.1 头文件 (7)7.2 示例程序 (10)八.运行结果及分析 (16)8.1 linux文件系统读取 (16)8.2 UNIX文件系统读取 (18)九.心得体会 (19)十.参考文献 (20)Linux/Unix文件系统分析一.系统环境1.1硬件环境cpu为pentium4双线程技术,频率为2.8GHZ,内存为256MB。
操作系统课程设计实验报告
湖南科技大学计算机科学与工程学院操作系统课程设计报告学号:姓名:班级:目录实验一.........................................................一、实验题目.............................................二、实验目的.............................................三、总体设计.............................................一、实验题目二、实验目的.............................................三、总体设计.............................................四、详细设计.............................................五、实验结果与分析.......................................六、小结与心得体会.......................................实验四.........................................................一、实验题目.............................................二、实验目的.............................................三、总体设计.............................................四、详细设计.............................................三、总体设计.............................................四、详细设计.............................................五、实验结果与分析.......................................六、小结与心得体会....................................... 实验七.........................................................一、实验题目.............................................二、实验目的.............................................三、总体设计.............................................四、详细设计.............................................五、实验结果与分析.......................................2)通过创建进程、观察正在运行的进程和终止进程的程序设计和调试操作,进一步熟悉操作系统的进程概念,理解 Windows进程的“一生”。
中职计算机基础教案
中职计算机基础教案篇 1一、教学目标1. 让学生熟练掌握计算机操作系统的基本操作,包括文件管理、系统设置等。
2. 帮助学生熟悉常用办公软件如Word、Excel、PowerPoint 的使用技巧。
3. 培养学生对计算机基础知识的兴趣,激发他们主动学习的积极性。
二、教学重点与难点1. 教学重点(1) 计算机操作系统中文件管理的方法与技巧。
(2) 常用办公软件的核心功能及操作流程。
2. 教学难点(1) 如何让学生理解并熟练运用复杂的操作系统设置。
(2) 引导学生将办公软件的各项功能综合运用到实际工作中。
三、教学方法1. 演示法:通过教师现场演示操作过程,让学生直观地了解计算机基础知识和软件的使用方法。
2. 实践法:安排学生进行实际操作练习,巩固所学知识,提高操作技能。
3. 案例分析法:展示计算机在不同行业的应用案例,帮助学生理解计算机知识的实际应用价值。
四、教学过程1. 导入(约5 分钟)同学们,在当今数字化的时代,计算机已经成为我们生活和工作中不可或缺的工具啦!无论是日常的娱乐、学习,还是未来的职业发展,掌握计算机基础知识都是非常重要的哟!那今天就让我们一起深入学习计算机的奇妙世界吧!2. 背景介绍与作者介绍(约5 分钟)虽然计算机知识没有具体的作者,但是它是众多科学家和工程师不断努力和创新的成果呢!从最初的大型计算机到如今轻便高效的个人电脑和智能手机,计算机技术的发展可谓是日新月异呀!3. 计算机操作系统讲解(约20 分钟)首先,咱们来了解一下计算机操作系统。
它就像是计算机的大管家,负责管理计算机的各种资源和任务哦!比如文件的存储、程序的运行等等。
给大家演示一下如何进行文件的新建、复制、粘贴和删除,还有系统设置中的屏幕分辨率调整、电源管理设置等操作。
同学们要认真看哟!4. 常用办公软件讲解(约30 分钟)接下来,咱们重点学习常用的办公软件。
Word 用于文字处理,Excel 用于数据处理,PowerPoint 用于制作演示文稿。
VFP课程设计
数据库课程设计项目名称:人力资源管理系统学院:理学院专业:信息与计算科学班级:信息081班学号:15 号姓名:贺路人力资源管理系统以人力资源管理系统为例,进行实际的应用程序设计。
对实际理解和掌握VFP语言以及进行实际的项目开发有很好的作用,也可以很好的锻炼我们的实践能力,使我们不止是游跃于纸上谈兵。
课程设计的主要内容:·项目分析与项目设计;· VFP应用程序开发;·菜单、Tree控件等的使用;人力资源管理系统功能简介1.1 系统概述本系统概述即需求分析。
人力资源管理系统通常包括人事档案的增、删、改、查、备份、统计、打印等,具体管理中还涉及到登录用户的密码保护以及根据系统用户不同的使用权限提供查询等等。
本章所设计的人力资源管理系统,可以实现上述功能,能够方便、快捷、准确地获得所需的信息。
1.2 系统构成整个人力资源管理系统包括如下基本功能。
1.信息管理方面(1)数据库初始化:实现对数据库初始化功能,系统内容的备份。
(2)记录编辑:实现记录的编辑功能,包括添加、修改、保存、简单浏览等。
(3)记录删除:当某些记录已经不需要的时候,可以进行删除操作。
(4)档案备份:档案资料应该进行备份,可进行自动备份,也可还可以进行手动备份。
(5)条件查询:包括简单查询和多条件查询,能够实现实时查询,同时可以进行打印。
(6)分类统计:实现按不同标准进行的简单统计。
2.系统管理方面(1)更改密码:可以更改登录用户的密码。
(2)用户设置:用来添加新用户,包括密码设置。
(3)权限管理:根据不同的用户,设置不同的权限。
(4)帮助:提供帮助信息。
1.3本系统主要文件组成人力资源管理系统的主要功能是对记录的增、删、改、查和进行打印等。
1.表单功能模块·登录模块调用表单frmLogin.scx;·系统封面模块调用表单frmSplash.scx;·主控模块调用表单frmMain.scx;·初始化模块调用表单frmdbInt.scx;·数据备份模块调用表单frmBackup.scx;·录入模块调用表单frmAdd.scx ;·浏览模块调用表单frmBrowse.scx;·删除模块调用表单frmDel.scx;·图片管理模块调用表单frmGetImg.scx;·统计模块调用表单frmtj.scx;·简单查找模块调用表单frmOneFind.scx;·组合查找模块调用表单frmMoreFind.scx;·打印模块调用表单frmPrint.scx;·系统帮助模块调用表单frmHelp.scx;·系统时间模块调用表单frmSysTime.scx;·密码管理模块调用表单frmPassword.scx;·用户管理模块调用表单frmUserset.scx。
minix操作系统设计与实践 概述及解释说明
minix操作系统设计与实践概述及解释说明1. 引言1.1 概述引言部分将对整篇长文进行简要概述,并介绍文章的结构和目的。
本文将讨论MINIX操作系统的设计与实践,包括MINIX的概述、设计原则以及实践应用等方面内容。
同时,我们还会对MINIX的内核架构进行详细分析,包括内核组成部分、进程管理子系统以及文件系统子系统等。
此外,我们也会介绍MINIX的用户界面和工具集,包括用户界面概述、Shell命令解析器以及编译和调试工具链等内容。
最后,文章将以总结和展望作为结尾。
1.2 文章结构本文共分为五个部分:引言、MINIX操作系统设计与实践、MINIX内核架构分析、MINIX用户界面和工具集介绍以及结论。
其中,引言部分主要是对全文进行简要概述,并介绍了每个部分的内容安排。
1.3 目的本文旨在深入了解和解释MINIX操作系统的设计与实践,并对其各个方面进行详细探讨。
通过对MINIX操作系统的研究,在学术领域中推动操作系统领域的发展,并为读者提供一个全面了解MINIX操作系统的参考资料。
此外,通过对MINIX内核架构和用户界面工具集的分析,读者将能够更好地掌握操作系统的设计原则和实践应用,从而为自己的研究和开发工作提供有益指导。
以上是引言部分的内容,主要包括概述、文章结构和目的三个方面的说明。
希望能够清晰明了地介绍本文的主题和内容安排,以吸引读者继续阅读。
2. MINIX操作系统设计与实践:2.1 MINIX概述:MINIX是一个小型的Unix-like操作系统,由Andrew S. Tanenbaum 教授在1987年首次发布。
它的名称“MINIX”代表“Minimal Unix”,这意味着它被设计成轻量级且具有最基本的功能。
MINIX旨在用于教学目的,并作为学生了解操作系统原理和实践的工具。
2.2 MINIX设计原则:MINIX的设计遵循几个关键原则。
首先,它被设计成非常模块化和可扩展的,使得内核中的各个功能模块可以独立开发、测试和维护。
14计算机科学与技术(专升本)-操作系统-课程设计教学大纲
《操作系统》课程设计教学大纲英文名称: Operating System课程编码:C047101计划周数:1周课程设计学分:1学分先修课程:计算机导论,高级语言程序设计,数据结构,汇编语言程序设计适用专业:计算机科学与技术(专升本)开课单位:计算机科学与技术系撰写人:何爱华审核人:姚保峰制定时间:2014年8月一、本课程设计的性质与目的《操作系统》是计算机科学与技术(专升本)专业的核心专业课,“操作系统课程设计”是理解和巩固操作系统基本理论、原理和方法的重要的实践环节。
《操作系统》课程主要讲述的内容是计算机操作系统的基本原理及组成,操作系统中常用的设计技巧和方法。
它与计算机原理、编译原理、汇编语言、计算机网络、程序设计等专业课程关系十分密切。
本课程设计的目的综合应用学生所学知识,建立系统和完整的计算机系统概念,理解和巩固操作系统基本理论、原理和方法;在算法基础上,解决实际问题,提高学生实际应用、编程的能力。
二、本课程设计的主要内容实验的内容侧重于对操作系统原理的模拟实现,主要包括对进程管理、内存管理、文件系统和设备管理的实践内容。
主要任务是实现操作系统和相关系统软件的设计,其中涉及进程创建,同步,进程间的通信,存储管理,文件系统等操作系统概念。
,主要内容如表1所示:表1 课程设计内容序号内容1 进程的管道通讯;编制一个程序,程序中创建一个子进程。
然后父子进程各自独立运行,父进程不断地在标准输入设备上读入小写字母,写入管道。
子进程不断地从管道中读取字符,转换为大写字母后输出到标准输出设备上。
当读到x时,结束。
2 信号量实现的同步互斥机制:编制一个程序,程序中创建5个子进程,代表五位哲学家,然后父进程结束。
使用信号量机制解决哲学家进餐问题。
3 页面置换算法:请求页式管理是一种常用的虚拟存储管理技术。
本设计通过请求页式存储管理中页面置换算法模拟设计,了解虚拟存储技术的特点,掌握请求页式管理的页面置换算法。
操作系统:编程模拟多进程共享临界资源linux-c语言
一、课程设计目的本课程设计是学生学习完《计算机操作系统》课程后,进行的一次全面的综合训练,通过课程设计,让学生更好地掌握操作系统的原理及实现方法,加深对操作系统基础理论和重要算法的理解,加强学生的动手能力。
二、课程设计要求从课程设计的目的出发,通过设计工作的各个环节,达到以下教学要求:每位同学从所给题目中任选一个(如自拟题目,需经教师同意),且必须独立完成课程设计,不能相互抄袭。
设计完成后,将所完成的作品交由老师检查。
要求写出一份详细的设计报告。
三、课程设计题目编程模拟多进程共享临界资源四、课程设计功能和目标1、要求产生至少3个进程:2、两个进程模拟需要进入临界区的用户进程,当需要进入临界区时,显示:“进程x请求进入临界区…”,同时向管理进程提出申请;在临界区中等待一段随机时间,并显示:“进程x正在临界区…”;当时间结束,显示:“进程x退出临界区…”,同时向管理进程提出退出申请。
3、一个进程作为原语级管理进程,接受其他进程的临界区进入请求:如果允许进入,则设置相应变量,然后返回;如果不允许进入,则进入循环等待,直到允许为止;4、对临界区的访问应遵循空闲让进、忙则等待、有限等待、让权等待的准则。
5、进程间通信可以采用信号、消息传递、管道或网络通信方式。
五、课程设计实现原理通过编写,创建两个进程模拟需要进入临界区,另外编写一个进程作为原语的管理进程,其负责两个进程的进入!接着设置一个临界区,让其进程在其中访问遵循空闲让进、忙则等待、有限等待、让权等待的准则。
当进程和临界区建立好后,临界区的数据传输,受到了系统硬件的支持,不耗费多余的资源;而进程间通信传递,由软件进行控制和实现,需要消耗一定的CPU资源。
从这个意义上讲,临界区更适合频繁和大量的数据传输。
进程信息的传递,自身就带有同步的控制。
当等到信息的时候,进程进入睡眠状态,不再消耗CPU资源。
而共享队列如果不借助其他机制进行同步,接收数据的一方必须进行不断的查询,白白浪费了大量的CPU资源。
电子文件(电子公文)管理系统详细设计2(完整版)
文M我1.
处呦为:
6)文件详细信息显示
功能:显示文件的所有元数据信息
参考:【公共模块】一【文件详细信息显示】
界面如下:
免用■电|||讦囊仏2.
XR5UT天5寓
密n.w境员目6冇隹田乂抿舌
ttnfi
王笛快ititr
曲
11Q_J1M*>
邀日刃
20IZ-(K-)2
妬产蚣
d»a
7)显示关联文件
功能:显示文件主动关联的文件列表。可通过下拉选择关联类型查询指定类 型下的关联文件列表。
♦单击检索词,可把检索词回显在检索框中,再点击“检索”操作进行快 速检索。
♦效果如下列图:
S#诚
Mil
r#曲
WE1JWCQ
-皿曰仙*
nyRSBH j^aiMwaa
laiM_t4«41kU4j
I
1 ・ 1 K_ h9如>«_"IT」
W叫J,5hU
a口柏
l.iMj攵W“
l・・—
如城耐
WjUR.g心
>
二砂亨
参考:【公共模块】一【显示关联文件】
界面如下:
决
na
FfilW门
ns
«1IS
电沖
MB日Al
2»
交金
1
硕i耐财
XSWiS
壬小工
:、…':•
卡期
A
Z
却越饋
JWE
丸隽民
沁vs
3
KiW
ifnrr.
•战O
anxsM
<
Mitfi
王小逮
2OEB5
c1
▼
8)显示被关联文件
《计算机应用基础》教案——office2010版2014.5.15
计算机应用基础教案《计算机应用基础》电子教案《计算机应用基础》教案教学对象教学时间年月日第一章计算机基础知识教学内容1. 1计算机概述1. 2计算机系统教学目的使学生了解计算机基础知识,掌握计算机系统的概念1.了解计算机系统的组成以及各部分的主要功能教学重点2.掌握键盘的使用,学会标准指法操作教学难点计算机系统的组成及各部分的主要功能建议学时理论: 2上机:2教学教具多媒体教学系统教学方法理论:使用多媒体教学方法讲授(.PPT);上机:指导上机实验演示设计1. 1计算机概述板书设计1. 2计算机系统教学过程介绍什么是计算机,计算机的特点,计算机的应用与发展:什么是计算机;计算机的发展;计算机的分类;课程导入计算机的主要应用;主要内容计算机硬件系统:结合具体实例进行讲解;计算机软件系统:举例说明计算机的软件系统,使学生对这一抽象概念有较深刻的印象。
详细内容及要求一、教学内容: 1 、了解计算机的发展;2、了解计算机系统的组成以及各部分的主要功能;3、掌握键盘的使用,熟练掌握标准指法操作;4、了解计算机中数据的表示编码。
二、教学基本要求了解计算机的特点、发展史(包括微型计算机的发展史)、类型、应用领域及前景;掌握计算机软件系统及硬件系统构成,了解微机的硬件系统,包括掌握微机系统硬件组成及主要性能指标。
了解微机的软件系统,包括掌握机器指令与计算机语言( 机器语言,汇编语言,高级语言 ) 的概念、系统软件与应用软件的概念;数据在计算机中的表示及编码,包括了解二进制数概念、计算机内采用二进制数的优点。
三、重点与难点重点:计算机的发展史和应用领域,计算机软件系统及硬件系统构成,数据在计算机中的表示及编码难点:计算机基本工作原理,数据在计算机中的表示及编码。
四、课时分配:讲授 4 学时、实验 2 学时五、教学方法:讲授(ppt)六、教学过程:第一讲、计算机概述(1 学时)1、什么是计算机(概念)2、计算机发展过程阶段年份物理器件软件特征应用范围第一代1946-1957电子管机器语言、科学计算汇编语言第二代1958-1964晶体管高级语言科学计算、数据处理、工业控制第三代1965-1970小规模集成操作系统科学计算、数据处理、工电路业控制、文字处理、图形处理第四代1971 至今大规模集成数据库网各个领域电路络等3、计算机技术发展的趋势巨型化、高性能、开放式、多媒体化、智能化、网络化4、计算机的分类:1)、根据规模大小分类:巨型机、大型机、中型机、小型机、微机、2)、根据用途分类:通用计算机、专用计算机5、计算机的主要应用科学计算、数据处理、计算机控制、计算机辅助系统、人工智能、办公自动化系统中的应用注:记住一些专用名字的缩写详细内容及要求第二讲、计算机系统(1 学时)计算机系统:是由硬件系统和软件系统两部分组成;两者相辅相成,构成计算机系统的统一体。
操作系统课程设计题目【可修改文字】
可编辑修改精选全文完整版操作系统课程设计题目与要求一、课程设计要求:1.根据每道题的人数选定题目。
2.分析设计要求,给出解决方案,建立必要的数据结构,然后设计总体流程(包括界面)、详细设计必要的算法,并最终显示结果。
基于WINDOWS或LINUX操作系统都可以,用何种编程语言都有可以。
3.提交设计报告,包括设计要求、设计思想流程、设计所涉及的主要数据结构、程序清单、运行结果、设计心得、参考资料等。
4.严禁抄袭,复制设计内容,查出后相关同学设计成绩以零分处理。
5.所提交源程序应是能够运行通过的完整程序。
6.课程设计参考评分标准:设计思想说明(10分)。
数据结构的说明(6分)。
各模块的算法流程图(10分)。
程序清单:注意加注释(包含关键字、方法、变量等),在每个模块前加注释;(共70分,其中书面源程序占35分,实验的检查结果、程序的运行情况占35分)。
体会,总结(4分)。
二、设计题目1.Windows多线程控制台程序(2人)目的:学习和掌握如何编写Windows多线程控制台程序。
通过编写程序,加深对进程和线程关系的理解,掌握多线程程序的执行和编写技巧。
设计要求:写一个单进程多线程的Windows控制台程序,该程序在一个进程内建立N个线程来执行指定的任务。
N由命令行传递给系统。
Win32控制台程序中,主函数的格式如:Void main(int argc,char *argv[]),可以获取命令行参数。
通过VC++“工程/设置”的C/C++属性页设置应用程序为“MTD”多线程。
利用win32 API CreateThread()来生成线程。
2.睡眠理发师问题(2人)目的:了解信号量机制,了解并掌握进程同步和互斥机制,熟悉信号量的操作函数,利用信号量实现对共享资源的控制。
设计要求:(1)编写程序实现理发师与顾客进程的同步。
问题描述:这是一种经典的IPC问题,理发店有一位理发师,一把理发椅和n把用来等候理发的椅子。
2.2计算机系统互联教学设计第一课时
四、教学资源准备
- 提问与讨论:针对不懂的问题或新的想法,勇敢提问并参与讨论。
教学方法/手段/资源:
- 讲授法:通过详细讲解,帮助学生理解计算机系统互联的知识点。
- 实践活动法:设计实践活动,让学生在实践中掌握计算机系统互联的技能。
- 合作学习法:通过小组讨论等活动,培养学生的团队合作意识和沟通能力。
作用与目的:
- 帮助学生深入理解计算机系统互联的知识点,掌握相关技能。
④ 局域网技术
- 局域网的定义:在有限地理范围内连接多台计算机的计算机网络。
- 局域网的分类:以太网、令牌环、光纤分布式数据接口(FDDI)等。
- 局域网的技术标准:IEEE 802系列标准。
⑤ 广域网技术
- 广域网的定义:覆盖范围较广的计算机网络,通常用于连接不同地区的局域网。
- 广域网的分类:电话网络、卫星网络、电力线通信等。
5. 网络环境:确保教室内的计算机和网络设备能够正常连接和运行,为学生提供良好的网络学习环境。
6. 教学工具:准备好投影仪、电脑、音响等教学工具,以便进行多媒体资源的展示和播放。
7. 安全须知:为学生准备一份安全须知,包括实验操作的安全规则和注意事项,以保证实验过程的安全性。
8. 教学指导:为学生准备一份实验操作的指导手册,包括每个实验步骤的详细说明和图示,以帮助学生更好地进行实验操作。
- 通过实践活动,培养学生的动手能力和解决问题的能力。
文件加密系统
Xxxx学院《操作系统》课程设计说明书设计题目:文件加密储存专业:计算机科学与技术指导教师: xxx班级: xxx学号: xxx姓名: xxx同组人: xxx计算机科学与工程系2011年12月30 日前言至今,密码技术是取得信息安全性最有效的一种方法, 密码技术是信息安全的核心技术。
通过数据加密,人们可以有效地保证通信线路上的内容不被泄露,而且还可以检验传送信息的完整性。
进一步,密码技术可以应用于数字签名、身份认证和信息鉴定,这些应用对于资源存取控制以及其它安全措施是必须而且有效的。
相对于防病毒软件和防火墙软件来说,基于密码技术密码类产品、认证类产品份额相对较小,但随着金融、电信、政府等行业信息化建设对于网络安全整体解决方案需求的增加,将会有较大的增长。
本次课程设计要求利用文件系统的系统调用编程对文件的内容进行加、解密。
要求程序从环境的命令行携带4个参数。
第一个是文件名,第二个是操作方式,第三个是密钥,第四个是加密钥循环使用长度。
其中后两个参数是可以忽略,但对忽略的情况要提供缺省值。
要求最后实现对文件的加密转储,或通过改道的办法进行转储。
对于已加密的文件可以进行解密显示或解密后转储。
形成加密或解密文件后要删除原来的文件。
目录一、系统环境 (4)二、设计目的 (4)三、设计内容 (5)四、程序流程图 (6)五、详细设计 (7)六、设计过程遇到问题及改进方法 (8)七、程序原代码 (9)八、程序运行结果分析 (12)九、心得体会 (14)参考文献 (15)一、系统环境硬件环境:处理器:英特尔酷睿2 双核E7200内存:三星 2G DDR2 667MHz软件环境:Windows XP 32位SP3操作系统VM workstation 9.0 red hat linux二、设计目的:加密技术是电子商务采取的主要安全保密措施,是最常用的安全保密手段,利用技术手段把重要的数据变为乱码保存,读取时以特定的解密方法将文件还原,加密技术包括两个元素:算法和密钥。
操作系统课程设计 内核模块编程和设备驱动程序
课程设计题目内核模块编程和设备驱动程序学生姓名朱小波学号**********专业计算机科学与技术班级20091121指导教师张莉莉完成日期2012年1月5日Linux内核模块编程与设备驱动程序摘要:本文给出了一个linux字符设备驱动程序的例子,其包括了内核模块编程.其主要功能是:在内存虚拟一个字符设备,并由编写的驱动程序加载到系统,完成字符的输入与输出功能.此设备驱动程序可以用作linux实践教学的实例.关键词:字符设备驱动;内核模块编程;虚拟;模拟1 前言驱动程序是应用程序和硬件设备的一个接口,linux设备驱动程序属于内核的一部分,熟练驱动程序和内核模块开发需要硬件知识,了解操作系统的实现,需要了解内核基础知识,了解内核中的并发控制和同步以及复杂的软件结构框架.本文论述了如何在linux下实现一个简单的字符设备驱动程序,主要完成了内核树的建立、内核的编译、字符设备的模拟、字符设备的驱动、字符设备驱动程序的测试等.本文首先阐述了设备驱动程序和内核模块编程的基础知识,然后给出了实现一个设备驱动程序的总体框架,最后根据框架一步步详细完成了一个字符设备驱动程序,包括终端命令和源程序的编写.做好设备驱动程序可以更好的了解硬件和操作系统,本设备驱动程序可以作为操作系统实验课程的实例.2 设备驱动程序和内核模块编程相关基础知识linux内核是一个整体是结构.因此向内核添加任何东西.或者删除某些功能,都十分困难.为了解决这个问题. 引入了内核机制.从而可以可以动态的想内核中添加或者删除模块.模块不被编译在内核中,因而控制了内核的大小.然而模块一旦被插入内核,它就和内核其他部分一样.这样一来就会增加一部分系统开销.同时,假如模块出现问题.,也许会带来系统的崩溃.2.1模块的实现机制:启动时,由函数 void inti_modules 来初始化模块,.因为启动事很多时候没有模块.这个函数往往把内核自身当作一个虚模块.如由系统需要,则调用一系列以sys 开头的函数,对模块进行操作. 如:sys_creat_modules,sys_inti_modules , sys_deldte_modules等等.这里会用到一些模块的数据就结构,在/usr/scr/linux/include/linux/module.h 中.块的加入有两种方法:一是手动加入:如:insmod modulename.另一种是根据需要,动态的加载模块.如你执行命令:$mount -t msdos /dev/hdd /mnt/d 时.系统便自动加载 FAT模块,以支持MSDOS 的文件系统.2.2 模块编程写一个模块,必须有一定的多进程编程基础.因为编的程序不是以一个独立的程序的来运行的.另外,因为,模块需要在内核模式下运行,会碰到内核空间和用户空间数据交换的问题.一般的数据复制函数无法完成这一个过程.因此系统已入了一些非凡的函数以用来完成内核空间和用户空间数据的交换. 这些函数有:void put _user、memcpy_tofs 等等,需要说明的是.模块编程和内核的版本有很大的关系. 假如版本不通可能造成,内核模块不能编译,或者.在运行这个模块时,出现不可测结果.如:系统崩溃等.对于每一个内核模块来说.必定包含两个函数:int init_module :这个函数在插入内核时启动,在内核中注册一定的功能函数,或者用它的代码代替内核中某些函数的内容.因此,内核可以安全的卸载.int cleanup_module:当内核模块卸载时调用.将模块从内核中清除.2.3内核模块与应用程序对比应用程序是一个进程,编程从主函数main()开始,主函数main返回即是进程结束,使用glibc的库.驱动程序是一系列内核函数,函数入口和出口不一样,使用Linux内核的函数,这些函数由内核在适当的时候来调用,这些函数可以用来完成硬件访问等操作.2.4设备的分类设备一般分为字符设备(char device)、块设备(block device)、网络设备(network device).图1:设备的分类i字符设备特点:像字节流一样来存取的设备( 如同文件 )通过/dev下的文件系统结点来访问通常至少需要实现 open, close, read, 和 write 等系统调用只能顺序访问的数据通道,不能前后移动访问指针.特例:比如framebuffer设备就是这样的设备,应用程序可以使用mmap或lseek访问图像的各个区域ii块设备特点:块设备通过位于 /dev 目录的文件系统结点来存取块设备和字符设备的区别仅仅在于内核内部管理数据的方式块设备有专门的接口,块设备的接口必须支持挂装(mount)文件系统.应用程序一般通过文件系统来访问块设备上的内容图2:块设备驱动图3:网络设备驱动linux中的大部分驱动程序,是以模块的形式编写的.这些驱动程序源码可以修改到内核中,也可以把他们编译成模块形式,在需要的时候动态加载.一个典型的驱动程序,大体上可以分为这么几个部分:1,注册设备在系统初启,或者模块加载时候,必须将设备登记到相应的设备数组,并返回设备的主驱动号,例如:对快设备来说调用 refister_blkdec将设备添加到数组blkdev中.并且获得该设备号.并利用这些设备号对此数组进行索引.对于字符驱动设备来说,要使用 module_register_chrdev来获得祝设备的驱动号.然后对这个设备的所有调用都用这个设备号来实现.图4:内核模块调用过程2,定义功能函数对于每一个驱动函数来说.都有一些和此设备密切相关的功能函数.那最常用的块设备或者字符设备来说.都存在着诸如 open read write ioctrol这一类的操作.当系统社用这些调用时.将自动的使用驱动函数中特定的模块.来实现具体的操作.而对于特定的设备.上面的系统调用对应的函数是一定的. 如:在块驱动设备中.当系统试图读取这个设备时),就会运行驱动程序中的block_read 这个函数. 打开新设备时会调用这个设备驱动程序的device_open 这个函数.3,卸载模块在不用这个设备时,可以将它卸载.主要是从/proc 中取消这个设备的文件.可用特定的函数实现.3 设备驱动程序实现框架4 数据结构设计与主要功能函数(1)字符设备描述结构体:struct cdev {struct kobject kobj; /*内嵌的kobject对象*/struct module *owner; /*所属模块*/const struct file_operations *ops; /*文件操作结构体*/struct list_head list; /*双向循环链表*/dev_t dev; /*设备号32位高12位为主设备号,低20位为次设备号*/unsigned int count; /*设备数量*/};(2) 设备描述结构体struct mem_dev{char *data; /*数据*/unsigned long size; /*长度*/};表1 主要功能函数列表主要函数列表功能说明int mem_open(struct inode *inode, struct file *filp) 文件打开int mem_release(struct inode *inode, struct file *filp) 文件释放读文件static ssize_t mem_read(struct file *filp, char __user *buf, size_tsize, loff_t *ppos)写文件static ssize_t mem_write(struct file *filp, const char __user *buf,size_t size, loff_t *ppos)static loff_t mem_llseek(struct file *filp, loff_t offset, int whence) 文件定位static int memdev_init(void) 设备驱动模块加载static void memdev_exit(void) 卸载设备5 字符设备驱动程序的实现下载安装LINUX内核,需要下载和本机一样版本的内核源码.本设备驱动程序是在linux-3.0.12内核下进行的.5.1 安装编译内核所需要的软件并编译内核.使用以下命令安装需要的软件:sudo apt-get install build-essential autoconf automake cvs subversion kernel-package libncurses5-dev图5:安装所需软件在/pub/linux/kernel/v3.0/ 下载内核linux-3.0.12.tar.bz2将内核放置/usr/src目录下使用命令tar解压sudo tar jxvf linux-3.0.12.tar.bz2图6:解压内核使用以下命令配置系统cd linux-3.0.12cp /boot/config-`uname -r` ./.config #拷贝目前系统的配置文件make menuconfig终端会弹出一个配置界面最后有两项:load a kernel configuration... (.config)、save a kernel configuration... (.config) 选择load a kernel configuration保存,然后在选择save akernel configuration再保存退出,并退出配置环境.图7:配置系统参数make #这步需要比较长时间make bzImage #执行结束后,可以看到在当前目录下生成了一个新的文件: vmlinux, 其属性为-rwxr-xr-x.make modules #/* 编译模块*/make modules_install #这条命令能在/lib/modules目录下产生一个目录图8:make内核图9:make bzImage图10:make modules图11:make modules_installcd /usr/includerm -rf asm linux scsiln -s /usr/src/linux-3.0.12/include/asm-generic asmln -s /usr/src/linux-3.0.12/include/linux linuxln -s /usr/src/linux-3.0.12/include/scsi scsi5.2 编写字符设备驱动程序并调试编译.cd /rootmkdir firstdrivertouch memdev.c #建立驱动程序文件touch memdev.h #头文件touch Makefile #编写Makefile编译驱动程序模块make -C /lib/modules/3.0.0-12-generic/build M=/root/firstdriver modules图12:make 驱动程序ls查看当前目录的内容root@cloudswave-VirtualBox:~/firstdriver# lsMakefile memdev.h memdev.mod.c memdev.o Module.symversmemdev.c memdev.ko memdev.mod.o modules.order这里的memdev.ko就是生成的驱动程序模块.通过insmod命令把该模块插入到内核root@cloudswave-VirtualBox:~/firstdriver# insmod memdev.ko查看插入的memdev.ko驱动图13:查看插入的memdev.ko驱动可以看到memdev驱动程序被正确的插入到内核当中,主设备号为88,该设备号为如果这里定义的主设备号与系统正在使用的主设备号冲突,比如主设备号定义如下:#define MEMDEV_MAJOR 254,那么在执行insmod命令时,就会出现如下的错误:root@cloudswave-VirtualBox:~/firstdriver# insmod memdev.koinsmod: error inserting 'memdev.ko': -1 Device or resource busy5.3.测试驱动程序1,首先应该在/dev/目录下创建与该驱动程序相对应的文件节点,使用如下命令创建:root@cloudswave-VirtualBox:/dev# mknod memdev0 c 88 0使用ls查看创建好的驱动程序节点文件root@cloudswave-VirtualBox:/dev# ls -al memdev0图14:驱动程序节点文件2,编写如下应用程序memtest.c,来对驱动程序进行测试.编译并执行该程序root@cloudswave-VirtualBox:~/firstdriver# gcc -o memtest memtest.croot@cloudswave-VirtualBox:~/firstdriver# ./memtest图15:程序测试驱动手动测试驱动的方法:root@cloudswave-VirtualBox:~/firstdriver# echo 'haha shi wo' > /dev/memdev0root@cloudswave-VirtualBox:~/firstdriver# cat /dev/memdev06.小结:LINUX使用make编译驱动程序模块的过程.Linux内核是一种单体内核,但是通过动态加载模块的方式,使它的开发非常灵活、方便.那么,它是如何编译内核的呢?我们可以通过分析它的Makefile入手.以下是一个当我们写完一个hello模块,编写类似以上的Makefile.然后用命令make编译.假设我们把hello模块的源代码放在/home/examples/hello/下.当我们在这个目录运行make时,make是怎么执行的呢?首先,由于make后面没有目标,所以make会在Makefile中的第一个不是以.开头的目标作为默认的目标执行.于是default成为make的目标.make会执行make-C/lib/modules/3.0.0-12-generic/build M=/home/examples/hello/modules是一个指向内核源代码/usr/src/linux的符号链接.可见,make执行了两次.第一次执行时是读hello模块的源代码所在目录/home/examples/hello/下的Makefile.第二次执行时是执/usr/src/linux/下的Makefile.7 结束语本文给出了一个字符设备驱动与内核模块编程的完整实例,可以从中掌握内核编译、内核编程基础、设备驱动程序开发基础,优点是比较详细的给出了驱动开发的流程,并且把每一步的操作进行了详细的说明包括要执行的终端命令.最后还分析了驱动编译的过程.这样有利于初学者了解学习设备驱动的开发.有待进一步改进之处在于:此设备驱动程序针对的是字符设备,实现的功能比较简单,以后有时间可根据这次的开发流程,参考api编写块设备和网络设备的驱动程序.参考文献[1]Abraham Silberschatz 操作系统概念(第七版)影印版高等教育出版社,2007 [2]费翔林Linux操作系统实验教程高等教育出版社,2009[3](美)博韦等(DanielP. Bovet) 编著深入理解LINUX内核北京:中国电力出版社,2008 [4]Jonahan Corbet编著Linux设备驱动程序北京:中国电力出版社,2005附录。
OBE教育理念下的操作系统课程教学实践
OBE教育理念下的操作系统课程教学实践作者:王灿杜丹张飞来源:《中国新通信》2024年第12期摘要:本文主要探讨了成果导向教育(OBE)在操作系统课程中的应用。
在课程教学中具体采用“四环节”和“一机制”策略,包括设定明确学习成果、更新教学内容、重新设计教学方案和完善评估体系,以及引入一系列持续改进机制,如定期培训和反馈收集,这些措施旨在提高教学质量,提升学生的应用能力。
关键字:操作系统;OBE;四环节;一机制在当今信息时代,操作系统课程在计算机教育中占据着举足轻重的地位,它为学生打开了深入了解计算机底层工作机制的大门。
但传统的教学方法过于注重理论知识的传授,忽视了学生的实际应用能力培养,导致教学成果与社会和企业需求之间存在明显的鸿沟。
为了缩小这一差距,越来越多的教育机构开始关注OBE(Outcome-Based Education)理念。
OBE理念将教学重点从过程转移到学习成果上,强调学生掌握的知识和技能要与行业期望保持一致。
针对此,本文将探讨在OBE理念的指导下,如何对操作系统课程进行有效改革。
改革的目标不仅是深化学生的理论知识,更重要的是增强学生的应用能力,以满足企业对技术专业人才的现实需求。
一、OBE理念的核心内容成果导向教育,也被称为Outcome-Based Education(OBE),由美国学者William Spady 于1981年提出,以“所有的学生都能获得成功”为前提[1],在过去的几十年中逐渐成为全球教育改革的核心理念。
这一理念指明教育活动要围绕预设的学习成果展开,并努力使每位学生掌握必要的知识和技能。
(一)以结果为导向与传统的以内容为中心的教育模式不同,OBE理念更加关注学生能达到的最终学习成果。
这意味着教育的目标不只是传授知识,而是要求学生能够将所学应用于实践,以满足社会和职业的实际需求。
(二)以学生为中心OBE理念倡导教育者从学生的角度出发,关注每位学生的个体差异和需求。
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
计算机系课程设计实验报告课程名称操作系统课程设计实验学期 2012 至 2013 学年第 1 学期学生所在系部计算机与信息管理系年级 2010 专业班级计算机001班学生姓名学号任课教师实验成绩计算机系制一个简单的文件系统的详细设计一、实验目的(1)阅读并调试一个简单的文件系统,模拟文件管理的工作过程。
从而对各种文件操作命令的实质内容和执行过程有比较深入的了解。
(2)了解设计一个n个用户的文件系统,每个用户可以保存M个文件。
用户在一次运行中只能打开一个文件,对文件必须设置保护措施,且至少有create、delete、open、close、read、write等命令。
二、实验要求1、阅读所给文件系统源程序,并加注释(注释量达60%),2、修改、完善该系统,画出所设计的文件系统的详细流程图。
三、文件系统功能设计1. 功能设计该文件系统是一个多用户、多任务的文件系统。
对用户和用户的文件数目并没有上限。
也就是说该系统允许任何用户申请空间,而且在其目录下的文件数目并不做任何的限制。
该系统可以支持的操作命令如下:①bye——用户注销命令。
当使用该命令时,用户退出系统,注销该用户功能设计并回到登陆界面。
命令格式:bye②close——删除用户注册信息命令。
执行该命令后,用户在系统中的所有信息,包括该用户目录下的所有文件都被删除。
命令执行完成后返回登陆界面。
命令格式:close③create——在当前目录下创建一个文件,且该文件不能跟当前已有的文件重名。
该文件的管理信息登记在用户文件信息管理模块中。
执行完该命令后回到执行命令行。
命令格式:create>file1其中:“>”符为提示符,file1为要创建的文件名。
④delete——删除当前用户目录下的一个文件,命令执行完毕返回至命令行。
命令格式:delete>file1其中:file1为要删除的文件名。
⑤list——显示当前注册目录下的所有文件信息,包括文件名、文件长度、文件操作权限。
命令格式:list⑥chmod——改变某个文件的执行权限,但前提是该文件是该用户目录下的文件。
命令格式:chmod>file1。
其中:file1为要授权的文件名。
⑦open——在window界面下打开某个文件。
执行该命令后,文件file1将用在windows 界面下的文件形式打开。
用户可以在这个方式中对文件进行修改,并将修改后的内容保存。
命令格式:open>file1其中:file1为要打开的文件名。
⑧read——读文件信息。
将文件信息读入并显示在终端上。
命令格式:read>file1其中:file1为要读的文件名。
⑨write——向某个文件写入新的信息。
用户可以选择用覆盖原来内容的方式或和在文件的末尾追加新信息的方式写入信息。
当要退出时输入“#”即可。
(2)系统采用二级文件目录。
设置主目录(MFD)和用户文件目录(UFD),分别以文件的方式保存在磁盘中。
在主目录中有注册用户的用户名和另一标志该用户目录下是否有文件的指针标记。
用户文件目录采用用户名作为文件名保存于磁盘,以便检索时方便对应。
在用户文件目录中保存着该目录下所有文件的文件名称、保护码、文件长度。
(3)该系统大量使用高级语言中的文件操作函数,所以能实际看到文件的创建、写入、读出、删除等效果。
2. 功能设计实现总体流程3. 主要数据结构4. 主要功能模块四、文件系统功能模块详细设计流程图1.int LoginDisplay() //登陆选项操作函数图1:函数LoginDisplay()流程图2.bool Login(int SELETE)//用户登陆,注册函数图2:函数Login(int SELETE)流程图3.void DisplayUFD() //打印用户信息,包括用户的各个文件图3:函数DisplayUFD()流程图4.void ByeFile(bool BOOL)//注销函数,调用此函数后用户可以退出系统图4:函数ByeFile(bool BOOL)流程图5.bool ClearUserFile()//用户要将自己的注册目录从系统彻底删除图5:函数ClearUserFile()流程图6.void ClearUserMes()//删除用户全部信息图6:函数ClearUserMes()流程图7.void DeleteUser()//删除用户注册目录的操作图7:函数DeleteUser()流程图8.void CreatFile()//在当前用户目录下创建文件图8:函数CreatFile()流程图9.void DeleteFile() //删除当前目录下一个文件的操作图9:函数DeleteFile()流程图10.bool QueryModElse(bool BOOL,bool &flag)//查询其它用户目录下的文件图10:函数QueryModElse(bool BOOL,bool &flag)流程图11.bool QueryMod(bool BOOL)//查询权限图11:函数QueryMod(bool BOOL)流程图12.bool WriteRight(int len,bool BOOL)//查看是否已经正确地写入到该文件信息中,是则返回真值图12:函数WriteRight(int len,bool BOOL)流程图13.void WriteLengthToFile(int Len,bool BOOL)//将文件长度写入文件管理模块中图13:函数WriteLengthToFile(int Len,bool BOOL)流程图14.void WriteFile()//向文件写入信息的操作图14:函数WriteFile()流程图15.void ReadFile()//读文件函数图15:函数ReadFile()流程图16.void ChangeMod()//修改某文件的执行权限图16:函数ChangeMod()流程图17.void Execute(int i,int len,int cmdset)//执行命令函数图17:函数Execute()流程图18.void Command()//读取用户输入的命令,并将其转换成系统能识别的命令图18:函数Command()流程图五、实验运行结果1、用户注册:图19:用户注册2、创建文件:图20:创建文件3、用户注册时重名:图21:用户注册时重名4、已注册用户登陆,并打开文件进行写入操作:图22:已注册用户登陆,并打开文件进行写入操作5、读出文件内容到终端:图23:读出文件内容到终端6、删除文件:图24:删除文件7、打印文件清单:图25:打印文件清单8、修改用户权限:图26:修改用户权限9、删除用户全部文件与信息:图27:删除用户全部文件与信息10、退出系统:图28:退出系统六、系统改进的设想与实现1、修改内容说明:(1)、对源程序中的函数进行了声明和排序(按首字母排列);(2)、在登陆选项操作函数LoginDisplay()和修改文件权限函数ChangeMod()中添加了人性化提示语句,方便用户操作。
2、实现程序(用小六字体打印):(1)、程序如下://--------------------------------函数声明------------------------------------------------------void ByeFile(bool BOOL); //注销函数,调用此函数用户可以退出系统void ChangeMod(); //修改某文件的执行权限void ClearUserMes(); //删除用户全部信息void Command(); //读取用户输入的命令,并将其转换成系统能识别的命令void CreatFile(); //在当前用户目录下创建文件void DeleteFile(); //删除当前目录下一个文件的操作void DeleteUser(); //删除用户注册目录的操作void DisplayUFD(); //打印用户信息,包括用户的各个文件名称、长度和操作权限的设置信息void Execute(int i,int len,int cmdset); //执行命令函数void KeyWord(); //初始化命令关键字void ListAllFile(); //显示当前用户目录下的文件信息void OpenFile(); //在window模式下打开该文件void ReadFile(); //读文件函数void WriteFile(); //向文件写入信息的操作void WriteLengthToFile(int Len,bool BOOL); //将文件长度写入文件管理模块中bool ClearUserFile(); //用户要将自己的注册目录从系统彻底删除,首先应将该用户目录下的全部文件删除bool Login(int SELETE); //用户登陆,注册函数。
bool QueryMod(bool BOOL); //查询权限bool QueryModElse(bool BOOL,bool &flag); //查询其它用户目录下文件的文件bool WriteRight(int len,bool BOOL); //查看是否已经正确地写入到该文件信息中,若是,则返回真值int LoginDisplay(); //登陆选项操作函数(登陆界面模块)。
int main(); /*主函数声明,与其他函数声明一样,其功能是:使编译器进行预编译时为主函数预留内存空间。
只有主函数可以不要声明,直接定义使用。
VC6.0里用void main();。
*/(2)、程序如下:A、登陆选项操作函数LoginDisplay()system("cls"); //清屏函数。
cout<<" *******欢迎使用本文件系统*******"<<endl;cout<<" *****您可以进行以下操作*****"<<endl;cout<<"**温馨提示:输入操作序号,如“2”,再按回车键**\n **即可进入“用户注册”功能界面,下同。
**"<<endl;cout<<"\n *****请选择操作*****\n1、用户登陆 2、用户注册 0、退出"<<endl;cin>>SELETE_1; //键盘输入一个序号,如1、2、0。
B、修改文件权限函数ChangeMod()cout<<"\n文件的权限值具体如下:";cout<<"\n30:其他用户既没读权也没写权;";cout<<"\n31:其他用户没有读权但有写权;";cout<<"\n32:其他用户具有读权但没写权;";cout<<"\n33:其他用户既有读权也有写权。