Автор работы: Пользователь скрыл имя, 01 Декабря 2013 в 22:59, практическая работа
Написать программу, которая обеспечивает автоматизированную продажу авиабилетов на месяц вперед. Программа проверяет правильность каждой даты, делает возможным менять расписание. В типизированных файлах (raspisan , client) хранятся входные данные: номера рейсов, маршруты, количество свободных мест, дата вылета, ФИО.
Введение
1 Общие сведения
1.1 Разбор задачи
1.2 Выбор структур данных и алгоритмов их обработки
1.3 Среда разработки программы
2 Описание алгоритмов
2.1 Словесное описание алгоритма
2.2 Описание основных функций программы
3 Руководство пользователя
3.1 Интерфейс и функциональность программы
3.2 Сообщения об ошибке
Заключение
Список используемых источников
Министерство образования и науки Российской Федерации
ФЕДЕРАЛЬНОЕ ГОСУДАРСТВЕННОЕ БЮДЖЕТНОЕ
ОБРАЗОВАТЕЛЬНОЕ УЧРЕЖДЕНИЕ
ВЫСШЕГО ПРОФЕССИОНАЛЬНОГО ОБРАЗОВАНИЯ
«ОРЕНБУРГСКИЙ ГОСУДАРСТВЕННЫЙ УНИВЕРСИТЕТ»
Факультет информационных технологий
Кафедра программного обеспечения средств вычислительной техники и автоматизированных систем
Курсовая работа
по дисциплине «Информатика и Программирование»
Продажа авиабилетов
ОГУ 231000.62.5013.121
Руководитель:
________________ Чернопрудова Е.Н.
“___” __________________2013 г.
Исполнитель:
студент группы 12ПИнж(б)РПиС
_________________ Куянбаева Н.С.
“___” ____________________2013 г.
Оренбург 2013
Министерство образования и науки Российской Федерации
ФЕДЕРАЛЬНОЕ ГОСУДАРСТВЕННОЕ БЮДЖЕТНОЕ
ОБРАЗОВАТЕЛЬНОЕ УЧРЕЖДЕНИЕ
ВЫСШЕГО ПРОФЕССИОНАЛЬНОГО ОБРАЗОВАНИЯ
«ОРЕНБУРГСКИЙ ГОСУДАРСТВЕННЫЙ УНИВЕРСИТЕТ»
Факультет информационных технологий
Кафедра программного обеспечения средств вычислительной техники и автоматизированных систем
Задание на курсовую работу
Продажа авиабилетов
Написать программу, которая обеспечивает автоматизированную продажу авиабилетов на месяц вперед. Программа проверяет правильность каждой даты, делает возможным менять расписание. В типизированных файлах (raspisan , client) хранятся входные данные: номера рейсов, маршруты, количество свободных мест, дата вылета, ФИО.
При введении нового пункта расписания не разрешается вводить прошедшую дату (дата на данный момент времени высвечивается).
При покупке билета также проверяется дата и номер рейса. Не разрешается покупать билеты более чем на месяц вперед.
Разработать: Алгоритм и программу;
Дата выдачи задания «15» апреля 2013г.
Руководитель
Исполнительный директор
студент группы 12ПИнж(б)РПиС Н.С.Куянбаева
Срок защиты работы «4» июня 2013г.
Содержание
Введение
1 Общие сведения
1.1 Разбор задачи
1.2 Выбор структур данных и алгоритмов их обработки
1.3 Среда разработки программы
2 Описание алгоритмов
2.1 Словесное описание алгоритма
2.2 Описание основных функций программы
3 Руководство пользователя
3.1 Интерфейс и функциональность программы
3.2 Сообщения об ошибке
Заключение
Список используемых источников
Приложение А. Укрупнённая схема-алгоритм
Приложение Б. Блок-схема
Приложение В. Листинг программы
Введение
На сегодняшний день рост информационных технологий ускоряется с геометрической прогрессией, все большая часть бизнеса переносится в сферу управления информацией, поэтому проблема информационной безопасности и защиты информации является очень актуальной. Почти каждая фирма пытается занять свое место в инфраструктуре Интернета, чтобы увеличить количество продаваемых ею товаров и услуг.
В Интернете общение ведется по разным каналам связи. Интерактивное общение - это такие программные клиенты как Skype, ICQ, сети Jabber и IRC. Не интерактивное, это электронная почта, которая сегодня остается достаточно успешным способом общения и обмена информацией.
Это так важно, т.к. на первых этапах ведения бизнеса в Интернете объем продаж будет не велик, но что делать, когда бизнес расширяется, увеличивается количество клиентов, как действительных так и потенциальных, за этим следует большой поток информации, требующий сортировки и возможности быстрого поиска информации, если например продажа авиабилетов не нуждалась в автоматизации, то в настоящее время объём продаж увеличился в десятки раз по сравнению с прошлым десятком лет, и нуждается в хорошем программном продукте, который осуществит быстрый поиск информации. Поэтому разработка таких программ является актуальной и необходимой задачей.
Общие сведения
Целью данной курсовой работы является разработка автоматизированной продажи авиабилетов, позволяющей выполнять следующие функции:
1 Формирование базы данных о рейсе при помощи пользователя/администратора;
2 Распознание правильности даты;
3 Ввод данных о рейсе и осуществления поиска информации
В данной программе используется потоковый ввод/вывод информации в файл и из файла соответственно. Это достаточно удобно как хранить, так и использовать информацию. Для хранения выбран текстовый тип файла т.к. он позволяет работать с текстом как пользователю, так и программе.
В качестве языка программирования был выбран низкоуровневый язык C. Из всех известных в какой-то степени языков (Pascal и C) он имеет преимущество в количестве стандартных функций, которые в некоторой мере упрощают работу по созданию программного продукта.
Описание алгоритма
Перед запуском следует проверить наличие данных в программе каталогов. При запуске программы «Классификатор» проводится проверка этих двух каталогов на наличие файлов. Если фалы отсутствуют в обоих каталогах, то программа сообщает пользователю об этом.
Если в первом проверяемом каталоге есть файлы, то программа записывает список файлов в каталоге в новый текстовый файл. После производится расчет весов каждого слова сообщений в каждом файле. Веса каждого сообщения записываются в текстовый файл в виде векторов. В результате получается матрица из весов сообщений этого класса, строками которой являются сообщения, а столбцами слова в данном сообщении.
При наличии файлов во втором каталоге также создается список файлов, находящихся в каталоге и рассчитывается вес каждого слова в каждом файле. Вектора сообщений этого класса записываются в виде матрицы в файл.
При запуске программы «Анализатор» производится проверка заданного в программе каталога на наличие файлов. Если файлы отсутствуют, то программа сообщает пользователю об этом. Если файлы в каталоге присутствуют, то сообщение в каждом файле преобразуется в вектор из весов термов. После, высчитывается корреляции между вектором этого сообщения и каждым вектором обоих классов. Сообщение будет относиться к такому классу, с которым у него будет большее значение коэффициента корреляции. При равных значениях сообщение будет отнесено к классу «не спам». Вектор этого сообщения также будет внесен в матрицу своего класса.
Описание основных функций программы
ofstream vvod_file |
Осуществляет ввод информации в файл |
struct client |
Создает структуру клиент |
switch |
Оператор условия - осуществляющий различные действия исходя из условий |
Руководство пользователя
Для пополнения базы данных следует запустить программу и вводить данные в заданной последовательности, которые будут записываться в файл, для выхода из программы вводим “0”, далее выход в меню возможно осуществить поиск информации о рейсе или выход из программы.
После запуска программы пользователю будет доступно
Вводим дату
Вводим данные о клиенте:
После ввода информации выход в меню поиска:
При команде «1» осуществляется поиск кол-ва свободных мест на рейс:
При команде «2» осуществляется поиск фамилий на рейс
Возможен выход “Y”- да, “N”- нет.
После возможен выход из программы или выход в меню:
Сообщение об ошибке
Если дата вводиться не верно или остальные данные ,то выводиться сообщение об ошибке.
Заключение
Данное приложение может использоваться в реальных условиях при небольшом дополнении к интерфейсу для более удобного использования. В дальнейшем возможно дополнение программы .
Список используемых источников
Приложение В
#include <iostream.h>
#include <fstream.h>
#include <string.h>
#include <stdio.h>
#include <stdlib.h>
#include <conio.h>
#include <windows.h>
#include <clocale>
using namespace std;
struct raspisan {
int nomer_reisa;
string marshryt;
int kol_vo_svobodn_mest;
int day;
int mes;
string name,fam,otch;}
raspisan[100];
struct client {
int day;
int mes;
string name,fam,otch;
int nomer_reisa;
string marshryt;
} client[100];
main () {
setlocale (LC_ALL,"rus");
int m,d;
cout << "2013 год "<< endl;
cout <<"ввести день"<< endl; d_: cin >> d; if (d >=32 )
{cout<<"Ошибка ввода. Введите еще раз: "<< endl;goto d_;}
cout<<"месяц"<< endl;
m_:cin>>m; if(m>=13) {cout<<"Ошибка ввода. Введите еще раз";goto m_;}
int i,j,n;
i=1;
cout << "Введите данные (выход - 0)" << endl ;
for (;;) {
cout << "Введите номер рейса: "; cin >> raspisan[i].nomer_reisa;
if (raspisan[i].nomer_reisa == 0) break;
cout << "Введите маршрут: "; cin >> raspisan[i].marshryt;
if (raspisan[i].marshryt[0] == '0') break;
cout << "Введите кол-во свободных мест:
"; cin >> raspisan[i].kol_vo_svobodn_
if (raspisan[i].kol_vo_svobodn_
cout << "Введите день: "; day_: cin >> raspisan[i].day;
if((raspisan[i].day >=32) and(raspisan[i].day<d) ) {cout<<"Ошибка ввода. Введите еще раз: ";goto day_;}
if (raspisan[i].day== 0) break;
cout << "Введите месяц: "; mes_: cin >> raspisan[i].mes;
if(raspisan[i].mes>=13) {cout<<"Ошибка ввода. Введите еще раз";goto mes_;}
cout << "Введите имя: "; cin >> raspisan[i].name;
if (raspisan[i].marshryt[0] == '0') break;
cout << "Введите фамилию: "; cin >> raspisan[i].fam;
if (raspisan[i].marshryt[0] == '0') break;
cout << "Введите отчество: "; cin >> raspisan[i].otch ;
if (raspisan[i].marshryt[0] == '0') break;
i++; cout << endl;
n=i;
}
for (j=1; j<=n; j++) {
client[j].nomer_reisa=
client[j].marshryt[0]=
client[j].day =raspisan[j].day;
client[j].mes =raspisan[j].mes;
client[j].name[0]=raspisan[j].
client[j].fam[0]=raspisan[j].
client[j].otch[0]=raspisan[j].
}
ofstream vvod_file ("расписание.txt", ios_base::trunc);
for (i=1; i<=n; i++){ //ввод записей в файл
vvod_file<<i<<")"<<raspisan[i]
vvod_file<<raspisan[i].
vvod_file<<raspisan[i].kol_vo_
vvod_file<< raspisan[i].day<<"";
vvod_file<< raspisan[i].mes<<"";
vvod_file.close();}
ofstream file_vvod ("клиент.txt", ios_base::trunc);
for (j=1; j<=n; j++){ //ввод записей в файл
file_vvod<<i<<")"<<client[j].
file_vvod<<client[j].marshryt[
file_vvod<<client[j].day<<"";
file_vvod<<client[j].mes<<"";
file_vvod<<client[j].fam[0]<<"
file_vvod<<client[j].name[0]<<
file_vvod<<client[j].otch[0]<<
file_vvod.close();}
string deistvie;
char deistvie3;
int deistvie2;
menu:system ("cls");
cout<<"введите способ поиска"<<endl;
cout<<"1- кол-во свободных мест на рейс"<<endl;
cout<<"2- список фамилий на рейс"<<endl;
cout << "3 - Выход из програмы" << endl << endl;
cout << "->"; cin >> deistvie;