vb简单程序··谢谢啊

1 从键盘上输入一个字符串,假定该字符串的长度不超过30。统计该字符串中所有十进制数字字符的个数。
2 编写程序,其功能是输入一个字符串,将其中的所有数字删除、输出改动后的字符串及其长度,例如输入ab123df345ADFx193,输出为abdfADFx 8。
3 自定义一个职工数据类型,包含职工号、姓名和工资。声明一个职工类型的动态数组。输入n个职工的
数据,要求按工资递增的顺序排序,并显示排序的结果,每个职工一行显示三个项信息。
4 使用自定义数据类型输入学生的姓名、学号、语文分数、英语分数、数学分数,计算每名学生的平均成绩,并显示各科成绩。
5 有一个已安排好序的数组,从键盘上输入一个数,要求按原来排序的规律将它插入到数组中。
6 求一个3X3矩阵对角线元素之和。
7 输入一行文字,统计其中大写字母,小写字母、空格、数字及其他字符各有多少个?

'建立8个command1至8
Private Type WorkerInf
GH As String
Name As String
GZ As Single
End Type

Private Type StudentInf
Name As String
Numb As String
Chin As Single
Engl As Single
Math As Single
End Type

Dim A As String, B As String
Dim I As Integer, L As Integer, M As Integer

Private Sub Command1_Click()
Cls
A = InputBox("输入字符串", "字符串", "di1o.s430rfikr8")
Print "输入的字符串是:" + A
L = 0
For I = 1 To Len(A)
If Asc(Mid(A, I, 1)) > 47 And Asc(Mid(A, I, 1)) < 58 Then
L = L + 1
End If
Next
Print "字符串中所有十进制字符的个数是:" + Str(L) + "个"
End Sub

Private Sub Command2_Click()
Cls
A = InputBox("输入字符串", "字符串", "di1o.s430rfikr8")
Print "输入的字符串是:"; A
B = ""
L = 0
For I = 1 To Len(A)
If Asc(Mid(A, I, 1)) < 47 Or Asc(Mid(A, I, 1)) > 58 Then
B = B + Mid(A, I, 1)
L = L + 1
End If
Next
Print "去掉字符串中所有十进制字符后剩余的字符串是:" + B + "长度:" + Str(L)
End Sub

Private Sub Command3_Click()
Cls
Dim Worker(100) As WorkerInf
I = 0
Do
I = I + 1
Worker(I).GH = InputBox("输入工号(结束--回车)", "第" + Str(I) + "位职工")
If Worker(I).GH = "" Then Exit Do
Worker(I).Name = InputBox("输入名字", "第" + Str(I) + "位职工", "0000")
Worker(I).GZ = InputBox("输入工资", "第" + Str(I) + "位职工", 0)
Print I, Worker(I).GH, Worker(I).Name, Worker(I).GZ
Loop
I = I - 1
If I > 0 Then
For L = 1 To I
For M = L To I
If Worker(L).GZ > Worker(M).GZ Then
Worker(I + 1).GH = Worker(M).GH
Worker(I + 1).Name = Worker(M).Name
Worker(I + 1).GZ = Worker(M).GZ
Worker(M).GH = Worker(L).GH
Worker(M).Name = Worker(L).Name
Worker(M).GZ = Worker(L).GZ
Worker(L).GH = Worker(I + 1).GH
Worker(L).Name = Worker(I + 1).Name
Worker(L).GZ = Worker(I + 1).GZ
End If
Next
Next
Print 序号, 工号, 姓名, 工资
For L = 1 To I
Print L, Worker(L).GH, Worker(L).Name, Worker(L).GZ
Next
End If
End Sub

Private Sub Command4_Click()
Cls
Dim Student(100) As StudentInf
I = 0
Do
I = I + 1
Student(I).Name = InputBox("输入姓名(结束--回车)", "第" + Str(I) + "位同学")
If Student(I).Name = "" Then Exit Do
Student(I).Numb = InputBox("输入学号", "第" + Str(I) + "位同学", "0001")
Student(I).Chin = InputBox("输入语文成绩", "第" + Str(I) + "位同学", 100)
Student(I).Engl = InputBox("输入英语成绩", "第" + Str(I) + "位同学", 100)
Student(I).Math = InputBox("输入数学成绩", "第" + Str(I) + "位同学", 100)
Print I, Student(I).Name, Student(I).Numb, Student(I).Chin, Student(I).Engl, Student(I).Math
Loop
I = I - 1
If I > 0 Then
Cls
Print 序号, 姓名, 学号, 语文成绩, 英语成绩, 数学成绩, 平均成绩
For L = 1 To I
Print L, Student(L).Name, Student(L).Numb, Student(L).Chin, Student(L).Engl, Student(L).Math, Format((Student(L).Chin + Student(L).Engl + Student(L).Math) / 3, "#.0")
Next
End If
End Sub

Private Sub Command5_Click()
Cls
Dim Shzu(100) As Single
Dim Sz As Boolean
I = 0
Do
I = I + 1
A = InputBox("第" + Str(I) + "个元素(结束--回车)", "输入数组")
If A = "" Then Exit Do
For L = 1 To Len(A)
If (Asc(Mid(A, L, 1)) < 47 Or Asc(Mid(A, L, 1)) > 58) And Asc(Mid(A, L, 1)) <> 46 And Asc(Mid(A, 1, 1)) <> 45 Then
I = I - 1
Sz = False
Exit For
Else
Sz = True
End If
Next
If Sz = True Then
Shzu(I) = Val(A)
Print Shzu(I);
End If
Loop
I = I - 1
If I > 0 Then
Cls
For L = 1 To I
For M = L To I
If Shzu(M) < Shzu(L) Then
Shzu(I + 1) = Shzu(M)
Shzu(M) = Shzu(L)
Shzu(L) = Shzu(I + 1)
End If
Next
Print Shzu(L);
Next
Print
Do
B = InputBox("一个任意数字(结束--回车)", "输入一个插入数")
If B = "" Then Exit Do
For L = 1 To Len(B)
If (Asc(Mid(B, L, 1)) < 47 Or Asc(Mid(B, L, 1)) > 58) And Asc(Mid(B, L, 1)) <> 46 And Asc(Mid(B, 1, 1)) <> 45 Then
Sz = False
Exit For
Else
Sz = True
End If
Next
If Sz = True Then
Shzu(I + 1) = Val(B)
For L = 1 To I
If Shzu(L) > Shzu(I + 1) Then Exit For
Next
For M = 1 To L - 1
Print Shzu(M);
Next
Print "("; Shzu(I + 1); ")";
If L < I + 1 Then
For M = L To I
Print Shzu(M);
Next
End If
Print
End If
Loop
End If
End Sub

Private Sub Command6_Click()
Cls
Dim Juzhen(1 To 3, 1 To 3) As Single
Dim Sz As Boolean
Dim Sum As Single
For I = 1 To 3
For L = 1 To 3
Do
A = InputBox("第" + Str(I) + "行,第" + Str(L) + "列元素", "输入3*3矩阵", 0)
If A <> "" Then
For M = 1 To Len(A)
If (Asc(Mid(A, M, 1)) > 47 And Asc(Mid(A, M, 1)) < 58) Or Asc(Mid(A, M, 1)) = 46 Or Asc(Mid(A, 1, 1)) = 45 Then
Sz = True
Else
Sz = False
Exit For
End If
Next
If Sz = True Then Exit Do
End If
Loop
Juzhen(I, L) = Val(A)
Print Juzhen(I, L);
Next
Print
Next
Sum = 0
For I = 1 To 3
For L = 1 To 3
If I + L = 4 Or I = L Then
Sum = Sum + Juzhen(I, L)
End If
Next
Next
Print "对角线元素之和是:"; Sum
End Sub

Private Sub Command7_Click()
Cls
Dim N As Byte, O As Byte, P As Byte
A = InputBox("输入字符串", "字符串", "di67bYnytUTnb tyT vbhj yuig1oUYGYUGF.s43 0rUYYfikr8")
Print "输入字符串是:" + A
L = 0
M = 0
N = 0
O = 0
P = 0
For I = 1 To Len(A)
If Asc(Mid(A, I, 1)) >= 65 And Asc(Mid(A, I, 1)) <= 90 Then
L = L + 1
ElseIf Asc(Mid(A, I, 1)) >= 97 And Asc(Mid(A, I, 1)) <= 122 Then
M = M + 1
ElseIf Asc(Mid(A, I, 1)) = 32 Then
N = N + 1
ElseIf Asc(Mid(A, I, 1)) > 47 And Asc(Mid(A, I, 1)) < 58 Then
O = O + 1
Else
P = P + 1
End If
Next
Print "字符串总长度", "大写字符个数", "小写字符个数", "空格个数", "十进制字符数", "其它字符数"
Print Len(A), L, M, N, O, P
End Sub

Private Sub Command8_Click()
End
End Sub

Private Sub Form_Load()
Form1.Width = 9000
Form1.Height = 6000
Form1.AutoRedraw = True
Print " 请选择题目:"
Print
Print "1 从键盘上输入一个字符串,假定该字符串的长度不超过30。统计该字符串中所有十进制数字字符的个数。 "
Print
Print "2 编写程序,其功能是输入一个字符串,将其中的所有数字删除、输出改动后的字符串及其长度,"
Print " 例如输入ab123df345ADFx193,输出为abdfADFx 8。"
Print
Print "3 自定义一个职工数据类型,包含职工号、姓名和工资。声明一个职工类型的动态数组。输入n个职工的"
Print " 数据,要求按工资递增的顺序排序,并显示排序的结果,每个职工一行显示三个项信息。"
Print
Print "4 使用自定义数据类型输入学生的姓名、学号、语文分数、英语分数、数学分数,计算每名学生的平均成绩,"
Print "并显示各科成绩。"
Print
Print "5 有一个已安排好序的数组,从键盘上输入一个数,要求按原来排序的规律将它插入到数组中。"
Print
Print "6 求一个3X3矩阵对角线元素之和?"
Print
Print "7 输入一行文字,统计其中大写字母,小写字母、空格、数字及其他字符各有多少个?"
Command1.Caption = "第一题"
Command2.Caption = "第二题"
Command3.Caption = "第三题"
Command4.Caption = "第四题"
Command5.Caption = "第五题"
Command6.Caption = "第六题"
Command7.Caption = "第七题"
Command8.Caption = "退出"
End Sub
'已经运行过
温馨提示:答案为网友推荐,仅供参考
第1个回答  2008-05-06
正则表达式可完成多数工作。