当前位置:文档之家› 第5章 数据输入输出

第5章 数据输入输出

第5章  数据输入输出
第5章  数据输入输出

第五章数据输入输出

计算机通过输入操作接收数据,然后对数据进行处理,并将处理完的数据以完整有效的方式提供给用户,即输出。Visual Basic的输入输出有着十分丰富的内容和形式,它提供了多种手段,并可通过各种控件实现输入输出操作,使输入输出灵活、多样、方便、形象直观。本章将主要介绍窗体的输人输出操作。

5.1 数据输出——Print方法

在Visual Basic中,可以用Print方法在窗体、图片框、立即窗口中及打印机上输出文本数据或表达式的值。

5.1.1 Print方法

Print方法的一般格式为:

[对象名称.]Print[表达式表][,|;]

说明:

(1)“对象名称”可以是窗体(Form)、图片框(PictureBox)或打印机(Printer),也可以是立即窗口(Debug)。如果省略“对象名称”,则在当前窗体上输出。例如:

Picture1.Print“Microsoft Visual Basic”

把字符串“Microsoft Visual Basic”在图片框Picture1上显示出来。再如:Print “M icrosoft Vis ual Basic”

省略对象名称,直接把字符串“Microsoft Visual Basic”输出到当前窗体。在Printer.Print “Microsoft Visual Basic”

中,对象名称为Printer(打印机),将把字符串“Microsoft Visual Basic”输出到打印机上。而

Debug.Print “Microsoft Visual Basic”

则在立即窗口中输出字符串“Microsoft Visual Basic”。

(2)“表达式表”是一个或多个表达式,可以是数值表达式或字符串表达式。对于数值表达式,打印出表达式的值;而字符串则照原样输出。如果省略“表达式表时,则输出一个空行。例如:

a=100:b=200

Print a '打印变量a的值

Print '输出一个空行

Print “ABCDEFG” '字符串必须放在双引号内

输出结果为:

100

ABCDEFG

(3)当输出多个表达式或字符串时,各表达式用分隔符(逗号、分号或空格)隔开。如果输出的各表达式之间用逗号分隔,则按标准输出格式(分区输出格式)显示数据项。在这种情况下,以14个字符位置为单位把一个输出行分为若干个

区段,逗号后面的表达式在下一个区段输出。如果各输出项之间用分号或空格作分隔符,则按紧凑输出格式输出数据。侧如:

x=5:y=10:z=15

Print X,y,z,“ABCDEF”

Print

Print X,Y,Z;“ABCDEF”;“GHIJK”

输出结果为;

5 10 15 ABCDEF

5 10 15 ABCDEFGHIJK

当输出数值数据时,数值的前面有一个符号位,后面有一个空格,而字符串前后都没有空格。

(4)Print方法具有计算和输出双重功能,对于表达式,它先计算后输出。例如:

X=5:Y=10

Print(x+y)/3

该例中的Print方法先计算表达式(X+y)/3的值,然后输出。但是应注意,Print 没有赋值功能,侧如:

Print z=(x+y)/3

不能输出z=5。实际上,由于z=(x+Y)/3是一个关系式,上面的语句将输出一个逻辑值。

(5)在一般情况下,每执行一次Print方法要自动换行,也就是说,后面执行Print时将在新的一行上显示信息。为了仍在同一行上显示,可以在末尾加上一个分号或逗号。当使用分号时,下一个Print输出的内容将紧跟在当前Print 所输出的信息的后面;如果使用逗号,则在同一行上跳到下一个显示区段显示下一个Print所输出的信息。例如:

Ptint“30+50=”,

Print 30+50

Print“80+100=”;

Print 80+100

输出结果为:

30+50= 80

80+100= 180

5.1.2 与Print方法有关的函数和方法

为了使信息按指定的格式输出,Visual Basic提供了几个与Print配合使用的函数,包括Tab、Spc、Space$和Fomart$,这些函数可以与Print方法配合使用。

1.Tab函数

该函数格式如下:

Tab[(n)]

Tab函数把光标移到由参数n指定的位置,从这个位置开始输出信息。要输出的内容放在Tab函数的后面,并用分号隔开。例如:

Print Tab(25);800

将在第25个位置输出数值800。

说明:

(1)参数n为数值表达式,其值为一整数,它是下一个输出位置的列号,表示在输出前把光标(或打印头)移到该列。通常最左边的列号为1,如果当前的显示位置已经超过n,则自动下移一行。

(2)在Visual Basic中,对参数n的取值范围没有具体限制。当n比行宽大时,显示位置为n Mod行宽;如果n<1,则把输出位置移到第一列。

(3)当在一个Print方法中有多个Tab函数时,每个Tab函数对应一个输出项,各输出项之间用分号隔开。

(4)Tab函数中的参数可以省略,在这种情况下,Tab与逗号的作用相同。例如:

Print l00{Tab;200;Tab;300

它与下列语句的输出结果相同:

Print 100,200,300

【例5.1】设有如表5.1所示的人员名册。

编程序显示上面的表格(不显示横线)。编写如下的事件过程:

Private Sub Form_Click()

Print:Print

FontName=“魏碑”’字体类型为“魏碑”

FontSize=16 ’字体大小为16

Print“姓名”;Tab(8);“年龄”;Tab(16);“职务”;

Print Tab(24);“单位”;Tab(32);“籍贯”

Print

Print“张得功”;Tab(8);25;Tab(16);“科长”;Tab(24);_

“劳动科”;Tab(32);“北京”

Print“李得胜”;Tab(8);32;Tab(16);“处长”;Tab(24);_

“科研处”;Tab(32);“上海”

End Sub

程序运行后,单击窗体内的任一位置,输出结果如图5.1所示。

在上面的例子中,使用的是窗体的单击事件过程,即Form_Click。为了编写该事件过程,可启动Visual Basic,进入代码窗口,在“对象”框中选择“Form”,在“过程”框中选择“Click”,将出现如下的代码:

Private Sub Form_Click()

End Sub

此时即可在上面两行之间输入程序。在以后的例子中,一般都用类似的操作输入程序代码。

2.Spc函数

该函数格式如下:

Spc(n)

在Print的输出中,用Spc函数可以跳过n个空格。

说明:

(1)参数n是一个数值表达式,其取值范围为0~32767的整数。spc函数与输出项之间用分号隔开。例如:

Print“ABC”;Spc(8);“DEF”

将首先输出“ABC”,然后跳过8个空格,显示“DEF”。

(2)如果n大于输出行的宽度,则Spc用下列公式计算下一个打印位置:

当前打印位置+(n Mod宽度)

例如,如果当前输出位置为24,而输出行的宽度为80,则Spc(90)的下一个打印位置将从34开始(当前打印位置+90 Mod 80)。如果当前打印位置和输出行宽度之间的差小于n(或n Mod宽度),则Spc函数会跳到下一行的开头,并产生n-(宽度-当前打印位置)个空格。

(3)Spc函数和Tab 函数作用类似,而且可以互相代替。但应注意,Tab函数需要从对象的左端开始计数,而Spc函数只表示两个输出项之间的间隔。

3.Space$函数

该函数格式如下:

Space$(n)

Space$函数返回n个空格。例如(在“立即”窗口中试验):

a$="a"+ Space(4)+"b"

print a$

a b

4.Cls方法

该方法格式如下:

[对象.]Cls

Cls清除由Print方法显示的文本或在图片框中显示的图形,并把光标移到对象的左上角(0,0)。这里的“对象”可以是窗体或图片框,如果省略“对象”则清除当前窗体内的显示内容。例如:

Picture1.Cls ‘清除图片框Picture1内的图形或文本

Cls ‘清除当前窗体内显示的内容

注意,当窗体或图片框的背景是用Picture属性装入的图形时,不能用Cls 方法清除,只能通过LoadPicture方法清除(见第6章)。

5.Move方法

Move方法与Print方法没有直接关系,通常用来移动窗体或控件,并可改变其大小。

该方法格式如下:

[对象.]Move左边距离[,上边距离[,宽度[,高度]]]

Move方法用来移动窗体和控件,并可改变其大小。其中“对象”可以是窗体及除计时器(Timer)、菜单(Menu)之外的所有控件,如果省略“对象”,则表示要移动的是窗体。“左边距离”、“上边距离’’及“宽度”、“高度”均以twip为单位。如果“对象”是窗体,则“左边距离”和“上边距离”均以屏幕左边界和上边界为准;如果“对象”是控件,则以窗体的左边界和上边界为准,如图5.2所示。

【例5.2】在窗体的任意位置画一个文本框和一个图片框(大小任意)。编写程序移动它们的位置并改变其大小。

设计完成后的窗体如图5.3所示。

编写如下事件过程:

Private Sub Form_Click()

Move 800,800,3990,2600

Text1.Move 200,200,1500,1000

Picture1.Move 1800,200,1500,1000

Picturel.Print“Picture1”

End Sub

上述事件过程重新设置窗体、文本框和图片框的位置及大小。首先把窗体移到屏幕的(800,800)处,并把其大小设

置为3990(宽度)和2600(高度),接着把

文本框和图片框分别移到窗体的(200,

200)和(1800,200),把大小均设置为宽

1500、高1000,最后在图片框中打印

“Picture1”。程序运行后,单击窗体,

结果如图5.4所示。

5.1.3 格式输出

用格式输出函数Format$可以使数值或日期按指定的格式输出。一般格式为:

Format$(数值表达式,格式字符串)

该函数的功能是:按“格式字符串”指定的格式输出“数值表达式”的值。如果省略“格式字符串”,则Format$函数的功能与Str$函数基本相同,唯一的差别是,当把正数转换成字符串时,Str$函数在字符串前面留有一个空格,而Format$函数则不留空格。

用Format$函数可以使数值按“格式字符串”指定的格式输出,包括在输出字符串前加$、字符串前或后补充0及加千位分隔逗点等。“格式字符串”是一个字符串常量或变量,它由专门的格式说明字符(见表5.2)组成,由这些字符决定数据项的显示格式,并指定显示区段的长度。当格式字符串为常量时,必须放在双引号中。

(1)# 表示一个数字位。#的个数决定了显示区段的长度。如果要显示的数值的位数小于格式字符串指定的区段长度,则该数值靠区段的左端显示,多余的位不补0。如果要显示的数值的位数大于指定的区段长度,则数值照原样显示。

(2)0 与#功能相同,只是多余的位以0补齐。例如(在“立即”窗口中试验,下同):

Print format$(25634,“00000000”)

00025634

Print format$(25634,“########”)

25634

Print format$(25634,“###”)

25634

(3). 显示小数点。小数点与#或0结合使用,可以放在显示区段的任何位置。根据格式字符串的位置,小数部分多余的数字按四舍五入处理。例如:

Print format$(850.72,“###.##”)

850.72

Print Format$(7.876,“000.00”)

007.88

(4),逗号。在格式字符串中插入逗号,起到“分位”的作用,即从小数点左边一位开始,每3位用一个逗号分开。逗号可以放在小数点左边的任何位置(不要放在头部,也不要紧靠小数点),例如;

Print Format$(12345.67,“####,#.##”) ‘正确

12,345.67

Print Format(12345.67,“#,####.##”) ‘正确

12,345.67

Print Format(12345.67,“,#####.##”) ‘错误

,12345.67

Print Format(12345.67,"#####,.##”) ‘错误

12.35

从上面的例子可以看出,逗号可以放在格式字符中小数点左边除头部和尾部的任何位置。如果放在头部或尾部,则不能得到正确的结果。

(5)% 百分号。通常放在格式字符串的尾部,用来输出百分号。例如:

Print Format(.257,“00.0%”)

25.7%

(6)$ 美元符号。通常作为格式字符串的起始字符,在所显示的数值前加上一个“$”。例如:

Print Format(348.2,"$###0.00")

$ 348.20

(7)+ 正号。使显示的正数带上符号,“+”通常放在格式字符串的头部。

(8)- 负号。用来显示负数。例如:

Print Format(348.52,"-###0.00")

-348.52

Print Format(348.52,"+###0.00")

+348.52

Print Format(-348.52,"-###0.00")

--348.52

Print Format(-348.52,"+###0.00")

- +348.52

从上面的例子可以看出,“+”和“-”在所要显示的数值前面强加上一个正号或负号。

(9)E+(E-) 用指数形式显示数值。两者作用基本相同。例如:

Print Format$(3485.52,"0.00E+00")

3.49E+03

Print Format$(3485.52,"0.00E-00")

3.49E03

Print Format$(0.0348552,"0.00E+00")

3.49E-02

Print Format$(0.0348552,"0.00E-00")

3.49E-02

【例5.3】编写程序,试验数值的格式化输出。

Sub Form_Click()

Print Format(12345.6,"000,000.000")

Print Format(12345.678,"###,###.##")

Print Format(12345.6,"###,##0.00")

Print Format(12345.6,"$###,#0.00")

Print Format(12345.6,"-###,##0.00")

Print Format(.l23,"0.00%")

P1tint Format(12345.6,"0.00E+00")

Print Format(.1234567,"0.00E-00")

End,Sub

上述过程运行后,单击窗体,输出结果如图5.5所示。

5.2 数据输入——InputBox函数

在Windows环境下,简单信息的输入输出通过对话框来实现。Visual Basic 提供了两种预定义的对话框,即输入对话框和信息对话框,分别通过InputBox 函数和MsgBox函数来实现。本节将介绍InputBox函数,5.3.1节将介绍MsgBox 函数。

InputBox函数可以产生一个对话框,称为输入对话框,这个对话框作为输入数据的界面,等待用户输人数据,并返回所输入的内容。其格式为:

InputBox(prompt[,title][,default][,xpos,ypos]

该函数有5个参数,其含义如下:

(1)prompt 字符串,其长度不得超过1024个字符,它是在对话框内显示的信息,用来提示用户输人。在对话框内显示prompt时,可以自动换行。如果想按自己的要求换行,则须插人回车换行操作,即:

Chr$(13)+Chr$(10)

vbCrLf

例如:

cl$=chr$(13)+Chr$(10)

msg1="Enter your Name:"

msg2="Press Enter or Click Ok"

msg3="after key-in”

msg=msg1+cl$+msg2+cl$+msg3

如果用上面的msg作为提示信息的字符串,则运行后对话框内显示:

Enter your Name:

Press Enter or Click Ok

after key-in

(2)title 字符串,它是对话框的标题,显示在对话框顶部的标题区。

(3)default 字符串,用来显示输入缓冲区的默认信息。也就是说,在执行lnputBox函数后,如果用户没有输入任何信息,则可用此默认字符串作为输入值。如果用户不想用这个默认字符串作为输入值,则可在输入区直接输入数据,

以取代默认值。如果省略该参数,则对话框的输入区为空白,等待用户输入信息。

(4)xpos,ypos 整数值,分别用来确定对话框与屏幕左边界的距离(xpos)和上边界的距离(ypos),其单位为twip。这两个参数必须全部给出,或者全部省略。如果省略这一对位置参数,则对话框显示在屏幕中心线向下约三分之一处。

在由InputBox函数所显示的对话框中,各参数的作用如图5.6所示。

【例5.4】编写程序,试验InputBox函数的功能。

Private Sub Form_Click()

cl$=Chr(13)+Chr(10)

msg1="输入顾客名字:"

msg2="输入后按回车键"

msg3="或单击“确定”按钮"

msg=msg1+cl$+msg2+cl$+msg3

custname=InputBox(msg,"InputBox Function demo","王大力")

Print custname

End sub

上述过程用来建立一个输入对话框,并把InputBox函数返回的字符串赋给变量custname,然后在窗体上显示该字符串。程序运行后,单击窗体,所显示的对话框如图5.7所示。

在上面的过程中,InputBox函数使用了3个参数。第一个参数msg用来显示3行信息,通过cl$变量换行。第二个参数“InputBox Function demo”用来显示对话框的标题。第三个参数“王大力”是默认输入值,在输入区显示出来。在函数中省略了确定对话框位置的参数xpos、ypos。

在使用InputBox函数时,应注意以下几点:

(1)执行InputBox函数后,产生一个对话框,提示用户输入数据,光标位于对话框底部的输入区中。如果第三个参数(default)不省略,则在输入区中显示该参数的值,此时如果按回车键或单击对话框的“确定”按钮,则输入该默认值,

并可把它赋给一个变量;如果不想输入默认值,则可直接输入所需要的数据,然后按回车键或单击“确定”按钮输入。

(2)在默认情况下,InputBox的返回值是一个字符串(不是变体类型)。也就是说,如果没有事先声明返回值变量的类型(或声明为变体类型),则当把该函数的返回值赋给这个变量时,Visual Basic总是把它作为字符串来处理。因此,当需要用InputBox函数输入数值,并且需要输入的数值参加运算时,必须在进行运算前用Val函数(或其他转换函数)把它转换为相应类型的数值,否则有可能会得到不正确的结果。为了保证结果正确,最好显式定义返回值的变量类型,并进行类型转换。

(3)在执行lnputBox函数所产生的对话框中,有两个按钮,一个是“确定”,另一个是“取消”。在输入区输入数据后,单击“确定”按钮(或按回车键)表示确认,并返回在输入区中输入的数据;而如果单击“取消”按钮(或按Esc键),则使当前的输入作废,在这种情况下,将返回一个空字符串。根据这一特性,可以判断是否输入了数据。

(4)每执行一次InputBox函数只能输入一个值,如果需要输入多个值,则必须多次调用InputBox函数。输入数据并按回车键或单击“确定”后,对话框消失,输入的数据必须作为函数的返回值赋给一个变量,否则输入的数据不能保留。在实际应用中。函数lnputBox通常与循环语句、数组结合使用,这样可以连续输入多个值,并把输入的数据赋给数组中各元素。

(5)和其他返回字符串的函数一样,InputBox函数也可以写成InputBox$的形式,这两种形式完全等价。

【例5.5】编写程序,用IputBox函数输入数据。

Private Sub Form_Click()

msg1="请输入姓名:"

msgtitle="学生情况登记"

msg2="请输入年龄:"

msg3="请输入性别:"

msg="请输入籍贯"

studname=InputBox(msg1,msgtitle)

studage=InputBox(msg2,msgtitle)

studsex=InputBox(mag3,msgtitle)

studhome=InputBox(msg4,msgtitle)

Cls

Print studname;",";studsex;",现年";

Print studage;"岁";",";studhome;"人"

End Sub

程序运行后,单击窗体,首先显示如图5.8所示的对话框。在输入区输入“辛向荣”,按回车键或单击“确定”按钮后,显示输入年龄的对话框,输入28;用同样的方法在另外两个对话框中分别输入性别和籍贯。假定输入的是“男”和“北京市",则在窗体上输出;

辛向荣,男,现年28岁,北京市人

5.3 MsgBox函数和MsgBox语句

在使用Windows时,如果操作有误,屏幕上会显示一个对话框,让用户进行选择,然后根据选择确定其后的操作。MsgBox函数的功能与此类似,它可以向用户传送信息,并可通过用户在对话框上的选择接收用户所做的响应,作为程序继续执行的依据。

5.3.1 MsgBox函数

MsgBox函数的格式如下:

MsgBox(msg[,type][,title])

该函数有3个参数,除第一个参数外,其余参数都是可选的。各参数的含义如下:

(1)msg 字符串,其长度不能超过1024个字符,如果超过,则多余的字符被截掉。该字符串的内容将在由MsgBox函数产生的对话框内显示。当字符串在一行内显示不完时,将自动换行,当然也可以用Chr$(13)+Chr$(10)或系统常量vbCrLf强制换行。

(2)type 整数值或系统常量,用来控制在对话框内显示的按钮、图标的种类及数量。该参数的值由四类数值相加产生,这四类数值或符号常量分别表示按钮的类型、显示图标的种类、活动按钮的位置及强制返回,见表5.3。

上述表中的数值分为4类,其作用分别为:

①数值0~5 对话框内按钮的类型和数量。按钮共有7种:确认、取消、终止、重试、忽略、是、否。每个数值表示一种组合方式。

②数值16~64 指定对话框所显示的图标。共有4种,其中16指定暂停,32表示疑问(?),48通常用于警告(!),64用于忽略(i)。

③数值0,256,512,768 指定默认活动按钮。活动按钮中文字的周围有虚线,按回车键可执行该按钮的操作。

④数值0,4096 分别用于应用程序和系统强制返回。

type参数由上面4类数值组成,其组成原则是,从每一类中选择一个值,把这几个值加在一起就是type参数的值(在大多数应用程序中,通常只使用前3类数值)。不同的组合会得到不同的结果。例如:

* 16=0+16+0 显示“确定”按钮、“暂停”图标,默认按钮为“确定”。 * 35=3+32+0 显示“是”、“否”、“取消”3个按钮(3),“?”图标(32),默认活动按钮为“是”(0)。

* 50=2+48+0 显示“终止”、“重试”、“忽略”3个按钮(2),“!”图标(48),默认活动按钮为“终止”(0)。

每种数值都有相应的系统常量,其作用与数值相同,用系统常量可以提高程序的可读性。如果使用系统常量,则须用Or连接各个常量。

上面4类数值是type参数较为常用的数值。除这4类数值外,type参数还可以取其他几种值,这些数值是不常用的,其常量和值见表5.4。

(3)title 是一个字符串,用来显示对话框的标题。

MsgBox函数的3个参数中,只有第一个参数msg是必需的,其他参数均可省略。如果省略第二个参数type(默认值为0),则对话框内只显示一个“确定”按钮,并把该按钮设置为活动按钮,不显示任何图标。如果省略第三个参数title,则对话框的标题为当前工程的名称。如果希望标题栏中没有任何内容,则应把title参数置为空字符串。

MsgBox函数的返回值是一个整数,这个整数与所选择的按钮有关。如前所述,MsgBox函数所显示的对话框有7种按钮,返回值与这7种按钮相对应,分别为1到7的整数,见表5.5。

【例5.6】编写程序,试验MsgBox函数的功能。

Private Sub Form_Click()

msgl="要继续吗?"

msg2="Operation Dialog Box"

r=MsgBox(msg1,34,msg2)

Print r

End sub

程序运行后,单击窗体,结果如图5.9所示。

在上面的程序中,MsgBox函数的第一个参数是显示在对话框内的信息,第三个参数是对话框的标题。第二个参数为34,是由2+32+0=34得来的,它决定了对话框内显示终止(Abort)、重试(Retry)、忽略(Ignore)3个按钮(第一类中的2),显示“?”图标(第二类中的32),并把第一个按钮作为默认活动按钮(第三类中的0)。

执行,MsgBox函数后的返回值赋给变量r,最后一个语句打印出这个返回值(在窗体上显示出来)。如果按回车键或单击终止(Abort)按钮,则打印出的返回值为3;如果单击重试(Retry)或忽略(Ignore)按钮,则返回值分别为4或5。

说明:

(1)MsgBox函数第二个参数的第三类数值用来确定默认活动按钮。当某个按钮为活动按钮时,其内部的文字周围有一个虚线框(见图5.9)。如果按回车键,则选择的是活动按钮,与单击该按钮作用相同。用Tab键可以把其他按钮变为活动按钮,每按一次Tab键,变换一个活动按钮。此外,不管是否活动按钮,用鼠标(单击)都可以选择该按钮。

(2)用MsgBox函数显示的提示信息最多不超过1024个字符,所显示的信息自动换行,并能自动调整信息框的大小。如果由于格式要求需要换行,则必须增加回车换行代码。

(3)在应用程序中,MsgBox的返回值通常用来作为继续执行程序的依据,根据该返回值决定其后的操作。请看下面的例子。

【例5.7】编写程序,用MsgBox函数判断是否继续执行。

Private Sub Form_Click()

msg="请确认此数据是否正确"

title="数据检查对话框"

X=MsgBox(msg,19,title)

If X = 6 Then

Print x*x

ElseIf x=7 Then

Print"请重新输入"

End If

End sub

上述事件过程首先产生一个对话框,如图5.10所示。对话框中有3个按钮,即“是”(Yes)、“否”(No)和“取消”(Cancel)。

如果选择“是”,则返回值为6,在窗体上打印出

6的平方;如果选择“否”,则返回值为7,在窗

体上打印“请重新输入”。

程序在判断返回值时使用了条件语句,第7

章将介绍条件语句。

5.3.2 MsgBox语句

MsgBox函数也可以写成语句形式,即:

MsgBox Msg[,type%][,title]

各参数的含义及作用与MsgBox函数相同,由于MsgBox语句没有返回值,因而常用于较简单的信息显示。例如:

MsgBox "工程保存成功"

执行上面的语句,显示的信息框如图5.11所示。

由MsgBox函数或MsgBox语句所显示的信息框有一个共

同的特点,就是在出现信息框后,必须作出选择,即单击框

中的某个接钮或按回车键,否则不能执行其他任何操作。在

VisuaI Basic中,把这样的窗口(对话框)称为“模态窗口”

(Modal Window),这种窗口在Windows中普遍使用。

在程序运行时,模态窗口挂起应用程序中其他窗口的操作。一般来说,当屏幕上出现一个窗口(或对话框)时,如果需要在响应该窗口中的提示后才能进行其后的操作,则应使用模态窗口。

与模态窗口相反,非模态窗口(Modaless Window)允许对屏幕上的其他窗口进行操作,也就是说,可以激活其他窗口,并把光标移到该窗口。MsgBox函数和MsgBox语句强制所显示的信息框为模态窗口。在多窗体程序中,可以把某个窗体设置为模态窗口。

5.4 字形

Visual Basic可以输出各种英文字体和汉字字体,并可通过设置字形的属性改变字体的大小、笔划的粗细和显示方向,以及加删除线、下划线、重叠等。下面就来介绍这些属性。

5.4.1 字体类型和大小

1.字体类型

字体类型通过FontName属性设置,一般格式为:

[窗体.][控件.] | Printer.FontName[="字体类型"]

FontName可作为窗体、控件或打印机的属性,用来设置在这些对象上输出的字体类型。这里的“字体类型”指的是可以在Visual Basic中使用的英文字体或中文字体。对于中文来说,可以使用的字体数量取决于Windows的汉字环境。

例如:

FontName="System"

FontName="Times New Roman"

FontName="长城粗隶书"

用“FontName="字体类型"”可以设置英文或中文的字体类型,如果省略“="字体类型"”,即只给出Fontname,则返回当前正在使用的字体类型。

2.字体大小

字体大小通过Fontsize属性设置,前面的例子曾使用过这种属性,其一般格式为:

Fontsize[=点数]

这里的“点数”用来设定字体的大小。在默认情况下,系统使用最小的字体,“点数”为9。如果省略“=点数”,则返回当前字体的大小。

【例5.8】编写程序,在窗体上输出多种字体。

程序如下:

Private Sub Form_Click()

sample1="Microsoft Visual Basic 6.0¨

sample2="程序设计技巧"

Fontsize=20

FontName="system"

Print "system--->";sample1

FontName="modern"

Print "modern--->";sample1

FontSize=24

FontName="宋体"

FontBold=True

Print "宋体--->";sample2

FontName="隶书"

FontItalic=True

Print”隶书--->”;sample2

FontName="黑体"

FontUnderline=True

Print "黑体--->";sample2

End Sub

上述程序在窗体上输出英文和中文字体,在每种字体的前面都有该字体类型的名称。英文字体大小设置为20,中文字体大小设置为24。程序运行后,单击窗体,输出结果如图5.12所示。

上述程序输出了3种中文字体。这要求系统必须预先安装这3种字体,否则得不到上面的输出结果。

5.4.2 其他属性

除字体类型和大小外,Visual Basic还提供了其他一些属性,使文字的输出丰富多彩。

1.粗体字

粗体字由FontBold属性设置,一般格式为:

FontBold[=Boolean]

该属性可以取两个值,即True和False。当FontBold属性为True时,文本以粗体字输出,否则按正常字输出。默认为False。

2.斜体字

斜体字通过FontItalic属性设置,其格式为:

FontItalic[=Boolean]

当FontItalic属性被设置为True时,文本以斜体字输出。该属性的默认值为False。

3.加删除线

用Fontstrikethru属性可以给输出的文本加上删除线,其格式为:

Fontstrikethru[=Boolean]

如果把Fontstrikethru属性设置为True,则在输出的文本中部画一条直线,直线的长度与文本的长度相同。该属性的默认值为False。

4.加下划线

下划线即底线,用Fontunderline属性可以给输出的文本加上底线。其格式为:

Fontunderline[=Boolean]

如果Fontunderline属性被设置为True,则可使输出的文本加下划线。该属性的默认值为False。

在上面的各种属性中,可以省略方括号中的内容。在这种情况下,将输出属性的当前值或默认值。

5.重叠显示

当以图形或文本作为背景显示新的信息时,有时候需要保留原来的背景,使新显示的信息与背景重叠,这可以通过FontTransParent属性来实现,格式如下: FontTransParent[=Boolean]

如果该属性被设置为True,则前景的图形或文本可以与背景重叠显示;如果被设置为False,则背景将被前景的图形或文本覆盖。

在使用以上介绍的字形属性时,应注意以下两点:

(1)除重叠(FontTransParent)属性只适用于窗体和图片框控件外,其他属性都适用于窗体和多种控件及打印机。如果省略对象名,则指的是当前窗体,否则应加上对象名,例如:

Text1.Fontsize=20 '设置文本框中的字体大小

Printer.FontBold=True '在打印机上以粗体字输出

(2)设置一种属性后,该属性即开始起作用,并且不会自动撤销。只有在显式地重新设置后,才能改变该属性的值。

在Visual Basic 6.0中,除通过上面所讲的属性设置窗体或控件的字形外,还可以在设计阶段通过字体对话框设置字形。其方法是:选择需要设置字体的窗体或控件,然后激活属性窗口,单击其中的Font,再单击右端的“…”将打开“字体”对话框,如图5.13所示。

可以在“字体”对话框中对所选择对象的字形进行如下设置:

(1)字体相当于FontName属性,可在该栏中选择所需要的字体。

(2)字形即显示粗体或斜体。如果选择“斜体”,则相当于FontItalic属性,如果选择“粗体”,则相当于FontBold属性,如果选择“粗斜体”,则相当于FontItalie和FontBold属性。

(3)大小相当于FonSize属性。

(4)删除线加删除线,相当于FontStrikethru属性。

(5)下划线加下划线,相当于FontUnderLine属性。

习题

5.1 改正下列语句中的错误:

(1)A$=abc

(2)Print a=34+23(3)x=5,y=6

(4)Print "c=";5+6(5)Text1.Print "########"

5.2 写出下列语句的输出结果,并上机验证:

(1) Print "25+32=";25+32

(2) x=12.5

Print "x=";x

(3) S$="China"

s$="Beijing"

Print s$

(4) a%=3.14156

Print a%

(5) Print "China";"Beijing","Tianjin";"Shahghai","Wuhan",

Print "Nanjing";

Print "Shenyang¨,"Chongqing";"Wulumuqi"

Print ,,"Guangzhou",,"Chengdu"

(6) Print Tab(5);100;Space(5);200,Tab(35);300

Print Tab(10);400;Tab(23);500;Space(5);600

(7) a=Sqr(3)

Print Format(a,"000.00")

Print Format(a,"###.#00")

Print Format(a,"00.00E+00")

Print Format(a,"-#.####")

5.3 写出下列程序的输出结果:

Sub Form_Click()

a=10:b=15:C=20:d=25

Print a;Spc(5);b;Spc(7);c

Print a;Space$(8);b;Space$(5);c

Print c;Spc(3);"+";Spc(3);d;

Print Spc(3);"=";Spc(3);c+d

End Sub

5.4 从键盘上输入4个数,编写程序,计算并输出这4个数的和及平均值。通过InputBox函数输入数据,在窗体上显示和及平均值。

5.5 编写程序,要求用户输入下列信息:姓名、年龄、通信地址、邮政编码、电话,然后将输入的数据用适当的格式在窗体上显示出来。

5.6 编写程序,求解鸡兔同笼问题。一个笼子中有鸡x只,兔y只,每只鸡有2只脚,每个兔有4只脚。今知鸡和兔的总头数为h,总脚数为f。问笼中鸡和兔各若干?

提示:根据数学知识,可以写出如下的联立方程式。

x+y=h (1)

2x+4y=f (2)

式(2)-2×式(1):2y=f-2h,故

y=(f-2h)/2

4×(1)-式(2):2x=4h-f,故

x=(4h-f)/2

可按上式编写程序。用InputBox函数输入h和f的值,设h=71,f=158,请编写程序并上机运行。

5.7 设a=5,b=2.5,C=7.8,编程序计算:y=abπ/(a+bc)

5.8 输入以秒为单位表示的时间,编写程序,将其换算成以日、时、分、秒表示的形式。

5.9 自由落体位移公式为:

s=1/2gt2+v0t

其中,v0为初始速度,g为重力加速度,t为经历的时间。编写程序,求位移量s。设v0=4.8 m/s,t=0.5s,g=9.81m/s2,在程序中把g定义为符号常量,用InputBox函数输入v0和t两个变量的值。

5.10 在窗体上画一个命令按钮,然后编写如下事件过程:

Private Sub Command1_Click()

a=InputBox("Enter the First integer")

b=InputBox("Enter the Second integer")

Print b+a

End Sub

程序运行后,单击命令按钮,先后在两个输入对话框中分别输入456和123,则输出结果是什么?

《操作系统》习题集:第5章 输入输出管理

第5章输入输出管理-习题集 一、选择题 1.()是直接存取的存储设备【*,联考】 A. 磁盘 B. 磁带 C. 打印机 D. 键盘显示终端 2.在中断处理中,输入/输出中断是指()。【*,★,联考】 Ⅰ. 设备出错Ⅱ. 数据传输结束 A. Ⅰ B. Ⅱ C. Ⅰ和Ⅱ D. 都不是 3.用户程序发出磁盘I/O请求后,系统的正确处理流程是()。【**,★,11考研】 A. 用户程序→系统调用处理程序→中断处理程序→设备驱动程序 B. 用户程序→系统调用处理程序→设备驱动程序→中断处理程序 C. 用户程序→设备驱动程序→系统调用处理程序→中断处理程序 D. 用户程序→设备驱动程序→中断处理程序→系统调用处理程序 4.如果I/O设备与存储设备进行数据交换不经过CPU来完成,这种数据交换方式是()。【*,★,联考】 A. 程序查询 B. 中断方式 C. DMA方式 D. 无条件存取方式 5.在操作系统中,()指的是一种硬件机制。【*,联考】 A. 通道技术 B. 缓冲池 C. SPOOLing技术 D. 内存覆盖技术 6.通道又称I/O处理机,它用于实现()之间的信息传输。【*,联考】 A. 内存与I/O设备 B. CPU与I/O设备 C. 内存与外存 D. CPU与外存 7.通道程序是()。【*,联考】 A. 由一系列机器指令组成 B. 由一系列通道指令组成 C. 可以由高级语言编写 D. 就是通道控制器 8.在以下I/O控制方式中,需要CPU干预最少的是()。【*,★,联考】 A. 程序I/O方式 B. 中断控制方式 C. DMA控制方式 D. 通道控制方式 9.与设备相关的中断处理过程是由()完成的。【**,★,联考】 A. 用户层I/O B. 设备无关的操作系统软件 C. 中断处理 D. 设备驱动程序 10.(与题“3”同) 11.本地用户通过键盘登录系统时,首先获得键盘输入信息的程序是()。【**,★,10考研】 A. 命令解释程序 B. 中断处理程序 C. 系统调用程序 D. 用户登录程序 12.一个计算机系统配置了2台同类绘图机和3台同类打印机。为了正确驱动这些设备,系统应该提供()

第十章 输入输出系统习题

第十章输入输出系统习题 一、单项选择题: 1、“总线忙”信号是由__ __建立的。 A.获得总线控制权的设备B.发出“总线请求”的设备 C.总线控制器D.CPU 2、在不同速度的设备之间传送数据__ __。 A.必须采用同步控制方式B.必须采用异步控制方式 C.可以选用同步方式,也可选用异步方式D.必须采用应答方式 3、挂接在总线上的多个部件___ _。 A.只能分时向总线发送数据,并只能分时从总线接收数据 B.只能分时向总线发送数据,但可同时从总线接收数据 C.可同时向总线发送数据,并同时从总线接收数据 D.可同时向总线发送数据,但只能分时从总线接收数据 4、总线从设备是____。 A.掌握总线控制权的设备 B.申请作为从设备的设备 C.被主设备访问的设备D.总线裁决部件 5、假设某系统总线在一个总线周期中传输4个字节信息,一个总线周期占用2个时钟周期,总线时钟频率为10MHz,则总线带宽是__ __。 A.10 MB/s B.20 MB/s C.40 MB/s D.80 MB/s 6、波特率表示传输线路上____。 A.信号的传输速率B.有效数据的传输速率 C.校验信号的传输速率D.干扰信号的传输速率 7、中断系统中的断点是指____。 A.子程序入口地址B.中断服务子程序入口地址 C.中断服务程序入口地址表D.中断返回地址 8、显示器的主要参数之一是分辨率,其含义是____。 A.显示屏幕的水平和垂直扫描频率 B.显示屏幕上光栅的列数和行数 C.可显示不同颜色的总线 D.同一个画面允许显示不同颜色的最大数目 9、下列选项中,能引起外部中断的事件是____。 A.键盘输入B.除数为0 C.浮点运算下溢D.访存缺页 10.CPU响应中断时,最先完成的两个步骤是_ __和保护现场信息。 A.开中断 B.恢复现场 C.关中断 D.不可屏蔽中断 11、在独立编址方式下,存储单元和I/O设备是靠来区分的。 A.不同的地址代码B.不同的地址总线 C.不同的指令和不同的控制信号D.上述都不同 12、计算机系统的输入/输出接口通常是__ __。 A.CPU与存储器之间的交界面B.存储器与打印机之间的交界面 C.主机与外围设备之间的交界面D.CPU与系统总线之间的交界面 13.根据连线的数量,总线可分为串行总线和_____ ___总线

第六章输入输出系统-Read

体系结构6-0 第六章 输入输出系统 6.2 解: 加速比=14.710 /%902/%101=+ 本题再次反映了Amdahl 定律,要改进一个系统的性能要对各方面性能都进行改进,不然系统中最慢的地方就成为新系统的瓶颈。 6.3假设磁盘空闲,这样没有排队延迟;公布的平均寻道时间是9ms ,传输速度是4MB/s ,转速是5400r/min ,控制器的开销是1ms 。问读或写一个512字节的扇区的平均时间是多少? 解: 平均磁盘访问时间 = 平均寻道时间 + 平均旋转延迟 + 传输时间 + 控制器开销 15.725m 1 0.125 5.6 9 1ms 4.0MB/s 0.5KB 5400r/min 0.5 9ms = + + + = + + + 假设实际测得的寻道时间是公布值的33%,则答案是: 3ms + 4.2ms + 0.1ms + 1ms = 8.3ms 6.x 盘阵列有哪些分级?各有什么特点? RAID0亦称数据分块,即把数据分布在多个盘上,实际上是非冗余阵列,无冗余信息。 RAID1亦称镜像盘,使用双备份磁盘。每当数据写入一个磁盘时,将该数据也写到另一个冗余盘,这样形成信息的两份复制品。如果一个磁盘失效,系统可以到镜像盘中获得所需要的信息。镜像是最昂贵的解决方法。特点是系统可靠性很高,但效率很低。 RAID2位交叉式海明编码阵列。原理上比较优越,但冗余信息的开销太大,因此未被广泛应用。 RAID3位交叉奇偶校验盘阵列,是单盘容错并行传输的阵列。即数据以位或字节交叉的方式存于各盘,冗余的奇偶校验信息存储在一台专用盘上。 RAID4专用奇偶校验独立存取盘阵列。即数据以块(块大小可变)交叉的方式存于各盘,冗余的奇偶校验信息存在一台专用盘上。 RAID5块交叉分布式奇偶校验盘阵列,是旋转奇偶校验独立存取的阵列。即数据以块交叉的方式存于各盘,但无专用的校验盘,而是把冗余的奇偶校验信息均匀地分布在所有磁盘上。 RAID6双维奇偶校验独立存取盘阵列。即数据以块(块大小可变)交叉的方式存于各盘,冗余的检、纠错信息均匀地分布在所有磁盘上。并且,每次写入数据都要访问一个数据盘和两个校验盘,可容忍双盘出错。 RAID7是采用Cache 和异步技术的RAID6,使响应速度和传输速率有了较大提高。 6.6 同步总线和异步总线各有什么优缺点?总线的主要参数有哪些?各是什么含义?

第6章 输入输出系统-选择题

第6章输入输出系统(I/O管理)-选择题 1.以下关于设备属性的叙述中,正确的是()。 A.字符设备的基本特征是可寻址到字节,即能指定输入的源地址或输出的目标地址 B.共享设备必须是可寻址的和可随机访问的设备 C.共享设备是指同一时间内允许多个进程同时访问的设备 D.在分配共享设备和独占设备时都可能引起进程死锁 2.虚拟设备是指() A.允许用户使用比系统中具有的物理设备更多的设备 B.允许用户以标准化方式来使用物理设备 C.把一个物理设备变换成多个对应的逻辑设备 D.允许用户程序不必全部装入主存便可使用系统中的设备 3.磁盘设备的1O控制主要采取()方式 A.位 B.字节 C.帧 D. DMA 4.为了便于上层软件的编制,设备控制器通常需要提供() A.控制寄存器、状态寄存器和控制命令 B.1/O地址寄存器、工作方式状态寄存器和控制命令 C.中断寄存器、控制寄存器和控制命令 D.控制寄存器、编程空间和控制逻辑寄存器 5.在设备控制器中用于实现设备控制功能的是() A. CPU B.设备控制器与处理器的接 C.I/O逻辑 D.设备控制器与设备的接口 6.在设备管理中,设备映射表(DMT)的作用是() A.管理物理设备 B.管理逻辑设备 C.实现输入/输出 D.建立逻辑设备与物理设备的对应关系 7.DMA方式是在()之间建立一条直接数据通路 A.I/O设备和主存 B.两个I/O设备 C.I/O设备和CPU D.CPU和主存 8.通道又称1/O处理机,它用于实现()之间的信息传输。 A.内存与外设 B.CPU与外设 C.内存与外存 D.CPU与外存 9.在操作系统中,()指的是一种硬件机制 A.通道技术 B.缓冲池 C. Spooling技术 D.内存覆盖技术 10.若1O设备与存储设备进行数据交换不经过CPU来完成,则这种数据交换方式是() A.程序查询 B.中断方式 C.DMA方式 D.无条件存取方式 11.计算机系统中,不属于DMA控制器的是() A.命令/状态寄存器 B.内存地址寄存器 C.数据寄存器 D.堆指针寄存器 12.()用作连接大量的低速或中速1O设备

计算机组成原理第八章输入输出系统

第八章输入输出系统 一、填空题; 1.直接内存访问(DMA)方式中,DMA控制器从CPU完全接管对A.______的控制,数据交换不经过CPU,而直接在内存和B.______之间进行。 2.通道是一个特殊功能的A.______ ,它有自己的B.______ 专门负责数据输入输出的传输控制。 3.并行I/O接口A.______ 和串行I/O接口B.______ 是目前两个最具有权威性的标准接口技术。 4.在计算机系统中,CPU对外围设备的管理,除了程序查询方式、程序中断方式外,还有A.______方式、B.______方式和C.______方式。 5.程序中断方式控制输入输出的主要特点是,可以使A 和B 并行工作。 6.DMA控制器按其A 结构,分为B 型和C 型两种。 7.通道是一个特殊功能的A ,它有自己的B 专门负责数据输入输出的传输控制,CPU只负责C 功能。 8.通道有三种类型:A 通道、B 通道、C 通道。 二、选择题: 1.下面有关“中断”的叙述,______是不正确的。 A.一旦有中断请求出现,CPU立即停止当前指令的执行,转而去受理中断请求 B.CPU响应中断时暂停运行当前程序,自动转移到中断服务程序 C.中断方式一般适用于随机出现的服务 D.为了保证中断服务程序执行完毕以后,能正确返回到被中断的断点继续执行程 序,必须进行现场保存操作 2.中断向量地址是______。 A. 子程序入口地址 B. 中断服务例行程序入口地址 C. 中断服务例行程序入口地址的地址 D. 主程序返回地址 3.在数据传送过程中,数据由串行变并行或由并行变串行,其转换是通过______。 A. 移位寄存器 B. 数据寄存器 C. 锁存器 D. 指令寄存器 4.采用DMA方式传送数据时,每传送一个数据要占用______的时间。 A. 一个指令周期 B. 一个机器周期 C. 一个时钟周期 D. 一个存储周期 5.发生中断请求的条件是______。 A. 一条指令执行结束 B. 一次I/O操作开始 C. 机器内部发生故障 D. 一次DMA操作开始 6.为了便于实现多级中断,保存现场最有效的方法是采用______。 A. 通用寄存器 B. 堆栈 C. 存储器 D. 外存 7.采用串行接口进行七位ASCII码的传送,带有一位奇校验位、一位起始位和一位停止位,当波特率为4800波特时,字符传送速率为___。 A.480 B. 436 C. 685 D. 240 8.在单级中断系统中,CPU一旦响应中断,则立即关闭___标志,以防止本次中断服务结束前同级的其他中断源产生另一次中断进行干扰。 A.中断允许 B. 中断请求 C. 中断屏蔽

计算机操作系统(第四版)第6章 输入输出系统1

第六章 输入输出管理

6.1 6.1 I/O系统的功能、模型和接口 6.2 I/O设备和设备控制器 6.3 中断机构和中断处理程序 6.4 设备驱动程序 6.5 与设备无关的I/O软件 6.6 用户层的I/O软件 6.7缓冲区管理 67 6.8 磁盘存储器的性能和调度68

6.1 I/O系统功能、模型和接口 1I/O 1 I/O系统基本功能 ./O系统层次结构和模型2.I/O 系统接 3.I/O接口

1 I/O 系统基本功能 ①隐藏物理设备的细节 使用方便②与设备的无关系 提高③提高CPU和I/O设备的利用率 利用率④对I/O设备进行控制 ⑤确保对设备的正确共享 共享方便 ⑥错误处理

① 隐藏物理设备的细节 Printf(“……”); Scanf “……” ();(); #include t =time(0); #includet time(0); number = rand( )#include系统你负责下 Programmer+ I/O 系统,你负责下Programmer 用户,不愿去细数磁盘的卷号、磁道,只求把数给取出来就好。

②与设备的无关系 基于因此物理设备细节的基础上实现,使用基于因此物理设备细节的基础上实现使用抽象的逻辑设备名称使用设备。/dev/printer Windows 2000以前的OS,读取U盘先要安置盘驱动程序就像当前安置打印驱动扫U盘驱动程序,就像当前安置打印驱动、扫 描驱动一样。 I/O系统,你负责设置下 系统你负责设置下

第6章输入输出系统

第六章输入输出系统 一、填空题 l 、操作系统中,设备管理的目标是()和()。 2、中断装置通常是按预定的顺序来响应同时出现的中断事件的,这个预定的顺序通常被称为()。 3.通道通过执行通道程序来完成控制设备工作,完成指定的()操作. 4.通道可分为()、()和()三种类型. 5.中断向量实际上是一种指针,它指向对应()的入口. 6.访问磁盘时间由(),()和()三部分组成. 7.缓冲是一种()扶术,它利用某种存储设备,在数据传送过程中进行暂时的存放. 8.I/O管理中,()技术是操作系统得以响应外部和内部物理请求的必不可少的重要机制. 9、()算法是选择当前磁头所在磁道距离远近的请求作为下一次服务的对象. 10.磁盘地址空间是()维的. 11.为实现CPU与外部设备的并行工作,系统引入了()硬件机制. 12,IlO涉及的基本的硬件元素有()等等. 13.控制设备的核心模块为()· 14.设备和CPU之间数据传送控制方式有四种:程序直接控制方式,中断控制方式,DMA方式和()· 15. 缓冲,中断及()也是设备管理中的一个重要部分. 16. 磁盘是海量存储设备.海量存储设备的出现使得计算机系统的数据保留得以实现.磁盘也就成了 ()数据的关键. 17.许算机两个最主要的工作就是()和处理机. 18.磁盘又可以分为()· 19.如何有效地对连接到计算机的外设进行()是操作系统设计者最关心的问题之一. 20.一个设备可能通过电缆甚至()发送信号,与计算机系统通信. 21 、一般来说,把设备与主机之间的接口称之为()· 22.如果很多设备都共用一条线路通信,称镇线路为() 23.之所以区分控制器和设备本身是因为操作系统大多与()打交道,而非设备本身.

第六章-输入输出系统讲课讲稿

第6章输入输出系统 6.1 解释以下术语 响应时间:从用户键入命令开始,到得到结果所花的时间。 可靠性:指系统从某个初始参考点开始一直连续提供服务的能力,它通常用平均无故障时间来衡量。 可用性:指系统正常工作的时间在连续两次正常服务间隔时间中所占的比率。 可信性:指服务的质量,即在多大程度上可以合理地认为服务是可靠的。 RAID :廉价磁盘冗余阵列或独立磁盘冗余阵列。 分离事务总线:将总线事务分成请求和应答两部分。在请求和应答之间的空闲时间内,总线可以供给其它的I/O 使用。采用这种技术的总线称为分离事务总线。 通道:专门负责整个计算机系统输入/输出工作的专用处理机,能执行有限的一组输入输出指令。 通道流量:指一个通道在数据传送期间,单位时间内能够传送的数据量。 虚拟DMA :它允许DMA 设备直接使用虚拟地址,并在DMA 传送的过程中由硬件将虚拟地址转换为物理地址。 异步I/O :允许进程在发出I/O 请求后继续执行,直到该进程真正访问这些数据而它们又尚未就绪时,才被挂起。 6.2 假设一台计算机的I/O 处理时间占10%,当其CPU 性能改进为原来的100倍,而I/O 性能仅改进为原来的2倍时,系统总体性能会有什么样的变化? 解:94.1690%/100 10%/21=+=加速比 6.3 RAID 有哪些分级?各有何特点? 答:(1)RAID0。亦称数据分块,即把数据分布在多个盘上,实际上是非冗余阵列,无冗余信息。(2)RAID1。亦称镜像盘,使用双备份磁盘。每当数据写入一个磁盘时,将该数据也写到另一个冗余盘,这样形成信息的两份复制品。如果一个磁盘失效,系统可以到镜像盘中获得所需要的信息。镜像是最昂贵的解决方法。特点是系统可靠性很高,但效率很低。 (3)RAID2。位交叉式海明编码阵列。即数据以位或字节交叉的方式存于各盘,采用海明编码。原理上比较优越,但冗余信息的开销太大,因此未被广泛应用。(4)RAID3。位交叉奇偶校验盘阵列,是单盘容错并行传输的阵列。即数据以位或字节交叉的方式存于各盘,冗余的奇偶校验信息存储在一台专用盘上。(5)RAID4。专用奇偶校验独立存取盘阵列。即数据以块(块大小可变)交叉的方式存于各盘,冗余的奇偶校验信息存在一台专用盘上。(6)RAID5。块交叉分布式奇偶校验盘阵列,是旋转奇偶校验独立存取的阵列。即数据以块交叉的方式存

第10章 输入输出系统

第10章输入输出(I/O)系统 一、选择题(每题2分) 12.串行接口是指()。 A.主机和接口之间、接口和外设之间都采用串行传送 B.主机和接口之间串行传送,接口和外设之间并行传送 C.主机和接口之间并行传送,接口和外设之间串行传送 D.系统总线采用串行总线 【分析】主机的工作速度较快,因此主机和接口之间采用并行传送;外设的工作速度较慢,因此接口和外设之间采用串行传送。 【答案】C 35.为了便于实现多级中断,保存现场信息最有效的办法是采用______。 A 通用寄存器 B 堆栈 C 存储器 D 外存 【答案】B 35.为了便于实现多级中断,保存现场信息最有效的办法是采用______。 A 通用寄存器 B 堆栈 C 存储器 D 外存 【答案】B 70. 当采用______对设备进行编址情况下,不需要专门的I/O指令组。 A.统一编址法 B.单独编址法 C.两者都是 D.两者都不是 【答案】A 71. 下面有关“中断”的叙述,______是不正确的。 A.一旦有中断请求出现,CPU立即停止当前指令的执行,转而去受理中 断请求 B.CPU响应中断时暂停运行当前程序,自动转移到中断服务程序 C.中断方式一般适用于随机出现的服务 D.为了保证中断服务程序执行完毕以后,能正确返回到被中断的断点继 续执行程序,必须进行现场保存操作 【答案】A 95. 周期挪用(窃取)方式常用于______中。

A. 直接内存存取方式的输入/输出 B. 直接程序传送方式的输入/输出 C. CPU的某寄存器与存储器之间的直接传送 D. 程序中断方式的输入/输出 【答案】A 114. 采用DMA方式传送数据时,每传送一个数据就要用一个______时间。 A. 指令周期 B. 机器周期 C. 存储周期 D. 总线周期 【答案】C 二、填空题(每题2.5分) 3.按照传输数据格式不同划分,总线数据通信方式可分为串行总线和____________两类。 【答案】并行总线 4.对I/O数据传送的控制方式,可分为:程序直接控制方式、______________、DMA方式、_____________和外围处理机方式。 【答案】程序中断方式、通道控制方式 5.计算机系统的输入输出接口是(C)之间的交接界面。 A.CPU与存储器B.存储器与外围设备 C.主机与外围设备D.CPU与系统总线

5-1输入输出系统-作业

第五章设备管理 1.选择题 1.下述关于设备绝对号和相对号的说法中,正确的是 D 。 A.操作系统为每台设备确定一个绝对号和一个相对号 B.用户进程申请设备时应该指定绝对号和相对号 C.申请设备时指定绝对号可提高设备的利用率 D.申请设备时指定设备类、相对号使设备分配的灵活性强 2.虚拟设备技术是指用 C 的技术。 A.共享设备代替独占设备B.独占设备代替共享设备 C.共享设备模拟独占设备D.独占设备模拟共享设备3.SPOOL系统克服了____B__利用率低的缺点。 A.共享设备B.独占设备C.主存储器D.虚拟设备4.下列算法中可用于磁盘移臂调度的是 B 。 A.最短计算时间优先B.电梯算法C.时间片轮转D.响应比高者优先 5.用户编写程序时使用的设备与实际使用的设备无关,这种特性称为 B 。 A.设备一致性B.设备独立性C.设备虚拟性D.设备共享性 11.对磁盘进行移臂调度时,既考虑了减少寻找时间,又不频繁改变移动臂的移动方向的调度算法是 C 。 A.先来先服务B.最短寻找时间优先 C.电梯调度D.优先级高者优先 12.为了提高设备分配的灵活性,用户申请设备时应指定 A 号。 A.设备类相对B.设备类绝对C.相对D.绝对13.对磁盘进行移臂调度的目的是为了缩短 A 时间。 A.寻道B.延迟C.传送D.启动14.操作系统采用SPOOLing技术提高了 A 利用率。 A.独占设备B.文件C.主存储器D.共享设备15.从磁盘读取数据的下列时间中, D 对系统效率的影响最大。 A.处理时间B.传输时间C.延迟时间D.寻道时间21.以下 A 不属于磁盘的驱动调度。 A.最高响应比优先调度算法B.先来先服务调度算法 C.电梯调度算法D.单向扫描调度算法 22.操作系统中的SPOOLing技术,实质上是将 A “转化”为共享设备的技术。 A.临界设备B.虚拟设备C.脱机设备D.块设备23.关于SPOOLing的叙述中, B 是错误的。 A.SPOOLing系统中不需要独占设备 B.SPOOLing系统加快了作业的执行速度 C.SPOOLing系统使独占设备变成了共享设备 D.SPOOLing利用了处理器与通道的并行工作能力

操作系统第6章 输入输出系统

以ppt为主,上课没讲的,不会考!!! 计算机系统的一个重要组成部分是I/O系统。 操作系统,仅给出设备驱动程序接口!!! 下面一段,记住,背过!!! 在该系统中包括(1)、有用于实现信息1)、输入、2)、输出和3)、存储功能的设备 (2)、相应的设备控制器, 而设备管理的基本任务是完成用户提出的I/O请求,提高I/O速率以及改善I/O设备的利用率。 设备管理的主要功能有缓冲区管理、设备分配、设备处理、虚拟设备及实现设备独立性等。我们主要对I/O设备和设备控制器等硬件作一扼要的阐述。 “6.1 6.2 较零碎,会考选择、填空!!!小题。” 6.1 I/O系统的功能、模型和接口 (1)、I/O系统的主要任务P178 完成用户提出的I/O请求,提高I/O的速率,以及提高设备的利用率,并能为更高层的进程方便地使用这些设备提供手段。 (2)、I/O系统的层次结构P180 1)用户层I/O软件 2)设备独立性软件 3)设备驱动程序 4)中断处理程序 (3)、I/O系统接口P181 根据设备类型的不同,可分为若干个接口。 6.2 I/O设备和设备控制器(重点!!!需要记住!!!!),会出题 将分为以下两部分来了解I/O设备: (1)I/O设备的类型 (2)设备与控制器之间的接口 (1)、I/O设备的类型(很重要!!每种分类标准,分为哪些类,都记住!!!) I/O设备的类型繁多,从OS观点看,其重要的性能指标有:数据传输速率、数据的传输单位、设备共享属性等。因而从以下不同角度进行分类。 1)按传输速率分类P183“会填空!!” 1.低速设备:传输速率仅为每秒钟几个字节至数百个字节的一类设备。如键盘、鼠标、语音输入和 输出设备等。 2.中速设备:传输速率为每秒钟数千个字节至数万个字节的一类设备。如行式打印机、激光打印机 等。 3.高速设备:传输速率为每秒钟数百千个字节至数十兆字节的一类设备。如磁带机、磁盘机、光盘 机等。

吉林大学 计算机系统结构题库 第六章

第六章输入输出系统 知识点汇总 系统响应时间、存储外设可靠性能参数(可靠性/可用性/可信性)、RAID、CPU与外设进行输入/输出方式(程序查询、中断、DMA、通道)、分离事务总线、同步总线、异步总线、通道处理机功能、通道处理工作过程、字节多路通道、选择通道、数组多路通道、通道流量(最大流量、实际流量) 简答题 1.反映存储外设可靠性能的参数有哪些?(知识点:存储外设可靠性能参数) 答:(1)可靠性:系统从初始状态开始一直提供服务的能力。 (2)可用性:系统正常工作时间在连续两次正常服务间隔时间中所占的比率。 (3)可信性:服务的质量,即在多大程度上可以合理地认为服务是可靠的。 2.简述同步总线和异步总线的优缺点。(知识点:同步总线、异步总线) 答:(1) 同步总线。同步总线上所有设备通过统一的总线系统时钟进行同步。同步总线成本低,因为它不需要设备之间互相确定时序的逻辑。但是同步总线也有缺点,总线操作必须以相同的速度运行。 (2) 异步总线。异步总线上的设备之间没有统一的系统时钟,设备自己内部定时。设备之间的信息传送用总线发送器和接收器控制。异步总线容易适应更广泛的设备类型,扩充总线时不用担心时钟时序和时钟同步问题。但在传输时,异步总线需要额外的同步开销。 3.简述通道完成一次数据传输的主要过程。(知识点:通道处理工作过程) 答:(1) 在用户程序中使用访管指令进入管理程序,由CPU通过管理程序组织一个通道程序,并启动通道。 (2) 通道处理机执行CPU为它组织的通道程序,完成指定的数据I/O工作。 (3) 通道程序结束后向CPU发中断请求。CPU响应这个中断请求后,第二次进入操作系统,调用管理程序对I/O中断请求进行处理。 4.简述三种通道传输方式及其传输过程。(知识点:字节多路通道、选择通道、数组多路通道) 答:(1) 字节多路通道:通道每连接一个外围设备,只传送一个字节,然后又与另一台设备连接,并传送一个字节。(2) 数组多路通道:通道每连接一台外围设备,传送一个数据块,传送完成后,又与另一台高速设备连接,再传送一个数据块。(3) 选择通道:通道每连接一个外围设备,就把这个设备的多有待传字节全部传送完成,然后再与另一台设备相连接。 5.简述通道的主要功能(答出5项即可)(知识点:通道处理机功能) 答:(1)选择连接设备。(2)执行通道程序。(3)给出外围设备的操作地址。(4)给出主存缓冲区的首地址。(5)传送计数。(6)传送后处理。(7)设备监测。(8)格式变换。

第6章 输入输出系统-填空题

第6章输入输出系统(I/O管理)-填空题 1.对打印机的I/O控制方式常采用( ),对磁盘的I/O控制方式常采用( )。 2.DMA是指允许( )和( )之间直接交换数据的设备。在DMA中必须设置地址寄存器,用于存放( ),还必须设置( )寄存器用来暂存交换的数据 3.设备控制器是( )和( )之间的接口,它接受来自( )的I/O命令,并用于控制( )的工作。 4.缓冲池中的每个缓冲区由( )和( )两部分组成 5.IO软件通常被组织成( )、( )、( )和( )四个层次 6.驱动程序与( )紧密相关,如果计算机中连有3个同种类型的彩色终端和2个同种类型的黑白终端,可以为它们配置( )个设备驱动程序。 7.为实现设备分配,系统中应配置( )和( )的数据结构,为实现控制器和通道的分配,系统中还应配置( )和( )的数据结构 8.除了设备的独立性外,在设备分配时还要考虑( )、( )和( )三种因素。 9.为实现设备独立性,在系统中必须设置( )表,通常它包括( )、( )和( )三项 10. Spooling系统是由磁盘中的( )和( ),内存中的( )和( ), ( )和( )以及井管理程序构成的。 11.实现后台打印时, Spooling系统中的输出进程,只为请求I/O的进程做两件事。(1)为之在输出井中申请一( ),并将( )送入其中,(2)为用户进程中请一张( ),并将( )填入表中,再将该表排在( )队列中。 12.磁盘的访问时间由( )、( )和( )三部分组成,其中所占比重比较大的是( ),故磁盘调度的目标为( )。 13.在磁盘调度中,选择优先为离当前磁头最近的磁道上的请求服务的算法为( )算法,这种算法的缺点是会产生( )现象,选择优先为当前磁头移动方向上、离当前磁头最近的磁道上的请求服务的算法为( )算法。

相关主题
文本预览
相关文档 最新文档