引用 | 编辑
n1023520
2010-10-29 23:58 |
楼主
▼ |
||
![]() 2.要先去减掉最高分与最低分再平均才是歌者的得分,计 .. 访客只能看到部份内容,免费 加入会员 ![]()
|
引用 | 编辑
三仙
2010-10-30 22:22 |
1楼
▲ ▼ |
1.用2008的VB,写一个可以移动Listbox选项顺序的程式,其中按下上移钮(Button1)可以把被选项上移一栏,按下下移钮(button2)可以把被选项下移一栏。 第一题 防呆的部份没有做 你自已加强 Private Sub Form1_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load For i As Integer = 0 To 10 ListBox1.Items.Add(i) Next End Sub Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.Click '上移一栏 ListBox1.SelectedIndex = ListBox1.SelectedIndex - 1 End Sub Private Sub Button2_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button2.Click '下移一栏 ListBox1.SelectedIndex = ListBox1.SelectedIndex + 1 End Sub ![]() |
引用 | 编辑
n1023520
2010-10-31 00:05 |
4楼
▲ ▼ |
抱歉忘记说,listbox的内容是6个人名,分别是 Peter、 Jimmy 、Thomas、Nick 、Karen、Ken
而不是0到10 谢谢 ![]() |
引用 | 编辑
三仙
2010-10-31 08:22 |
6楼
▲ ▼ |
下面是引用 n1023520 于 2010-10-31 00:07 发表的 : 问题已经被奇摩知识自动移除了 不能再连结了 ![]() |
引用 | 编辑
n1023520
2010-10-31 14:21 |
7楼
▲ ▼ |
http://tw.knowledge.yahoo.com/question/question?qid=1306050107747
这是是一样的题目,但不是2008版本的,你可以帮我做修改吗? 而有ListBox的内容以设定为,6个人名分别为Peter、Jimmy、Thomas、Nick、Karen、Ken 然后这6个人名可以随着上移或下移改变顺序 拜托你帮帮我,谢谢 ![]() |
引用 | 编辑
ebolaman
2010-10-31 17:38 |
9楼
▲ ▼ |
我提供一种方法:
用气泡排序法,将一阵列的值 依序挑出两个来比较大小 例如从左边大 排到 右边小: {67, 98, 80} 先比较 No. 1 & 2 ,我们要前面的数值都大于后面的 但是 67 > 98 这样不对,所以就把两个数值交换,然后变成 {98, 67, 80} 检查 No. 1 & 2 OK,但 67 > 80 又错了,所以再交换 最后变成 {98, 80, 67} 就这样 98 像是气泡一般浮到左边去 ![]() 所以呢,先排完六个人的各别成绩后,将 Index 0 与最后一个 忽略不计 For i = 1 To Count - 2 这样 将中间剩余的数值加起来除以 (Count - 2) 就是每个人的平均 最后同样动作,排序六个人的平均成绩,再用 For Next 一一显示出来即可 ![]() 很像是 先横向排序,再来纵向排序 如果能用一个 程序来做 包括两个 阵列排序的动作,程式码可以减半哦 ![]() |
引用 | 编辑
n1023520
2010-10-31 18:51 |
10楼
▲ ▼ |
因为我对写程式的慨念还不是很聊解,
所以你说的方是我看不懂, 是否可以跟我说关于第二题的程式码怎么写, 还有是用主控制台写程式还是用应用程式写程式 拜托各位的帮忙, 谢谢各位VB大师的解答 ![]() |
引用 | 编辑
n1023520
2010-10-31 19:13 |
11楼
▲ ▼ |
因为我对于写VB的程式,
还不是很清楚, 可以说是一窍不通, 所以第二题说的解题方法我不了解, 是否可以跟我说关于第二题的程式怎么写啊! 还有第二题的程式是要写在应用程式还是主控台应用程式? 拜托各位大师帮帮我, 并且谢谢过位大师的帮忙。 ![]() |
引用 | 编辑
三仙
2010-11-01 11:39 |
12楼
▲ ▼ |
下面是引用 ebolaman 于 2010-10-31 17:38 发表的 : 关于排序,提供大家多一点的讯息 演算法 ![]() |
引用 | 编辑
n1023520
2010-11-02 22:49 |
13楼
▲ ▼ |
还是看不懂意思
能不能直接跟我说程式码怎么写, 还有程式码是要写在应用程式 或 主控台应用程式 拜托各位VB大师帮帮忙, 因为必须在这个礼拜五前完成缴交, 在此先谢谢各位的帮忙 ![]() |
引用 | 编辑
ebolaman
2010-11-04 18:02 |
14楼
▲ ▼ |
参考~ http://tw.knowledge.yahoo.com/question/question?qid=1609072301487
VB2008 有这些型态,可以直接排序 我比较崇尚的是 作一个 class 来排序,主程式码会很简洁 ![]() |
引用 | 编辑
三仙
2010-11-04 18:54 |
15楼
▲ ▼ |
下面是引用 ebolaman 于 2010-11-04 18:02 发表的 : 我觉得学校老师 ![]() 应该会指定客制排序 ![]() 而不会让学生套用任何语法 ![]() ps.这位发帖的楼主 建议你问一下老师 题 2 二维阵列的宣告 好像不是那样 ![]() |
引用 | 编辑
taiwanplope
2010-11-04 19:21 |
16楼
▲ ▼ |
Public Class Form1
Private Sub Form1_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load Dim 姓名() = {"吴国民", "李得胜", "蔡可申", "陈梦娇", "方十全"} Dim 评分(,) = {{77, 78, 78, 84, 84, 79, 77, 76, 76, 81}, _ {89, 89, 92, 88, 91, 87, 86, 90, 85, 89}, _ {89, 82, 87, 83, 82, 89, 86, 86, 84, 80}, _ {86, 86, 90, 89, 81, 86, 90, 85, 87, 86}, _ {89, 88, 87, 88, 86, 84, 86, 93, 84, 87}} Dim maxidx As Integer = UBound(姓名), maxidx2 As Integer Dim 平均(maxidx), minv, maxv As Double For i = 0 To maxidx minv = 评分(i, 0) maxv = 评分(i, 0) maxidx2 = UBound(评分, 2) For j = 0 To maxidx2 If minv > 评分(i, j) Then minv = 评分(i, j) If maxv < 评分(i, j) Then maxv = 评分(i, j) 平均(i) += 评分(i, j) Next 平均(i) = Math.Round((平均(i) - minv - maxv) / (maxidx2 - 1), 2) Next Array.Sort(平均, 姓名) Dim m As String = "" For i = maxidx To 0 Step -1 m &= (maxidx - i + 1) & ": " & 姓名(i) & " " & 平均(i) & vbCrLf Next MsgBox(m) End End Sub End Class 程式码送上 PS. 三仙 帮我解 = . = 外面那个猜数字 !!!!!! ![]() |
引用 | 编辑
ebolaman
2010-11-04 20:36 |
17楼
▲ ▼ |
下面是引用 taiwanplope 于 2010-11-04 19:21 发表的 : 太厉害了~ 原来根本不用排序,只要把最大与最小 杀掉 就能得知道平均了.. ![]() |
引用 | 编辑
taiwanplope
2010-11-04 21:27 |
20楼
▲ ▼ |
免客气 我的猜数字 没人帮我解决 wow !!!!!!!抠连
![]() |
引用 | 编辑
taiwanplope
2010-11-04 21:28 |
21楼
▲ |
我不是大师= =+ 我只是个大2生 哈哈哈
![]() |