Главная страница Случайная страница Разделы сайта АвтомобилиАстрономияБиологияГеографияДом и садДругие языкиДругоеИнформатикаИсторияКультураЛитератураЛогикаМатематикаМедицинаМеталлургияМеханикаОбразованиеОхрана трудаПедагогикаПолитикаПравоПсихологияРелигияРиторикаСоциологияСпортСтроительствоТехнологияТуризмФизикаФилософияФинансыХимияЧерчениеЭкологияЭкономикаЭлектроника |
💸 Как сделать бизнес проще, а карман толще?
Тот, кто работает в сфере услуг, знает — без ведения записи клиентов никуда. Мало того, что нужно видеть свое раписание, но и напоминать клиентам о визитах тоже.
Проблема в том, что средняя цена по рынку за такой сервис — 800 руб/мес или почти 15 000 руб за год. И это минимальный функционал.
Нашли самый бюджетный и оптимальный вариант: сервис VisitTime.⚡️ Для новых пользователей первый месяц бесплатно. А далее 290 руб/мес, это в 3 раза дешевле аналогов. За эту цену доступен весь функционал: напоминание о визитах, чаевые, предоплаты, общение с клиентами, переносы записей и так далее. ✅ Уйма гибких настроек, которые помогут вам зарабатывать больше и забыть про чувство «что-то мне нужно было сделать». Сомневаетесь? нажмите на текст, запустите чат-бота и убедитесь во всем сами! Листинг 9.1. Демонстрация полиморфизма ⇐ ПредыдущаяСтр 2 из 2
(Программа Студенты и преподаватели) unit polimor; interface uses Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms, Dialogs, StdCtrls; type TForm1 = class(TForm) Label1: TLabel; Edit1: TEdit; Label2: TLabel; Edit2: TEdit; Button1: TButton; Button2: TButton; GroupBox1: TGroupBox; RadioButton1: TRadioButton; RadioButton2: TRadioButton; Label3: TLabel; procedure Button1Click(Sender: TObject); procedure Button2Click(Sender: TObject); private { Private declarations } public { Public declarations } end; type //конструктор базового класса TPerson = class fName: string; // имя constructor Create(name: string); function info: string; virtual; end; // класс Студент TStud = class(TPerson) fGr: integer; // номер группы constructor Create(name: string; gr: integer); function info: string; override; end; // класс Преподаватель TProf = class (TPerson) fdep: string; // название кафедры constructor Create(name: string; dep: string); function info: string; override; end; const SZL = 10; // размер списка var Form1: TForm1; List: array[1..SZL] of TPerson; // список n: integer =0; // кол-во людей в списке implementation {$R *.dfm} constructor TPerson.Create(name: string); begin fName: = name; end; constructor TStud.Create(name: string; gr: integer); begin inherited create(name); // вызвать конструктор базового класса fGr: = gr; end; constructor TProf.create(name: string; dep: string); begin inherited create(name); // вызвать конструктор базового класса fDep: = dep; end; function TPerson.Info: string; begin result: = fname; end; function TStud.Info: string; begin result: = fname + ' ' +IntToStr(fGr); end; function TProf.Info: string; begin result: = fname + ' ' + fDep; end; // щелчок на кнопке Добавить procedure TForm1.Button1Click(Sender: TObject); begin if n < SZL then begin // добавить объект в список n: =n+1; if Radiobutton1.Checked then // создать объект TStud List[n]: =TStud.Create(Edit1.Text, StrToInt(Edit2.Text)) else // создать объект TProf List[n]: =TProf.Create(Edit1.Text, Edit2.Text); // очистить поля ввода Edit1.Text: = ''; Edit2.Text: = ''; Edit1.SetFocus; // курсор в поле Фамилия end; end; // щелчок на кнопке Список procedure TForm1.Button2Click(Sender: TObject); var i: integer; // индекс st: string; // список begin for i: =1 to SZL do if list[i] < > NIL then st: =st + list[i].info + #13; ShowMessage('Cпиcoк студентов и преподавателей'+#13+st); end; end.
Образцы форм, получаемых в ходе реализации задания:
III. Контрольные вопросы 1. Класс 2. Объект 3. Метод 4. Инкапсуляция и свойства объекта 5. Наследование 6. Директивы protected и private 7. Полиморфизм.
|