同济大学数据库-实验一答案
By Zhu Jing讲解实验一
1
0.
主窗体
主窗体MainForm 运行界面
2
项目解决方案资源管理器
主窗体主要属性设置:
IsMdiContainer为True(设置主窗
体为多文档界面容器);
WindowState为Maximized(运行时
最大化)
3
•主窗体代码:
Public Class MainForm
Private Sub 退出ToolStripMenuItem_Click(…) …Application.Exit()
End Sub
Private Sub 实验1ToolStripMenuItem_Click(…) …Dim f1 As New shiyan1()
f1.MdiParent = Me
f1.Show()
End Sub
Private Sub 实验2ToolStripMenuItem_Click(…) …Dim f2 As New shiyan2()
f2.MdiParent = Me
f2.Show()
End Sub
4
Private Sub 实验3ToolStripMenuItem_Click(…)…Dim f3 As New shiyan3()
f3.MdiParent = Me
f3.Show()
End Sub
Private Sub 实验4ToolStripMenuItem_Click(…) …Dim f4 As New shiyan4()
f4.MdiParent = Me
f4.Show()
End Sub
Private Sub 实验5ToolStripMenuItem_Click(...) …Dim f5 As New shiyan5()
f5.MdiParent = Me
f5.Show()
End Sub.
5
Private Sub 实验6ToolStripMenuItem_Click(…) …Dim f6 As New shiyan6()
f6.MdiParent = Me
f6.Show()
End Sub
Private Sub 实验7ToolStripMenuItem_Click(…) …Dim f7_1As New shiyan7_1()
f7_1.Show()
End Sub
Private Sub 实验8ToolStripMenuItem_Click(…) …Dim f8 As New shiyan8()
f8.MdiParent = Me
f8.Show()
End Sub
End Class
6
1. 实验1
:文本框练习
实验1 运行界面
7
•实验1代码:
Public Class shiyan1
Private Sub Button1_Click(…) …'隶书按钮
TextBox1.Font = New Font("隶书", 25,
FontStyle.Bold Or FontStyle.Italic)
End Sub
Private Sub Button2_Click(…) …'幼圆按钮
TextBox1.Font = New Font("幼圆", 18,
FontStyle.Italic Or FontStyle.Underline)End Sub
8
Private Sub Button3_Click(…) …'复制按钮
TextBox2.Text = TextBox1.SelectedTextTextBox2.Font = TextBox1.FontEnd Sub
End Class
9
2. 实验2
:求鸡和兔的个数
实验2 运行界面
10
实验2代码:
Public Class shiyan2
Private Sub TextBox2_KeyDown(…) …If e.KeyCode = Keys.Enter Then
Dim x, y As Integer 'x--鸡数,y--兔数If Not IsNumeric(TextBox1.Text.Trim) Then
MessageBox.Show("'头数'必须输入数字", "警告")TextBox1.Text = ""
TextBox3.Text = ""
Exit Sub
End If
11
If Not IsNumeric(TextBox2.Text.Trim) Then
MessageBox.Show("'脚数'必须输入数字", "警告")Me.TextBox2.Text = ""
Me.TextBox3.Text = ""
Exit Sub
End If
If Val(TextBox2.Text.trim) Mod 2 0 ThenMessageBox.Show("脚必须是双数", "警告")TextBox2.Focus()
Exit Sub
End If
12
x = Val(4 * TextBox1.Text -TextBox2.Text) / 2y = Val(TextBox2.Text -2 * TextBox1.Text) / 2If x
MsgBox("荒唐解,请重新输入!")
Me.TextBox3.Text = ""
Else
TextBox3.Text = x & " " & y
End If
End If
End Sub
End Class
13
3. 实验3:求解1元2次方程的根
实验3
运行界面
14
实验3代码:
Imports System.Math
Public Class shiyan3
Dim a, b, c, disc, realpart, imagpart As DoublePrivate Sub Button1_Click(…) …
'计算按钮
If String.IsNullOrEmpty(TextBox1.Text.Trim()) And String.IsNullOrEmpty(TextBox2.Text.Trim()) ThenMsgBox("请为a,b赋值")
Exit Sub
End If
If TextBox1.Text.Trim() = "" Then
TextBox1.Text = 0
End If
15
If TextBox2.Text.Trim() = "" Then
TextBox2.Text = 0
End If
If TextBox3.Text.Trim() = "" Then
TextBox3.Text = 0
End If
a = TextBox1.Text.Trim
b = TextBox2.Text.Trim
c = TextBox3.Text.Trim
If a = 0 Then 'a为0时
If b 0 Then 'a为0,b不为0时
TextBox4.Text = Round(-c / b, 2)
TextBox5.Text = ""
GroupBox1.Text = "不是2次方程,只有一个根"Else 'a,b都为0时
MsgBox("a,b不能同时为0")
End If 16
Else
disc = b * b -4 * a * c
If disc = 0 Then ' disc为0时
GroupBox1.Text = "有两个相同的实根"
TextBox4.Text = Round(-b / (2 * a), 2)
TextBox5.Text = Round(-b / (2 * a), 2)
ElseIf disc > 0 Then ' disc 大于0时
GroupBox1.Text = "有两个不同的实根"
TextBox4.Text =
Round((-b + Sqrt(disc)) / (2 * a), 2)
TextBox5.Text =
Round((-b -Sqrt(disc)) / (2 * a), 2)
Else ' disc小于0时
GroupBox1.Text = "有两个不同的虚根"
realpart = Round(-b / (2 * a), 2)
imagpart = Round(Sqrt(-disc) / (2 * a), 2)
17
TextBox4.Text = realpart & "+" & imagpart & "i"TextBox5.Text = realpart & "-" & imagpart & "i"End If
End If
End Sub
Private Sub Button2_Click(…) …
'结束按钮
Me.Close()
End Sub
End Class
18
4. 实验4:生成随机数
实验4
运行界面
19
实验4代码:
Imports System.Math
Public Class shiyan4
Dim a(9), i As Integer
Dim max, min As Integer
Dim avg As Decimal
Private Sub shiyan4_Load(…) …avg = 0
max = 0
min = 100
Randomize() '为随机函数产生不同的初始种子For i = 0 To 9
a(i) = Int(Rnd(i) * (100 -30 + 1) + 30)
'生成一个随机数,int是强制类型转换函数
20
If min > a(i) Then min = a(i)
If max
avg = avg + a(i)
Next
avg = Round(avg / 10, 2)
'求平均值,四舍五入到小数后2位
For i = 0 To 9
TextBox1.Text &= a(i) & " "
Next
TextBox1.Text &= vbCrLf & vbCrLf & "min=" & min
& " " & "max=" & max & " " & "avg=" & avg
'vbCrLf为:回车+换行
End Sub
End Class21
5. 实验5:判断回文数
实验5
运行界面
22
实验5代码设计:
a .首先为“实验一”项目添加一个模块module1,在其中定义一个判断回文数函数ISH。
Module Module1
'实验5中使用的函数
Function IsH(ByVal s As String) As Boolean
ish = True
For i As Integer = 1 To s.Length
If Mid(s, i, 1) Mid(s, s.Length -i + 1, 1) Thenish = False
Exit For
End If
Next
End Function
End Module23
b .其次为shiyan5窗体设计代码。
Public Class shiyan5
Private Sub TextBox1_KeyDown(…) …
If e.KeyCode = Keys.Enter Then '如果用户按了回车键If String.IsNullOrEmpty(TextBox1.Text.Trim()) Then Exit Sub '如果文本框没有输入东西,退出过程
End If
If Not IsNumeric(TextBox1.Text) Then
'必须输入数值数据
MsgBox("必须输入数值数据")
TextBox1.Text = ""
TextBox1.Focus()
Exit Sub
End If
24
If IsH(TextBox1.Text) Then
ListBox1.Items.Add(TextBox1.Text & "★")Else
ListBox1.Items.Add(TextBox1.Text)End If
TextBox1.Text = ""
End If
End Sub
End Class
25
6. 实验6:配置电脑
实验6
运行界面
26
实验6代码:
Public Class shiyan6
Private Sub Button1_Click(...) …
ListBox1.Items.Clear() '清除上次的选择'选择电脑品牌
If ComboBox1.Text.Trim.Length = 0 ThenMsgBox("请选择电脑品牌")
ComboBox1.Focus()
Exit Sub
Else
ListBox1.Items.Add(ComboBox1.Text)End If
27
'选择内存
If Not (RadioButton1.Checked Or
RadioButton2.Checked) Then
MsgBox("请选择内存")
Exit Sub
End If
If RadioButton1.Checked Then
ListBox1.Items.Add(RadioButton1.Text)End If
If RadioButton2.Checked Then
ListBox1.Items.Add(RadioButton2.Text)End If
'选择CPU
If Not (RadioButton3.Checked Or RadioButton4.Checked
Or RadioButton5.Checked) Then
28
MsgBox("请选择CPU")
Exit Sub
End If
If RadioButton3.Checked Then
ListBox1.Items.Add(RadioButton3.Text)End If
If RadioButton4.Checked Then
ListBox1.Items.Add(RadioButton4.Text)End If
If RadioButton5.Checked Then
ListBox1.Items.Add(RadioButton5.Text)End If
29
'选择其它设备
If CheckBox1.Checked Then
ListBox1.Items.Add(CheckBox1.Text)End If
If CheckBox2.Checked Then
ListBox1.Items.Add(CheckBox2.Text)End If
If CheckBox3.Checked Then
ListBox1.Items.Add(CheckBox3.Text)End If
End Sub
End Class
30
7. 实验7:窗体调用等
实验7—1 运行界面
1
31
实验7—1 运行界面
2
32
实验7—2 运行界面——
显示统计结果
33
实验7代码:
Imports System.Math
Public Class shiyan7_1
Dim a(9), maxx, minn, sum As Integer
Private Sub 退出ToolStripMenuItem_Click(…) …Me.Close()
End Sub
Private Sub 产生10个随机正整数ToolStripMenuItem_Click(…) …'产生10个随机数
ListBox1.Visible = True
删除最大数ToolStripMenuItem.Enabled = True删除最小数ToolStripMenuItem.Enabled = True
34
添加一个正整数ToolStripMenuItem.Enabled = True统计ToolStripMenuItem.Enabled = True
ListBox1.Items.Clear() '清除列表框中内容
Randomize()
Dim i As Integer
For i = 0 To 9 '产生1~100之间的10个随机数
a(i) = Int(Rnd() * 100 + 1)
ListBox1.Items.Add(a(i))
Next
End Sub
35
Private Sub 删除最小数ToolStripMenuItem_Click(…) …'寻找最小项
minn = 100
Dim i As Integer
For i = 0 To ListBox1.Items.Count -1
If minn > ListBox1.Items(i) Then
minn = ListBox1.Items(i)
End If
Next
ListBox1.Items.Remove(minn) '删除最小值
End Sub
Private Sub 删除最大数ToolStripMenuItem_Click(…) …'寻找最大项
maxx = 0
36
Dim i As Integer
For i = 0 To ListBox1.Items.Count -1
If maxx
maxx = ListBox1.Items(i)
End If
Next
ListBox1.Items.Remove(maxx) '删除最大值
End Sub
Private Sub 添加一个正整数ToolStripMenuItem_Click…'添加一个数
Dim temp As Integer
Randomize()
temp = CInt(Rnd() * 101)
ListBox1.Items.Add(temp)
End Sub
37
Private Sub 统计ToolStripMenuItem_Click(…) …maxx = 0
minn = 100
sum = 0
For i As Integer = 0 To ListBox1.Items.Count -1If minn > ListBox1.Items(i) Then
minn = ListBox1.Items(i)
End If
If maxx
maxx = ListBox1.Items(i)
End If
sum += ListBox1.Items(i)
Next
Dim f7_2 As New shiyan7_2
f7_2.TextBox1.Text = minn
38
f7_2.TextBox2.Text = maxx
f7_2.TextBox3.Text = Round(sum /
ListBox1.Items.Count, 2)
f7_2.ShowDialog()
End Sub
Private Sub shiyan7_1_Load(…) …
ListBox1.Visible = False
删除最大数ToolStripMenuItem.Enabled = False删除最小数ToolStripMenuItem.Enabled = False
添加一个正整数ToolStripMenuItem.Enabled = False统计ToolStripMenuItem.Enabled = False
End Sub
End Class
39
窗体shiyan7_2中代码:Public Class shiyan7_2
Private Sub Button1_Click(…) …‘返回按钮
Me.Close()
End Sub
End Class
40
8. 实验8:文件的打开与保存等
实验8
运行界面
41
42
实验8代码:
Public Class shiyan8
Private Sub Button1_Click(…) …
'打开文件按钮
OpenFileDialog1.Filter = "Text Files(*.txt)|*.txt|
all files(*.*)|*.*" '设置打开文件类型
If OpenFileDialog1.ShowDialog() =
Windows.Forms.DialogResult.OK Then'显示打开对话框,将文件内容赋给文本框
RichTextBox1.LoadFile(Me.OpenFileDialog1.FileName, RichTextBoxStreamType.PlainText)End If
End Sub
43
Private Sub Button2_Click(…) …
'保存文件按钮
SaveFileDialog1.Filter = "Text Files(*.txt)|*.txt|
all files(*.*)|*.*" '设置保存文件的类型
If SaveFileDialog1.ShowDialog() =
Windows.Forms.DialogResult.OK Then
'显示保存对话框,将文本框内容保存到给定文件RichTextBox1.SaveFile(Me.SaveFileDialog1.FileName, RichTextBoxStreamType.PlainText)End If
End Sub
Private Sub Button3_Click(…) …
‘"查找"按钮, 查找.NET
RichTextBox1.Focus()
Static j As Integer ' 静态变量保留前一次查找到的位置
44
j = InStr(j + 1, UCase(RichTextBox1.Text), ".NET")
'从原来找到的".NET"下一个字符起继续查找If j > 0 Then
RichTextBox1.SelectionStart = j -1 '显示包括该j字符
起的内容,SELECTTIONSTART开始位置从0算起
RichTextBox1.SelectionLength = 4
Else '找不到,j是0
MsgBox("找不到")
End If
End Sub
Private Sub Button4_Click(…) …
'结束按钮
Me.Close()
End Sub
End Class
45
谢谢哦!
本课件制作于2010年10月7
46日