Разобрать код - C# (191827)
Формулировка задачи:
Прошу пояснить код программы, что где и почему.
там по идеи должно быть:
1.В каждом классе спроектировать методы инициализации объектов, редактирование свойств и методы работы с объектами.
2. Проектирование и реализация классов. Конструкторов, методов и свойств. Доступ к полям классов сделать через свойства.
4. В базовом классе реализовать 2 виртуальные методы и переопределить их в походных кдасах.
5. Сделать базовый класс абстрактным, а реализацию методов сделать в производных классах.
6. Разработать 1 интерфейсный класс и реализовать его методы в одном из производных классов.
7. Создать класс, вложенный в базовый класс, и реализовать методы работы с этим классом.
8. Создать массив объектов одного из производных классов. Использовать стандартные интерфейсы для упорядочения объектов по одним и несколькими критериями.
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
namespace PREDPR
{
class Program
{
interface IComparable
{
void CompareTo(int obj);
int OLD(int a, int b);
}
abstract class Firm : IComparable
{
public string firmname;
public int kol_vo_years;
public string rabochie;
public Firm(string n, string r, int a)
{
firmname = n;
kol_vo_years = a;
rabochie = r;
}
public virtual string GetName(int str) { return firmname; }
public virtual void MyRab(string str) { return; }
public virtual void Mysecret(int R) { return; }
public void CompareTo(int kol_vo_years)
{
if (kol_vo_years <= 2) Console.WriteLine("Молода компанiя");
else
Console.WriteLine("Kомпанiя стабiльна");
}
public int OLD(int a, int b)
{
int c;
if (a > b) c = a;
else c = b;
return c;
}
}
class Privat_firm : Firm
{
string tovar_vupiskf;
public Privat_firm(string n, string r, int a, string f)
: base(n, r, a)
{
firmname = n;
kol_vo_years = a;
rabochie = r;
tovar_vupiskf = f;
}
class Becpeca
{
string[] subject = { "небеспечне", "беспечне", "екологiчне" };
double[] assesment = { 1, 2, 3 };
public void StTovar(int u)
{
Console.WriteLine(subject[u - 1]);
}
}
Becpeca bec = new Becpeca();
public override string GetName(int kod_firm)
{
string tovar_vupiskf;
switch (kod_firm)
{
case 1: { tovar_vupiskf = "ООО"; bec.StTovar(1); break; }
case 2: { tovar_vupiskf = "ВАТ"; bec.StTovar(2); break; }
case 3: { tovar_vupiskf = "ЗАТ"; bec.StTovar(3); break; }
default: tovar_vupiskf = "помилка у кодi пыдприемства"; break;
}
return tovar_vupiskf;
}
public override void MyRab(string r)
{
Console.WriteLine("Робочий - " + r);
}
}
class Dergavne : Firm
{
public string direktor_name;
public int dayswork;
public int secret_yroven;
public Dergavne(string n, string r, int a, string f, int c, int b)
: base(n, r, a)
{
//конструктор з параметрами
firmname = n;
kol_vo_years = a;
rabochie = r;
direktor_name = f;
dayswork = c;
secret_yroven = b;
}
public override void Mysecret(int secret_yroven)
{
Rab_secret(secret_yroven);
Console.WriteLine("Таким чином обьект мая рiвень секретностi = " + secret_yroven);
}
public void Rab_secret(int secret_yroven)
{
if (secret_yroven == 0)
Console.WriteLine("Засекреченнiй обьект");
else
Console.WriteLine("Обьект не засекреченний ");
}
}
static void Main(string[] args)
{
Console.WriteLine("Розглядаеться приватна компанiя");
Console.WriteLine();
Privat_firm pr1 = new Privat_firm("Бензинофф", "Островушко Ю.С.", 5, "паливо");
Console.WriteLine("Назва компанiї" + pr1.firmname);
Console.WriteLine("ФIО Працiвника" + pr1.rabochie);
Console.WriteLine();
string str1 = pr1.GetName(1);
Console.WriteLine(str1 + " " + pr1.firmname);
pr1.MyRab("ФIО Працiвника " + pr1.rabochie);
Console.WriteLine();
Console.WriteLine("Розглядается державнi компанiї");
Console.WriteLine();
Dergavne der1 = new Dergavne("ХИМСТАФ", "Рак Т.С.", 5, "Овчаров Р.К.", 5, 1);
Console.WriteLine("Назва компанiї " + der1.firmname);
Console.WriteLine("ФIО Працiвника " + der1.rabochie);
Console.WriteLine();
Dergavne der2 = new Dergavne("Рапториан", "Файзюков П.С.", 8, "Овчаров Р.К.", 5, 0);
Console.WriteLine("Назва компанiї " + der2.firmname);
Console.WriteLine("ФIО Працiвника " + der2.rabochie);
Console.WriteLine();
der1.Mysecret(der1.secret_yroven);
int c = der1.OLD(der1.kol_vo_years, der2.kol_vo_years);
}
}
}Решение задачи: «Разобрать код»
textual
Листинг программы
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
namespace PREDPR
{
class Program
{
interface IComparable
{
void CompareTo(int obj);
int OLD(int a, int b);
}
abstract class Firm : IComparable
{
public string firmname;
public int kol_vo_years;
public string rabochie;
public Firm(string n, string r, int a)
{
firmname = n;
kol_vo_years = a;
rabochie = r;
}
public virtual string GetName(int str) { return firmname; }
public virtual void MyRab(string str) { return; }
public virtual void Mysecret(int R) { return; }
public void CompareTo(int kol_vo_years)
{
if (kol_vo_years <= 2) Console.WriteLine("молодая компания");
else
Console.WriteLine("Kомпанiя стабильно");
}
public int OLD(int a, int b)
{
int c;
if (a > b) c = a;
else c = b;
return c;
}
}
class Privat_firm : Firm
{
string tovar_vupiskf;
public Privat_firm(string n, string r, int a, string f)
: base(n, r, a)
{
firmname = n;
kol_vo_years = a;
rabochie = r;
tovar_vupiskf = f;
}
class Becpeca
{
string[] subject = { "неббезопас", "безопас", "екологич" };
double[] assesment = { 1, 2, 3 };
public void StTovar(int u)
{
Console.WriteLine(subject[u - 1]);
}
}
Becpeca bec = new Becpeca();
public override string GetName(int kod_firm)
{
string tovar_vupiskf;
switch (kod_firm)
{
case 1: { tovar_vupiskf = "ООО"; bec.StTovar(1); break; }
case 2: { tovar_vupiskf = "ВАТ"; bec.StTovar(2); break; }
case 3: { tovar_vupiskf = "ЗАТ"; bec.StTovar(3); break; }
default: tovar_vupiskf = "ошибка в коде"; break;
}
return tovar_vupiskf;
}
public override void MyRab(string r)
{
Console.WriteLine("Рабочий - " + r);
}
}
class Dergavne : Firm
{
public string direktor_name;
public int dayswork;
public int secret_yroven;
public Dergavne(string n, string r, int a, string f, int c, int b)
: base(n, r, a)
{
firmname = n;
kol_vo_years = a;
rabochie = r;
direktor_name = f;
dayswork = c;
secret_yroven = b;
}
public override void Mysecret(int secret_yroven)
{
Rab_secret(secret_yroven);
Console.WriteLine("Таким образом у обьекта уровень секретности = " + secret_yroven);
}
public void Rab_secret(int secret_yroven)
{
if (secret_yroven == 0)
Console.WriteLine("Засекреченный объект");
else
Console.WriteLine("Обьект не засекреченный ");
}
}
static void Main(string[] args)
{
Console.WriteLine("Рассматривается частная компания");
Console.WriteLine();
Privat_firm pr1 = new Privat_firm("Бензинофф", "Островушко Ю.С.", 5, "паливо");
Console.WriteLine("Название компании" + pr1.firmname);
Console.WriteLine("ФИО работника" + pr1.rabochie);
Console.WriteLine();
string str1 = pr1.GetName(1);
Console.WriteLine(str1 + " " + pr1.firmname);
pr1.MyRab("ФИО работника " + pr1.rabochie);
Console.WriteLine();
Console.WriteLine("Рассматривается государственные компании");
Console.WriteLine();
Dergavne der1 = new Dergavne("ХИМСТАФ", "Рак Т.С.", 5, "Овчаров Р.К.", 5, 1);
Console.WriteLine("Название компании " + der1.firmname);
Console.WriteLine("ФИО работника " + der1.rabochie);
Console.WriteLine();
Dergavne der2 = new Dergavne("Рапториан", "Файзюков П.С.", 8, "Овчаров Р.К.", 5, 0);
Console.WriteLine("Название компании " + der2.firmname);
Console.WriteLine("ФИО работника " + der2.rabochie);
Console.WriteLine();
der1.Mysecret(der1.secret_yroven);
int c = der1.OLD(der1.kol_vo_years, der2.kol_vo_years);
}
}
}