操作系统的命令接口设计说明
- 格式:doc
- 大小:409.00 KB
- 文档页数:22
第七章操作系统的用户接口概述•OS是计算机的资源管理器和用户接口;•OS的用户接口负责接收用户向OS提出的服务请求,传递有关信息,并将服务的结果返回给用户;•OS用户接口有两类:联机用户接口(有命令行界面和图形界面两种形式),程序接口(主要是系统调用)。
另外,在Internet中还有一种网络用户接口。
第一节联机命令接口一、什么是联机命令接口•是用户从键盘上输入的OS命令。
通过输入键盘命令,用户可以取得OS 的服务,控制自己的程序执行;•OS的联机命令接口包括:一组联机命令、命令解释程序(命令解释器)和终端处理程序;•联机命令接口的工作过程:(1) 用户在终端上(通过键盘)输入所需命令;(2) 终端处理程序接收该命令,并在屏幕上显示(回显)命令;(3) 一条命令输入完毕,由命令解释程序对命令进行分析,然后执行对应的命令处理程序,完成任务。
二、联机命令1、为了能向用户提供多方面的服务,通常,OS都向用户提供了几十条甚至上百条的联机命令。
这批命令分为内部命令和外部命令两类。
另外,用户建立的每个可执行程序也是一条联机命令(外部命令)。
根据这些命令所完成功能的不同,可把它们分成以下几类:①系统访问类;②磁盘操作类;③文件操作类;④目录操作类;⑤通信类;⑥其他命令。
2、各类命令举例•系统访问类:Login;用户注册命令•磁盘操作命令:Diskcopy;整盘复制命令Format;磁盘格式化命令Diskcomp;软盘比较命令Backup,Restore;硬盘备份与恢复命令•文件操作命令:Type;文件内容显示命令Copy;文件复制命令Comp;文件比较命令Rename;文件重命名命令Erase,Dele;文件删除命令关于文件名中的*和?的意义。
•目录操作命令:Mkdir,Md;建立一个子目录Dir;显示目录表的内容Rmdir,Rd;删除子目录Tree;显示目录结构Chdir,Cd;更改当前工作目录•其它命令I/O重定向命令:在有的OS中定义了两个标准I/O设备。
1批处理操作系统的目的是_cd_a 提高系统与用户的交互性b 提高系统资源的利用率c 降低用户作业的周转时间d 提高系统吞吐率e 减少用户作业等待时间2 现代操作系统具有的特征有 acea 并发行b 交互性c 共享性d 可移植性e 不确定性3 分时系统需要使用下面哪些成分__acdf___a 多道程序设计技术 c 终端命令解释程序d 中断处理 f 系统调用4 允许多个用户已交互式使用计算机的操作系统为_1b,2a,3d__1___,允许多个用户将多个作业提交给计算机处理的操作系统为___2___,计算机系统能及时处理过程控制数据并做出响应的系统为___3___b 分时操作系统a 批处理系统 d 实时操作系统c 多处理机操作系统 e 网络操作系统5 实时操作系统和分时操作系统可以从___方面加以区别a 交互性b 共享性c 可靠性d 响应时间e 虚拟性6 从资源管理的角度出发,操作系统的功能有____abcde___a 作业管理b 进程管理c 存储管理d 设备管理e 文件管理7 分时操作系统的主要特点是__abce____a 交互性b 并发性c 独立性d 虚拟性e 同时性8 多道程序设计的主要优点是 ___abce______a 提高CPU利用率b 提高了内存的利用率c 提高了I/O设备利用率 c 提高了软件的利用率e 可以使多道程序交替执行以共享系统资源例题填空题1多道程序设计的特点是多道、_宏观上并行__和_微观上串行__2操作系统向用户提供了两类接口,一类是_命令级接口__,另一类是_程序级接口___3多道程序设计是利用了_CPU__和_外设__的并行工作能力来提高系统效率的4为了实现CPU与外部设备的并行工作,系统引入了_中断__硬件机制5操作系统是计算机系统中的一个_系统软件__,它管理和控制计算机系统中的_软件和硬件资源__6对操作系统的总体设计目标来说,批处理操作系统应注重提高计算机的效率,尽量增加系统的_平均吞吐量__,分时操作系统应保证用户_所能忍受的响应时间__,而实时操作系统则应在保证及时响应和处理有关事件前提下,在考虑_系统资源利用率__7在一个具有分时兼批处理的计算机操作系统中,如果有终端作业和批处理作业混合同时执行,则_终端型__作业应优先占用处理机8为了实现多道程序设计,计算机系统在硬件方面必须提供两种支持,它们是_中断__和_通道__9批处理系统的基本特征是批量,他把提高作业的吞吐量作为主要设计目标,同时也兼顾作业的_周转时间__10单道批处理系统是在解决_人机矛盾和_CPU和I/O设备之间速度不匹配__的矛盾中发展起来的例题判断1采用多道程序设计的系统中,系统程序道数越多,系统效率越高; 错,系统的程序道数多不能说明系统的效率就高2操作系统的设计必须保证进程具有可再现性; 正确3应用软件是加在裸机上的第一层软件; 错,操作系统是加在裸机上的第一层软件4多道程序设计时利用了CPU和通道并行工作来提高系统利用率的; 正确5操作系统特征之一的不确定性指程序运行结果是不确定的; 错,除程序运行结果不确定之外,还有多道程序环境下多个程序的执行顺序和完成时间的不确定6多道程序设计可以缩短系统中作业执行时间; 错,可以提高资源利用率及系统吞吐量,但不能减少作业执行时间7分时系统和多道程序设计技术的出现,标志着操作系统的正式形成; 正确8从响应角度看,分时系统与实时系统的要求相似; 错,分时系统的响应时间以人能够接受的时间为准,而实时系统则以空控制对象所要求的时间为准,两者本质不同9使计算机系统能够被方便的使用和高效的工作时操作系统的两个主要设计目标; 正确10分时操作系统首先要考虑的问题是交互性和响应时间; 正确例题1.5 什么是操作系统?它有什么基本特征?答:操作系统是指控制和管理计算机的软、硬件资源,合理组织计算机的工作流程,方便用户使用的程序集合。
河南城建学院《操作系统》课程设计说明书设计题目: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。
MCS—51单片机学习开发系统设计-单片机原理及接口技术课程设计说明书单片机原理及接口技术课程设计说明书姓名xx所在院(系)电气工程与自动化学院专业班级电气学号指导教师xxx时间MCS—51单片机学习开发系统设计摘要:该MCS--51单片机学习开发系统集成多个资源模块,每个模块各自可以成为独立的单元,也可以相互组合,可完成MCS-51单片机学习过程中的大部分实验。
将MCS-51 设计为多功能可编程接口,该系统工具是初学单片机及单片机爱好者快速掌握51系列单片机不可多得的工具,可以为他们提供不同的开发学习环境。
集成系统主要功能模块组成如下:+5V、-5V、+12V、-12V直流稳压电源模块、8位发光二极管、四位LED数码管、点阵式LCD 液晶显示器、4*4键盘、ISP下载线、并行口扩展控制线接口、A/D、D/A转换接口、串行口通信、PC标准键盘的PS/2接口、继电控制模块等。
关键字:MCS-51单片机系统设计功能模块程序设计目录第1章系统综述 (1)第2章硬件设计 (2)2.1 单片机最小系统 (2)2.2 电源电路 (4)2.3 程序下载口 (4)2.4 LED显示模块 (5)2.5 LCD液晶显示器及PC标准键盘接口 (6)2.6 键盘电路 (7)2.7 DAC0832D/A转换电路 (9)2.8 ADC0809A/D转换电路 (10)2.9 8255输入/输出(或数据总线)扩展 (11)2.10串行通信模块 (12)2.11 继电器控制模块 (14)2.12系统总图 (15)第3章软件设计 (18)3.1 8255并行扩展设计 (18)3.2 8255键盘及显示设计 (19)3.3 串行通信口设计 (20)3.4 A/D转换设计 (22)3.5 D/A转换设计 (24)第4章系统实验 (25)4.1 数码管循环计数显示实验 (25)4.2 串行口两单片机双机通信实验 (26)4.3 简单键盘控制显示实验 (27)4.4 键盘控制位循环显示实验 (27)第5章设计总结 (28)第6章参考文献 (29)附录系统模块程序设计清单 (31)1. 8255并行扩展程序设计 (31)2. 8255键盘及显示控制程序设计 (32)3. A/D转换实验程序设计 (36)4. D/A转换程序设计 (37)5. 双机通信实验程序设计 (40)6. 键盘控制位循环显示实验程序设计 (43)第1章系统综述目前,单片机已广泛应用到工业测控、智能仪表、数据采集、人工智能等领域。
1.1:存储程序式计算机的主要特点是:集中顺序过程控制(1)过程性:模拟人们手工操作(2)集中控制:由CPU集中管理(3)顺序性:程序计数器1.2:a:批处理系统的特点:早期批处理有个监督程序,作业自动过渡直到全部处理完,而脱机批处理的特点:主机与卫星机并行操作。
b:分时系统的特点:(1):并行性。
共享一台计算机的众多联机用户可以在各自的终端上同时处理自己的程序。
(2):独占性。
分时操作系统采用时间片轮转的方法使一台计算机同时为许多终端上同时为许多终端用户服务,每个用户的感觉是自己独占计算机。
操作系统通过分时技术将一台计算机改造为多台虚拟计算机。
(3):交互性。
用户与计算机之间可以进行“交互会话”,用户从终端输入命令,系统通过屏幕(或打印机)将信息反馈给用户,用户与系统这样一问一答,直到全部工作完成。
c:分时系统的响应比较快的原因:因为批量操作系统的作业周转时间较长,而分时操作系统一般采用时间片轮转的方法,一台计算机与许多终端设备连接,使一台计算机同时为多个终端用户服务,该系统对每个用户都能保证足够快的响应时间,并提供交互会话功能。
1.3:实时信息处理系统和分时系统的本质区别:实时操作系统要追求的目标是:对外部请求在严格时间范围内做出反应,有高可靠性和完整性。
其主要特点是资源的分配和调度首先要考虑实时性然后才是效率。
此外,实时操作系统应有较强的容错能力,分时操作系统的工作方式是:一台主机连接了若干个终端,每个终端有一个用户在使用。
用户交互式地向系统提出命令请求,系统接受每个用户的命令,采用时间片轮转方式处理服务请求,并通过交互方式在终端上向用户显示结果。
用户根据上步结果发出下道命。
分时操作系统将CPU 的时间划分成若干个片段,称为时间片。
操作系统以时间片为单位,轮流为每个终端用户服务。
每个用户轮流使用一个时间片而使每个用户并不感到有别的用户存在。
分时系统具有多路性、交互性、“独占”性和及时性的特征。
《操作系统》课程教学大纲课程编号:030115Z0适用专业:计算机相关专业课程类型:必修课课程性质:专业基础课课程学时:30 课程学分:2一、课程定位操作系统(Operating System)课程是计算机相关专业一门专业基础课程,在课程设置上起着承上启下的作用,其特点是概念多、抽象和涉及面广。
主要任务是:使学生掌握计算机操作系统的基本原理及组成;计算机操作系统的基本概念和相关的新概念、名词及术语;了解计算机操作系统的发展特点、设计技巧和方法;对常用计算机操作系统会进行基本的操作使用。
本课程的学习要求学生具有一定的计算机组成和计算机程序设计基础,先导课程为计算机组成原理、C语言和数据结构,后续课程为网络基础,数据库,Linux技术等。
二、课程目标本课程的教学基本目标:是使学生理解操作系统基本原理,并在此基础上培养学生实际动手编程能力。
1.知识目标(1)理解操作系统的基本原理、组成、基本概念和主要功能;(2)基本掌握常用算法;(3)掌握常用操作系统的基本操作以及基本配置;(4)了解API函数的简单应用。
2.能力目标(1)熟练使用计算机操作系统;(2)能够解决一些简单的应用问题;(3)了解计算机操作系统设计技巧;3.素质目标(1)初步具备辩证思维的能力;(2)具有热爱科学,实事求是的学风和创新意识、创新精神;(3)加强职业道德意识。
三、课程设计1.设计理念以职业能力培养为导向,进行课程开发与设计。
按照人才培养目标要求来确定课程的内容、教学组织、教学方法和手段,注重培养学生分析问题、解决问题的能力、计算机思维能力、自学能力和从业能力。
(2.设计思路(1)以“够用、适用、实用"为目标设计课程教学内容。
(2)考虑后续课程需要,突出重点,强化专业应用。
(3)注重课堂教学互动,老师为主导,学生为主体,引导学生积极思维,培养学生的学习能力。
(4)注重培养学生分析问题、解决问题的能力和自学能力。
四、课程内容与学时分配五、教学设计。
接口设计说明(IDD)说明:1.《接口设计说明》(IDD)描述了一个或多个系统或子系统、硬件配置项HWCI、计算机软件配置项CSCI、手工操作或其他系统部件的接口特性。
一个IDD可以说明任何数量的接口。
2.IDD可用于补充《系统/子系统设计(结构设计)说明》(SSDD)、《软件(结构)设计说明》(SDD)和《数据库(顶层)设计说明》(DBDD)。
IDD及其相伴的《接口需求规格说明》(IRS)用于沟通和控制接口的设计决策。
接口设计说明的正文的格式如下:1引言本章应分以下几条。
1.1标识本条应包含本文档适用的系统、接口实体和接口的完整标识,(若适用)包括标识号、标题、缩略词语、版本号、发行号。
1.2系统概述本条应简述本文档适用的系统和软件的用途。
它应描述系统与软件的一般性质;概述系统开发、运行和维护的历史;标识项目的投资方、需方、用户、开发方和支持机构;标识当前和计划的运行现场;并列出其他有关文档。
1.3文档概述本条应概括本文档的用途与内容,并描述与其使用有关的保密性或私密性要求。
1.4基线说明编写本系统设计说明书所依据的设计基线。
2引用文件本章应列出本文档引用的所有文档的编号、标题、修订版本和日期。
本章也应标识不能通过正常的供货渠道获得的所有文档的来源。
3接口设计本章应分条描述一个或多个系统、子系统、配置项、手工操作和其他系统部件的接口特性。
如果设计的部分或全部依赖于系统状态或方式,则应指出这种依赖性。
如果设计信息在多条中出现,则可只描述一次,而在其他条加以引用。
如果此信息的部分或全部在别处提供,则此处可以引用。
应给出或引用为了理解设计所需的设计约定。
3.1接口标识和接口图对于1.1中所标识的每个接口,本条应陈述赋予该接口的项目唯一标识符,(若适用)并用名字、编号、版本和文档引用等标识接口实体(系统、配置项、用户等)。
该标识应说明哪些实体具有固定的接口特性(因而要对这些接口实体强加接口需求),哪些实体正被开发或修改(从而已将接口需求施加于它们)。
《操作系统》实验指导书德州学院计算机系实验一理解和认识操作系统的三种接口1.目的和要求MS-DOS和Windows是市场上普及率很高的操作系统,本实验的目的是让读者从操作系统理论的观点加深对现代操作操作系统的接口设计的理解。
2.实验内容①熟悉DOS的基本命令,包括md,cd,copy,move,del,deltree,type 等的使用a、当前目录下建立子目录MYTEMP和MYTEMP2,将当前目录设定为MYTEMP;b、在当前目录下创建新文件B.BAT,其内容为:清除屏幕内容,显示当前DOS版本;c、使用type命令显示B.BAT的内容,检查正确后,执行它;d、拷贝B.BAT到路径MYTEMP中;e、删除MYTEMP2中的文件B.BAT,删除目录MYTEMP2;f、使用deltree命令删除MYTEMP②理解WINDOWS下的编程接口原理,了解WINAPI,利用WINAPI实现WINDOWS 下的打印。
a、登录进入Windowsb、在“开始”菜单中单击“程序”-“Microsoft Visual Studio 6.0”-“MicrosoftVisual C++ 6.0”命令,进入Visual C++ 窗口。
c、在File菜单单击New Workspace...命令,创建PrintApp.dsw项目文件。
d、在File菜单单击New C++ Soure file命令,创建新的原文件。
e、输入如实验运行结果中所示的源代码,调试、编译并运行。
f、观察执行结果,理解各个函数的功能。
3.实验环境Windows操作系统和Visual C++6.0专业版或企业版实验二复习用C语言编制程序一、实验内容选择一个计算机系统,熟悉该系统的操作命令,且掌握该计算机系统的使用方法。
二、实验目的配合操作系统课程的学习,模拟实现操作系统的功能,有助于对操作系统的理解。
操作系统功能的模拟实现可以在计算机系统的终端上进行,也可以在一台微型计算机上进行。
课程设计说明书设计名称:计算机操作系统课程设计题目:操作系统命令接口设计学生姓名:张协鎏专业:计算机科学与技术班级:13计算机科学与技术2班学号:2013314209指导教师:任朝晖、曾凡智、黄营、周燕日期:2015年9 月20 日计算机科学与技术专业2013 年级 2 班张协鎏一、设计题目操作系统命令接口设计二、目的和要求(1)本设计的目的是通过设计一些简单的操作系统的命令接口,使学生掌握操作系统接口的设计方法。
(2)要求学生在熟悉操作系统的命令接口及程序接口的基础上,利用C语言设计简单的命令接口。
命令接口基于DOS的命令行接口。
三、设计内容利用C语言、DOS中断中21H与屏幕显示相关的中断调用完成设计,具体包括:1.命令解释器2.列目录命令3.显示时间命令4.显示日期命令5.回显字符串命令6.创建目录命令7.删除目录命令8.更改路径命令9.显示当前工作目录命令10.删除文件命令11.打印文本命令12.文件重新命名13.显示文本命令14.显示版本命令15.显示目录结构命令16.清除当前显示内容命令上述内容中,所有命令通过命令解释器能够执行,即启动命令解释器以后,输入相应命令,按照输入指令执行相应功能,并在屏幕上显示相应结果。
四、进度安排依照教学计划,课程设计时间为:2周。
1.要求讲解、资料查找、系统分析,概要设计(2天)2.系统详细设计、功能设计(2天)3.算法实现、编程调试(5天)4.功能演示、资料整理、课程设计说明书编写。
(1天)五、完成后应上交的资料课程设计的总结报告,主要包括以下内容:1.课程设计的题目、系统的总功能和各子模块的功能;2.源程序代码;3.课程设计中遇到的主要问题和解决方法;4.设计中存在的不足及改进的设想;5.本次课程设计的感想和心得体会。
六、总评成绩指导教师签名日期年月日系主任审核日期年月日操作系统命令接口设计一、概念原理中断:指当出现需要时,CPU暂时停止当前程序的执行转而执行处理新情况的程序和执行过程。
即在程序运行过程中,系统出现了一个必须由CPU立即处理的情况,此时,CPU 暂时中止程序的执行转而处理这个新的情况的过程就叫做中断。
中断是一种发生了一个外部的事件时调用相应的处理程序的过程,通常,程序中断是由外部设备通过CPU的中断请求线向CPU提出的。
在一定条件下,CPU响应中断后,暂停源程序的执行,转至为外设服务的中断处理程序。
中断处理程序可以按照所要完成的任务编写与过程类似的程序段。
在程序段最后执行一条中断返回指令返回主程序,继续按原顺序执行。
操作系统命令接口:通过在用户和操作系统之间提供高级通信来控制程序运行,用户通过输入设备发出一系列命令告诉操作系统执行所需功能,它包括了键盘操作命令和作业控制命令,称为作业一级的用户接口。
命令接口的两种最普遍和主要的方式是直接命令方式(命令行)和间接命令方式(命令文件)。
二、程序设计实现过程程序通过选择开关switch...case将用dos,bios调用编写的函数组合起来供用户做出选择。
在对应处理用户的选择编写的函数中,主要的核心是dos功能中断调用函数的编写,其中包括中断类型号,中断功能调用号等的设置,以及响应用户选择后中断服务程序的编写。
1、程序主要函数void menu():用户功能选择菜单;void time():显示时间功能,输出当前电脑设置时间,能精确到毫秒;void day():显示日期功能,输出当前电脑设置日期,输出格式为2015.9.20,week:0;void dos():显示电脑DOS版本号功能,输出DOS版本号,格式为5.0.16.0.0;void DeleteFile(char filename[80]):删除文件功能,调用DOS中断21H的41H的删除文件命令;void Createfile(char filename[80]):创建目录功能,调用DOS中断21H的39H的创建目录命令;void Deletefile(char filename[80]):删除目录功能,调用DOS中断21H的3AH的删除目录命令;void file(char filename1[80],char filename2[80]):文件重新命名功能,调用DOS中断21H的56H的文件改名命名命令;void showlist():显示当前工作目录功能,调用DOS中断21H的47H的显示当前工作目录命令;void rewords():键盘输入字符并回显字符功能,调用DOS中断21H的09回显字符串的命令;clrscr():清除当前显示内容功能。
2、程序调试运行结果分析开始运行功能选择界面输入功能号1显示当前系统时间,输入功能号2输出当前系统日期,输入功能号3输出当前系统DOS版本,输入功能号5创建目录,工作目录成功创建文件夹FILE输入功能号7文件改名,改名为NEWFILE,工作目录成功改名NEWFILE,输入功能号6删除NEWFILE文件夹成功,运行调试结果满足实验要求,退出程序,完成设计内容。
三、程序设计总结体会通过连续两个星期的上机编程,我体会了从事C语言课程设计工作需要特别谨慎认真地态度和作风,一点都不能马虎。
每个细微的细节都必须十分注意,如果不认真思考,就会出现或大或小的错误。
如果把早期的错误隐藏下来,对后面的工作影响就会很大,甚至有时会推倒很多前面做的工作。
有时候,我自己觉得我写的程序非常正确,但是就是编译通不过,在查找错误的过程中,面临着否认自己的过程,非常的痛苦,而且由于自己的经验及各方面的能力的不足,所以进展的速度非常的缓慢,往往几天的时间没有一点进展。
这时候,我一般是先自己通过书本,手册和资料找解决办法,实在没辙才向老师同学请教。
在开始编写程序的时候,我还不清楚DOS中断的知识,刚开始就在上网百度学习有关程序接口和中断调用相关知识,慢慢的开始知道怎么去调用DOS21H的功能号。
回顾此次课程设计,至今我仍然很多感想,的确,自从拿到题目到完成整个编程,从理论到实践,这些日子里,可以学到很多很多的东西,同时不仅可以巩固以前所学的知识,而且学到了很多在书本上所没学到的知识,通过在这次课程设计使我懂得了理论知识与实践动手能力组合是很重要的,只有理论知识是远远不够的,只有把所学的理论知识与实践相结合起来,从理论中得出结论,才能真正为社会服务,从而提高自己的实际动手能力和独立思考的能力。
通过一段时间的课程设计,我明白了程序一定要要亲手做过,不管它是否有结果。
你要学的是知识,是解决问题的方法和思想,要端正学习态度,一时的成败不足以论英雄,每一次突破都是一种收获,就是在这样的过程中我们才能不断提高。
在从开始接到课程设计,再到报告的完成,每走一步都渗透着努力和汗水。
在收获知识的同时收获快乐。
对给过我帮助的所有同学和各位指导老师再次表示衷心的感谢!四、源代码<在Turbo C 3.0环境>#include<stdio.h>#include<conio.h>#include<stdlib.h>#include<dos.h>#include<bios.h>#define INTER 0x21void menu(){printf("0.Exit\n1.Display currrent time\n2.Display currrent day\n");printf("3.Display currrent Mos-dos\n4.Deletefile\n5.Createcontents\n");printf("6.Deletecontents\n7.Filename\n8.Display currrent list\n");printf("9.Echo string\n10.ReadingFile\n11.Clear screen\n");}void time(){union REGS inregs,outregs;//定义中断信息结构体struct SREGS segregs;inregs.h.ah=0x2C;int86x(INTER,&inregs,&outregs,&segregs);printf("Now the time is:%d:%d,%d:%d\n",outregs.h.ch,outregs.h.cl,outregs.h.dh,outregs.h.dl);getchar();}void day(){union REGS inregs,outregs;//定义中断信息结构体struct SREGS segregs;inregs.h.ah=0x2a;int86x(INTER,&inregs,&outregs,&segregs);printf("Now the day is:%d,%d,%d,Week:%d\n",outregs.x.cx,outregs.h.dh,outregs.h.dl,outregs.h.al);getchar();}void dos(){union REGS inregs,outregs;//定义中断信息结构体struct SREGS segregs;inregs.h.ah=0x30;int86x(INTER,&inregs,&outregs,&segregs);printf("The DOS version of this machine is:%d,%d,%d,%d:%d\n",outregs.h.al,outregs.h.ah,outregs.h.bh,outregs.h.ah,outregs.x.cx);getchar();}void DeleteFile(char filename[80]){union REGS inregs,outregs;struct SREGS segregs;inregs.h.ah=0x41;//DOS中断号41是删除文件inregs.x.dx=FP_OFF(filename);segregs.ds=FP_SEG(filename);int86x(INTER,&inregs,&outregs,&segregs);if(02==outregs.x.ax)//02表示文件未找到{printf("\nFILE %s is not exist!\n",filename);}printf("\nThe File: %s has been delete successfully\n",filename);}void Createfile(char filename[80]){union REGS inregs,outregs;struct SREGS segregs;inregs.h.ah=0x39;inregs.x.dx=FP_OFF(filename);segregs.ds=FP_SEG(filename);int86x(INTER,&inregs,&outregs,&segregs);if(02==outregs.x.ax)//02表示文件为找到{printf("\nFILE %s is not exist!\n",filename);}printf("success!\n");}void Deletefile(char filename[80]){union REGS inregs,outregs;struct SREGS segregs;inregs.h.ah=0x3A;inregs.x.dx=FP_OFF(filename);segregs.ds=FP_SEG(filename);int86x(INTER,&inregs,&outregs,&segregs);if(02==outregs.x.ax)//02表示文件为找到{printf("\nFILE %s is not exist!\n",filename);}printf("success!\n");}void file(char filename1[80],char filename2[80]){union REGS inregs,outregs;struct SREGS segregs;inregs.h.ah=0x56;//DOS中断号56是重命名文件inregs.x.dx=FP_OFF(filename1);segregs.ds=FP_SEG(filename1);inregs.x.di=FP_OFF(filename2);segregs.es=FP_SEG(filename2);int86x(INTER,&inregs,&outregs,&segregs);if(outregs.x.ax==02){printf("\nFILE %s is not exist!\n",filename1);}printf("success!\n");}void showlist(){char list[80];union REGS reg;struct SREGS segreg;reg.h.ah = 0x47;reg.h.dl = 0;reg.x.si = FP_OFF(list);segreg.ds = FP_SEG(list);intdosx(®, ®, &segreg);printf("The current working directory is:%s\n", list); }void rewords(){union REGS reg,reg1;struct SREGS sreg;char word[200];for(int i=0;i<200;i++)word[i]='$';scanf("%s",&word);reg1.x.dx = FP_OFF(word);sreg.ds = FP_SEG(word);reg1.h.ah=0x09;int86x(INTER,®1,®1,&sreg);printf("\n");}void ReadFromFile(char filename[80]){union REGS inregs,outregs;struct SREGS segregs;int result;char ReadContents[20];inregs.h.ah=0x3D;inregs.x.dx=FP_OFF(filename);segregs.ds=FP_SEG(filename);inregs.h.al=2;intdosx(&inregs,&outregs,&segregs);result = outregs.x.ax;if(2==result){printf("\nCan not read contents from file: %s ! The file may not exist\n",filename);}{inregs.x.bx=result;inregs.h.ah=0x3F;inregs.x.dx=FP_OFF(ReadContents);segregs.ds=FP_SEG(ReadContents);inregs.x.cx=20;intdosx(&inregs,&outregs,&segregs);printf("%s file byte number: %d\n",filename,outregs.x.ax);printf("%s contents is:",filename);for(int i=0;i<outregs.x.ax;i++){printf("%c",ReadContents[i]);}printf("\n");}}int main(){char DeleteFileName[80];char ReadingFileName[80];char file1[80],file2[80];do{menu();scanf("%d",&a);switch(a){case 1:time();break;case 2:day();break;case 3:dos();break;case 4:printf("\nInput the name of existing file to delete: ");scanf("%s",&DeleteFileName);DeleteFile(DeleteFileName);break;case 5:printf("\nInput createfile: ");scanf("%s",&DeleteFileName);Createfile(DeleteFileName);break;case 6:printf("\nInput deletefile: ");scanf("%s",&DeleteFileName);Deletefile(DeleteFileName);break;case 7:printf("name:");scanf("%s",&file1);printf("new name:");scanf("%s",&file2);file(file1,file2);break;case 8:showlist();break;case 9:rewords();break;case 10:printf("\nInput the name of existing file to ReadingFileName: ");scanf("%s",&DeleteFileName);ReadFromFile(ReadingFileName);break;case 11:clrscr();break;default:break;}}while(a!=0);return 0;}。