Язык С#. Класс Person (пример)

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

Поля класса:
fam   - фамилия
status – статус  (ребенок, школьник, студент, служащий, пенсионер)
salary - зарплата
age – возраст

Для каждого из этих полей определим разумную  стратегию доступа (доступ чтение /запись).

  • Поле fam.  Фамилию можно задать только один раз. Фамилия меняется, только если ее значение ни разу еще не задавалась.
  • Поле status.  Доступ только для чтения. Статус персоны пересчитывается автоматически при всяком изменении возраста.
  • Поле age.  Доступ для чтения и  для записи. Изменение возраста приведет и к одновременному изменению статуса.
  • Поле salary.  Доступ для чтения и для записи.

 

using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
 namespace MyPerson
{
    class Person
    {
        string fam;     // поле фамилия
        string status;  // поле статус
        int salary;     // поле зарплата
        int age;        // поле возраст 
         public string Fam  //свойство для поля фамилия
        {
            set { if (fam==null) fam = value; }     //код - установка значения поля фамилия
            get { return fam; }                     //код - чтение значения поля  фамилия
        }
         public int Age        //свойство для поля возраст
        {
            set                    //код - установка значения полей возраст и статус
            {       
                age = value;
                if (age < 7) status = "ребенок";
                else if (age < 17) status = "школьник";
                else if (age < 22) status = "студент";
                else  status = "служащий";
               
            }
            get { return (age); }       //код - чтение значения поля  возраст
         }
         public string Status  //свойство для поля статус
        {
            get { return status; }    // код - чтение поля статус
        }
         public int Salary  //свойство для поля зарплата
       {
        get { return salary; }  //код - чтение поля зарплата
        set { salary = value; }   //код - установка поля зарплата
       }
         public void Show()  // метод вывода значений полей
        {
            Console.WriteLine("Фамилия " + fam);
            Console.WriteLine("Возраст " + age);
            Console.WriteLine("Статус " + status);
            Console.WriteLine("Зарплата " + salary);
        }      
    }
       class Program
    {
        static void Main(string[] args)
        {
            int n=0,i;
            Person [] pr = new Person [10];          //объявляем массив на 10 объектов класса Person
            for (i = 0; i < 10; i++)
           {      pr[i] = new Person();        }     // создаем 10 объектов
             String s,subkey,key;
            do                               // выводим меню для работы с программой
            {
                Console.WriteLine("***Меню***");
                Console.WriteLine("1 - Ввод данных");
                Console.WriteLine("2 - Вывод данных");
                Console.WriteLine("3 - Поиск данных по возрасту");
                Console.WriteLine("4 - Выход");
                Console.WriteLine();
                Console.WriteLine("Ваш выбор...");
                key = Console.ReadLine();
                 switch (key)
                {
                    case "1":               // ввод данных выполняется через соответствующие свойства
                        do
                        {
        
                      Console.WriteLine("Введите фамилию: ");
                     s = Console.ReadLine(); pr[n].Fam = s;
                     Console.WriteLine("Введите возраст: ");
                     s = Console.ReadLine(); pr[n].Age = int.Parse(s);
                     Console.WriteLine("Введите зарплату: ");
                     s = Console.ReadLine(); pr[n].Salary = int.Parse(s);
                            n++;                               // количество инициализорованных объектов
                            Console.WriteLine("Продолжить?(Y/N)...");
                            subkey = Console.ReadLine();
                        } while ((subkey == "y") || (subkey == "Y")); break;
                     case "2":               // вывод данных
                        for (i = 0; i < n; i++)
                        {
                           pr[i].Show();
                            Console.WriteLine();
                        } break;
                    case "3":             // поиск данных по указанному возрасту
                        {
                            bool tr = true;
                            Console.WriteLine("Введите возраст для поиска: ");
                            s = Console.ReadLine(); int num = int.Parse(s);
                            for (i = 0; i < n; i++)
                                if (pr[i].Age == num)
                                {
                                   Console.WriteLine("Фамилия={0}, возраст={1}, статус={2}",
                                    pr[i].Fam, pr[i].Age, pr[i].Status);
                                    tr = false;
                                    Console.WriteLine();
                                }
                            if (tr) Console.WriteLine("С таким возрастом нет человека!");
                            Console.WriteLine();
                        } break;
                }
            } while (key != "4");
         }
        }
}
 

Добавить комментарий
  • Комментарии не найдены