Прикладное программирование

Федеральное агентство по образованию

ФГАОУ ВПО  «Уральский федеральный университет 

имени первого  Президента России Б.Н.Ельцина»

Физико-технологический  институт

Кафедра вычислительной техники

 

 

 

23.04.00 000000 007

 

 

 

 

 

Курс «ИНФОРМАТИКА»

Семестр I

 

«Разработка прикладных программ на языке программирования

высокого уровня С++.

Основы работы с виртуальными машинами и Linux-based операционными системами.»

 

 

Курсовая  работа

 

П О Я С Н И Т Е Л Ь Н А Я         З А П И С К А

 

 

 

 

 

Руководитель: ___________________Фокин Алексей Андреевич

 

Студент     : ___________________Лопанцева Юлия Владимировна

Группа      :              Фт — 120801

 

Дата        :              24.12.2012

 

 

 

 

 

 

 

 

 

 

Екатеринбург 

2012

ФГАОУ ВПО УрФУ

ЗАДАНИЕ НА КУРСОВОЕ ПРОЕКТИРОВАНИЕ

 

                     «УТВЕРЖДАЮ»

Зав кафедрой

«____»_______________________ 2012 г.

______________________________ С.Л. Гольдштейн

 

Студент группы  Фт-120801                 специальность   230200

Лопанцева Юлия Владимировна

Руководитель  курсовой работы А.А. Фокин

Сроки выполнения работы: с 12 ноября 2012г. по 25 декабря 2011г. 

1. Тема курсовой работы: «Разработка прикладных программ на языке программирования высокого уровня С++»

1.1 Содержание работы:

1.1.1 Создать функцию для вычисления радиуса круга.

1.1.2 Создать структуру для хранения данных самолетах, найти самый неэкономичный и самый старый самолет.

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

   2.Тема курсовой работы: « Основы работы с виртуальными машинами и Linux-based операционными системами»

    2.1 Содержание работы:

2.1.1 Установить виртуальную машину и изучить ее свойства, установить ОС Linux на виртуальную машину.

3. Особые дополнительные сведения. Задания должны быть реализованы в среде разработки Borland C++ Builder 6.

4. План выполнения курсовой работы:

 

Наименование элементов  работы|Сроки |Примечание|Отметка о  вы-

                             |      |          |   полнении


Выдача задания               |     |          |  
Оформление технического зада-|      |          |  
ния                          |     |          | 
Эскизный проект              |      |          |  
                             |     |          | 
Технический проект           |      |          |  
                             |     |          | 
Рабочий проект               |      |          |  
                             |     |          | 
Оформление пояснительной за- |      |          |  
писки                        |     |          | 
Защита курсовой работы       |      |          |  
    5. Курсовая работа закончена

    6. Работа зачтена

 

Руководитель                                          А.А. Фокин


 

 

 

Оглавление

I Часть

1. Аннотация 4

2. Техническое задание 4

3. Спецификация 5

4. Структура интерфейса пользователя 6

5. Описание работы программы 8

6. Руководство пользователя 8

7. Заключение 9

 

 

II Часть

 

 

 

 Основы работы с виртуальными  машинами и Linux-based операционными системами.

1.Введение.....................................................10

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

3.Реализация работы............................................10

3.1.Скриншоты основных  моментов установки......................10

3.2.Ответы на вопросы......................................... 14

4.Сравнительный анализ  Windows и Linux.........................16 5.Заключение...................................................16

6.Библиографический список.....................................17

Приложение A.............................................. ....18

Приложение B...................................................19

Приложение C...................................................23

 

 

 

 

 

 

 

 

 

I Часть

Аннотация

1.1. Наименование Области Знаний: информатика.

1.2. Разработка велась по заказу кафедры ВТ УГТУ-УПИ.  

1.3. Программный комплекс предназначен для:

1.3.1 Подсчета  радиуса круга

1.3.2 Хранения  и вывода информации самолетах

1.3.3 Подсчета  количества людей, пришедших на  мероприятие, и выручки. 

1.4. Технические характеристики:

1.4.1. Файл 'Unit1.cpp' является файлом, содержащим исходный код.

1.4.2. Файл 'Project1.bpr' является файлом проекта.

1.4.3  Файл 'Project1.exe' исполняемым файлом, предоставляемым заказчику.

1.4.4. В программе используются стандартные средства среды программирования Borland C++ Builder 6.

1.4.5. Программа не предусматривает взаимодействие с другими программными продуктами.

1.4.6. Программа проектировалась в среде С++ Builder 6.

1.4.7. Требуемая  операционная система Windows   Vista/98/XP/ME/7.

1.5. Требования  к вычислительной системе. Процессор  не ниже Intel Pentium 100MHz Оперативная память 32Mb, места на жестком диске – 3Mb. 

1.5.1. Объем программного продукта = 72.4Кб

1.5.2. Программа  не защищена

2. Техническое задание

Курсовая работа для  специальности 23.02.00.

2.1.1. Задание №1

Пользователь  вводит с клавиатуры значение площади  круга (тип float), это значение сообщается в функцию, которая вычисляет радиус круга (также тип float) и возвращает это значение. Установить ограничение на вводимое значение площади круга только

положительное число [1..100].

2.1.2. Задание  №2

Создать структуру Airplane и в ней переменные для хранения характеристик самолета:пассажировместимость (целое), расход топлива на час полета в тоннах (дробное), год выпуска (целое), отечественный или импортный (булев тип). Создать 4 переменных этой

структуры, две заполните значениями самостоятельно  разными способами, значение последних двух спросить у пользователя. Оформить вывод значений всех четырех переменных на экран.  Найдити самый неэкономичный самолет, самый старый самолет

 

 

 

2.1.3. Задание  №3

Создать класс, имитирующий пропускной автомат на мероприятие. Через автомат проходят люди, среди них есть те, кто платит полную сумму (определена константой), и те, кто платит 50% и

25% от нее  (со скидкой). Создать в классе  конструктор и соответствующие  методы (прошел человек за полную  стоимость, человек со скидкой  50%, человек со скидкой 25%). Описать  метод расчёта суммарной выручки,  а также учета общего количества  людей, пришедших на мероприятие

2.2. Требования к интерфейсу пользователя: реализовать консольное приложение.

2.3. Прочие детали разработки. Разработка программного продукта должна осуществляться в соответствии со сроками, указанными в «Задании по курсовому проектированию».

3. Спецификация

3.1. Структура программного продукта

                      Таблица 1. Структура программного продукта

№ задания

Имя файла

Тип

Размер

Описание

1

Unit1.cpp

 

 

Project1.bpr

 

 

Project1.exe

Исходный код

 

 

Описывает структуру программного проекта

Исполняемый Файл

557 байт

 

 

3 Кб

 

 

24.6 Кб

Файл содержит исходный текст задачи №1

 

файл содержит структуру  проекта задания №1

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

2

Unit2.cpp

 

 

 

 

 

Project2.bpr

 

 

 

Project2.exe

Исходный код

 

 

 

 

 

Описывает структуру программного проекта

 

Исполняемый файл

4.74 Кб

 

 

 

 

 

4.2 Кб

 

 

 

31 Кб

Файл содержит исходный текст задачи №2

 

 

 

 

файл содержит структуру  проекта задания №2

 

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

3

Unit3.cpp

 

 

Project3.bpr

 

 

 

Project3.exe

Исходный код

 

 

Описывает структуру программного проекта

 

Исполняемый файл

2.7 Кб

 

 

3.8 Кб

 

 

 

17 Кб

Файл содержит исходный текст задачи №3

 

файл содержит структуру  проекта задания №3

 

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


 

4. Структура интерфейса пользователя

4.1. Пользователю не доступны  кнопки и элементы управления  во всех трех задачах, так  как работа в приложениях происходит  в консоли.

 

 

 

 

 

 

 

 

 

 

 

 

 Рис 1. Пример работы программы №1

 

Рис 2. Пример работы программы №2

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

Рис 3. Пример работы программы №3

 

 

 

 

5. Описание работы программы

5.1. Задача №1. У пользователя запрашивается площадь круга. Затем выводится радиус этого круга.

5.2. Задача №2. У пользователя запрашиваются значения пассажировместимости  двух самолетов, расхода топлива, года выпуска и производитель самолетов. Затем на экран выводятся данные о самом неэкономичном и о самом старом самолете.

5.3 Задача №3. Пользователю предоставляется выбор типа билета или выхода из программы. Затем выводится количество человек прошедших на мероприятие и общая выручка.

6. Руководство пользователя

6.1 Задача №1. На запрос программы ввести значение площади круга. После ввода  значения нажать клавишу Enter для продолжения. На экран будет выведен радиус этого круга. Для выхода из программы нажать Enter.

6.2 Задача №2. На запрос программы ввести значение пассажировместимости, затем нажать клавишу Enter. Ввести значение расхода топлива. Затем снова Enter. Ввести год выпуска. Enter. Выбрать производителя(1 или 0). Затем также для второго самолета. Чтобы вывести информацию о самолетах, о самом неэкономичном и старом самолетах, снова нажать Enter. Для выхода из программы нажать Enter.

 

6.3 Задача №3. На запрос программы выбрать тип билета(1,2 или 3)или выбрать выход из программы(0). После нажатия каждого из значений нажать Enter. После каждого ввода на экране будет появляться текущее количество человек и текущая выручка. Для выхода из программы выбрать 0.

7. Заключение

Требования, указанные в техническом задании, реализованы полностью. Программный комплекс можно использовать для решения определенных заданием задач.

В этой программном  комплексе можно усовершенствовать:

 

7.1 В задаче №1 можно найти самый мало вмещаемый самолет.

 

7.2 В задаче №2 можно сделать так, чтобы программа вычисляла еще длину окружности или диаметр круга.

 

7.3 В задаче №3 можно дополнительно сортировать сколько человек прошли по каждого типа билету.

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

II Часть

 

 

 

1.Введение

 

Целью данной работы является установка виртуальной  машины, изучение ее свойств, установка  операционной системы Linux Russian Fedora и изучение основ работы с ней.

 

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

Требуется установить виртуальную машину на компьютер. Установить операционную систему Linux Russian Fedora на виртуальную машину.

 

3.Реализация  работы

 

3.1.Скриншоты основных моментов  установки виртуальной машины.

        

     

  Рис. 1. Главное окно программы VirtualBox

  

Рис. 2. Окно создания виртуальной машины

 

 

  

 

 

Рис. 3 Главное окно программы с созданной виртуальной машиной.

 

     

 

    

 

 

Рис 4 Окно виртуальной машины с  операционной системой Linux

 

 

 

    

 

Рис.5 Установка операционной системы Linux Russian Fedora

    

 

   Рис.6 Создание суперпользователя

 

    

 

Рис.7 Внешний вид операционной системы Linux Russian Fedora

   

 

Рис.8 Наличие подключенного Flash-накопителя

 

 

 

 

3.2.Ответы  на вопросы.

1.

Общие: Имя- Linux Fedora; тип ОС- Fedora;

Система: Оперативная  память 512 Мб;   Порядок загрузки: дискета, СD/DVD-ROM, жесткий диск;

Дисплей: Видеопамять 12 Мб

Носители:SATA контроллер: Linux.vdi(обычный,8,00ГБ)

Аудио: Аудиодрайвер: Windows DirectSound

Контроллер: ACH AC 97

Cеть:  Адаптер 1: Intel PRO/1000  MT Desktop (NAT)

USB

Общие папки

Описание

 

 

2. Поддержка сетевых возможностей  предоставляется виртуальной машине  в виде сетевого адаптера Intel PRO/1000 MT Desktop(NAT)

NAT— это механизм в сетях TCP/IP, позволяющий преобразовывать IP-адреса транзитных пакетов. 

Режим Network Address Translation (NAT) предоставляет наиболее простой способ доступа к внешней среде из виртуальной машины.

 

Маршрутизатором для виртуальной машины является сетевой модуль VirtualBox.

 

 

3.Для настройки доступны  общие данные, носители информации, системные данные, COM-порты, данные дисплея.

 

Увеличить количество ЦПУ  мы не можем, так как необходима поддержка  аппаратной визуализации, для  задействования более одного процесса в виртуальной  машине.

 

4.Виртуальная машина сообщает, что не найдена загрузочная  среда.

5. Включился автозахват клавиатуры. Отменить его можно правой клавишей Ctrl или нажав хост клавишу.

6. ISO-образ – это неформальный термин для обозначения образа оптического образа, содержащего файловую систему

7. Войдя в систему под  пользователем root, любые действия в системе будут разрешены. Пребывая в системе в качестве root легко уничтожить систему. Поэтому работать нужно с осторожностью и входить под именем root только тогда, когда это абсолютно необходимо.

 

 

8. В меню приложения  имеются  программы для работы  с аудио-, видео-файлами и картинками. Имеется установленный браузер  Firefox. Стандартные- текстовый редактор, калькулятор идт., системные программы и приложение установки/удаления программ.

9. На панели быстрого  доступа  по умолчанию расположены  браузер Firefox, текстовый редактор (Take notes) и электронная почта (Evolution)

10. В операционной системе  Linux Russian Fedora имеются элементы интерфейса сходные с элементами интерфейса операционных систем семейства Windows. На пример- наличие панели быстрого запуска, наличие окон и способ управления ими. «Компьютер» и «Корзина».

 

11. С помощью меню «Система»-«Параметры»  можно настраивать: Bluetooth, Input method selector, внешний вид, вспомогательные технологии, главное меню, запускаемое приложение, звук, клавиатура, комбинации клавиш клавиатуры, менеджер настройки CompizConfig (настройка эффектов рабочего стола, управление окнами, общие настройки отображения), мониторы, мышь, обновление программ, обо мне, общий доступ к личным файлам, окна, параметры эл. почты, предпочтительные приложения, сетевая прокси-служба, сетевые соединения, удаленный рабочий стол, управление питанием, управление файлами.

 

12. Если основной компьютер  имеет подключение к сети Интернет, при наборе в адресной строке  браузера FireFox в виртуальной машине адрес любого Интернет-ресурса, например, yandex.ru, сайт открывается, т.к. виртуальная машина поддерживает технологию NAT и адаптер.

 

13. В домашнем подкаталоге содержатся папки Видео,  Документы, Загрузки, Изображения, Общедоступные, Музыка, Рабочий стол, Шаблоны. Они нужны для хранения файлов и упрощения работы пользователя. Чтобы создать новую папку необходимо нажать правую кнопку мыши и выбрать «Создать папку»

 

14. Просмотреть файлы в папке root не удается. Так как вход в систему был произведен не от пользователя root, а доступ в эту папку есть только у него.

15. Был возможен доступ к содержимому USB – диска в операционной виртуальной машине после установки драйверов.

 

4.Сравнительный  анализ  Windows и Linux

На сегодняшний день Windows является самой популярной операционной системой. Изначально Windows создавался для пользователей, а Linux- для серверов.

Windows и Linux имеют множество различий. На пример в ОС Linux обязательно создание и обычного пользователя и пользователя с правами администратора. При этом обычный пользователь не имеет доступа к домашнему каталогу администратора. В Windows же это не обязательно.

В ОС Linux несколько рабочих столов, когда в Windows рабочий стол только один.  Все доступное для Linux дисковое пространство объединяется в одно понятие «Файловая система». В Windows же  локальные диски C и D.В Windows-системах полный путь к файлам начинаетсяс диска и выглядит, например, так:

C:\Temp\Downloads\ user.txt

В Linux  полный путь к файлу начинается с корневой папки /  и выглядит, например, так:

/home/taylor/doc/1.sh

Linux это свободное ПО, в то время как Windows- платное.  

 

5.Заключение

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

 

 

 

6. Библиографический список

  1. Бьерн Страуструп. Язык программирования С++:.  Бином, 2011-1136c
  2. В.В.Пообельский.Язык Си++ -М.:Финансы и статистика,1996-560с
  3. Как программировать на С++ [Электронный ресурс] -

    Режим доступа: http://deitel-index.blogspot.com/

  1. Википедия – Свободная энциклопедия [Электронный ресурс] -

    Режим доступа: http://www.wikipedia.ru/

 

 

 

 

 

 

 

 

Приложение A

Тексты  исходных кодов с комментариями:

Задача 1

 

//---------------------------------------------------------------------------

#include <iostream.h>

#include <conio.h>

#include <vcl.h>

#include <math.h>

#pragma hdrstop

#pragma argsused

 

float rad(float);

 

int main()

{

float s;

cout << "Vvedite ploschad kruga: ";  //запрашиваем у пользователя площадь круга

cin >> s;

while ((s > 100) || (s < 1))

{

cout << "Nevernye dannye. Vvedite snova: ";

cin >> s;

}

cout << "Radius: " << rad(s);

getch();

return 0;

}

 

float rad(float p1)    //вызываем функцию

{

float r;

r = sqrt(p1/3.14);   // вычисляем радиус

return r;  //возвращаем значение

}

Приложение B

Задача 2

//---------------------------------------------------------------------------

#include <iostream.h>

#include <conio.h>

#include <vcl.h>

#pragma hdrstop

#pragma argsused

 

struct airplane         // вводим тип данных, способный объединить переменные разных типов - структуру

{

int pass;   //поля структуры

float topl;

int god;

bool proizv;

};

 

int main()

{

airplane a1, a2, a3, a4;   //создаем объекты структуры

a1.pass = 140;          //вводим данные по 1 самолету

a1.topl = 60;

a1.god = 1980;

a1.proizv = 1;

a2.pass = 159;      //вводим данные по 2 самолету

a2.topl = 89.4;

a2.god = 2000;

a2.proizv = 0;

//-----------

cout << "Samolet #3" << endl;

cout << "Kol-vo passazhirov: ";

cin >> a3.pass;     //считывание из поля структурной переменной и запись в нее значения введенное пользователем

while (a3.pass < 0) //проверям, чтобы не было отрицательных значений

{

cout << " Oshibka! Kol-vo passazhirov: ";

cin >> a3.pass;

}

cout << "Kol-vo topliva: ";

cin >> a3.topl;

while (a3.topl < 0)

{

cout << " Oshibka ! Kol-vo topliva: ";

cin >> a3.topl;

}

cout << "God vipuska: ";

cin >> a3.god;

while (a3.god < 0)

{

cout << " Oshibka ! God vipuska: ";

cin >> a3.god;

}

cout << "Proizvoditel: 1 - otechestvenniy, 0 - zarubezhniy: ";

cin >> a3.proizv;

while ((a3.proizv < 0) && (a3.proizv > 1))

{

cout << " Oshibka ! Proizvoditel: 1 - otechestvenniy, 0 - zarubezhniy: ";

cin >> a3.proizv;

}

//-----------------

cout << endl << "Samolet #4" << endl;

cout << "Kol-vo passazhirov: ";

cin >> a4.pass;

while (a4.pass < 0)

{

cout << " Oshibka ! Kol-vo passazhirov: ";

cin >> a4.pass;

}

cout << "Kol-vo topliva: ";

cin >> a4.topl;

while (a4.topl < 0)

{

cout << " Oshibka ! Kol-vo topliva: ";

cin >> a4.topl;

}

cout << "God vipuska: ";

cin >> a4.god;

while (a4.god < 0)

{

cout << " Oshibka ! God vipuska: ";

cin >> a4.god;

}

cout << "Proizvoditel: 1 - otechestvenniy, 0 - zarubezhniy: ";

cin >> a4.proizv;

while ((a4.proizv != 0) && (a4.proizv != 1))

{

cout << " Oshibka ! Proizvoditel: 1 - otechestvenniy, 0 - zarubezhniy: ";

cin >> a4.proizv;

}

//--------------

cout << endl << "1 samolet:" << endl << "kolvo passazhirov: " << a1.pass << endl << "kol-vo topliva: " << a1.topl << endl << "god vipuska: " << a1.god << endl << "proizvoditel: ";

if (a1.proizv == 1)

{

cout << "otechestvenniy" << endl;

}

else

{

cout << "zarubezhniy" << endl;

}

cout << "2 samolet:" << endl << "kolvo passazhirov: " << a2.pass << endl << "kol-vo topliva: " << a2.topl << endl << "god vipuska: " << a2.god << endl << "proizvoditel: ";

if (a2.proizv == 1)

{

cout << "otechestvenniy" << endl;

}

else

{

cout << "zarubezhniy" << endl;

}

cout << "3 samolet:" << endl << "kolvo passazhirov: " << a3.pass << endl << "kol-vo topliva: " << a3.topl << endl << "god vipuska: " << a3.god << endl << "proizvoditel: ";

if (a3.proizv == 1)

{

cout << "otechestvenniy" << endl;

}

else

{

cout << "zarubezhniy" << endl;

}

cout << "4 samolet:" << endl << "kolvo passazhirov: " << a4.pass << endl << "kol-vo topliva: " << a4.topl << endl << "god vipuska: " << a4.god << endl << "proizvoditel: ";

if (a4.proizv == 1)

{

cout << "otechestvenniy" << endl;

}

else

{

cout << "zarubezhniy" << endl;

}

if ((a1.topl > a2.topl) && (a1.topl > a3.topl) && (a1.topl > a4.topl))  // сравниваем расход топлива и находим самый неэкономичный

{

cout << "1 samolet ne ekonomichniy" << endl;

}

else

{

if ((a2.topl > a1.topl) && (a2.topl > a3.topl) && (a2.topl > a4.topl))

{

cout << "2 samolet ne ekonomichniy" << endl;

}

else

{

if ((a3.topl > a2.topl) && (a3.topl > a1.topl) && (a3.topl > a4.topl))

{

cout << "3 samolet ne ekonomichniy" << endl;

}

else

{

if ((a4.topl > a2.topl) && (a4.topl > a3.topl) && (a4.topl > a1.topl))

{

cout << "4 samolet ne ekonomichniy" << endl;

}

}

}

 

}

if ((a1.god < a2.god) && (a1.god < a3.god) && (a1.god < a4.god))      //  сравниваем года выпуска и находим самый старый

{

cout << "1 samolet samiy stariy" << endl;

}

else

{

if ((a2.god < a1.god) && (a2.god < a3.god) && (a2.god < a4.god))

{

cout << "2 samolet samiy stariy" << endl;

}

else

{

if ((a3.god < a2.god) && (a3.god < a1.god) && (a3.god < a4.god))

{

cout << "3 samolet samiy stariy" << endl;

}

else

{

if ((a4.god < a2.god) && (a4.god < a3.god) && (a4.god < a1.god))

{

cout << "4 samolet samiy stariy" << endl;

}

}

}

}

getch();

return 0;

}

 

//-------------------------------------------------------------

 

            Приложение C

Задача 3

//---------------------------------------------------------------------------

 

#include <vcl.h>

#include <conio.h>

#include <iostream.h>

#pragma hdrstop

class club

{

        private:

                int v, k, b; // создаем переменные класса

        public:

                club():v(500), k(0), b(0)// создаем конструктор класса

                {}

                float full()    //создаем методы

                {

                      b=b+v;

 

                      return b;

                }

                float half()

                {

                        b=b+v*0.5;

 

                        return b;

 

                }

                float quarter ()

                {

                        b=b+v*0.75;

 

                        return b;

                }

                int people ()

                {

                        k=k+1;

                       return k;

                }

        };

//---------------------------------------------------------------------------

 

#pragma argsused

int main(int argc, char* argv[])

{

        club c; //создаем объект класса

        int y;//создаем переменную для выполнения цикла

        do   //создаем цикл

        {

                cout << "Choose the type of your ticket 1-full cost; 2-sale 50%;

                3-sale 25%; 0-exit of programm: ";

                cin >> y;

                while((y<0) || (y>3))//проверяем, чтобы значение было не меньше 0 и не больше 3

                

                {

                        cout << "Error!Choose the type of your ticket 1-full

                        cost; 2- sale 25%; 3-sale 50%; 0-exit of programm: ";

                        cin >> y ;

                        }

                if(y==1)//сравниваем  y с 1,2,3

                {

                       cout << c.full()<<endl; /*выводим значение стоимости билета*/

                }

                if(y==2)

                {

                       cout << c.half()<<endl; /*выводим значение стоимости билета*/

                }

                if(y==3)

                {

                       cout << c.quarter()<<endl; /*выводим значение стоимости билета*/

                }

                       cout<< c.people()<<endl; /*выводим количество людей пришедших на мероприятие*/

 

                }

                while (y!=0);

 

 

        return 0;

}

//--------------------------------------------------------------

 

 




Прикладное программирование