【问题标题】:Multidimensional Array for students and grades学生和成绩的多维数组
【发布时间】:2018-05-19 10:18:46
【问题描述】:

我不确定多维数组是否适合我想做的事情。

我想输入学生的数量,然后为每个学生输入 5 个成绩。这样做之后,我必须计算平均值。

所以本质上是这样的:

学生........一年级......二年级......三年级......四年级......五年级.. ....平均

学生 1............87............71......64。 ......................89............78............77.8

学生 2............54............76............89。 ..................89..................78..................77.2

对于格式设置,我深表歉意。我不太了解块引号。 我不确定多维数组是否会有所帮助。任何想法。

【问题讨论】:

    标签: c# arrays multidimensional-array


    【解决方案1】:

    您可以做的是创建一个学生类并制作一个学生数组,例如

    public class Student
    {
        private ArrayList grades;
    
        public Student()
        {
            grades = new ArrayList();
        }
    
        public void addGrade(double val)
        {
            grades.Add(val);
        }
    
        public double getAverage()
        {
            double avg = 0;
            for (int i = 0; i < grades.Count; i++)
                avg += (double)grades[i];
    
            avg /= grades.Count;
            return avg;
        }
    }
    

    并将 Student 类的数组设为:

    Student [] students = new Student[10];
    

    将学生成绩添加为:

    students[0].addGrade(75);
    

    【讨论】:

    • 非常感谢。如何允许用户输入成绩并将其存储在列表中
    • 如果您有 GUI,则使用文本框进行用户输入。对于控制台应用程序,请使用Console.ReadLine
    【解决方案2】:

    由于学生姓名的datatype 可能是string,学生成绩的datatype 可能是double 的列表,因此我建议您从代表单个学生的class 开始.然后,当您从表格中收集一个学生的数据时,您可以创建一个学生object,将表格中的数据加载到object,然后计算该学生的平均成绩。我不确定您是否需要在那之后对学生object 做任何事情(即,将其添加到导出列表、将其写入数据库等)

    下面的代码仅建议学生类的外观。

    using System.Collections.Generic;
    using System.Windows.Forms;
    
    namespace sandbox
    {
        public partial class Form1 : Form
        {
            public Form1()
            {
                InitializeComponent();
            }
        }
    
        class Student
        {
            string studentFirstMiddleLastName;
            IList<double> allStudentGrades = new List<double>();
    
            public Student(string studentFirstMiddleLastName, IList<double> allStudentGrades)
            {
                StudentFirstMiddleLastName = studentFirstMiddleLastName;
                AllStudentGrades = allStudentGrades;
            }
    
            public string StudentFirstMiddleLastName { get => studentFirstMiddleLastName; set => studentFirstMiddleLastName = value; }
            public IList<double> AllStudentGrades { get => allStudentGrades; set => allStudentGrades = value; }
    
            public double CalculateAverageofAllStudentGrades()
            {
                double average = 0.0;
    
                // add up all grades in AllStudentGrades, divide by number of items in AllStudentGrades, load result of this calculation into the variable `average`
    
                return average;
            }
        }
    }
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2021-05-31
      • 1970-01-01
      • 1970-01-01
      • 2013-02-10
      • 2021-12-28
      • 2016-11-12
      • 1970-01-01
      相关资源
      最近更新 更多