java怎么算优秀率_20181013xlVba计算优秀率及合格率

Sub 计算高一优秀合格率()

Dim Wb As Workbook

Dim Sht As Worksheet

Dim oSht As Worksheet

Dim dOs As Object 'OutStanding

Const SUBJECTS = "语文数学英语物理化学生物政治历史地理"

Set dOs = CreateObject("Scripting.Dictionary")

Set Wb = Application.ThisWorkbook

Set Sht = Wb.Worksheets("年级_本次成绩总表")

With Sht

EndRow = .Cells(.Cells.Rows.Count, 1).End(xlUp).Row

EndCol = .Cells(1, .Cells.Columns.Count).End(xlToLeft).Column

For j = 4 To EndCol

If InStr(SUBJECTS, .Cells(1, j).Text) > 0 Then

Subject = .Cells(1, j).Text

For i = 2 To EndRow

If .Cells(i, "Y").Value = "" Then

goal = .Cells(i, j).Value

Cls = .Cells(i, 3).Value

Key = Cls & ";" & Subject

If goal <> "" Then

If Not dOs.exists(Key) Then

If goal >= OsLine(Subject, 1) Then

os = 1

Else

os = 0

End If

If goal >= OsLine(Subject, 2) Then

pass = 1

Else

pass = 0

End If

dOs(Key) = Array(1, os, pass)

Else

Ar = dOs(Key)

Ar(0) = Ar(0) + 1

If goal >= OsLine(Subject, 1) Then Ar(1) = Ar(1) + 1

If goal >= OsLine(Subject, 2) Then Ar(2) = Ar(2) + 1

dOs(Key) = Ar

End If

End If

End If

Next i

End If

Next j

End With

'For Each OneKey In dOs.keys

'Ar = dOs(OneKey)

'Debug.Print OneKey; " "; Ar(0); " "; Ar(1); " "; Ar(2)

'Next

Set Sht = Wb.Worksheets("年级_各科离均率")

With Sht

StartRow = 60

ClassCount = 20

SubjectCount = 10

.Cells(StartRow + 1, 2).Resize(ClassCount, SubjectCount).ClearContents

For j = 2 To SubjectCount + 1

Subject = .Cells(StartRow, j).Value

For i = StartRow + 1 To StartRow + 20

Cls = .Cells(i, 1).Value

Key = Cls & ";" & Subject

If dOs.exists(Key) Then

Ar = dOs(Key)

.Cells(i, j).Value = Format(Ar(1) / Ar(0), "0.0%")

End If

Next i

Next j

StartRow = 84

ClassCount = 20

SubjectCount = 10

.Cells(StartRow + 1, 2).Resize(ClassCount, SubjectCount).ClearContents

For j = 2 To SubjectCount + 1

Subject = .Cells(StartRow, j).Value

For i = StartRow + 1 To StartRow + 20

Cls = .Cells(i, 1).Value

Key = Cls & ";" & Subject

If dOs.exists(Key) Then

Ar = dOs(Key)

.Cells(i, j).Value = Format(Ar(2) / Ar(0), "0.0%")

End If

Next i

Next j

End With

End Sub

Function OsLine(ByVal Subject As String, ByVal Level As Long) As Double 'Level 1优秀0合格

Select Case Subject

Case "语文", "数学", "英语"

If Level = 1 Then

OsLine = 120

Else

OsLine = 90

End If

Case Else

If Level = 1 Then

OsLine = 80

Else

OsLine = 60

End If

End Select

End Function

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
基于java的学生成绩管理与分析系统,制作一个学生成绩的分析系统,要求有基本的学生信息、成绩的增删改查功能,以及。拥有管理员、教师、学生三种权限。学生、教师可以查询学生的成绩、以及对于成绩的分析、管理员负责系统的维护和数据录入等。(1)数据库的设计与实现,根据系统的需求以及功能分析进行设计。 (2)一个用户打开的默认界面,需要账号密码进行登录的学生成绩分析系统首页的实现。 (3)管理员对学生的信息进行编辑的学生信息管理模块的实现。 (4)管理员对各科课程信息进行编辑的课程信息管理模块的实现。 (5)实现管理员对每名同学的成绩的添加、修改和删除的成绩信息管理模块的实现。 (6)管理员对用户权限管理的用户管理模块。 (7)能够查询学生课程,成绩,信息的信息查询模块的实现。 构造好一个完整的成绩管理系统后,开始实现教师对成绩的分析系统。成绩分析系统有如下开发目标: (1)供教师查询的某一班级,某一年级单科成绩报表,并且能查看每个学生相较于上次考试所进步或退步的名次 (2)供教师查询的某一班级成绩报表,并且能查看每个学生相较于上次考试所进步或退步的名次、标注出名次最好的科目和最差的科目。某一年级成绩汇总表,并且能查看每个学生相较于上次考试所进步或退步的名次、标注出名次最好的科目和最差的科目 供教师查询的某一班级,某一年级的某一学期各科成绩的分析。分析的结果会显示各科各分数段的人数,各科的优秀人数,各科的及格人数,并且自动的计算出各科的优秀率和及格率。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值