| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 4304 人关注过本帖
标题:求个VB思路
只看楼主 加入收藏
yuma
Rank: 12Rank: 12Rank: 12
来 自:银河系
等 级:贵宾
威 望:37
帖 子:1934
专家分:3012
注 册:2009-12-22
结帖率:89.13%
收藏
 问题点数:0 回复次数:43 
求个VB思路
已知:

张三 23
李四  26
王二 34
……

如何按年龄从小到大的顺序输出姓名?
搜索更多相关主题的帖子: 从小到大 输出 VB 姓名 思路 
2022-11-04 19:58
kissis
Rank: 2
等 级:论坛游民
帖 子:33
专家分:24
注 册:2022-8-21
收藏
得分:0 
order by 年龄
2022-11-05 09:10
cwa9958
Rank: 20Rank: 20Rank: 20Rank: 20Rank: 20
等 级:版主
威 望:76
帖 子:278
专家分:1357
注 册:2006-6-25
收藏
得分:0 
这要看你的数据结构是怎么样的,是数据库还是数组
2022-11-05 09:50
kings12333
Rank: 2
等 级:论坛游民
帖 子:114
专家分:66
注 册:2012-11-29
收藏
得分:0 
高手呢...
2022-11-05 16:33
yuma
Rank: 12Rank: 12Rank: 12
来 自:银河系
等 级:贵宾
威 望:37
帖 子:1934
专家分:3012
注 册:2009-12-22
收藏
得分:0 
回复 3楼 cwa9958
数组应该如何操作?

心生万象,万象皆程序!
本人计算机知识网:http://bbs.为防伸手党,本站已停止会员注册。
2022-11-05 18:49
风吹过b
Rank: 20Rank: 20Rank: 20Rank: 20Rank: 20
等 级:贵宾
威 望:364
帖 子:4947
专家分:30084
注 册:2008-10-15
收藏
得分:0 
数组,拆分为二个元素,
然后按年龄排序,不会写排序,就用 冒泡法 。

连 冒泡法 也不会的话,
拉一个 listbox ,开自动排序,
组合,年龄放前面,然后加到 listbox 中,再按顺序取出,分解,按原样组合。听说过这种的方法。

分解,有分隔符的,可以使用 split 函数
无无隔符的,如果年龄有规定长度的,使用 mid 和 right 函数
无规定长度的,如年龄有2位,有1位的,那么先right再判断。

组合,如果是数组,如split 分解出来的就是数组,可以使用 join 函数再组合
 否则使用 & 手动组合


授人于鱼,不如授人于渔
早已停用QQ了
2022-11-05 22:09
yuma
Rank: 12Rank: 12Rank: 12
来 自:银河系
等 级:贵宾
威 望:37
帖 子:1934
专家分:3012
注 册:2009-12-22
收藏
得分:0 
回复 6楼 风吹过b
我也想到过这个方法,用二维数组。

例:
a(1,1) = 张三      a(2,1) = 23
a(1,2) = 李四      a(2,2) = 26

这种,像坐标一样。

排序时,就是a(2,1)、a(2,2)排序。对应的姓名是:a(2-1,1)、a(2-1,2)

但有两个难题:

1、二维数组声明后,是无法增加数组的(这和一维数组不同,一维数组可临时增加数组)。比如遍历文件,存文件名和文件修改时期。
2、a(2,1)、a(2,2)不能赋值到其它变量中进行排序,要不然就对应不上a(1,1)、a(1,2)了。

应该怎么办?

[此贴子已经被作者于2022-11-6 05:03编辑过]


心生万象,万象皆程序!
本人计算机知识网:http://bbs.为防伸手党,本站已停止会员注册。
2022-11-05 23:09
风吹过b
Rank: 20Rank: 20Rank: 20Rank: 20Rank: 20
等 级:贵宾
威 望:364
帖 子:4947
专家分:30084
注 册:2008-10-15
收藏
得分:0 
那好办,使用结构体数组

程序代码:
Option Explicit
Private Type RYTYPE
    姓名 As String
    年龄 As Long
End Type

Dim a() As RYTYPE

Private Sub Command1_Click()

ReDim a(1)
a(1).姓名 = "张三"
a(1).年龄 = 23

ReDim Preserve a(2)
a(2).姓名 = "李四"
a(2).年龄 = 24

Cls
Print a(1).姓名 & a(1).年龄
Print a(2).姓名 & a(2).年龄

'比较后的交换,可以直接整个元素赋值
Dim at As RYTYPE
at = a(1)
a(1) = a(2)
a(2) = at

Print
Print a(1).姓名 & a(1).年龄
Print a(2).姓名 & a(2).年龄

End Sub


[此贴子已经被作者于2022-11-6 10:23编辑过]


授人于鱼,不如授人于渔
早已停用QQ了
2022-11-06 10:20
kings12333
Rank: 2
等 级:论坛游民
帖 子:114
专家分:66
注 册:2012-11-29
收藏
得分:0 
回复 8楼 风吹过b
版主,这样按年龄怎么排序。。
图片附件: 游客没有浏览图片的权限,请 登录注册
排序.txt (94 Bytes)
2022-11-06 11:18
yuma
Rank: 12Rank: 12Rank: 12
来 自:银河系
等 级:贵宾
威 望:37
帖 子:1934
专家分:3012
注 册:2009-12-22
收藏
得分:0 
'比较后的交换,可以直接整个元素赋值
Dim at As RYTYPE
at = a(1)
a(1) = a(2)
a(2) = at

这是什么意思,if 都不用的。

心生万象,万象皆程序!
本人计算机知识网:http://bbs.为防伸手党,本站已停止会员注册。
2022-11-06 18:19
快速回复:求个VB思路
数据加载中...
 
   



关于我们 | 广告合作 | 编程中国 | 清除Cookies | TOP | 手机版

编程中国 版权所有,并保留所有权利。
Powered by Discuz, Processed in 0.019273 second(s), 11 queries.
Copyright©2004-2024, BCCN.NET, All Rights Reserved