Сведения о свободных, проданных, бронированных местах. Редактирование данных об авиарейсах. Пользовательский контроль над управлением свободной памятью. Сокращение объема исходного кода, улучшение его читаемости. Функции, хранящиеся в заголовочных файлах.
Аннотация к работе
База данных организована следующим образом: Имеется 10 файлов, в каждом из которых имеется информация в виде матрицы: 0 - место свободно, 1 - место занято, 2 - место забронировано; · функция позволяющая выводить информацию о проданных местах, и позволяющая увидеть какие именно места проданы. · функция позволяющая выводить информацию о проданных местах на декаду, и позволяющая увидеть какие именно места проданы · функция позволяющая выводить информацию о забронированных местах на декаду и позволяющая увидеть какие именно места забронированы. //задаем элементы пункта меню в одномерном массиве int a[10][25][6]; //задаем трехмерный массив для хранения данных из файлов int menu(int n); //функциия для текстового меню void sinkh(); //ввод данных из файла в массив void sv_uk(); //свободные места на заданное число void pr_uk(); //проданные места на заданное число void br_uk(); //забронирование места на заданное число void pr_dc(); //проданные места на декаду void br_dc(); //забронированные места на декадуПрограмма позволяет получить сведения о свободных, проданных, бронированных местах, а также о проданных и бронированных местах на декаду. В ходе разработки программы удалось создать простое меню, которое упрощает пользование программой.
План
Содержание
Введение
1. Анализ задания
2. Описание программы
3. Тестирование
Заключение
Литература
Приложение
Введение
Программирование - это процесс составления определенной последовательности действий для электронной вычислительной машины. Само слово «программирование» прочно вошло в нашу повседневную жизнь, ведь программное обеспечение активно используется в различных видах техники, существенно облегчая задачи, стоящие перед обыкновенными пользователями.
Язык программирования - способ точного формулирования задачи в процессе подготовки ее к решению. Языки позволяют понимать программирование как процесс перевода задания для компьютера, выраженного определенным языком, на другой язык - машинный. Одним из наиболее популярных языков является язык программирования высокого уровня C .
C - это попытка решения разработчиками языка С задач объектно-ориентированного программирования (Object Oriented Programming, OOP). Построенный на твердом фундаменте С, С помимо ООР поддерживает множество других полезных инструментов, не жертвуя при этом ни мощью, ни элегантностью, ни гибкостью С. С уже стал универсальным языком для программистов всего мира.
C был разработан сотрудником научно-исследовательского центра AT&T Bell Laboratories (Нью-Джерси, США) Бьярном Страуструпом в 1979 году.
В 1983 г. произошло переименование языка из Си с классами в Си по соображениям маркетинга. Кроме того, в него были добавлены новые возможности, такие как: - виртуальные функции;
- перегрузка функций и операторов;
- ссылки;
- константы;
- пользовательский контроль над управлением свободной памятью;
- улучшенная проверка типов и новый стиль комментариев(//);
- абстрактные классы;
- статические функции-члены, функции-константы и защищенные члены;
- шаблоны;
- исключения;
- пространства имен;
- новые способы приведения типов и булевский тип.
Стандартная библиотека Си также развивалась вместе с ним. Первыми добавлениями к стандартной библиотеке Си стали: - потоки ввода/вывода, обеспечивающие средства для замены традиционных функций Си printf и scanf;
- включение Стандартной библиотеки шаблонов.
Главной целью данной курсовой работы является анализ и разработка программы “электронного справочника” для доступа к информации об авиарейсах. В программе необходимо реализовать меню для более удобной навигации по необходимым функциям, которые предоставляет программа.
В программе используются функции, не только для удобства пользователя, но и для сокращения объема исходного кода. Результатом работы функций будет вывод необходимой информации.
1.
Анализ задачи
Исходные данные
В качестве исходных данных в данной программе берется база данных.
Сведения записываются в файлы, которые имеют вид DAYNN (где NN число на которой хранится информация).
База данных организована следующим образом: Имеется 10 файлов, в каждом из которых имеется информация в виде матрицы: 0 - место свободно, 1 - место занято, 2 - место забронировано;
Как исходные данные могут рассматриваться числа, которые пользователь вводит для того чтобы просмотреть сведения на данное число.
Выходные данные
Результатом выполнения программы является вывод сообщения - информации о свободных, забронированных местах и т.д., в зависимости от выбранного пункта меню.
При запуске программы в первую очередь будет выводиться меню. Наименования пунктов меню записываются в массивы символов, на которые ссылаются указатели.
Для сокращения объема исходного кода и для улучшения его читаемости используем функции. Они позволяют вынести часто повторяющиеся выражения в отдельный блок и затем, по мере надобности, обращаться к нему. В программе будут созданы 12 функций: · главная функция, в которой осуществляется вызов других функций.
· функция, с помощью которой осуществляется построение графического меню и переходы между пунктами данного меню.
Функции передаются два параметра. Указатель на пункты меню и количество этих пунктов. Это позволяет быть данной функции более универсальной.
· функция позволяющая выводить информацию о свободных местах, и позволяющая увидеть какие именно места свободны.
· функция позволяющая выводить информацию о проданных местах, и позволяющая увидеть какие именно места проданы.
· функция позволяющая выводить информацию о забронированных местах, и позволяющая увидеть какие именно места забронированы.
· функция позволяющая выводить информацию о проданных местах на декаду, и позволяющая увидеть какие именно места проданы
· функция позволяющая выводить информацию о забронированных местах на декаду и позволяющая увидеть какие именно места забронированы.
· функция внутри которой происходит массовая работа с файлами, для извлечения требуемой информации.
2. Программирование задачи данные редактирование память код
В программе были использованы функции, хранящиеся в заголовочных файлах. Список заголовочных файлов из стандартной библиотеки C , используемых в программе (в описании приведены функции, использующиеся в данной программе): iostream.h - в ней реализована поддержка для файлового ввода/вывода данных встроенных типов. Операции ввода/вывода выполняются с помощью классов istream (потоковый ввод) и ostream (потоковый вывод).
Третий класс, iostream, является производным от них и поддерживает двунаправленный ввод/вывод.
· cin;
· 2) cout;
Вывод осуществляется, как правило, с помощью перегруженного оператора сдвига влево (>).
· stdlib.h - заголовочный файл стандартной библиотеки языка С, который содержит в себе функции, занимающиеся выделением памяти, контроль процесса выполнения программы, преобразования типов и другие.
· malloc();
· conio.h - объявляет несколько библиотечных функций для работы с «консольным вводом/выводом» программы, создает текстовый интерфейс пользователя.
· clrscr();
· getch() ;
· textcolor() ;
· textattr();
· gotoxy();
· fstream.h - заголовочный файл , необходимый для работы с файлами (запись, чтение, добавление)
· open();
· close();
Перейдем к описанию программы : char *dano[5]={"Svob. mesta na uk-e chislo", "Prod. mesta na uk-e chislo", "Bron. na ukaz-e chislo", "Prod. mesta na dekadu", "Bron na decadu"
};
//задаем элементы пункта меню в одномерном массиве int a[10][25][6]; //задаем трехмерный массив для хранения данных из файлов int menu(int n); //функциия для текстового меню void sinkh(); //ввод данных из файла в массив void sv_uk(); //свободные места на заданное число void pr_uk(); //проданные места на заданное число void br_uk(); //забронирование места на заданное число void pr_dc(); //проданные места на декаду void br_dc(); //забронированные места на декаду
1) Функция void main() while(1)
{ window(1,1,80,25);
textattr(16*7 0);
clrscr(); // Создается окно, размером 80 на 25. Окно закрашивается светло-серым цветом, текст черным, и вызывается функция clrscr(), которая выполняет само закрашивание. window(20,8,60,17);
textattr(16*15 2);
clrscr();
sinkh();
gotoxy(20,2);
for(int i=0;i<5;i )
{ gotoxy(8,i 4);
cout<<dano[i];
} // Цикл вывода пунктов главного меню window(1,1,80,25);
switch (menu(5)) //Выбор пункта меню
{ case 1:sv_uk();break;
case 2:pr_uk();break;
case 3:br_uk();break;
case 4:pr_dc();break;
case 5:br_dc();break;
}
}
2) Функция int menu(int n) gotoxy(3,y); //прописываются на экран пункты меню window(27,y 10,50,y 10);
textattr(16*15 4);
clrscr();
cout<<dano[0];
do
{ c=getch();
k=y;
window(27,k 10,50,k 10);
textattr(16*15 2);
clrscr();
cout<<dano[k-1];
switch(c)
{ case "w":y-;break; ; // переход по пунктам меню case "s":y ;break;
case 13:return y;
case 27:exit(0);
} if(y>n) y=1; //с помощью данных условных операторов if(y<1) y=n; // осуществляется переход от последнего к первому
}while(c!=27); // и наоборот
3) Функция void sv_uk() int i,j,n;
cout<<"Vvedite chislo
n=";
cin>>n; // вводится требуемое число for(i=0;i<25;i ) for(j=0;j<6;j ) if (a[n][i][j]==0) // проводим проверку свободно ли место cout<<i 1<<"-"<<j 1<<"|"; // вывод на экран свободных мест
4) Функция void pr_uk() int i,j,n;
cout<<"Vvedite chislo
n=";
cin>>n; // вводится требуемое число for(i=0;i<25;i ) for(j=0;j<6;j ) if (a[n][i][j]==1) // проводим проверку продано ли место cout<<i 1<<" - "<<j 1<<"|"; // вывод на экран проданных мест
5) Функция void br_uk() cout<<"Vvedite chislo
n=";
cin>>n; // вводится требуемое число for(i=0;i<25;i ) for(j=0;j<6;j ) if (a[n][i][j]==2) // проводим проверку забронировано ли место cout<<i 1<<" - "<<j 1<<"|"; // вывод на экран забронированных мест
6) Функция void pr_dc() cout<<"Prodannie mesta na dekadu(ryad-mesto)
";
for(n=0;n<10;n ){ cout<<"
"<<n 1<<" den:";
for(i=0;i<25;i ) for(j=0;j<6;j ) if (a[n][i][j]==1) // проводим проверку продано ли место на декаду cout<<i 1<<" - "<<j 1<<"|";} // вывод на экран проданых мест на декаду
7) Функция void br_dc() cout<<"Zabronirovanie mesta na dekadu(ryad-mesto)
";
for(n=0;n<10;n ){ cout<<"
"<<n 1<<" den:";
for(i=0;i<25;i ) for(j=0;j<6;j ) if (a[n][i][j]==2) // проводим проверку забронировано ли место на декаду cout<<i 1<<" - "<<j 1<<"|"; } // вывод на экран забронированных мест на декаду
8) Функция void sinkh() ifstream f; // файловая переменная f.open("DAY01.txt", ios::in); //открываем файл для чтения for(i=0;i<25;i ) for(j=0;j<6;j ) f>>a[0][i][j]; //записываем данные из файла в массив f.close(); //закрываем файл
…………
………………..
«Полный текст программы приведен в приложении»
3. Тестирование программы
При запуске программы появляется меню из 5 пунктов, выбираем первый пункт (рис. 1).
Рис.1 Главное меню (выбор 1-го пункта)
После выбора первого пункта откроется окно где требуется ввести число на которое мы хотим получить информацию, введем число 2 (рис.2)
Рис.2 Ввод числа для проверки на свободные места
После чего мы получим информацию о свободных местах на второе число, двоеточие разделяет между собой ячейки с информацией на свободные места, где первым значением в ней является ряд, а вторым значением выступает место которое на данный момент является свободным. (рис. 3)
Рис.3 Свободные места на 2 день (ряд-место)
Теперь будем искать проданные места на указанное число (рис. 4)
Рис.4 Главное меню (выбор 2-го пункта)
Вводим число 4 (рис.5)
Рис.5 Ввод числа для проверки на проданные места
После чего мы получим информацию о проданных местах на четвертое число. (рис .6)
Рис.6 Проданные места на 4 день (ряд-место)
Аналогичным способом можно получить информацию о бронированных местах на указанное число (рис.7)
Рис.7 Главное меню (выбор 3-го пункта)
Вводим число 5 (рис.8)
Рис.8 Ввод числа для проверки на забронированные места
После чего мы получим информацию о забронированных местах на пятое число, двоеточие разделяет между собой ячейки с информацией на свободные места, где первым значением в ней является ряд, а вторым значением выступает место которое на данный момент является забронированным (рис .9)
Рис. 9 Забронированные места на 5 день (ряд-место)
Как видно из предыдущих примеров, получать информацию с другими критериями можно аналогичным способом.
Просмотрим информацию о проданных местах на декаду, выберем 4 пункт (рис.10)
Рис.10 Главное меню (выбор 4-го пункта)
После выбора 4-го пункта мы получим информацию о проданных местах на декаду. (рис .11)
Рис.11 Проданные места на декаду с 1 по 10 число (ряд-место)
А сейчас просмотрим информацию о забронированных местах на декаду, выберем 5 пункт (рис.12)
Рис.12 Главное меню (выбор 5-го пункта)
После выбора 5 пункта мы получаем информацию о всех забронированных местах на декаду с 1 по 10 число (рис.13)
Рис.13 Вывод всех забронированных мест на декаду с 1 по 10 число
Давайте посмотрим как выглядит одна из баз данных (DAY01) (рис.14)
Рис.14 База данных (DAY01)
Как видно на рисунке (рис.13) база состоит из набора чисел, причем структура их такова: 25 строк, 6 столбцов, а самих файлов 10.
Вывод
Целью курсовой работы было создание работоспособной программы, предназначенной для быстрого и удобного получения информации о местах на авиарейсы из Махачкалы в Москву.
В результате работы была разработана программа, удовлетворяющая всем требованиям задания. Программа позволяет получить сведения о свободных, проданных, бронированных местах, а также о проданных и бронированных местах на декаду.
В ходе разработки программы удалось создать простое меню, которое упрощает пользование программой.
Разработка самой программы особых сложностей при конструировании не доставила.
Программу можно усовершенствовать, добавив возможность редактировать данные об авиарейсах. Можно создать возможность просматривать информацию в более удобном виде.
Список литературы
1. Страуструп Б. Программирование: принципы и практика использования C , исправленное издание - М.: Вильямс, 2011. - 1248 с.
2. Шилдт Г. Полный справочник по C - 4-е изд. - М.: Вильямс, 2011. - 800 с.
3. http://ru.wikipedia.org/wiki/Программирование
4. http://www.codenet.ru/progr/cpp/spr.php
5. Методические указания к выполнению лабораторных работ по дисциплине «Программирование», для студентов 2 курса направления подготовки бакалавров 231000.62 - «Программная инженерия», профиль «Разработка программно-информационных систем»
6. Конспект лекций по дисциплине «Программирование»