★★★求助!一个简单的编程题

cainiaoxianfei2007 2007-05-19 09:42:08
编制程序,计算某个学生的奖学金等级,以三门功课成绩M1、M2、M3为评奖依据。奖学金评奖标准如下:
一等奖:符合下列条件之一的可得一等奖。
(1)平均分大于95分者。
(2)有两门成绩是100分,且第三门功课成绩不低于80分者。
二等奖:符合下列条件之一的可得二等奖。
(1)平均分大于90分者。
(2)有一门成绩是100分,且其他功课成绩不低于75分者。
三等奖:各门成绩不低于70分者。
符合条件者就高不就低,只能获得高的那一项奖学金。要求显示获奖的等级。

快要考试了,麻烦格外大虾指点!谢谢了!
...全文
382 5 打赏 收藏 转发到动态 举报
写回复
用AI写文章
5 条回复
切换为时间正序
请发表友善的回复…
发表回复
cainiaoxianfei2007 2007-05-19
  • 打赏
  • 举报
回复
感谢各位大哥们的帮助,谢谢了!!!
cike_1111 2007-05-19
  • 打赏
  • 举报
回复
完整的代码:
窗体内控件
text*3个 名字分别为 text1 text2 text3

把如下代码复制到代码窗口内:
Private Sub Form_Click()
m1 = Val(Text1)
m2 = Val(Text2)
m3 = Val(Text3)
If (m1 + m2 + m3) / 3 > 95 Then MsgBox "1": Exit Sub
If (m1 + m2 = 200 Or m2 + m3 = 200 Or m1 + m3 = 200) And m1 > 80 And m2 > 80 And m3 > 80 Then MsgBox "1": Exit Sub

If (m1 + m2 + m3) / 3 > 90 Then MsgBox "2": Exit Sub
If (m1 = 100 Or m2 = 100 Or m3 = 100) And m1 > 70 And m2 > 70 And m3 > 70 Then MsgBox "2": Exit Sub

If (m1 + m2 + m3) / 3 > 70 Then MsgBox "3": Exit Sub
End Sub


然后自己判断看这个程序是否有错误!
cike_1111 2007-05-19
  • 打赏
  • 举报
回复
全部 if 语句 判断就可以了!!

1等奖条件1转换为代码[平均分大于95分者。]

if (m1+m2+m3)/3 >95 then msgbox"1":exit sub '

[exit sub 的作用是符合这个条件就退出过程了,为了预防2个条件都满足的时候弹出2次提示信息]


1等奖条件2[有两门成绩是100分,且第三门功课成绩不低于80分者]

if (m1+m2=200 or m2+m3=200 or m1+m3=200) and m1>80 and m2>80 and m3>80 then msgbox"1":exit sub

同理 判断2等奖的2个条件:
if (m1+m2+m3)/3>90 then msgbox "2":exit sub
if (m1=100 or m2=100 or m3=100) and m1>70 and m2>70 and m3>70 then msgobox"2":exit sub

3等奖的条件就更简单了:
if (m1+m2+m3)/3 > 70 then msgbox"3" :exit sub
=================================================
不知道平均分刚好上90 算不算2等奖 若算的话 把条件> 改为>=


cike技术交流群16874787

jadeluo 2007-05-19
  • 打赏
  • 举报
回复
Option Explicit

Sub SwapDouble(ByRef A As Double, ByRef B As Double)
Dim C As Double
C = A
A = B
B = C
End Sub

Function GetScope(ByVal M1 As Double, ByVal M2 As Double, ByVal M3 As Double) As String
Dim Average As Double
Average = (M1 + M2 + M3) / 3
'将M1,M2,M3按由大到小的顺序排列
If M1 < M2 Then SwapDouble M1, M2
If M1 < M3 Then SwapDouble M1, M3
If M2 < M3 Then SwapDouble M2, M3
If (Average > 95) Or (M1 = 100 And M2 = 100 And M3 >= 80) Then
GetScope = "一等奖"
ElseIf (Average > 90) Or (M1 = 100 And M2 >= 75 And M3 >= 75) Then
GetScope = "二等奖"
ElseIf M1 >= 70 And M2 >= 70 And M3 >= 70 Then
GetScope = "三等奖"
Else
GetScope = "无此奖项"
End If
End Function

Private Sub Form_Load()
Debug.Print GetScope(85, 100, 100)
Debug.Print GetScope(85, 100, 80)
Debug.Print GetScope(85, 75, 80)
Debug.Print GetScope(85, 60, 80)
End
End Sub

cainiaoxianfei2007 2007-05-19
  • 打赏
  • 举报
回复
在线等候!!

7,763

社区成员

发帖
与我相关
我的任务
社区描述
VB 基础类
社区管理员
  • VB基础类社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧