Студопедия

Главная страница Случайная страница

Разделы сайта

АвтомобилиАстрономияБиологияГеографияДом и садДругие языкиДругоеИнформатикаИсторияКультураЛитератураЛогикаМатематикаМедицинаМеталлургияМеханикаОбразованиеОхрана трудаПедагогикаПолитикаПравоПсихологияРелигияРиторикаСоциологияСпортСтроительствоТехнологияТуризмФизикаФилософияФинансыХимияЧерчениеЭкологияЭкономикаЭлектроника






Примеры выполнения заданий лабораторной работы






Пример 1. Описать класс «запись», содержащий следующие закрытые поля: фамилия, имя, номер телефона, дата рождения (массив из трех чисел).

Описать класс «записная книжка», содержащий закрытый массив записей.

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

 

using System;

using System.Collections.Generic;

namespace Zapis

{

class Zapis {

// закрытые члены класса: фамилия, имя, телефон, дата

рождения

private String _famil;

private String _name;

private String _telefon;

private int[] _date = new int[3];

private static int _KolZap;

// конструстор класса

public Zapis() {

Famil = " ";

Name = " ";

Telefon = " ";

Date[0] = 0;

Date[1] = 0;

Date[2] = 0;

_KolZap++;

}

// свойства для доступа к закрытым членам класса

public String Famil {

get { return _famil; }

set { _famil = value; }

}

 

public String Name {

get { return _name; }

set { _name = value; }

}

public String Telefon {

get { return _telefon; }

set { _telefon = value; }

}

public int[] Date {

get { return _date; }

set { _date = value; }

}

//статический метод, возвращающий количество записей

public static int GetKolZap() {

return _KolZap;

}

// метод для вывода информации о записи на экран

public void print() {

Console.WriteLine(" {0} {1}, родился {2}.{3}.{4}, его номер телефона: {5}", Name, Famil, Date[0], Date[1], Date[2], Telefon);

}

}

 

class ZapisBook {

// закрытый массив записей

private Zapis[] _mass;

//конструктор класса, создает массив записей

public ZapisBook(int KolZap) {

_mass = new Zapis[KolZap];

}

//индексатор для доступа к объекту класса

public Zapis this[int index] {

get { return _mass[index]; }

set { _mass[index] = value; }

 

}

}

 

class Program

{

static void Main() {

int _kolZap;

Console.Write(" Введите количество записей: ");

_kolZap = int.Parse(Console.ReadLine());

ZapisBook zp = new ZapisBook(_kolZap);

// заполнение массива записей

Zapis _currZap;

for (int i = 0; i < _kolZap; i++) {

_currZap = new Zapis();

Console.WriteLine(" Введите информацию по записи № {0}", i + 1);

Console.Write(" Фамилия: ");

_currZap.Famil = Console.ReadLine();

Console.Write(" Имя: ");

_currZap.Name = Console.ReadLine();

Console.Write(" Телефон: ");

_currZap.Telefon = Console.ReadLine();

Console.Write(" День рождения: ");

_currZap.Date[0] = int.Parse(Console.ReadLine());

Console.Write(" Месяц рождения: ");

_currZap.Date[1] = int.Parse(Console.ReadLine());

Console.Write(" Год рождения: ");

_currZap.Date[2] = int.Parse(Console.ReadLine());

zp[i] = _currZap;

Console.WriteLine(" ");

Console.WriteLine(" Количество записей в записной книге = {0}",

Zapis.GetKolZap());

}

 

Console.WriteLine(" Список всех записей: \n");

// вывод записей на экран

for (int i = 0; i < _kolZap; i++) {

zp[i].print();

}

Console.ReadLine();

}

}

}

Пример 2. Создать класс Rectangle, разработав следующие элементы класса:

- Поля: int a, b;

- Конструктор, позволяющий создать экземпляр класса с заданными длинами сторон.

- Методы, позволяющие:

вывести длины сторон прямоугольника на экран;

рассчитать периметр прямоугольника;

рассчитать площадь прямоугольника.

- Свойства:

получить-установить длины сторон прямоугольника (доступное для чтения и записи);

позволяющее установить, является ли данный прямоугольник квадратом (доступное только для чтения).

 

using System;

using System.Collections.Generic;

using System.Linq;

using System.Text;

 

namespace Study

{

class Rectangle

{

int a, b;

int [] array = new int [2];

 

 

public Rectangle(int a, int b)

{

this.a = a;

this.b = b;

}

 

public void Show ()

{

Console.WriteLine(" Storony " + a +" x " + b);

}

 

public int Perimetr ()

{

return a * 2 + b * 2;

}

 

public int Square()

{

return a * b;

}

 

public int A

{

get { return a; }

set { a = value; }

}

 

public int B

{

get { return b; }

set { b = value; }

}

 

public bool K //kvadrat?

{

get { if (a == b) return true; else return false; }

}

 

public int this[int i]

{

get

{

if (i == 0)

return a;

else

return 0;

if (i == 1)

return 1;

else

return 0;

}

set

{

if (i == 0)

array[i] = a;

if (i == 1)

array[i] = b;

}

}

 

public static Rectangle operator ++(Rectangle ob)

{

Rectangle ob1 = new Rectangle(ob.a, ob.b);

ob1.a = ob.a + 1;

ob1.b = ob.b + 1;

return ob1;

}

 

public static Rectangle operator --(Rectangle ob)

{

Rectangle ob1 = new Rectangle(ob.a, ob.b);

ob1.a = ob.a - 1;

ob1.b = ob.b - 1;

return ob1;

}

 

public static bool operator true(Rectangle ob)

{

if (ob.a == ob.b)

return true;

else return false;

}

 

public static bool operator false(Rectangle ob)

{

if (ob.a! = ob.b)

return true;

else

return false;

}

 

public static Rectangle operator *(Rectangle ob, int skal)

{

Rectangle ob1 = new Rectangle(ob.a, ob.b);

ob1.a = ob.a * skal;

ob1.b = ob.b * skal;

return ob1;

}

 

public static implicit operator Rectangle (string a) //неявное преобразование типа int [] в DemoArray

{

return new Rectangle(a);

}

 

public static implicit operator int [](Rectangle a) //неявное преобразование типа DemoArray в int []

{

int []temp=new int[a.LengthArray];

for (int i = 0; i < a.LengthArray; ++i)

temp[i] = a[i];

return temp;

}

}

}

}

 

using System;

using Study;

class MyClass

{

static void Main()

{

Rectangle ob = new Rectangle(3, 5);

ob.Show();

Console.WriteLine(" Perimentr = " + ob.Perimetr());

Console.WriteLine(" Ploshad = " + ob.Square());

ob.A++;

ob.B++;

ob.Show();

ob.A--;

ob.B--;

ob.Show();

ob = ob * 2;

ob.Show();

ob.A = 15;

ob.B = 15;

ob.Show();

if (ob)

{

Console.WriteLine(" Eto kvadrat! ");

}

Console.ReadKey();

}

}






© 2023 :: MyLektsii.ru :: Мои Лекции
Все материалы представленные на сайте исключительно с целью ознакомления читателями и не преследуют коммерческих целей или нарушение авторских прав.
Копирование текстов разрешено только с указанием индексируемой ссылки на источник.