VB.NET开发技术实验指导书
aComputerBook = New ComputerBook(txtName.Text, _ Val(txtPrice.Text), Val(txtNum.Text))
txtSum.Text = String.Format(\
txtDiscount.Text = String.Format(\ txtPayment.Text = String.Format(\End If
(7)在类模块中添加其类TeachingBook、EnglishBook类。 (8)在“计算”按钮中添加对这两个类的处理代码。
练习2:学生管理
在本练习中,我们将使用一个数组列表ArrayList保存类的实例引用。另外,还将创建一个类Student,Student类中包含有属性:学号、姓名、系别、数学成绩、语文成绩、英语成绩,用于计算总分数的方法Sum,计算平均成绩的方法Avg。本项目将使用数组列表和类以实现对学生的学习成绩进行管理。
(1) 项目Ch04Ex2的最终运行结果如图3-2所示。
图3-2 最终运行结果
(2)在窗体添加如图3-2控件所示的控件。
(3)向项目中添加一个名为Student的类,并添加上述属性和方法。 (4)在窗体代码编辑器中添加一个数组列表ArrayList,并实例化。 (5)为按钮“添加学生信息”添加Click事件,在该事件处理程序中实例化一个Student类,并添加到ArrayList中。
StudentInfoList.Add(New Student(txtID.Text, txtName.Text, txtDepartment.Text, _ txtMathScore.Text, txtChineseScore.Text, txtEnglisgScore.Text))
(6)为按钮“浏览学生信息”编写Click事件处理程序。该事件处理程序只需要遍厉ArrayList中每个Student类实例,并访问其中的有关属性,最后在文本框中进行显示。
(7)为其它按钮编写实现其功能的代码。
2
VB.NET开发技术实验指导书
实验四 使用VB.NET类编程
一、 实验目的与要求
1.熟练掌握String类和Date类的使用。
2.灵活应用MessageBox类实现不同格式的消息对话框显示。 3.掌握堆栈操作的编程方法。
二、实验内容
练习1:使用String类的方法
声明一个String实例,然后调用String类中的特性和方法完成以下功能:获取第6个位置上的字符、返回实例中第1次出现字符y的位置、获取该String实例的长度、将该实例中字符转换成大写字母、返回从第5个开始的10个字符、将实例中的字符串“for”替换为“from”,重新创建一个String实例,然后对两个String实例进行比较。
Option Strict On Dim i As Integer
Dim Tem As String = \ Console.WriteLine(\中第6个位置上的字符为:\ Console.WriteLine(\中包含的字符串为:\
Console.WriteLine(\中第1次出现字符y的位置是:\ Console.WriteLine(\字符串Tem的长度为:\
Console.WriteLine(\将Tem中的所有字符全部转换成大写字母为:\ Console.WriteLine(\以第5个字符开始的10字符为:\ Dim Met As String = \ Console.WriteLine(\中包含的字符串为:\ If Tem.Equals(Met) = True Then
Console.WriteLine(\两个字符串相等!\ Else
Console.WriteLine(\两个字符串不相等!\ End If
Console.WriteLine(\被替换后的Tem中包含的字符串为:\
将上述语句运行后,其结果如下:
Tem中第6个位置上的字符为:i
Tem中包含的字符串为:especially for those searching for a purpose Tem中第1次出现字符y的位置是:10 字符串Tem的长度为:44
将Tem中的所有字符全部转换成大写字母为:ESPECIALLY FOR THOSE SEARCHING FOR A PURPOSE
以第5个字符开始的10字符为:ially for
Met中包含的字符串为:mysterious and complicated force 两个字符串不相等!
被替换后的Tem中包含的字符串为:especially from those searching from a purpose
3
VB.NET开发技术实验指导书
练习2:使用不同的日期格式显示日期
创建两个指定日期的DateTime实例和一个TimeSpan类的实例,以不同的格式输出DateTime实例,最后比较两个DateTime实例,并用TimeSpan实例返回他们相差多少小时。
Dim time1 As DateTime = New DateTime(1998, 9, 15) Dim time2 As DateTime = New DateTime(1999, 10, 7) Dim time_dif As TimeSpan
Console.WriteLine(\以'dddd,MMM dd,yyyy'格式输出time1为:\& time1.ToString(\dd,yyyy\
Console.WriteLine(\以'MMMM yy'格式输出time2为:\
Console.WriteLine(\以'MM/dd/yy h:mm:ss tt'格式输出time1为:\& time1.ToString(\ h:mm:ss tt\
Dim Bool As Integer
Bool = DateTime.Compare(time1, time2) If Bool < 0 Then
Console.WriteLine(\小于time2\ElseIf Bool > 0 Then
Console.WriteLine(\大于time2\Else
Console.WriteLine(\等于time2\End If
time_dif = time2.Subtract(time1)
Console.WriteLine(\与time1之间相差\天\Console.WriteLine(\与time1之间相差\小时\
将上述语句运行后,其结果如下:
以'dddd,MMM dd,yyyy'格式输出time1为:星期二,九月 15,1998 以'MMMM yy'格式输出time2为:十月 99
以'MM/dd/yy h:mm:ss tt'格式输出time1为:09-15-98 12:00:00 上午 time1小于time2
time2与time1之间相差387天 time2与time1之间相差9288小时
练习3:使用MessageBox类创建消息对话框
使用MessageBox类创建一个消息对话框,在该对话框中显示“终止”、“重试”和“忽略”3个按钮,并且要求显示的图标为
Imports System.Windows.Forms Module Module1 Sub Main()
Dim DiagResult As DialogResult
DiagResult = MessageBox.Show(\显示消息对话框!\请选择按钮\
MessageBoxButtons.AbortRetryIgnore, MessageBoxIcon.Exclamation, _ MessageBoxDefaultButton.Button3) Select Case DiagResult Case DialogResult.Abort
。
4
VB.NET开发技术实验指导书
Console.WriteLine(\用户单击了【终止】按钮!\ Case DialogResult.Retry
Console.WriteLine(\用户单击了【重试】按钮!\ Case Else
Console.WriteLine(\用户单击了【忽略】按钮!\ End Select Console.ReadLine() End Sub End Module
将上述语句运行后,首先弹出如图4-1所示的消息对话框,当选择一个按钮后,它将输出一条对应的消息。例如,单击【重试】按钮后,将输出下列信息:
用户单击了【重试】按钮!
图4-1 有图标和3个按钮的消息对话框
练习4:运用队列和堆栈
有一个String类实例,其值为“just how the doomed man chose to spend his last”,该实例中有10个单词。首先用Split方法将这些单词赋予一个String数组,然后将这个数组的各元素作为队列的元素和堆栈的元素。
Imports System.Collections.Queue Imports System.Collections.Stack
Dim ZT As String = \ Dim ZFU() As String ZFU = ZT.Split(\ Dim i As Integer
Console.Write(\显示String数组中的元素:\ For i = 0 To ZFU.Length - 1 If i = 0 Then
Console.Write(ZFU(i)) Else
Console.Write(Space(2) & ZFU(i)) End If Next i
Console.WriteLine() Dim que As New Queue Dim sta As New Stack
'将数组中的元素添加到que队列 For i = 0 To ZFU.Length - 1 que.Enqueue(ZFU(i))
5
VB.NET开发技术实验指导书
Next i
'将数组中的元素压入堆栈sta For i = 0 To ZFU.Length - 1 sta.Push(ZFU(i)) Next i
Console.WriteLine(\删除的que队列的顶部元素是:\ Console.WriteLine(\删除的sta堆栈的栈顶元素是:\
上述语句的倒数第2行表示从队列中返回队顶元素并将其删除,最后一行表示从堆栈中返回栈顶元素并将其删除。将上述语句运行后,从其结果能够看出队列和堆栈两种存储结构的不同,结果如下:
显示String数组中的元素:just how the doomed man chose to spend his last 删除的que队列的顶部元素是:just 删除的sta堆栈的栈顶元素是:last
6