VB.NET入门(五):数组,枚举与结构体

http://210.27.228.219/ComputerManage/PhyItem/phytwo.htm

大学计算机实验 (VB语言)
http://www.cnblogs.com/xiaoqun/

VB.NET入门

写复杂点的程序,就会觉得单个变量不好使用,用保存的数据太多了。还好VB.NET给我们提供了几种高级一点的用来存储数据的结构:数组,枚举与结构体

1.数组,多个数据类型相同的数据的集合,顺序排放。

代码
'5-1.vb
   
   
Class SimpleCnl Public Shared Sub Main() Dim i As Integer Dim allowedExtensions() As String = { " .jpg " , " bmp " , " gif " } Dim fileExtension As String Dim isAllowed As Boolean = False fileExtension = System.Console.ReadLine() For i = 0 To allowedExtensions.Length - 1 If allowedExtensions(i) = fileExtension.ToLower Then isAllowed = True Exit For End If Next If isAllowed Then System.Console.WriteLine( " 允许上传 " ) Else System.Console.WriteLine( " 文件类型不允许 " ) End If End Sub End Class

二维数组要复杂,但我们要搞明白的还是怎样定义,怎样初始化,怎样访问。有个问题要记住的Dim a(9),数组a的长度是10

2.枚举

枚举规定了数据的取值范围,用更有意义的名称来代表一个值

代码
'5-2.vb
   
   
Class SimpleCnl Public Enum CRUD Create = 100 Retrive Update Delete End Enum Public Shared Sub Main() Dim commandName As CRUD System.Console.WriteLine( " 选择要执行的操作CRUB:Create,Retrive,Update,Delete " ) commandName = System.Enum.Parse( GetType (CRUD), System.Console.ReadLine()) Select Case commandName Case CRUD.Create System.Console.WriteLine( " 增加记录 " ) Case CRUD.Retrive System.Console.WriteLine( " 检索记录 " ) Case CRUD.Update System.Console.WriteLine( " 更新记录 " ) Case CRUD.Delete System.Console.WriteLine( " 删除记录 " ) End Select End Sub End Class

3.结构体,多个变量的组合体,用来共同描述某一事物整体

 

代码
'5-3.vb 多项式相加
   
   
Class SimpleCnl Public Structure Term Dim coef As Integer ' 系数 Dim exp As Integer ' 指数 Sub New ( ByVal c As Integer , ByVal e As Integer ) coef = c exp = e End Sub End Structure Public Shared Sub Main() Dim polynomialA() As Term = { New Term( 1 , 0 ), New Term( 1 , 1 ), New Term( 1 , 2 )} Dim polynomialB() As Term = { New Term( 1 , 1 ), New Term( 1 , 4 )} Dim polynomialC(polynomialA.Length + polynomialB.Length) As Term Dim i, j, k As Integer i = 0 : j = 0 : k = 0 Do While i < polynomialA.Length And j < polynomialB.Length If polynomialA(i).exp < polynomialB(j).exp Then polynomialC(k).exp = polynomialA(i).exp polynomialC(k).coef = polynomialA(i).coef i += 1 ElseIf polynomialA(i).exp > polynomialB(j).exp Then polynomialC(k).exp = polynomialB(j).exp polynomialC(k).coef = polynomialB(j).coef j += 1 Else polynomialC(k).exp = polynomialA(i).exp polynomialC(k).coef = polynomialA(i).coef + polynomialB(j).coef i += 1 j += 1 End If k += 1 Loop If i = polynomialA.Length Then Do While j < polynomialB.Length polynomialC(k).exp = polynomialB(j).exp polynomialC(k).coef = polynomialB(j).coef j += 1 k += 1 Loop Else Do While i < polynomialA.Length polynomialC(k).exp = polynomialA(i).exp polynomialC(k).coef = polynomialA(i).coef i += 1 k += 1 Loop End If ReDim Preserve polynomialC(k - 1 )
    '输出相加后得到的多项式 k = 0 Do System.Console.Write( " {0}x^{1} + " , polynomialC(k).coef, polynomialC(k).exp) k += 1 Loop Until k = polynomialC.Length - 1 System.Console.Write( " {0}x^{1} " , polynomialC(k).coef, polynomialC(k).exp) End Sub End Class

VB6结构体

 Option Explicit

Private Type lk                            '定义结构体 这个要写到外面
  x As Long
  y As Long
  z As Long
End Type


Sub aldkjf()
Dim p() As lk                              '定义动态数组
Dim a As Long, b As Long, c As Long, d As Long
For a = 2 To 98                            'a循环从2到98
  For b = 2 To 98                          'b循环从2到98
      c = a * b
      If c > 40 Then                             '当c大于40时,给动态数组赋值
        ReDim Preserve p(d)
        p(d).x = a
        p(d).y = b
        p(d).z = c
        MsgBox p(d).x & p(d).y & p(d).z             '显示动态数组中的3个元素
        d = d + 1
      End If  '记得加 END IF
  Next
Next
End Sub

Private Sub Command1_Click()'需要一个事件来触发一下
Call aldkjf
End Sub

 

这三种结构,实际使用的都很多,要想用的好,就得多练。

数组与结构体的区别

他们都是数据结构,不过数组只能存放同样类型的数据,而结构体则能够存放不同类型的数据,结构体里面也可以有结构体。
数组是一组同类型的数据集合,形象简单点你可以认为是数学的数列;
而结构体是一类特殊的数据类型,由自己定义,比如说我们做一个钟的类,我们定义钟的数据结构,就可以用结构体定义三个整型变量(分、时、秒)作为钟的数据结构,三个整型变量作为一个结构体。
数组线性的 只能储存一种类型的数据
如 int a[10]
结构体能储存多种类型的数据 如 
struct tree{
int i;
char a[10];
double t;
}a;


  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 2
    评论
要构建结构体数组中的结构体数组元素,你可以按照以下步骤进行: 1. 定义结构体:首先,你需要定义一个结构体,包含你所需的字段和属性。例如,假设你要构建一个学生信息的结构体,可以包含姓名、年龄和成绩等字段。 2. 声明结构体数组:在你的代码中,声明一个结构体数组,并指定数组的大小。例如,你可以声明一个包含10个学生信息的结构体数组。 3. 初始化结构体数组元素:使用循环语句遍历结构体数组,并为每个元素赋值。你可以通过访问结构体的字段来为每个元素赋予相应的值。 下面是一个示例代码,演示了如何构建结构体数组中的结构体数组元素: ```c #include <stdio.h> // 定义学生信息的结构体 struct Student { char name[20]; int age; float score; }; int main() { // 声明包含3个学生信息的结构体数组 struct Student students; // 初始化结构体数组元素 for (int i = 0; i < 3; i++) { printf("请输入第%d个学生的姓名:", i + 1); scanf("%s", students[i].name); printf("请输入第%d个学生的年龄:", i + 1); scanf("%d", &students[i].age); printf("请输入第%d个学生的成绩:", i + 1); scanf("%f", &students[i].score); } // 打印结构体数组元素 for (int i = 0; i < 3; i++) { printf("第%d个学生的姓名:%s\n", i + 1, students[i].name); printf("第%d个学生的年龄:%d\n", i + 1, students[i].age); printf("第%d个学生的成绩:%.2f\n", i + 1, students[i].score); } return 0; } ```

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值