Виртуальная функция выводит неправильные значения - C#

Узнай цену своей работы

Формулировка задачи:

Рост и вес выводит 0, как исправить?
Листинг программы
  1. using System;
  2. using System.Collections.Generic;
  3. using System.Linq;
  4. using System.Text;
  5. using System.Threading.Tasks;
  6. using System.Collections;
  7. namespace Виртуальные_методы
  8. {
  9. class Person
  10. {
  11. private double rost, ves;
  12. private string FName, Lname, Mname;
  13. public Person(string Fname, string Lname, string Mname, double rost, double ves)
  14. {
  15. this.FName = Fname;
  16. this.Lname = Lname;
  17. this.Mname = Mname;
  18. }
  19. public virtual void Pasport()
  20. {
  21. Console.WriteLine("Фамилия {0} Имя {1} Отчество {2} Рост {3} Вес {4}", Lname, FName, Mname, rost, ves);
  22. }
  23. }
  24. class Student : Person
  25. {
  26. private int mark, course;
  27. private double rost, ves;
  28. private string FName, Lname, Mname;
  29. public Student(int mark, int course, string Fname, string Lname, string Mname, double rost, double ves)
  30. : base(Fname, Lname, Mname, rost, ves)
  31. {
  32. this.mark = mark;
  33. this.course = course;
  34. }
  35. public override void Pasport()
  36. {
  37. base.Pasport();
  38. Console.WriteLine("Отметка {0} курс {1}", mark, course);
  39. }
  40. }
  41. class Teacher : Person
  42. {
  43. private string obr, dolj;
  44. private double rost, ves;
  45. private string FName, Lname, Mname;
  46. public Teacher(string obr, string dolj, string Fname, string Lname, string Mname, double rost, double ves)
  47. : base(Fname, Lname, Mname, rost, ves)
  48. {
  49. this.obr = obr;
  50. this.dolj = dolj;
  51. }
  52. public override void Pasport()
  53. {
  54. base.Pasport();
  55. Console.WriteLine("Образование {0} Должность {1}", obr, dolj);
  56. }
  57. }
  58. class Program
  59. {
  60. static void Main(string[] args)
  61. {
  62. Student[] ss = new Student[3];
  63. Teacher[] tt = new Teacher[3];
  64. ss[0] = new Student(10, 1, "Иван", "Иванов", "Витальевич", 170, 50);
  65. ss[1] = new Student(8, 1, "Иван", "Иванов", "Викторович", 180, 80);
  66. ss[2] = new Student(3, 2, "Иван", "Иванов", "Сергеевич", 200, 90);
  67. tt[0] = new Teacher("Высшее", "Доцент", "Петя", "Петров", "Сергеевич", 175, 70);
  68. tt[1] = new Teacher("Высшее", "Преподаватель", "Петя", "Петров", "Александрович", 195, 80);
  69. tt[2] = new Teacher("Среднее", "Доктор", "Петя", "Петров", "Иванович", 200, 90);
  70. ArrayList footballteam = new ArrayList();
  71. for (int i = 0; i < 3; i++)
  72. {
  73. footballteam.Add(ss[i]);
  74. footballteam.Add(tt[i]);
  75. }
  76. Console.Clear();
  77. Console.WriteLine("Студенты");
  78. foreach (Student l in ss)
  79. {
  80. l.Pasport();
  81. }
  82. Console.ReadLine();
  83. Console.Clear();
  84. Console.WriteLine("Преподаватели");
  85. foreach (Teacher t in tt)
  86. {
  87. t.Pasport();
  88. }
  89. Console.ReadLine();
  90. Console.Clear();
  91. Console.WriteLine("Комманда");
  92. foreach (Person p in footballteam)
  93. {
  94. p.Pasport();
  95. }
  96. Console.ReadLine();
  97. }
  98. }
  99. }

Решение задачи: «Виртуальная функция выводит неправильные значения»

textual
Листинг программы
  1. class Person
  2. {
  3.     protected double rost, ves;
  4.     protected string FName, Lname, Mname;
  5.     public Person(string Fname, string Lname, string Mname, double rost, double ves)
  6.     {
  7.         this.FName = Fname;
  8.         this.Lname = Lname;
  9.         this.Mname = Mname;
  10.         this.rost = rost;
  11.         this.ves = ves;    
  12.     }
  13.     public virtual void Pasport()
  14.     {
  15.         Console.WriteLine("Фамилия {0} Имя {1} Отчество {2} Рост {3} Вес {4}", Lname, FName, Mname, rost, ves);
  16.     }
  17. }

ИИ поможет Вам:


  • решить любую задачу по программированию
  • объяснить код
  • расставить комментарии в коде
  • и т.д
Попробуйте бесплатно

Оцени полезность:

11   голосов , оценка 3.909 из 5

Нужна аналогичная работа?

Оформи быстрый заказ и узнай стоимость

Бесплатно
Оформите заказ и авторы начнут откликаться уже через 10 минут
Похожие ответы