Объектно-ориентированное программирование

Создание класса Person с полями. Конструктор с параметрами и без, устанавливающий значения свойств по умолчанию. Метод установки возраста персоны, с проверкой на правильность ввода. Создание класса Касса с полями, метод для вывода информации о кассе.

Рубрика Программирование, компьютеры и кибернетика
Вид лабораторная работа
Язык русский
Дата добавления 15.12.2015
Размер файла 50,6 K

Отправить свою хорошую работу в базу знаний просто. Используйте форму, расположенную ниже

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

Размещено на http://www.allbest.ru/

МИНИСТЕРСТВО ОБРАЗОВАНИЯ И НАУКИ РОССИЙСКОЙ ФЕДЕРАЦИИ

Федеральное государственное бюджетное образовательное учреждение высшего профессионального образования

"Ижевский государственный технический университет

имени М.Т. Калашникова"

Кафедра "Программное обеспечение"

Отчет

по лабораторной работе

Объектно-ориентированное программирование

Ижевск

2014

Постановка задачи

Создать класс Person, с полями:

закрытые поля:

имя - строка ( 20 символов )

фамилия - строка ( 20 символов )

отчество - строка ( 20 символов )

возраст - целое число

открытые поля:

Конструктор без параметров, устанавливающий значения свойство

по умолчанию.

Конструктор с 4 параметрами строка, строка, строка, число, для

инициализации полей (имя, фамилия, отчество, возраст)

класса.

Метод для установки возраста персоны, с проверкой на

правильность ввода ( возраст >= 0 и <= 200 )

Метод для установки имени персоны, проверять длину строки.

Метод для установки фамилии персоны, проверять длину строки.

Метод для установки отчества персоны, проверять длину строки.

Метод для получения возраста персоны.

Метод для получения имени персоны.

Метод для получения фамилии персоны.

Метод для получения отчества персоны.

Метод вывода информации о персоне на экран.

Также создать класс Касса, с полями:

закрытые поля:

кассир - поле типа Person

клиент - поле типа Person

открытые поля:

Конструктор с одним параметром, устанавливающим кассира.

Метод для установки клиента, если фио клиента совпадает с фио

кассира, выводить предупреждение. (сравнение строк

производить при помощи метода strcmp или strncmp)

Метод для вывода информации о кассе: фио кассира, фио текущего

клиента.

Листинг программы

#include <iostream>

#include <string>

#include <windows.h>

using namespace std;

class Person

{

string nam,fam,oth;

unsigned int age;

public:

Person();

Person(string,string,string,unsigned int);

string getname();

string getfam();

string getoth();

unsigned int getage();

void setname(string a);

void setfam(string b);

void setoth(string c);

void setage(unsigned int d);

void show();

};

Person::Person()

{

nam="....................";

fam="....................";

oth="....................";

age=0;

}

Person::Person(string a,string b,string c,unsigned int d)

{

if(a.length()<=20) fam=a;

else cout<<"Error"<<endl;

if(b.length()<=20) nam=b;

else cout<<"Error"<<endl;

if(c.length()<=20) oth=c;

else cout<<"Error"<<endl;

if(d>=0 && d<=200) age=d;

else cout<<"Error"<<endl;

}

string Person::getname()

{

return nam;

}

string Person::getfam()

{

return fam;

}

string Person::getoth()

{

return oth;

}

unsigned int Person::getage()

{

return age;

}

void Person::setfam(string a)

{

if(a.length()<=20) fam=a;

else cout<<"Error"<<endl;

}

void Person::setname(string b)

{

if(b.length()<=20) nam=b;

else cout<<"Error"<<endl;

}

void Person::setoth(string c)

{

if(c.length()<=20) oth=c;

else cout<<"Error"<<endl;

}

void Person::setage(unsigned int d)

{

if(d>=0 && d<=200) age=d;

else cout<<"Error"<<endl;

}

void Person::show()

{

cout<<"Персона: "<<fam<<" "<<nam<<" "<<oth<<" "<<age<<endl;

}

class Cash:public Person

{

Person buy;

Person sell;

public:

Cash(Person);

void setcl(Person);

void showch();

};

Cash::Cash(Person a)

{

sell.setfam(a.getfam());

sell.setname(a.getname());

sell.setoth(a.getoth());

sell.setage(a.getage());

}

void Cash::setcl(Person a)

{

short f=0;

if (sell.getfam()==a.getfam()) f++;

if (sell.getname()==a.getname()) f++;

if (sell.getoth()==a.getoth()) f++;

if (f>0 && f<=3) cout<<"Ошибка ФИО клиента совпадает с ФИО кассира "<<endl;

else

{

buy.setfam(a.getfam());

buy.setname(a.getname());

buy.setoth(a.getoth());

buy.setage(a.getage());

f=0;

}

}

void Cash::showch()

{

cout<<"Касса"<<endl;

cout<<"Кассир: "<<sell.getfam()<<" "<<sell.getname()<<" "<<sell.getoth()<<" "<<sell.getage()<<endl;

cout<<"Клиент: "<<buy.getfam()<<" "<<buy.getname()<<" "<<buy.getoth()<<" "<<buy.getage()<<endl;

}

int main()

{

SetConsoleCP(1251);

SetConsoleOutputCP(1251);

Person seller("Баранова","Клара","Анатольевна",29);

seller.show();

Cash cash1(seller);

Person client("Яфаев","Руслан","Артемиевич",17);

cash1.setcl(client);

cash1.showch();

cash1.setcl(seller);

system("pause"); класс person касса ввод

}

Пример работы программы

Размещено на Allbest.ru


Подобные документы

  • Создание программы для обработки информации об объектах предметной области "Бытовая техника" в среде визуального программирования C++. Иерархия родственных классов. Описание логической структуры программы. Реализация файлового ввода/вывода данных.

    курсовая работа [711,4 K], добавлен 27.07.2014

  • Разработка графического интерфейса для ввода начальных значений, отображения результатов и тестирования методов собственного класса на языке программирования С++. Подсветка цветом выбранных операндов в процессе их инициализации и вывода на дисплей.

    курсовая работа [234,6 K], добавлен 27.12.2014

  • Объектно-ориентированное программирование как методология программирования, опирающаяся на инкапсуляции, полиморфизме и наследовании. Общая форма класса. Наследование как процесс, посредством которого один объект получает свойства другого объекта.

    презентация [214,9 K], добавлен 26.10.2013

  • Класс как специальная структура для хранения разнотипной информации о физическом объекте. Порядок объявления класса, его специальные элементы-функции. Создание указателя на объект. Особенности конструкторов и деструкторов. Собственные операции класса.

    курсовая работа [483,1 K], добавлен 07.04.2014

  • Основные понятия объектно-ориентированного программирования в PHP5. Структурный и объектно-ориентированный подход. Класс как абстрактный тип. Реализация класса. Конструкторы и деструкторы. Функция l_visited_style изменение стиля посещенных ссылок.

    курсовая работа [433,2 K], добавлен 13.06.2008

  • Создание приложения, которое будет производить построение графиков функций по заданному математическому выражению. Разработка программы "Генератор математических функций". Создание мастера функций для ввода математического выражения, тестирование.

    дипломная работа [1,7 M], добавлен 16.02.2016

  • Методология объектно-ориентированного программирования в Java. Понятия класса, объекта и объектной переменной. Динамическая и статическая объектные модели. Логическое структурирование приложения. Наследование в Java. Отличия интерфейсов от классов.

    курс лекций [547,2 K], добавлен 01.05.2014

  • Изучение принципов объектно-ориентированного программирования, в котором основными концепциями являются понятия классов и объектов. Свойства этого вида программирования: инкапсуляция, полиморфизм, наследование. Описание класса. Конструкторы и деструкторы.

    презентация [74,8 K], добавлен 14.10.2013

  • Объект типа String. Создание простой Web-страницы. Работа со строками. Первый апплет Java. Создание и запуск апплетов. Тестирование в программе AppletViewer. Конструктор и метод init. Поля ввода данных: TextField и TextArea, JTextField и JTextArea.

    курсовая работа [665,3 K], добавлен 24.04.2015

  • Понятие доступности элементов класса и объекта. Обращение к полям на основе общедоступных свойств (инкапсуляция на основе свойств класса). Способы передачи данных в метод и возвращения результатов работы метода. Обращение к полям и свойствам класса.

    презентация [86,6 K], добавлен 09.12.2013

Работы в архивах красиво оформлены согласно требованиям ВУЗов и содержат рисунки, диаграммы, формулы и т.д.
PPT, PPTX и PDF-файлы представлены только в архивах.
Рекомендуем скачать работу.