Примеры выполнения заданий лабораторной работы
Пример 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(); } }
|