C# 报错 未将对象引用设置到对象的实例

设计一个统计学生信息的Windows应用程序在该程序中定义一个学生类和班级类,以处理每个学生的学号、姓名、语文、数学和英语3门课程的期末考试成绩,要求:(1)能查询每个学... 设计一个统计学生信息的Windows应用程序在该程序中定义一个学生类和班级类,以处理每个学生的学号、姓名、语文、数学和英语3门课程的期末考试成绩,要求:(1)能查询每个学生的总成绩;(2)能显示全班前三名的名单;(3)能显示单科成绩最高分和不及格的学生名单;(4)能统计全班学生的平均成绩;(5)能显示各科成绩在不同分数段的学生人数百分比;设计提示:(1)定义一个Student学生类,包含字段(学号、姓名、语文成绩、数学成绩、英语成绩)和属性(总成绩)等。(2)定义一个StudentList班级类,包含一个Student类型的数组(用来保存全班学生的信息)以及若干个实现上述要求的方法等。(3)设计用户操作界面,首先让用户能输入一个学生的信息,当单击“添加”按钮时把这些信息添加班级对象的学生数组中。当单击“完成”按钮时调用班级类的方法来显示所要求统计的统计结果。当用户在查询框中输入了学生的名字,并单击“查询”按钮时显示该学生的总成绩。 public class Student //学生类 { public string Number = "00001"; public string Name = "张三"; public int Chinese = 0; public int Math = 0; public int English = 0; public int Sum() { return this.Chinese + this.Math + this.English; } } public class StudentList //班级类 { public Student[] stu=new Student[100]; } StudentList grade = new StudentList(); int n = 0; private void button1_Click(object sender, EventArgs e) //存入学生信息 { grade.stu[n].Number = textBox1.Text.ToString() ; grade.stu[n].Name = textBox2.Text.ToString(); grade.stu[n].Chinese = int.Parse(textBox3.Text); grade.stu[n].Math = int.Parse(textBox4.Text); grade.stu[n].English = int.Parse(textBox5.Text); n++; } private void button2_Click(object sender, EventArgs e) 展开
 我来答
syht2000
高粉答主

2018-04-18 · 关注我不会让你失望
知道大有可为答主
回答量:3万
采纳率:79%
帮助的人:1.4亿
展开全部

对象数组在创建后要初始化才行的,不能象你图中一样直接用,按你图中写法的应该在button1_click中这样写

grade.stu[n]=new Student();
grade.stu[n].Number=......;
grade.stu[n].Name=.....;

当然如果不加这个第一个,也可以考虑下为StudentList类加一个构造函数,比如

public class StudentList
{
public Student[] stu=new Student[100];
public StudentList()
{
for(int i=0;i<stu.Length;i++)  stu[i]=new Student();
}
}

其实这种不定长的数据,一般建议用List来取代数组。

推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式