【发布时间】:2017-03-07 23:56:16
【问题描述】:
分配 一位老师有六个学生,希望您创建一个应用程序,将他们的成绩数据存储在文件中并打印成绩报告。应用程序应该有一个存储以下学生数据的结构:姓名(一个字符串)、测试分数(一个包含五个 Doubles 的数组)和 Average(一个 Double)。因为老师有六个学生,所以应用程序应该使用一个包含六个结构变量的数组。 应用程序应允许用户输入每个学生的数据,并计算平均考试成绩。 用户应该能够将数据保存到文件中,从文件中读取数据,并打印显示每个学生的考试成绩和平均成绩的报告。该表格显示了一个多系统。如果您愿意,您可以使用按钮来代替。 输入验证:不接受小于零或大于 100 的测试分数。
]
我对它的结构的理解
目前我不明白在 FOR EACH 循环中我不能累计它说我不允许使用 + 。我正在尝试从 txtScore1Std1 获取分数(例如)将其分配给 dblTestScoreArray 并使用每个循环来查找这 5 个分数的总和,然后找到平均值并将其输出到学生号 1 的 lbl 平均值。
代码模块:
Module StudentTestScoresModule
Const intMAX_SUBSCRIPT_STUDENT As Integer = 6
Const intMAX_SUBSCRIPT_STUDENT_SCORES As Integer = 5
'create structure
Public Structure StudentData
Dim strName As String
Dim dblTestScoresArray() As Double
Dim dblAverage As Double
End Structure
Dim dblTotalStd1 As Double
Dim dblScore As Double
Dim StudentsArray(intMAX_SUBSCRIPT_STUDENT) As StudentData
Sub StudentNameDataInput()
StudentsArray(0).strName = MainForm.txtStdName1.Text
StudentsArray(1).strName = MainForm.txtStdName2.Text
StudentsArray(2).strName = MainForm.txtStdName3.Text
StudentsArray(3).strName = MainForm.txtStdName4.Text
StudentsArray(4).strName = MainForm.txtStdName5.Text
StudentsArray(5).strName = MainForm.txtStdName6.Text
End Sub
Sub StudentScoreDataInput()
For intIndex = 0 To intMAX_SUBSCRIPT_STUDENT
ReDim StudentsArray(intIndex).dblTestScoresArray(4)
Next
'test scores for first student
StudentsArray(0).dblTestScoresArray(0) = CDbl(MainForm.txtScore1Std1.Text)
StudentsArray(1).dblTestScoresArray(1) = CDbl(MainForm.txtScore2Std1.Text)
StudentsArray(2).dblTestScoresArray(2) = CDbl(MainForm.txtScore3Std1.Text)
StudentsArray(3).dblTestScoresArray(3) = CDbl(MainForm.txtScore4Std1.Text)
StudentsArray(4).dblTestScoresArray(4) = CDbl(MainForm.txtScore5Std1.Text)
For Each i As StudentData In StudentsArray
dblTotalStd1 += i
Next
dblAverage = dblTotalStd1 / intMAX_SUBSCRIPT_STUDENT_SCORES
MainForm.lblAvgStd1.Text = (dblAverage.ToString)
End Sub
Sub CalculateAverage()
End Sub
End Module
代码主窗体:
Public Class MainForm
Private Sub mnuHelpAbout_Click(sender As Object, e As EventArgs) Handles mnuHelpAbout.Click
'about program
MessageBox.Show("Student test score calculator version 0.1")
End Sub
Private Sub btnExit_Click(sender As Object, e As EventArgs) Handles btnExit.Click
' Close(program)
Me.Close()
End Sub
Private Sub btnCalculate_Click(sender As Object, e As EventArgs) Handles btnCalculate.Click
StudentScoreDataInput()
End Sub
End Class
【问题讨论】:
-
告诉你的老师可变(数据可以更改)结构是不好的。
-
现在不能在列表中这样做,但感谢您的建议。
标签: vb.net