我正在尝试为学校作业写一些(OOP),但遇到了一些问题

时间:2020-09-05 05:59:56

标签: c# class oop methods attributes

首先,让我向您展示问题。

  • 创建一个名为“学生”的类。
  • Class'属性是“名称”和“等级”。
  • 该类的方法是“ Rate”,它接收名称 和学生的成绩,如果成绩> = 60,则打印“及格”,否则为“不及格”。
  • 为三个学生创建三个不同的对象。

我创建了一个类和属性。 但是我不知道其余的我都尽力了。 老师没有给我们设置和获取方法

这是我的代码:

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");
            }
        }
    }
}

2 个答案:

答案 0 :(得分:1)

您的分配状态。

该类的方法是“费率”,它接收该类的名称和等级 学生,如果成绩> = 60,则打印“及格”,否则“不及格”

但是您对.Rate的实现不符合要求。

您的费率方法应如下所示:

 public string Rate(string name, double grade)
{
...assign student name and grade
... Implement the pass fail code
.. return the pass or fail string.
}

不需要使用名称和比率的构造函数。

答案 1 :(得分:0)

您正在使用spring.datasource.data,但没有构造函数。

student("omar", 55);

这是一个粗略的想法,事情如何与OOP一起使用。

您的代码问题:

  1. 在创建新的Object时,您已经声明了没有参数且传递参数的构造函数。
    (为构造函数添加了参数,使用了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"; } } } 关键字来消除命名歧义)
  2. 您正在调用一个方法( Rate()),该方法需要一个不含参数的参数。
    (您不需要通过等级,因为这是类方法,并且对象中已经具有等级值。)
  3. 您正在尝试打印返回void的函数。
    (因此,我们正在返回一个字符串,因此当我们调用该方法时,该方法将返回要打印的字符串。)

更新: 请查看@CobyC的答案,他明白我完全错过了这一点

相关问题