当前位置:文档之家› 实验4 分支程序设计

实验4 分支程序设计

实验4  分支程序设计
实验4  分支程序设计

实验4 分支程序设计

实验目的:

1.掌握Visual Basic的常量、变量的定义和使用。

2.掌握各种表达式的使用。

3.掌握各种标准函数的使用。

4.掌握分支结构程序设计方法。

实验4.1计算面积

实验任务:

1.设计程序界面如图4-1所示,在窗体上先放置框架一个,然后将三个单选按钮放置在框架中,放置两个标签框、两个文本框和两个命令按钮。

2.选择某种形状的同时Label1动态显示相应的“半径”或“边长”。

3.在Text1中输入数值后,按确定按钮,在Text2中显示计算的面积。

4.形状转换时,要清除前次结果(两个文本框清空),光标聚焦Text1。

5.按“退出”按钮,结束运行。

图4-1 程序界面

提示:可以根据单选按钮的Value属性进行判断,当某个按钮值为真时,则进行与之相应的计算。因此,可以使用分支结构(If…Then)来实现条件判断功能。

实验步骤:

2.添加代码

Option Explicit

Const Pi As Single = 3.141593 ’Pi为“符号常量”类型,不可再次赋值Private Sub Option1_Click()

Label1 = "半径"

Text1 = ""

Text2 = ""

Text1.SetFocus

End Sub

Private Sub Option2_Click()

Label1 = "边长"

Text1 = ""

Text2 = ""

Text1.SetFocus

End Sub

Private Sub Option3_Click()

’填写一段程序(可以模仿Option2_Click()中的代码)End Sub

Private Sub Command1_Click()

Dim r As Single, s As Single

r = Val(Text1)

If Option1.Value = True Then s = Pi * r ^ 2

If Option2.Value = True Then s = r ^ 2 * Sqr(3) / 4

If Then s = r ^ 2

Text2 = s

End Sub

Private Sub Command3_Click()

End

End Sub

3.保存文件,调试运行并记录结果。

提示:请妥善保存该程序,待到学会使用控件数组后,将三个Option按钮用控件数组生成,可以简化程序代码。

实验4.2登录检测

实验任务:

建立一个登录窗口,要求输入口令,假定口令为“Basic1234”。

要求:

1.输入的口令在文本框中不可见,以“*”替代;单击“退出”按钮时,结束运行。

2.单击“确定”按钮时,若输入口令正确,显示信息“祝贺你,成功登录!”;否则显示“对不起,口令错误,无法登录!”。

图4-2 登录界面及各种提示信息

39

3.若三次登录均不正确,显示“对不起,你无权登录该系统!”后结束整个应用程序。

注意:将文本框的PasswordChar属性值设为“*”(只要一个星号),就可以星号替代键入的字符。实现上述功能不仅要使用分支判断语句对文本框的内容进行判断,还需要定义一个整型变量N用作计数,其初值为0,登录一次不正确,N就加1,如果N=3,则结束整个应用程序。

操作步骤:

1.窗体设计,在窗体上放置一个Label控件、一个TextBox控件和两个CommandButton 按钮,按照图4-2排列控件,设置控件大小。

3.添加代码:

Option Explicit

Dim N As Integer ’N用来统计登录次数,注意不能在过程中定义Private Sub cmdOk_Click()

If txtpassword.Text = "Basic1234" Then

MsgBox "祝贺你,成功登录!" ’弹出消息框

Else

N = N + 1

If N = 3 Then

MsgBox "对不起,你无权登录该系统!", vbExclamation ’弹出消息框

End

End If

MsgBox "对不起,口令错误,无法登录!", vbExclamation ’弹出消息框

txtpassword.Text = ""

txtpassword.SetFocus

End If

End Sub

Private Sub cmdExit_Click() '退出

End

End Sub

4.保存文件,调试运行,观察结果。

思考:如果假定的口令“Basic1234”事先已经存在一个PassWord.txt文件中,如何修改上述程序?试一试。

实验4.3日期显示

实验任务:

编程获得当天的系统日期,并以X年X月X日星期X的形式显示出来,实验结果如图4-3所示。提示:系统日期可以通过Date函数得到,年号、月份、日期和星期号也可分别通过Year、Month、Day、WeekDay等函数获得。要注意的是,通过WeekDay获得的星期号是数值表示的1-7,而非大写的“星期一”-“星期日”,因此必须借助一个多分支语句加以转换。

图4-3 显示当天日期界面

实验步骤:

1.在窗体上放置一个Label控件。

41

3.添加代码(请补充缺少的语句)

'Rq为当前系统日期,Y为年号,m为月份,d为日期,w1为数值型的星期号,w2为转换后的大写的星期号

Dim Y As Integer, m As Integer, d As Integer, w1 As Integer

Dim Rq As Date

Dim w2 As String

Private Sub Form_Load()

Rq = ________

Y = __________

m = __________

d = ________

w1 = Weekday(Rq, vbMonday) '设星期一为第一天,缺省值星期日是第一天

Select Case w1

Case 1

w2 = "一"

Case 2

w2 = "二"

Case 3

w2 = "三"

Case 4

w2 = "四"

Case 5

w2 = "五"

Case 6

w2 = "六"

Case 7

w2 = "日"

End Select

LblDate.Caption = ______________________________

End Sub

4.保存文件,调试运行。

实验4.4计算器

实验任务:

编程模拟一个袖珍计算器,它可以根据输入的操作符进行不同的计算,要求最少要做加、减、乘、除四种运算。实验结果如图4-4所示。

图4-4 实验4.4运行界面

注意:判断一下除数为零的情况。若除数为零,要用Msgbox消息框提示“除数不能为零”、清空输入数2的文本框、让该文本框获得焦点,等待重新输入合法的数据。

提示:

设计界面如图4-4所示,属性设置如下:

43

实验4.5方程求解

实验任务:

编程实现一元二次方程求解。要求任意输入方程的系数a,b,c,计算并输出方程的两个根xl,x2,并把方程系数和求得的根存入数据文件“gen.dat”中,界面如图4-5所示。

图4-5 实验4.5运行界面

实验要求:

1.输入a,b,c三个数,为了程序设计的方便可由三个文本框来实现

2.通过求根公式求得方程的根。计算的结果通过文本框显示。

要分为:a=0时,按照一次方程求解

a≠0时,

b^2-4ac>=0 按照二次方程求实根解

b^2-4ac<0 按照二次方程求虚根解

dalt = b * b - 4 * a * c

dalt = Sqr(-dalt) '复根

两个须根分别为:

文本框= Format(-b / 2 / a, "0.00") & "+" & Format(dalt / 2 / a, "0.00") & "i"

文本框= Format(-b / 2 / a, "0.00") & "-" & Format(dalt / 2 / a, "0.00") & "i"

3.为简化程序,假设a,b,c均为数值

45

习 题4

习题4.1选择题

1. VB 也提供了结构化程序设计的三种基本结构,三种基本结构是( )。

(A )递归结构、选择结构、循环结构 (B )选择结构、过程结构、顺序结构

(C )过程结构、输入、输出结构、转向结构 (D )选择结构、循环结构、顺序结构

2. 结构化程序由三种基本结构组成,下面属于三种基本结构之一的是( )。

(A )递归结构 (B )选择结构

(C )过程结构 (D )输入、输出结构 3. 下面程序段运行后,显示的结果是( )。

Dim x%

If x Then Print x Else Print x+1

(A )1 (B )0 (C )-1 (D )显示出错信息 4. 语句If x=1 Then y=1,下列说法正确的是( )。 (A )x=1和y=1均为赋值语句 (B )x=1和y=l 均为关系表达式

(C )x=1为关系表达式,y=l 为赋值语句 (D )x=1为赋值语句,y=l 为关系表达式 5. 用If 语句表示分段函数????

?<+>=+=1

,31

,1)(2x x x x x f ,下列不正确的程序段是( )。

(A )f=x*x+3 (B )If x>=1 Then f=sqr(x+1)

If x>=1 Then f=sqr(x+1) If x<1 Then f=x*x+3 (C )If x>=1 Then f=sqr(x+1) (D )If x<1 Then f=x*x+3 _ Else f=x*x+3 Else f=sqr(x+1) 6. 计算分段函数值。

????

??

?≥<≤<≤<=2

x ,32x 1 ,21x 0 ,10 x ,0y 下面程序段中正确的是( )。

(A )If x<0 Then y=0 (B )If x>=2 Then y=3 If x=1 Then y=2

If x<2 Then y=2 If x>0 Then y=1

If x>=2 Then y=3 If x<0 Then y=0

(C)If x<0 Then (D)If x>=2 Then

y=0 y=3

ElseIf x>0 Then ElseIf x>=1 Then

y=1 y=2

ElseIf x>1 Then ElseIf x>=0 Then

y=2 y=1

Else Else

y=3 y=0

End If End If

7.下面程序段,显示的结果是()。

Dim x

x=Int(Rnd)十5

Select Case x

Case 5

Print”优秀”

Case 4

Print“良好”

Case 3

Print“通过”

Case Else

Print“不通过”

End Select

(A)优秀(B)良好(C)通过(D)不通过

8.下面程序段求两个数中的大数,()不正确。

(A)Max=IIf(x>y,x,y) (B)If x>y Then Max=x Else Max=y (C)Max=x (D)If y>=x Then Max=y

If y>=x Then Max=y Max=x

9.在窗体上画一个名称为Command1的命令按钮,然后编写如下事件过程:

Private Sub Command1_Click()

x=InputBox("Input")

Select Case x

Case 1,3

Print "分支 1"

Case Is >4

Print "分支 2"

Case Else

Print "Else 分支 "

End Select

End Sub

程序运行后,如果在输入对话框中输入2,则窗体上显示的是

(A)分支1 (B)分支2 (C)Else分支(D)程序出错

10.以下Case语句中错误的是

(A)Case 0 To 10 (B)Case Is>10

(C)Case Is>10 And Is<50 (D)Case 3,5,Is>10

11.在窗体上画一个名称为Command1的命令按钮,然后编写如下事件过程:

Private Sub Command1_Click()

x = -5

If Sgn(x) Then

y = Sgn(x ^ 2)

Else

y = Sgn(x)

End If

Print y

End Sub

程序运行后,单击命令按钮,窗体上显示的是

(A)-5 (B)25 (C)1 (D)-1

12.在窗体上画一个名称为Text1的文本框,要求文本框只能接收大写字母的输入。以

下能实现该操作的事件过程是

(A)Private Sub Text1_KeyPress(KeyAscii As Integer)

If KeyAscii < 65 Or KeyAscii > 90 Then

MsgBox "请输入大写字母"

KeyAscii = 0

End If

End Sub

(B)Private Sub Text1_KeyDown(KeyCode As Integer, Shift As Integer)

If KeyCode < 65 Or KeyCode > 90 Then

MsgBox "请输入大写字母"

KeyCode = 0

End If

End Sub

(C)Private Sub Text1_MouseDown(Button As Integer, Shift As Integer, X As Single, Y As Single)

If Asc(Text1.Text) < 65 Or Asc(Text1.Text) > 90 Then

MsgBox "请输入大写字母"

End If

47

End Sub

(D)Private Sub Text1_Change()

If Asc(Text1.Text) > 64 And Asc(Text1.Text) < 91 Then

MsgBox "请输入大写字母"

End If

End Sub

13.设a=6,则执行x=IIF(a>5,-1,0)后,x的值为

(A)5 (B)6 (C)0 (D)-1

14.下列语句正确的是

(A)If A ≠ B Then Print "A 不等于 B"

(B)If A <> B Then Printf "A 不等于 B"

(C)If A <> B Then Print "A 不等于 B"

(D)If A ≠ B Then Printf "A 不等于 B"

15.下面程序段执行结果为

x = Int(Rnd() + 4)

Select Case x

Case 5

Print "excellent"

Case 4

Print "good"

Case 3

Print "pass"

Case Else

Print "fail"

End Select

(A)excellent (B)good (C)pass (D)fail

16.设a = "a",b = "b",c = "c",d = "d",执行语句x = IIf((a < b) Or (c > d),

"A", "B")后,x的值为

(A)a (B)b (C)A (D)B

17.下列程序执行后,变量a的值为

Dim a, b, c, d As Single

a = 100:

b = 20:

c = 1000

If b > a Then

d = a: a = b: b = d

End If

If c > a Then

d = b: b = c: c = d

End If

(A)0 (B)1000 (C)20 (D)100

18.执行下面的程序段后,变量c的值为

a = 14

b = 30

Select Case b \ 10

Case 0

c = a * 10 + b

Case 1 To 9

c = a * 100 + b

Case 10 To 99

c = a * 1000 + b

End Select

Print c

(A)363 (B)2548 (C)1430 (D)9875

参考答案

1.D

2.B

3.A x没有赋值,默认为0。而在VB中,0作为逻辑常量False,非0作为True。

4.C

5.C

6.D

7.A

8.D

9.C 10.C 11.C 12.A 13.D

14.C 15.B 16.C 17.D 18.C

习题4.2填空题

1.下面程序运行后输出的结果是( 空1 )。

x=Int(Rnd)+3

If x^2>8 Then y=x^2+1

If x^2=9 Then y=x^2-2

If x^2<8 Then y=x^3

Print y

2.下面程序的功能是( 空2 )。

Dim n%,m%

Private Sub Text1_KeyPress(KeyAscii As Integer)

If KeyAscii=13 Then

If IsNumeric(Text1.Text) Then

Select Case Text1.Text Mod 2

Case 0

n=n+Text1.Text

Case 1

49

m=m+Text1.Text

End Select

End If

Text1.Text=""

Text1.SetFocus

End If

End Sub

3.下面的程序段是检查输入的算术表达式中圆括号是否配对,并显示相应的结果。本程序在文本框输入表达式,边输入,边统计,以输入回车符作为表达式输入结束,然后显示结果。

Dim count1%

Private Sub Text1_KeyPress(KeyAscii As Integer)

If( 空3 )= "("Then

count1=count1+1

ElseIf( 空4 )= ")"Then

( 空5 )

End If

If KeyAscii=13 Then

If( 空6 )Then

Print "左右括号配对"

Else If( 空7 )Then

Print"左括号多于右括号";count1;"个"

Else

Print"右括号多于左括号";-count1;"个"

End If

End If

End Sub

4.输入文本框中若干字符,统计有多少个元音字母、有多少个其他字母,直到按Enter 键结束,并显示结果,大小写不区分。其中CountY中放元音字母个数,CountC中放其他字符数。

Dim CountY%,CountC%

Private Sub Textl_KeyPress(KeyAscii As Integer)

Dim C$

C=( 空8 )

If "A"<=C And C<="Z"Then

Select Case( 空9 )

Case( 空10 )

CountY=CountY+1

Case( 空11 )

CountC=CountC+1

End Select

End If

If( 空12 )Then

Print "元音字母有";CountY;"个"

Print"其他字母有";CountC;"个"

End If

End Sub

参考答案

1.7

2.分别统计输入若干数的奇数和、偶数和,存放在m、n中

3.Chr(KeyAscii)

4.Chr(KeyAscii)

5.countl=countl-1 若遇右括号,括号数减l。

6.countl=0 括号配对。

7.countl>0 左括号多于右括号,多于的个数是countl的值。

8.UCase(Chr(KeyAscii)) 大小写不区分。

9.C

10.”A”,”E”,”I”,”O”,”U”

11.Else 其他字符。

12.KeyAscii=13

习题4.3简答题

1.设x与y是同一类型的变量,试设计一个算法,把x与y中的数据相互交换。

2.设a、b、c是同一类型变量,并分别被赋予不同大小的数据,设计一个算法,使得执行的结果为a>b>c。

3.设计一个可以判断某数是否是素数的算法(所谓素数是指只能被1和自身整除的数)。

4.设计一个判断某正整数是一个回文数的算法。所谓回文数是指左右数字完全对称的自然数。例如,121、12321、484、555等都是回文数。

5.设计一个算法,求出给定的自然数a的所有因子。

6.在文本框Textl与Text2中分别输入35与48,变量S与X分别为字符型与整型,试问,以下赋值语句的执行结果是什么?

S=Textl.Text+Text2.Text

X= Textl.Text+Text2.Text

S=Textl.Text & Text2.Text

X= Textl.Text & Text2.Text

S=Val(Textl.Text)+Text2.Text

X=Val(Textl.Text)+Text2.Text

51

S=Val(Textl.Text) & Text2. Text

X=Val(Textl.Text) & Text2.Text

习题4.4操作题

1.将键盘输入的一位数字翻译为英文单词,如图4-6所示。若输入长度大于1且不是0-9之间的数字,显示“输入错误,请重新输入”的信息。

图4-6 数字转单词界面

2.从键盘输入一个大写字母,要求改用小写字母输出。提示:Visual Basic提供了一个标准函数Lcase(x),方便地将大写字母转换成小写字母

3. 输入三角形的三条边a,b,c的值,根据其数值,判断能否构成三角形。若能,还要显示三角形的性质:等边三角形、等腰三角形、直角三角形、任意三角形。并计算周长与面积。并把结果存入数据文件“area.dat”中。程序界面如图4-7所示。

53

图4-7判断三角形程序界面

4.货币兑换。将输入的人民币金额按指定的要求兑换为美元或港币。美元和人民币兑换比为1:6.65;人民币和港币兑换比为1.15:1。

要求:

(1)应用程序窗体如图4-8所示。

(2)程序运行时和单击“清除”按钮后,光标自动停在人民币金额文本框中。

(3)程序运行时默认币种为美圆。

提示:计算时根据OptionButton 选中的币别(即OptionButton 的Value

属性)进行判

图4-8 币种兑换界面

断,来决定用哪个计算公式进行币种之间的换算。

5.计税款。国家规定,收税标准如下:

收入 超出部分税率 1000 以下 0

1000≤s<1500 5% 1500≤s<2000 10% 2000≤s<2500 15% 2500≤s<5000 20% 5000以上 25%

提示:本题是一个典型的多分支情况,如果使用嵌套的If 结构,层次复杂,容易产生 If 和End If 不匹配的语法错误。因此建议使用If –Then-Else If 结构或Select Case 结构,程序比较清晰,可读性好。

6.计算分段函数y 的值。

7.从键盘输入三个数,将它们从大到小依次排列输出。

图4-9 三数排序

注意:a 、b 、c 三个数之间的各种可能性都要考虑到,才能得到正确结果。请输入各种不同情况的数据验证程序。

参考答案

1.程序界面与参考程序: Private Sub Form_Click()

??

?

??>+<≤<=535

0012x x e x x x y x

Dim x%, y%, z$

x = InputBox("x=?")

y = Len(Trim(x)) '求数字x的长度

If y > 1 Or x < 0 And x > 9 Then

MsgBox "输入错误,请重新输入"

Else

Select Case x

Case 0

z = "zero"

Case 1

z = "one"

Case 2

z = "two"

Case 3

z = "three"

Case 4

z = "four"

Case 5

z = "five"

Case 6

z = "six"

Case 7

z = "seven"

Case 8

z = "eight"

Case 9

z = "nine"

End Select

Text1 = x

Text2 = z

End If

End Sub

2. 参考程序:

Private Sub Form_Click()

Dim x$, y$

x = InputBox("x=?")

If Asc(x) < 65 Or Asc(x) > 90 Then

55

MsgBox "输入错误,请重新输入"

Else

y = LCase(x)

End If

Text1 = x

Text2 = y

End Sub

3. 参考程序:

Private Sub Command1_Click()

Dim a!, b!, c!, s!, area!

a = InputBox("输入三角形边a")

b = InputBox("输入三角形边b")

c = InputBox("输入三角形边c")

If a<=0 or b<=0 or c<=0 or a + b <= c Or a + c <= b Or b + c <= a Then MsgBox "不能够成三角形,请重新输入"

Else

If a = b And b = c Then

Text4 = "是等边三角形"

ElseIf a = c Or b = c Or a = b Then

Text4 = "是等腰三角形"

ElseIf a ^ 2 + b ^ 2 = c ^ 2 Or a ^ 2 + c ^ 2 = b ^ 2 Or c ^ 2 + b ^ 2 = a ^ 2 Then Text4 = "是直角三角形"

Else

Text4 = "是任意三角形"

End If

Open “D:\area.dat” For Output As#1

Text1 = a

Text2 = b

Text3 = c

Text5 = a + b + c

s = (a + b + c) / 2

Text6 = Format(Sqr(s * (s - a) * (s - b) * (s - c)), "0.00")

Write #1,Text5,Text6

End If

End Sub

4. 参考程序:

Private Sub Option1_Click()

《程序设计基础》 实验报告 专业班级: 姓名: 学号:

实验一 面向过程的简单程序设计 1.实验目的要求 (1) 使用C++语言编写简单的计算机程序,掌握C++程序从编辑、编译到运行的全过程, 初步了解C++程序的特点。 (2) 掌握C++语言的数据类型(包括对各种数据类型变量的定义、初始化、赋值等)、运 算符和表达式的使用。 (3) 掌握赋值语句的使用。 (4) 掌握数据的输入输出方法。 2.实验内容 (1)设计简单程序,分别计算下列表达式,式中变量由键盘输入,输出表达式的值。 <1> d c b a x -++ <2> 11 11+++x x <3> sinX+cosX+tan -1 X <4> e x+y +e x-y <5> log 10(1+21x +) <6> 22b a -+??b a - (其中??a 表示取不大于a 的最大整数)。 <1> #include using namespace std; int main() { float x,a,b,c,d,e; cin>>x>>a>>b>>c>>d; e=x+(a+b)/(c-d); cout< #include #include using namespace std; int main() { double x,y; cin>>x; y=sqrt(1+1/(x+1/(x+1)));

cout< #include #include using namespace std; int main() { double x,y; cin>>x; y=sin(x)+cos(x)+1/tan(x); cout< #include #include using namespace std; int main() { double x,y,z; cin>>x>>y; z=exp(x+y)+exp(x-y); cout< #include #include using namespace std; int main() { double x,y; cin>>x; y=log(1+sqrt(1+x*x)); cout< #include #include using namespace std; int main()

**大学程序设计基础实验报告 实验名称:实验三分支结构 实验目的: 1、掌握IF-ELSE语句使用。 2、掌握ELSE-IF语句使用。 3、熟悉SWITCH语句使用。 实验内容: 在本地电脑中新建一个文件夹,用于存放C程序,文件夹的名字要求是“学号姓名-实验序号”,如E:\ 1920115555张三-03。启动C-Free,完成如下各题。 1、编程题:输入参数a,b,c,求一元二次方程ax2+bx+c=0的根(①a、b、c都为0,②a 和b为0,c不为0,③a为0,b不为0,c任意,④a不为0,且a、b、c满足b2-4ac ≥0,⑤a不为0,且a、b、c满足b2-4ac<0)。 2、编程题:输入职工的月薪salary,计算并输出应缴纳的个人所得税tax。tax=rate * (salary –850),rate的计算方式如下: 当salary <= 850,则rate = 0; 当850 < salary <= 1350,则rate = 5%; 当1350 < salary <= 2850,则rate = 10%; 当2850 < salary <= 5850,则rate = 15%; 当salary > 5850,则rate = 20%;。 3、编程题:根据输入的3个边长a、b、c,判断它们是否能构成三角形,若能构成三 角形,则进一步判断此三角形是哪种类型的三角形(等边三角形、等腰三角形、直角三角形和一般三角形。等腰直角算作等腰)。 4、编程题:输入一个形式如“操作数运算符操作数”的表达式,对2个整数进行乘、 除或求余运算。【请分别用if语句和switch语句实现此题功能】 上交作业的方法: 1.将程序代码及注释和运行程序的窗口复制到实验结果下方对应的题号上,并把这 次实验上机操作中遇到的问题及解决方法、心得等填好完成实验报告。 2.保存以上所有按要求已调试通过,并形成.c(或.cpp)和.exe文件到以自己的“学 号姓名-03”命名的文件夹中,并将以自己的“学号姓名”命名的文件夹压缩后上 交到ftp://10.172.250.252:1161中的“作业上传”文件夹下的“报告上交02”文件 夹下的子文件夹“源文件压缩上交”中,同时把以“学号姓名-03”命名的word 文档上交到“报告上交03”文件夹下的另一子文件夹“word文件上交”中。 特别提醒:每次上传的文件名一定要是“学号姓名-实验序号. doc”(如1720115555张

实验三:C程序的选择结构 一、实验目的和要求 (1)了解 C 语言表示逻辑量的方法(以0 代表“假”,以非0 代表“真”)。 (2)学会正确使用逻辑运算符和逻辑表达式。 (3)熟练掌握if 语句的使用(包括if 语句的嵌套)。 (4)熟练掌握多分支选择语句—switch 语句。 (5)结合程序掌握一些简单的算法。 (6)进一步学习调试程序的方法。 二、、实验软硬件配置 1.硬件配置 电脑 2.软件配置 Windows xp Visual C++6.0 三、实验内容及过程描述 实验步骤: ①进入Visual C++ 6.0 集成环境。 ②输入自己编好的程序。 ③检查一遍已输入的程序是否有错(包括输入时输错的和编程中的错误),如发现有错,及时 改正。 ④进行编译和连接。如果在编译和连接过程中发现错误,频幕上会出现“报错信息”,根据提 示找到出错位置和原因,加以改正。再进行编译,如此反复直到不出错为止。 ⑤运行程序并分析运行结果是否合理。在运行是要注意当输入不同的数据时所得结果是否正 确,应运行多次,分别检查在不同情况下结果是否正确。 实验内容: 本实验要求事先编好解决下面问题的程序,然后上机输入程序并调试运行程序。 x x 1 (1)有一函数:y 2x 1 1 x 10 3x 11 x 10 写程序,输入x 的值,输出y 相应的值。用scanf 函数输入x 的值,求y 的值。程序如下:#include int main() {float x,y; int i; while(i<1000) { printf(" 请输入x 的值:"); scanf("%f",&x); if(x<1) y=x; else if(1<=x&&x<10)

网络程序设计 实验报告 实验名称: Winsock编程接口实验 实验类型:____验证型实验_____ __ 指导教师:______________________ 专业班级:_____________________ 姓名:_______________________ 学号:_____________________ 电子邮件:____________ 实验地点:______ _______ 实验日期2013 年 3 月29 日 实验成绩:__________________________

一、实验目的 ●掌握Winsock的启动和初始化; ●掌握gethostname(),gethostbyname(),GetAdaptersInfo()等信息查询函数的使用。 二、实验设计 由实验内容可以知道: 1、编写程序能同时实现对多个域名的解析。比如在控制台输入:getip https://www.doczj.com/doc/ef17806619.html, https://www.doczj.com/doc/ef17806619.html,,能输出https://www.doczj.com/doc/ef17806619.html,和https://www.doczj.com/doc/ef17806619.html,对应的IP地址列表。 2、编写程序获取并输出本地主机的所有适配器的IP地址,子网掩码,默认网关,MAC 地址。 首先要了解一些基本的知识gethostname(),gethostbyname(),GetAdaptersInfo()等信息查询函数的基本知识gethostbyname()返回对应于给定主机名的包含主机名字和地址信息的hostent结构指针。结构的声明与gethostaddr()中一致。 之后要根据内容画出函数流程图

三、实验过程(包含实验结果) 1.在实验过程中调用GetAdaptersInfo()时,出现了undeclared identifier的报错,原因是没有包含其头文件,之后进行一些修改解决了问题. 2.实验结果 3.选择查看本机信息 四、讨论与分析 1.Winsock初始化的作用是什么? 答:使用winsock初始化可加载winsock编程的动态链接库。

分支与循环程序设计实验-报告

————————————————————————————————作者: ————————————————————————————————日期:

实验名称 分支与循环程序设计实验 指导教师 罗志祥 专业班级 光电1406 姓名 段昳晖 学号 U2014***** 联系电话 137******** 一、任务要求 1. 设有8bits 符号数X 存于外部RA M单元,按以下方式计算后的结果Y 也存于外部RAM 单元,请按要求编写完整程序。 264/2 106410 X X Y X X X X ?≥? =<

实验4 选择结构程序设计 一、实验目的 1.掌握C语言中逻辑量的表示和使用方法。 2.掌握if语句及switch语句的使用。 3.熟悉各种表达式作为if语句及switch语句的条件。 4.了解Turbo C程序的基本调试方法。 二、实验内容 1.验证性实验 (1)分析程序的运行结果。 ①运行下列程序,输入1-7之间的任意数字,观察程序的运行结果。 #include void main() { int week; printf("Input(1-7):"); scanf("%d",&week); switch(week) { case 1:printf("Mon.\n"); break; case 2:printf("Tue.\n"); break; case 3:printf("Wed.\n"); break; case 4:printf("Tur.\n"); break; case 5:printf("Fri.\n"); break; case 6:printf("Sat.\n"); break; case 7:printf("Sun.\n"); break; default:printf("The input is wrong!\n"); } } ②运行5次下列程序,输入的数据分别是1,2,3,4,5,请观察每次的运行结果,并根据结果分析原因。 #include void main() { int n,a=0,b=0,c=0,d=0,k=0; scanf("%d",&n); switch(n) { case 1:b++;break; case 2:c++; case 3:d++;break; case 4:k++; default:a++; } printf("%d,%d,%d,%d",a,b,c,d,n); } (2)输入x的不同值,以下程序将求一给定“y=f(x)”函数的值。

实验一TCP Socket API程序设计 一、预备知识 1.网络编程基本概念 网络上的计算机间的通讯,实质上是网络中不同主机上的程序之间的通讯。在互联网中使用IP地址来标识不同的主机,在网络协议中使用端口号来标识主机上不同进程,即使用(IP地址,端口号)二元组。 套接字(Socket)用于描述IP地址和端口,是一个通信链的句柄,通信时一个网络程序将要传输的一段信息写入它所在主机的Socket中,该Socket通过与网络接口卡相连的传输介质将这段信息发送到另一台主机的Socket中,以供其他程序使用。 图1-1 TCP通信流程 2.TCP通信流程 TCP程序是面向连接的,程序运行后,服务器一直处于监听状态,客户端与

服务器通信之前必须首先发起连接请求,由服务器接收请求并在双方之间建立连接后才可以互相通信。 二、实验目的 1.了解Winsock API编程原理; 2.掌握TCP Socket程序的编写; 3.了解C/S模式的特点; 4.学会解决实验中遇到的问题。 三、实验任务 使用Winsock API相关类实现TCP Socket通信程序,并能成功运行。 四、实验环境及工具 1. Windows2000/XP/7 2. Visual C++开发平台 3. Visual Studio2010 五、实验内容和步骤 参照《Visual C++网络编程教程》书中81页,TCP Socket API程序设计。 连接: void CChatClientDlg::OnConnect() { WSADATA wsd; //WSADATA结构 WSAStartup(MAKEWORD(2,2),&wsd); //加载协议,使用Winsock 2.2版 m_client = socket(AF_INET,SOCK_STREAM,0); //创建流式套接字 //服务器地址 sockaddr_in serveraddr; UpdateData(); if(ServerIP.IsBlank()) { AfxMessageBox("请指定服务器IP!"); return; } if(sPort.IsEmpty()) { AfxMessageBox("请指定端口!"); return; }

实验二 MATLAB 程序设计 一、 实验目的 1.掌握利用if 语句实现选择结构的方法。 2.掌握利用switch 语句实现多分支选择结构的方法。 3.掌握利用for 语句实现循环结构的方法。 4.掌握利用while 语句实现循环结构的方法。 5.掌握MATLAB 函数的编写及调试方法。 二、 实验的设备及条件 计算机一台(带有MATLAB7.0以上的软件环境)。 M 文件的编写: 启动MATLAB 后,点击File|New|M-File ,启动MATLAB 的程序编辑及调试器(Editor/Debugger ),编辑以下程序,点击File|Save 保存程序,注意文件名最好用英文字符。点击Debug|Run 运行程序,在命令窗口查看运行结果,程序如有错误则改正 三、 实验内容 1.编写求解方程02=++c bx ax 的根的函数(这个方程不一定为一元二次方程,因 c b a 、、的不同取值而定) ,这里应根据c b a 、、的不同取值分别处理,有输入参数提示,当0~,0,0===c b a 时应提示“为恒不等式!”。并输入几组典型值加以检验。 (提示:提示输入使用input 函数) 2.输入一个百分制成绩,要求输出成绩等级A+、A 、B 、C 、D 、E 。其中100分为A+,90分~99分为A ,80分~89分为B ,70分~79分为C ,60分~69分为D ,60分以下为E 。 要求:(1)用switch 语句实现。 (2)输入百分制成绩后要判断该成绩的合理性,对不合理的成绩应输出出错信息。 (提示:注意单元矩阵的用法) 3.数论中一个有趣的题目:任意一个正整数,若为偶数,则用2除之,若为奇数,则与3相乘再加上1。重复此过程,最终得到的结果为1。如: 2?1 3?10?5?16?8?4?2?1 6?3?10?5?16?8?4?2?1 运行下面的程序,按程序提示输入n=1,2,3,5,7等数来验证这一结论。 请为关键的Matlab 语句填写上相关注释,说明其含义或功能。 4. 的值,调用该函数后,

实验4 Matlab 程序设计1 实验目的: 1、 掌握建立和执行M 文件的方法; 2、 掌握实现选择结构的方法; 3、 掌握实现循环结构的方法。 实验内容: 1. 从键盘输入一个4位整数,按如下规则加密后输出。加密规则:每位数字都加上7,然 后用和除以10的余数取代该数字;再把第一位与第三位交换,第二位与第四位交换。 2. 求分段函数的值。 ,x x x x y x x x x x x x ?+- <≠-?=-+ ≤<≠≠??-- ?2226035605231且且及其他 用if 语句实现,分别输出x=-5,-3,0,1,2,2.5,3,5时的y 值。 3. 输入一个百分制成绩,要求输出成绩等级A 、B 、C 、D 、E ,其中90~100分为A ,80~89 分为B ,70~79分为C ,60~69分为D ,60分以下为E 。 要求: (1) 分别用if 语句和swich 语句实现。 (2) 输入百分制成绩后要判断该成绩的合理性,对不合理的成绩应输出出错信息。 4. 硅谷公司员工的工资计算方法如下: (1) 工作时数超过120小时者,超过部分加发15%; (2) 工作时数低于60小时者,扣发700元; (3) 其余按每小时84元计发。

试编程按输入的工号和该号员工的工时数,计算应发工资。 5.设计程序,完成两位数的加、减、乘、除四则运算。即:输入两个两位随机整数,再输 入一个运算符号,做相应的运算,并显示相应的结果。 6.建立5×6矩阵,要求输出矩阵的第n行元素。当n值超过矩阵的行数时,自动转为输 出矩阵的最后一行元素,并给出出错信息。 7.产生20个两位随机整数,输出其中小于平均数的偶数。 实验代码及实验结果 1. >> a=input('请输入一个四位整数:'); 请输入一个四位整数:9988 >> a1=fix(a/1000); >> a2=rem(fix(a/100),10); >> a3=rem(fix(a/10),10); >> a4=rem(a,10); >> a1=rem(a1+7,10); >> a2=rem(a2+7,10); >> a3=rem(a3+7,10); >> a4=rem(a4+7,10); >> b=a1;a1=a3;a3=b; >> b=a2;a2=a4;a4=b; >> c=a1*1000+a2*100+a3*10+a4; >> disp(c)

实验6 数组 一、实验目的 1、掌握一维数组和二维数组的定义、赋值和输入输出的方法; 2、掌握字符数组和字符串函数的使用; 3、掌握与数组有关的算法(特别是排序算法)。 二、实验内容和步骤 编程序并上机调试运行。 1、以下给定程序MODI1.C的功能是: 求一维数组a中所有元素的平均值, 结果保留两位小数。例如,当一维数组a中的元素为:10, 4, 2, 7, 3, 12, 5, 34, 5, 9时,程序的输出应为:The aver is: 9.10 程序中有两处错误,错误都在提示行:/***********found***********/的下面一行。请改正程序中的错误, 使它能得出正确的结果。 注意:程序中的其它地方请不要随意改动,不得增行或删行,也不得更改程序的结构! #include #include void main() { int a[10]={10,4,2,7,3,12,5,34,5,9}, i; /************found************/ /************found************/ s = a[0]; for ( i=1; i<10; i++) s += a[i]; aver = s / i; printf("The aver is: %.2f\n", aver); } 2、以下给定程序MODI1.C的功能是:求二维数组a中的最小值。 例如,当二维数组a中的元素为: 4 2 34 7 3 12 5 6 5 程序的输出应为:The min is: 2 。 程序中有两处错误,错误都在提示行:/***********found***********/的下面一行。请改正程序中的错误, 使它能得出正确的结果。 注意:程序中的其它地方请不要随意改动,不得增行或删行,也不得更改程序的结构! #include #include void main() { int a[3][3]={4,2,34,7,3,12,5,6,5}, i, j, min; clrscr();

实验四选择结构程序设计答案 实验时间:年月日 【实验步骤】 一、程序调试练习 1、写出下列程序的运行结果: (1)ex4_1.c #include void main() { char ch; printf("input a character:"); ch=getchar(); if(ch>='A' && ch<='Z') ch=ch+32; printf("%c\n",ch); } 具体要求: ①从键盘上输入a,分析程序运行的结果。 ②从键盘上输入A,分析程序运行的结果。 ③从键盘上输入5,分析程序运行的结果。 程序运行结果: ①a ②a ③5 (2)ex4_2.c #include void main() { int x,y,z; printf("input x,y,z"); scanf("%d,%d,%d",&x,&y,&z); if(x

②从键盘上给x、y、z分别输入3,5,2,分析程序运行的结果。 ③从键盘上给x、y、z分别输入-5,-3,2,分析程序运行的结果。 程序运行结果: ①z=2 ②z=3 ③z=0 (3)ex4_3.c #include main() { int x=1,a=0,b=0; switch(x) { case 0:b++; case 1:a++; case 2:a++;b++; } printf("a=%d,b=%d\n",a,b); } 程序运行结果: a=2,b=1 (4)ex4_4.c #include void main() { int x=1,y=0,a=0,b=0; switch(x) { case 1: switch(y) { case 0: a++; break; case 1: b++; break; } case 2: a++; b++; break; case 3: a++; b++; } printf("a=%d,b=%d\n",a,b); } 具体要求:

学生实验报告 (理工类) 课程名称: C#程序设计专业班级:M11计算机科学与技术(专转本)学生学号: XXXXXXXX 学生姓名: XXX 所属院部:信息技术学院指导教师: XXX 2012 — 2013学年第 1 学期 金陵科技学院教务处制

实验报告书写要求 实验报告原则上要求学生手写,要求书写工整。若因课程特点需打印的,标题采用四号黑体,正文采用小四号宋体,单倍行距。纸张一律采用A4的纸张。 实验报告书写说明 实验报告中实验目的和要求、实验仪器和设备、实验内容与过程、实验结果与分析这四项内容为必需项。教师可根据学科特点和实验具体要求增加项目。 填写注意事项 (1)细致观察,及时、准确、如实记录。 (2)准确说明,层次清晰。 (3)尽量采用专用术语来说明事物。 (4)外文、符号、公式要准确,应使用统一规定的名词和符号。 (5)应独立完成实验报告的书写,严禁抄袭、复印,一经发现,以零分论处。 实验报告批改说明 实验报告的批改要及时、认真、仔细,一律用红色笔批改。实验报告的批改成绩采用五级记分制或百分制,按《金陵科技学院课堂教学实施细则》中作业批阅成绩评定要求执行。 实验报告装订要求 实验批改完毕后,任课老师将每门课程的每个实验项目的实验报告以自然班为单位、按学号升序排列,装订成册,并附上一份该门课程的实验大纲。

实验项目名称:C#基础编程实验学时: 6 同组学生姓名:实验地点: A205 实验日期: 9月17日-9月24日实验成绩: 批改教师:批改时间:

实验1 C#基础编程 一、实验目的 1、熟悉Visual Studio .NET开发环境; 2、掌握C#应用程序的基本操作过程; 3、掌握C#的数据类型,运算符以及表达式的使用; 4、掌握分支和循环语句的使用方法; 5、掌握一维数组,二维数组及数组型数组的使用。 二、实验要求 (1)编写程序要规范、正确,上机调试过程和结果要有记录; (2)做完实验后给出本实验的实验报告。 三、实验设备、环境 安装有Visual Studio .NET软件。 四、实验步骤 1、分析题意; 2、根据题目要求,新建项目; 3、编写并输入相关的程序代码; 5、运行与调试项目; 6、保存项目。 五、实验内容 1、编写一个简单的控制台应用程序,打印一行文字(如你的姓名)。using System; using System.Collections.Generic; using System.Text; namespace Test1_1 { class Program { static void Main(string[] args) { Console.WriteLine("1121412016 张明星!"); Console.ReadLine(); } } } 2、编写一个简单的Windows应用程序,在标签中显示你的姓名。 Form窗体的代码: using System; using System.Collections.Generic;

程序设计》课程设计 姓名:王 学号:20100034 班级:软件工程00 班 指导教师:王会青 成绩: 2010年 6 月 实验一.构造可以使n 个城市连接的最小生成树 专业:__软件工程___ 班级:__软件姓名:_王___ 学号:_20100034 完成日期:_2010/6/26 ________ 一、【问题描述】给定一个地区的n 个城市间的距离网,用Prim 算法或Kruskal 算法建立最小生成树,并计算得到的最小生成树的代价。 1 城市间的道路网采用邻接矩阵表示,邻接矩阵的存储结构定义采用课本中给出的定义,若两个城市之间不存在道

路,则将相应边的权值设为自己定义的无穷大值。 2 显示出城市间道路网的邻接矩阵。 3 最小生成树中包括的边及其权值,并显示得到的最小生成树的总代价。 4 输入城市数、道路数→输入城市名→输入道路信息→执行Kruskal 算法→执行Prim 算法→输出最小生成树 二、【问题分析】 1. 抽象数据类型结构体数组的定义: #ifnd ef ADJACENCYMATRIXED// 防止该头文件被重复引用 #define ADJACENCYMATRIXED // 而引起的数据重复定义 #define INFINITY 32767 // 最大值∞ #define MAX_VERTEX_NUM 20 // 最大顶点个数 typedef int VRType; // 权值,即边的值 typedef char InfoType; // 附加信息的类型,后面使用时会定义成一个指针 typedef char VertexType[MAX_VERTEX_NUM]; // 顶点类型 typedef enum {DG=1, DN, UDG, UDN} GraphKind; //{ 有向图,有向网,无向图,无向网} typedef struct ArcCell { VRType adj; //VRType 是顶点关系类型。对无权图,用1 或0 表示相邻否;对带权图,则为权值类型。 InfoType*info; // 该弧关系信息的指针

《程序设计基础》 实验报告 学号:2016211990 姓名:王贯东 班级:16-计算机科学与技术-1班

学院:计算机与信息学院 实验五指针 1.实验目的要求 (1)掌握指针的概念,学会定义和使用指针变量。 (2)学会使用数组指针和指向数组的指针变量。 (3)学会使用字符串指针和指向字符串的指针变量。 (4)了解指向指针的指针的概念以及其使用方法。 (5)掌握指针、引用、数组做函数参数的传递机制。 (6)*学会使用指向函数的指针变量。 2.实验设备 Visual C++ 6.0 3.实验内容 (1)阅读下面程序,写出其运行结果。

<1> #include sub ( int x , int y , int *z ) { *z = y – x ; } void main( ) { int a,b,c; sub( 10 , 5 , &a ) ; sub( 7, a, &b ) ; sub( a, b, &c ) ; cout << a <<‘,’<< b <<‘,’<< c << endl ; } 解:输出-5,-12,-7 <2> #include #include void main()

{ int stre ( char[ ] ) ; char str [ 10 ] , *p = str ; gets ( p ) ; cout << stre ( p ) << endl ; } int stre ( char str[ ] ) { int num = 0 ; while( * ( str + num ) != ’\0’ ) num ++ ; return ( num ) ; } 解:题目库函数少了 。该正后,输入1234,输出4 (2)编写程序实现下列问题的求解。 (1)输入三个整数,按由小到大的顺序输出,然后将程序改为:输入三个字符串,按由小到大的顺序输出。 #include using namespace std; int turn (int *p1,int *p2)

实验三 分支程序设计 一、实验要求和目的 1.熟悉汇编语言程序设计结构; 2.熟悉汇编语言分支程序基本指令的使用方法; 3.掌握利用汇编语言实现单分支、双分支、多分支的程序设计方法。 二、软硬件环境 1.硬件环境:微机CPU 486以上,500MB 以上硬盘,32M 以上内存; 2.软件环境:装有MASM 5.0、DEBUG 、LINK 和EDIT 等应用程序。 三、实验涉及的主要知识单元 在实际应用中,经常根据一些条件来选择一条分支执行。汇编语言的条件判断主要是通过状态寄存器中的状态位、无符号数相减或有符号和相减而导致的结果来进行。下面就有符号数转移指令来了解在汇编语言程序设计方法。 四、实验内容与步骤 1.实验内容 (1)编写计算下面函数值的程序: ?? ? ??<-=>=0,10,00,1x x x y 设输入数据为X 、输出数据Y ,且皆为字节变量,使用Debug 查看X 、Y 两个变量 的数据 (2)以ARRAY 为首地址的内存单元中,存放5个8位的不带符号数,找出5个数中的最大数,并将结果存入RESULT 字节单元中。 2.实验步骤 a.实验流程图 (1)计算函数值的流程图

b.编写程序 (1)计算函数值的实验代码 DATA SEGMENT X DB 12 Y DB ? DATA ENDS STACK SEGMENT STACK'STACK' DB 100H DUP(?) STACK ENDS CODE SEGMENT ASSUME CS:CODE,DS:DATA,SS:STACK START: MOV AX,DATA MOV DS,AX MOV AL,XX CMP AL,0 ;把AX 与0比较 JGE BIGPR ;0≥AL 转入BIGPR MOV Y,0FFFFH ;0AL 则1=Y JMP EXIT EQUPR: MOV Y,0 ;0=AL 则0=Y EXIT: MOV AL,Y RET CODE ENDS END START

仲恺农业工程学院实验报告纸 计算机科学与工程(院)计算机科学与技术专业计111班1 组C语言程序设计课 实验4 选择结构程序设计 一、实验目的 一.实验目的 (1)了解C语言表示逻辑量的方法(以0代表“假”,以非0代表“真”)。 (2)学会正确使用逻辑运算符和逻辑表达式。 (3)熟练掌握if语句的使用(包括if语句的嵌套)。 (4)熟练掌握多分支选择语句——switch语句。 (5)结合程序掌握一些简单的算法。 (6)进一步学习调试程序的方法。 二、实验内容和步骤 程序1 写程序,输入x值,输出相应y值 程序:#include int main() { int x,y; scanf("%d",&x); if (x<1) { y=x; } else if (x<10) { y=2*x-1; } else

{ y=3*x-11; } printf ("x=%d,y=%d\n",x,y); return 0; 结果: } 程序2 程序: #include #include #define M 1000 int main() {

int i,k; printf("please input:",M); scanf("%d",&i); while (i>M) { printf("warning!\n",M); scanf("%d",&i); } k=sqrt(i); printf("the answer is%d\n",k); return 0; } 结果: 程序3 #include int main() { float score; char grade; printf("please input student's score:"); scanf("%f",&score); while(score>100||score<0) { printf("\n is wrong,please input again\n"); scanf("%f",&score); } switch((int)(score/10)) {

网络编程技术实验报告 一实验目的: 网络编程技术是计算机科学与技术专业、网络工程专业、软件工程专业的一门专业基础课程。本课程以Java技术为主讲授,Java语言是当前最流行的网络编程语言。本课程是一门实用性和综合运用性都很强的课程,实践教学环节是教学过程中必不可少的重要内容。通过实验,让学生熟悉JDK中的主要内容,掌握用JDK调试和运行程序的方法,掌握网络编程的基本思想和开发方法、面向对象编程的思想,JA V A中的基本方法和技术,能够熟练使用JA V A设计、编写程序,特别是基于TCP/IP的Socket 编程,并能运用这些知识方法完成C/S和B/S结构程序的设计工作。通过实验,提高学生使用Java语言程序设计开发的能力,提高应用面向对象技术分析和解决实际问题的能力,并在此基础上强化学生的实践意识、提高其分析问题、解决问题的能力以及动手能力和创新能力。 二实验要求 要求学生熟悉JDK中的主要内容,掌握用JDK调试和运行程序的方法,掌握网络编程的基本思想和开发方法、面向对象编程的思想,JAVA中的基本方法和技术,能够熟练使用JAVA设计、编写程序,特别是基于TCP/IP的Socket编程,并能运用这些知识方法完成C/S和B/S结构程序的设计工作。要注意培养学生良好的编程习惯,自始至终贯彻课程中所介绍的程序设计风格。为保证尽量在统一安排的上机时间内完成程序设计任务,学生应事先做问题分析,并做静态检查。学生应记录实验中所遇到的问题,并写出详细的实验报告。课前准备上机程序,上机认真调试,课后撰写实验报告,实验报告包括实验目的、实验内容、源程序、实验结果及分析。

. 实验一java基本语法 实验目的: 了解Java的数据类型,掌握各种变量的声明方式,理解运算符的优先级,掌握Java基本数据类型、运算符与表达式,掌握顺序结构、选择结构和循环结构语法的程序设计方法。 实验要求: 1、编写一个声明Java不同数据类型变量的程序。 2、编写使用不同选择结构的程序。 3、编写使用不同循环结构结构的程序。 实验内容: 1、编写一个声明Java不同数据类型变量的程序。 public class DataTypes { public static void main(String args[]) { byte b=127; short s=32767; int i=2147483647; long l=9223372036l;//为什么long表示的数比Int还小? char c='c'; float f=1.23F; double d=0.9E-3; boolean bool=true; System.out.println(" b="+b); System.out.println(" s="+s); System.out.println(" i="+i); System.out.println(" l="+l); System.out.println(" c="+c); System.out.println(" f="+f); System.out.println(" d="+d); System.out.println(" bool="+bool); }

实验四-答案--选择结构程序设计

实验四选择结构程序设计答案 实验时间:年月日【实验步骤】 一、程序调试练习 1、写出下列程序的运行结果: (1)ex4_1.c #include void main() { char ch; printf("input a character:"); ch=getchar(); if(ch>='A' && ch<='Z') ch=ch+32; printf("%c\n",ch); } 具体要求: ①从键盘上输入a,分析程序运行的结果。 ②从键盘上输入A,分析程序运行的结果。 ③从键盘上输入5,分析程序运行的结果。 程序运行结果: ①a ②a ③5 (2)ex4_2.c #include void main() { int x,y,z; printf("input x,y,z"); scanf("%d,%d,%d",&x,&y,&z); if(x

①从键盘上给x、y、z分别输入2,-1,2,分析程序运行的结果。 ②从键盘上给x、y、z分别输入3,5,2,分析程序运行的结果。 ③从键盘上给x、y、z分别输入-5,-3,2,分析程序运行的结果。 程序运行结果: ①z=2 ②z=3 ③z=0 (3)ex4_3.c #include main() { int x=1,a=0,b=0; switch(x) { case 0:b++; case 1:a++; case 2:a++;b++; } printf("a=%d,b=%d\n",a,b); } 程序运行结果: a=2,b=1 (4)ex4_4.c #include void main() { int x=1,y=0,a=0,b=0; switch(x) { case 1: switch(y) { case 0: a++; break; case 1: b++; break; } case 2: a++; b++; break; case 3: a++; b++;

【实验目的】 掌握基于多线程并发服务器的基本设计框架和实现方法。 【实验性质】 综合性实验 【实验器材与所需软件】 计算机、交换机、windows操作系统、java集成开发环境 【实验学时】 8学时 【实验内容】 实现一个多线程并发服务器(服务器功能自选),要求该服务器可以体现出同时为多个客户端服务的特性。 【实验过程与步骤】 实验设计并实现了一个基于多线程并发服务器的网络聊天室工具。 1,需求分析: 工具采用了Client/Server结构,将聊天室划分为两个子程序:客户端子程序、服务器端子程序。 ●客户端程序: 实现客户端与服务器端进行连接,并可与服务器端进行实时通讯。 ●服务器端: 实现建立与多个客户端程序之间的连接,管理连接并能够通过多线程技术同时与多个客户端进行实时通讯。 2,系统设计: 系统的设计中,客户端与服务器端的连接,通过TCP/IP网络建立,并依托Socket进行实时通讯。系统中,各个模块之间的关系如下图所示:

上图中,显示同一服务器,通过网络可以同时与多个客户端程序建立连接并实现实时通讯功能,通讯流程如下图所示: 根据图示,客户端与服务器之间通过Socket()进行实时通讯,通讯步骤是:服务器监听、客户端发出请求、服务器接受、建立连接、交互通讯、关闭连接。另外,由于聊天室工具必须实现多客户端同时连接通讯的要求,因此,在服务器端设计时考虑采用多线程技术,每个服务器拥有多个服务线程,每个线程负责与一个客户端进行连接通讯,从而达到一个服务器同时与多个客户端并发通讯的效果。 3,系统实现: 在网络聊天室的最终实现时,设计服务器类、服务器线程类、客户端类以及系统界面类: ●服务器类 Class Server: 主要负责管理系统中的服务器线程,通过线程管理与客户端之间的连接及通讯,是服务器的主要管理端。 ●服务器线程类 Class ServerThread: 线程类中,实现了具体的服务器与客户端之间一一对应的连接关系,并通过Socket与客户端进行实时通讯。 ●客户端类 Class Client:

相关主题
相关文档 最新文档