游戏开发论坛

 找回密码
 立即注册
搜索
查看: 2715|回复: 8

一个VB程序题

[复制链接]

11

主题

49

帖子

49

积分

注册会员

Rank: 2

积分
49
发表于 2005-11-24 18:57:00 | 显示全部楼层 |阅读模式
被这题困惑住了,题目是这样的:
依次输入学生的数学成绩,然后显示出总分和平均分.
我是这样解的
1、建立3个按钮:请输入学生数量、请输入学生成绩(Enabled=False)、退出(Enabled=False)
2、建立2个时钟:Timer1(Interval=1000、Enable=False)、Timer2(Interval=0、Enable=False)
3、建立4个标签abel1(Caption=总分、Visible=False)、Label2(Caption=""、Visible=False)、Label3(Caption=平均分、Visible=False)、Label4(Caption=""、Visible=False)

调试的时候出现的问题:输入N=10时,出现的对话框只有7个,改变Timer1.interval的属性值和Timer2.interval等式的值只会使对话框变为出现10个上下,总不能按照要求N值出现...由于本人是刚学VB,我想问的是是不是系统的延时有问题,谢谢大虾帮忙!

程序如下
Dim N, M As Integer, TS1$, TS2$
Dim SUM As Long, AVE As Single

Private Sub Timer1_Timer()
TS2$ = "请输入学生成绩(0到100之间的整数)" + Chr(13) + Chr(10) + "M="
M = Val(InputBox(TS2$, "学生成绩", 100, 5000, 1500))
SUM = SUM + M
End Sub

Private Sub Timer2_Timer()
Timer1.Enabled = False
Timer2.Enabled = False
总.Caption = SUM
平均.Caption = SUM / N
总分.Visible = True: 总.Visible = True
平均分.Visible = True: 平均.Visible = True
End Sub

Private Sub 请输入学生成绩_Click()
TS2$ = "请输入学生成绩(0到100之间的整数)" + Chr(13) + Chr(10) + "M="
M = Val(InputBox(TS2$, "学生成绩", 100, 5000, 1500))
请输入学生成绩.Enabled = False: 退出.Enabled = True
Timer1.Enabled = True: Timer2.Enabled = True
Timer2.Interval = 1000 * N + 900
SUM = M
End Sub

Private Sub 请输入学生数量_Click()
TS1$ = "请输入学生数量(1到15之间的整数)" + Chr(13) + Chr(10) + "N="
N = Val(InputBox(TS1$, "学生数量", 10, 5000, 1500))
请输入学生数量.Enabled = False: 请输入学生成绩.Enabled = True
End Sub

Private Sub 退出_Click()
End
End Sub

140

主题

1228

帖子

1233

积分

金牌会员

Rank: 6Rank: 6

积分
1233
QQ
发表于 2005-11-24 23:45:00 | 显示全部楼层

Re:一个VB程序题

个人觉得用对话框极为恶X。
一个文本框,一个按钮,一个标签 就好了。
no 时钟。
dim N as integer,M as integer//你的写法n不是整数,是变体。用N作学生数,M作总分。
'找个地方将 N=0,M =0,比如form_load
private sub 按钮_click()
on error goto err
    dim t as integer
    t = text1'这个是文本框,输入非数字会出错,跳到下面
    N = N+1:M=M+t
    dim ave as float
    ave = M / N
    label1.caption = "总分" & M &"平均分" & ave
:err
'出错跳过,当你输入了非数字。
end sub

11

主题

49

帖子

49

积分

注册会员

Rank: 2

积分
49
 楼主| 发表于 2005-11-25 00:16:00 | 显示全部楼层

Re:一个VB程序题

感谢LIGHTS大哥的提点 有些函数还么碰到...我才学到第3章 前几章我是反复的看 要打好基础
谢谢了

8

主题

120

帖子

120

积分

注册会员

Rank: 2

积分
120
QQ
发表于 2005-11-25 00:50:00 | 显示全部楼层

Re:一个VB程序题

天那,他的做法好“凶”

2

主题

45

帖子

45

积分

注册会员

Rank: 2

积分
45
发表于 2005-11-25 08:25:00 | 显示全部楼层

Re:一个VB程序题

居然取中文的控件名,这样的习惯不好吧。
最好是这样:文本框(txtXXX,txtYYY), 按钮(cmdXXX,cmdYYY),标签(labXXX,labYYY),其他类似。

控件名也好,变量名也好,取名是有一定的规范的。
另外,代码要错落有致,该缩进的地方要缩进,这样看起来才会爽心悦目。

11

主题

49

帖子

49

积分

注册会员

Rank: 2

积分
49
 楼主| 发表于 2005-11-25 09:22:00 | 显示全部楼层

Re: Re:一个VB程序题

BlueGlobal: Re:一个VB程序题

居然取中文的控件名,这样的习惯不好吧。
最好是这样:文本框(txtXXX,txtYYY), 按钮(cmdXXX,cmdYYY),标签(...

我会牢记的 谢谢了 LIGHTS大哥的码调试时有错误...
Dim ave As Float  ’用户定义类型未定义
改成single
On Error GoTo Err  ’标签未定义
不知道如何做了 因为这个函数不会 大概是什么意思 它的基本格式是什么
谢谢了

140

主题

1228

帖子

1233

积分

金牌会员

Rank: 6Rank: 6

积分
1233
QQ
发表于 2005-11-25 09:34:00 | 显示全部楼层

Re:一个VB程序题

on error goto ...
出错时跳到指定位置
我把标签打错了
err:冒号在后边

还有那个作除法的时候,最好先转成浮点型再除

50

主题

382

帖子

392

积分

中级会员

Rank: 3Rank: 3

积分
392
发表于 2005-11-25 10:04:00 | 显示全部楼层

Re:一个VB程序题

哈哈,lights 是不是用 C++ 用多了,竟出这样的错误“Dim ave As Float”

32

主题

1583

帖子

1589

积分

金牌会员

Rank: 6Rank: 6

积分
1589
发表于 2005-11-27 12:18:00 | 显示全部楼层

Re:一个VB程序题

哈哈,最近pascal用多了,总是情不自禁地在"="前加":",在"For...To"后面加"do",每一句完了还不由自主地打一个分号……
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

作品发布|文章投稿|广告合作|关于本站|游戏开发论坛 ( 闽ICP备17032699号-3 )

GMT+8, 2026-1-22 18:17

Powered by Discuz! X3.4

Copyright © 2001-2021, Tencent Cloud.

快速回复 返回顶部 返回列表