谁来写写看看这个C#题目(初级的)

zh6335901 2010-10-26 10:23:50
定义一个学生类,其中有3个私有数据成员学号、姓名、成绩,以及若干成员函数实现对学生数据的赋值和输出。
要求 (1)在主函数中定义一个对象数组,完成对数组中每个对象的赋值。
(2)定义一个友元函数找出成绩最高的学生的学号和姓名,该函数的形式参数为对象引用。
小弟刚学C#。。自己写了个结果运行不了。。。
这是我自己写的
namespace Student
{
class Program
{
public class Student
{
private int number;
private string name;
private int grade;

public int Grade
{
get
{
return grade;
}
set
{
grade = value;
}
}

public Student()
{
}

public void scan()
{
Console.Write("请输入学号:");
this.number = Convert.ToInt32(Console.ReadLine());
Console.Write("请输入姓名:");
this.name = Console.ReadLine();
Console.Write("请输入成绩:");
this.Grade = Convert.ToInt32(Console.ReadLine());
}

public void print(Student theStudent)
{
Console.WriteLine("学号:{0}\n姓名:{1}\n成绩:{2}", theStudent.number, theStudent.name, theStudent.grade);
}
}
static void Main(string[] args)
{
Student[] myStudents=new Student[5];
for (int i = 0; i < 5; i++)
{
myStudents[i].scan();
}
Student maxStudent = MaxGrade(myStudents);
maxStudent.print(maxStudent);
}

static Student MaxGrade(Student[] theStudent)
{
int maxVal=0;
for (int i = 0; i < 4; i++)
{
if (theStudent[i].Grade < theStudent[i + 1].Grade)
{
maxVal = i + 1;
}
}
return theStudent[maxVal];
}
}
}
编译器老是说myStudents[i].scan();这句未将对象引用设置到对象实例
...全文
122 7 打赏 收藏 转发到动态 举报
写回复
用AI写文章
7 条回复
切换为时间正序
请发表友善的回复…
发表回复
王少雷 2010-10-26
  • 打赏
  • 举报
回复
未将对象引用设置到对象实例

这句话的意思就是,空指针异常,没有实例化对象的意思。
zh6335901 2010-10-26
  • 打赏
  • 举报
回复
[Quote=引用 2 楼 wuyq11 的回复:]
Student[] myStudents=new Student[5];
for (int i = 0; i < 5; i++)
{
myStudents[i]=new Student();

}
使用List<student>保存数据,通过索引器取值
获取最大值LINQ MAX就可
[/Quote]
你能帮我改改吗?
yudengchang 2010-10-26
  • 打赏
  • 举报
回复
[Quote=引用 2 楼 wuyq11 的回复:]
Student[] myStudents=new Student[5];
for (int i = 0; i < 5; i++)
{
myStudents[i]=new Student();

}
使用List<student>保存数据,通过索引器取值
获取最大值LINQ MAX就可
[/Quote]

上面的实现就可以.
qq463179018 2010-10-26
  • 打赏
  • 举报
回复
恩,感觉C#代码写得不是很规范啊!
wuyq11 2010-10-26
  • 打赏
  • 举报
回复
Student[] myStudents=new Student[5];
for (int i = 0; i < 5; i++)
{
myStudents[i]=new Student();

}
使用List<student>保存数据,通过索引器取值
获取最大值LINQ MAX就可
龍月 2010-10-26
  • 打赏
  • 举报
回复
Student[] myStudents=new Student[5];

==================

这里要给 Student数组设置 对象啊
Student S1 =new Student();
Student[0]=S1 ;
设置属性
Student S2 =new Student();
Student[1]=S2 ;
....
================
for (int i = 0; i < 5; i++)
{
myStudents[i].scan();
}

110,534

社区成员

发帖
与我相关
我的任务
社区描述
.NET技术 C#
社区管理员
  • C#
  • Web++
  • by_封爱
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告

让您成为最强悍的C#开发者

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