Форум программистов, компьютерный форум, киберфорум
C# для начинающих
Войти
Регистрация
Восстановить пароль
 
Рейтинг 4.57/14: Рейтинг темы: голосов - 14, средняя оценка - 4.57
4 / 4 / 1
Регистрация: 10.03.2011
Сообщений: 93
1

Проверка задания по наследованию

16.03.2011, 06:49. Просмотров 2670. Ответов 1
Метки нет (Все метки)

Ребят посмотрите пожалуйста:
Задание: При выполнении этих заданий требуется написать законченную программу, в которой реализуется простое наследование классов.
В программе требуется описать базовый и производные классы. Базовый класс (возможно, абстрактный) с помощью виртуальных или абстрактных методов и свойств должен задавать интерфейс для производных классов. Во всех классах следует переопределить метод Equals, чтобы обеспечить сравнение значений, а не ссылок. Функция Main должна содержать массив из элементов базового класса, заполненный ссылками на производные классы. В этой функции должно демонстрироваться использование всех разработанных элементов классов.
15. Автомобиль, грузовик, автобус, легковой автомобиль.

Я написала:
C#
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
 
namespace Laba4
{
    class Авто: System.Object //базовый класс
    {
        protected string марка, тип_кузова, другое;
            //фио, должность, др;
        protected int год;
        //стаж
        public Авто(string марка, string тип_кузова, string другое, int год) // конструктор базового класса
            //Кадры(string фио, string должность, string др, int стаж)
        {
            this.марка = марка;
            this.тип_кузова = тип_кузова;
            this.другое = другое;
            this.год = год;
        }
        public Авто()
        {
            this.марка = "Жигули Лада";
            this.тип_кузова = "Седан";
            this.другое = "цвет - белая ночь";
            this.год = 2005;
        }
 
        public override int GetHashCode()
        {
 
            return base.GetHashCode();
        }
 
        public override bool Equals(object obj)
        {
            Авто temp = (Авто)obj;
            if (temp.марка == this.марка && temp.тип_кузова == this.тип_кузова && temp.другое == this.другое && temp.год == this.год)
            {
                return true;
            }
            else return false;
        }
 
        public virtual void Print()
        {
            Console.WriteLine("{0},{1},{2}, {3}", марка, тип_кузова, другое, год);
        }
    }
 
    class Автобус : Авто //производный класс 1
    // class Администрация: Кадры
    {
        string вместимость;
        public Автобус(string вместимость, string марка, string тип_кузова, string другое, int год)
            : base(марка, тип_кузова, другое, год) //конструктор базового класса
        {
            this.вместимость = вместимость;
            this.марка = марка;
            this.тип_кузова = тип_кузова;
            this.другое = другое;
            this.год = год;
        }
        public override void Print()
        {
 
            Console.WriteLine("{0}, {1}, {2}, {3}, {4}", марка, тип_кузова, другое, год, вместимость);
        }
        public override bool Equals(object obj)
        {
            Автобус temp = (Автобус)obj;
            if (temp.вместимость == this.вместимость && temp.марка == this.марка && temp.тип_кузова == this.тип_кузова && temp.другое == this.другое && temp.год == this.год)
            {
                return true;
            }
            else return false;
        }
        public override int GetHashCode()
        {
 
            return base.GetHashCode();
        }
    }
 
    class Грузовик : Авто //производный класс 2
    {
        string Грузоподъем;
        public Грузовик(string Грузоподъем, string марка, string тип_кузова, string другое, int год)
            : base(марка, тип_кузова, другое, год) //конструктор базового класса
        {
            this.Грузоподъем = Грузоподъем;
            this.марка = марка;
            this.тип_кузова = тип_кузова;
            this.другое = другое;
            this.год = год;
        }
        public override void Print()
        {
 
            Console.WriteLine("{0}, {1}, {2}, {3}, {4}", марка, тип_кузова, другое, год, Грузоподъем);
        }
        public override bool Equals(object obj)
        {
            Грузовик temp = (Грузовик)obj;
            if (temp.Грузоподъем== this.Грузоподъем && temp.марка == this.марка && temp.тип_кузова == this.тип_кузова && temp.другое == this.другое && temp.год == this.год)
            {
                return true;
            }
            else return false;
        }
        public override int GetHashCode()
        {
 
            return base.GetHashCode();
        }
    }
 
    class Легковой : Авто //производный класс 3
    {
        string количество_дверей;
        public Легковой(string количество_дверей, string марка, string тип_кузова, string другое, int год)
            : base(марка, тип_кузова, другое, год) //конструктор базового класса
        {
            this.количество_дверей = количество_дверей;
            this.марка = марка;
            this.тип_кузова = тип_кузова;
            this.другое = другое;
            this.год = год;
        }
        public override void Print()
        {
 
            Console.WriteLine("{0}, {1}, {2}, {3}, {4}", марка, тип_кузова, другое, год, количество_дверей);
        }
        public override bool Equals(object obj)
        {
            Легковой temp = (Легковой)obj;
            if (temp.количество_дверей == this.количество_дверей && temp.марка == this.марка && temp.тип_кузова == this.тип_кузова && temp.другое == this.другое && temp.год == this.год)
            {
                return true;
            }
            else return false;
        }
        public override int GetHashCode()
        {
 
            return base.GetHashCode();
        }
    }
 
    class Program
    {
        static void Main(string[] args)
        {
            Авто[] obj = new Авто[4];
            obj[0] = new Авто();
            obj[1] = new Автобус("Перевоз людей","Икарус", "Автобус", "1996", 45);
            obj[2] = new Грузовик("Воровайка","КАМАЗ", "Грузовик", "2009", 5);
            obj[3] = new Легковой("Белый","Волга", "Легковой", "2002", 4);
 
            for (int i = 0; i < obj.Length; i++)
                obj[i].Print();
            if (!obj[0].Equals(obj[1]))
            {
                Console.Write("\nНе равны");
            }
            if (obj[1].Equals(obj[1]))
            {
                Console.Write("\nРавны");
            }
            if (!obj[0].Equals(obj[2]))
            {
                Console.Write("\nНе равны");
            }
            if (obj[3].Equals(obj[3]))
            {
                Console.Write("\nРавны");
            }
 
            Console.ReadKey();
        }
    }
}
Все работает - просто проверьте все ли правильно именно по наследованию

 Комментарий модератора 
Создавайте для своих вопросов отдельные темы. Одна тема - один один вопрос (правила п.3.15)
0
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
16.03.2011, 06:49
Ответы с готовыми решениями:

Задача по наследованию. Не понимаю некоторые моменты в формулировке задания
Здравствуйте! Вот есть задание: Описать базовый класс СТРОКА Обязательные поля класса: #...

Проверка наличия задания и назначение задания
Вопрос как зделать так чтоби ето задания после повторно запуска *.bat проверяло существует ли даное...

Проверка решения задания
Здравствуйте! Попытался решить задание, хотелось бы проверить правильность. Дано: ...

Проверка выполнения задания на классы
Вообщем разбираюсь с классами и вот есть такое задание: &quot;Разработать класс, описывающий некоторый...

1
22 / 22 / 2
Регистрация: 09.02.2011
Сообщений: 54
16.03.2011, 10:23 2
Пробежадся глазами по коду, обращая внимания на наследования и на конструкторы.
Вроде всё верно...

Единственное что удивило это
C#
1
class Авто: System.Object
первый раз такое вижу... это же базовый клас(а может и верно...)

и такие переменные как
кол-во дверей, грузоподьёмность и кол-во посадочных мест я конечно бы следал int и double, а не string
0
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
16.03.2011, 10:23

Заказываю контрольные, курсовые, дипломные и любые другие студенческие работы здесь.

Проверка соответствия задания и кода
import java.util.Scanner; public class twenty_five { public static void main(String args) {...

Проверка на правильность задания. Класс Cat
Задание: Напишите публичный класс Cat, что будет описывать кота. Класс Cat должен содержать...

Нужна реализации задания + проверка кода
В общем, есть задание: Напишите консольную программу, которая составляет 5-ти дневное расписание...

Проверка задания на логические операции на верность выполнения
Можете написать код для решения следующей задачи: на ассемблере с Intel'овским синтаксисом через...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
2
Ответ Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2020, vBulletin Solutions, Inc.