我正在尝试为学校作业写一些(OOP),但我遇到了一些问题
I'm trying to write some (OOP) for a school assignment and I came up with some problems
首先给大家看一下题目
- 创建一个名为“student”的class。
- Class'属性为“姓名”和“年级”。
- class'方法为“Rate”,接收名称
和学生的成绩,如果成绩 >= 60,则打印“通过”,否则打印“失败”。
- 为三个学生创建三个不同的对象。
我创建了一个class和属性。
但我不知道剩下的我尽力了。
老师没有给我们set和get方法
这是我的代码:
namespace ProjectOO
{
class Program
{
static void Main(string[] args)
{
student a = new student("omar", 55);
Console.WriteLine(a.Rate());
student b = new student("ahmed", 91);
Console.WriteLine(b.Rate());
student c = new student("mohammed", 22);
Console.WriteLine(c.Rate());
Console.ReadKey();
}
}
class student
{
string name;
double grade;
public student()
{
name = name;
grade = grade;
}
public void Rate(double grade)
{
if (grade >= 60)
{
Console.WriteLine("pass");
}
else
{
Console.WriteLine("fail");
}
}
}
}
您正在使用 student("omar", 55);
但没有它的构造函数。
class student
{
string name;
double grade;
public student(string name,double grade)
{
this.name = name;
this.grade = grade;
}
public string Rate()
{
if (grade >= 60)
{
return "pass";
}
else
{
return "fail";
}
}
}
这是 OOP 的粗略概念。
您的代码有问题:
- 您在创建新对象时声明了一个不带参数和传递参数的构造函数。
(向构造函数添加参数,使用 this
关键字消除命名歧义)
- 您正在调用一个方法 ( Rate() ),该方法需要一个没有参数的参数。
(您不需要通过成绩,因为这是 class 方法并且对象中已经有成绩值。)
- 您正在尝试打印一个 return 无效的函数。
(所以我们正在 returning 一个字符串,所以当我们调用该方法时,该方法将 return 一个要打印的字符串。)
更新:
请查看@CobyC 的回答,他明白了我完全错过的要点
您的作业状态。
The class' method is "Rate", which receives the name and grade of the
student and print "pass" if the grade >= 60, else "failed
但是你的实现.Rate
不符合要求。
您的评分方法需要如下所示:
public string Rate(string name, double grade)
{
...assign student name and grade
... Implement the pass fail code
.. return the pass or fail string.
}
不需要采用名称和速率的构造函数。
首先给大家看一下题目
- 创建一个名为“student”的class。
- Class'属性为“姓名”和“年级”。
- class'方法为“Rate”,接收名称 和学生的成绩,如果成绩 >= 60,则打印“通过”,否则打印“失败”。
- 为三个学生创建三个不同的对象。
我创建了一个class和属性。 但我不知道剩下的我尽力了。 老师没有给我们set和get方法
这是我的代码:
namespace ProjectOO
{
class Program
{
static void Main(string[] args)
{
student a = new student("omar", 55);
Console.WriteLine(a.Rate());
student b = new student("ahmed", 91);
Console.WriteLine(b.Rate());
student c = new student("mohammed", 22);
Console.WriteLine(c.Rate());
Console.ReadKey();
}
}
class student
{
string name;
double grade;
public student()
{
name = name;
grade = grade;
}
public void Rate(double grade)
{
if (grade >= 60)
{
Console.WriteLine("pass");
}
else
{
Console.WriteLine("fail");
}
}
}
}
您正在使用 student("omar", 55);
但没有它的构造函数。
class student
{
string name;
double grade;
public student(string name,double grade)
{
this.name = name;
this.grade = grade;
}
public string Rate()
{
if (grade >= 60)
{
return "pass";
}
else
{
return "fail";
}
}
}
这是 OOP 的粗略概念。
您的代码有问题:
- 您在创建新对象时声明了一个不带参数和传递参数的构造函数。
(向构造函数添加参数,使用this
关键字消除命名歧义) - 您正在调用一个方法 ( Rate() ),该方法需要一个没有参数的参数。
(您不需要通过成绩,因为这是 class 方法并且对象中已经有成绩值。) - 您正在尝试打印一个 return 无效的函数。
(所以我们正在 returning 一个字符串,所以当我们调用该方法时,该方法将 return 一个要打印的字符串。)
更新: 请查看@CobyC 的回答,他明白了我完全错过的要点
您的作业状态。
The class' method is "Rate", which receives the name and grade of the student and print "pass" if the grade >= 60, else "failed
但是你的实现.Rate
不符合要求。
您的评分方法需要如下所示:
public string Rate(string name, double grade)
{
...assign student name and grade
... Implement the pass fail code
.. return the pass or fail string.
}
不需要采用名称和速率的构造函数。