Наследование и виртуальные методы
Автор: Elina Shafikova • Апрель 9, 2020 • Лабораторная работа • 2,789 Слов (12 Страниц) • 304 Просмотры
[pic 1] КГЭУ | МИНИСТЕРСТВО ОБРАЗОВАНИЯ И НАУКИ РОССИЙСКОЙ ФЕДЕРАЦИИФедеральное государственное бюджетное образовательное «КАЗАНСКИЙ ГОСУДАРСТВЕННЫЙ ЭНЕРГЕТИЧЕСКИЙ УНИВЕРСИТЕТ» |
Институт цифровых технологий и экономики
Кафедра «ИК»
ПРОГРАММНО – АППАРАТНЫЕ СРЕДСТВА ЭВМ
Отчет по лабораторной работе
Тема: «Наследование и виртуальные методы»
Исполнитель:
Группа:
КАЗАНЬ - 2019
Задача:
[pic 2]
Решение без виртуальных методов:
[pic 3]
Код программы:
Класс Polkovodec и класс Best_polkovodec:
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
namespace ConsoleApp6
{
public class Polkovodec
{
public int battle;
public int victory;
public Polkovodec(int battle, int victory)
{
this.battle = battle;
this.victory = victory;
}
public double Q()
{
return Convert.ToDouble(victory * victory) / battle;
}
}
class Best_polkovodec : Polkovodec
{
public int p;
public Best_polkovodec(int battle, int victory, int p) : base(battle, victory)
{
this.p = p;
}
public double Qp()
{
return Convert.ToDouble(victory*victory)/battle + p * p / battle;
}
}
}
Код программы класса Program:
using System;
namespace ConsoleApp6
{
class Program
{
static void Main(string[] args)
{
var rand = new Random();
Polkovodec Alexandr;
Best_polkovodec Napoleon;
int battle;
int victory;
int p;
bool key;
for (int i = 0; i < 3; i++)
{
battle = rand.Next(5, 20);
victory = Math.Abs(battle-rand.Next(1, 10));
p = Math.Abs(victory - rand.Next(1, 5));
key = rand.Next(0, 2) == 0;
if (key == true)
{
Alexandr = new Polkovodec(battle, victory);
Console.WriteLine($"\nПолководец Александр участвовал в {Alexandr.battle} битвах выиграл {Alexandr.victory} из них");
Console.WriteLine($"Качество объекта = {Alexandr.Q():0.00}");
}
else
{
Napoleon= new Best_polkovodec(battle, victory, p);
Console.WriteLine($"\nПолководец Наполеон участвовал в {Napoleon.battle} битвах выиграл {Napoleon.victory} из них \n и {Napoleon.p} выиграл с меньшим числом");
Console.WriteLine($"Уточненное качество = {Napoleon.Qp():0.00}");
}
...