永发信息网

VB题目 源码

答案:2  悬赏:10  手机版
解决时间 2021-05-06 21:52
请不要嫌我说得啰嗦,这也是为了节约您的时间:
设计一个VB6小程序,在文本框输入或粘贴一段数字,有的数字后面带括号,且无论该小括号与前面的数字有多远,即使有换行,小括号内的数字都属于左边离它最近的那串数字的次数,而数字后面没有小括号的要被视作有小括号,只不过里面的数字是1而已。注意小括号为英文输入法的小括号(),不是中文输入法的(),同时分开数字的逗号也是英文输入法下的。点击按钮后将所有数字的次数计算出来,生成.txt格式的文本弹出(即使用Shell "C:\WINDOWS\NOTEPAD.EXE  " & App.Path & "\数字总次数.txt", 1),在文本内,数字的次数按从高到低顺序排列,次数一样的列在一起。下面的举例包含上面所说的所有情况:
2(6),08(4),15(3),9(2),36(说明:本列数字小括号内的数字全部紧跟左侧数字,2有6次,0和8                          有4次,1和5都是3次,9是2次,3与6都是1次,7没出现)
9 (8),1  (7),23458  (5),0(4),6(说明:本列数字与次数有空格)
3(9),48(8),6
(7),5
(6),09(5),1(4),2(2)(说明:本列有换行,如6有7次,5有6次)
169(6),045(5),2(3),38(2)
则最终结果,在弹出的.txt文件中显示:
9(21),1(20),58(19),04(18),3(17),2(16),6(15),7(0),
注意上面的7没有出现,所以次数是0次,要求自己验证通过!不要错误的还发!!万分感谢。如果难以实现,我可以输入得规范些,如将1次的也带括号,前面的数字与后面的括号可以没有空格,但是换行是必要的。
最佳答案

Option Explicit


Private Type Number
    Nfig As String
    Nnum As Integer
End Type


Private s As String
Private a(0 To 9) As Number


Private Sub Command1_Click()
    Dim num As Integer
    Dim i, j, k As Integer
    Dim t, fig As String
   
    For i = 0 To 9
    a(i).Nfig = i
    a(i).Nnum = 0
    Next i
   
    s = Text1.Text
    i = 0
    Do While i < Len(s)
    i = i + 1
    t = Mid(s, i, 1)
    If IsNumeric(t) Then
    num = 1
    j = i
    Do
    i = i + 1
    t = Mid(s, i, 1)
    Loop Until Not (IsNumeric(t))
    fig = Mid(s, j, i - j)
    Do While Not (IsNumeric(t)) And t <> "(" And i <= Len(s)
    i = i + 1
    t = Mid(s, i, 1)
    Loop
    If t = "(" Then
    i = i + 1
    j = i
    t = Mid(s, i, 1)
    Do While t <> ")"
    i = i + 1
    t = Mid(s, i, 1)
    Loop
    num = Val(Mid(s, j, i - j))
    Else
    i = i - 1
    End If
    j = 1
    Do
    k = Val(Mid(fig, j, 1))
    a(k).Nnum = a(k).Nnum + num
    j = j + 1
    Loop Until j > Len(fig)
    End If
    Loop
   
    For i = 0 To 8
    For j = i To 9
    If a(i).Nnum < a(j).Nnum Then
    fig = a(i).Nfig
    num = a(i).Nnum
    a(i).Nfig = a(j).Nfig
    a(i).Nnum = a(j).Nnum
    a(j).Nfig = fig
    a(j).Nnum = num
    End If
    Next j
    Next i
    num = -1
    j = -1
    For i = 0 To 9
    If a(i).Nnum = num Then
    a(j).Nfig = a(j).Nfig + a(i).Nfig
    Else
    num = a(i).Nnum
    j = j + 1
    a(j).Nfig = a(i).Nfig
    a(j).Nnum = num
    End If
    Next i
   
    Dim FileNum As Integer
   
    FileNum = FreeFile
    Open App.Path & "\数字总次数.txt" For Output As FileNum
   
    For i = 0 To j
    t = a(i).Nfig + "(" + CStr(a(i).Nnum) + "),"
    Print #FileNum, t;
    Next i
   
    Close FileNum
    Shell "C:\WINDOWS\NOTEPAD.EXE  " & App.Path & "\数字总次数.txt", vbNormalFocus
End Sub

全部回答
上甲壳虫技术论坛看看吧
我要举报
如以上问答信息为低俗、色情、不良、暴力、侵权、涉及违法等信息,可以点下面链接进行举报!
大家都在看
1978年6月24日出生的是什么星座
工作简历写在电脑上 还是自己写
帮忙看图娥眉9级多少攻击,??
现在网上有没有一款像QQ空间动感视频制作软件
为什么网吧网速那么会
永财副食品贸易商行我想知道这个在什么地方
死神碎蜂斩魄刀的能力是什么?
所谓的爱可以挽回吗?
劲舞和劲舞2那个里面的歌比较快?
鲜肉月饼怎么去啊,有知道地址的么
谷歌G2时直板的还是侧滑盖的
小说《卷土重来未可知》的作者是谁?
077版本更新了。但是为什么我1区进不去?
李陵的简介
为什么我的开始菜单不能变为XP的开始菜单?(
推荐资讯
窗口游戏最小化之后为什么桌面显示不了?
三个火念什么,风加三个火是什么字
用 ‘+’ ‘-’ ‘*’‘/’算出: 4□4□4□4
昆明四季分布特点和日温差年温差大小
库存商品是什么,出售库存商品怎么做会计分录
化学的化合价是怎么回事?
只是用力拖住手,为什么会那么痛?
我SD敢达更新了怎么不能玩?
明天有什么NBA赛
600609ST金杯汽车是不是潜力股?
送朋友去世的心情句子,朋友去世的心情句子
地下城与勇士红眼怎么加点?
正方形一边上任一点到这个正方形两条对角线的
阴历怎么看 ?