Объектно-ориентированное программирование
Создание класса 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