Разработка программного обеспечения для обработки информации с дорожно-транспортных происшествий
Употребление языка программирования С++ при разработке программы. Характеристика функциональных требований, применяемых к программному продукту. Использование статических массивов для хранения текстовой информации. Обобщенный алгоритм работы системы.
Рубрика | Программирование, компьютеры и кибернетика |
Вид | курсовая работа |
Язык | русский |
Дата добавления | 14.05.2016 |
Размер файла | 744,6 K |
Отправить свою хорошую работу в базу знаний просто. Используйте форму, расположенную ниже
Студенты, аспиранты, молодые ученые, использующие базу знаний в своей учебе и работе, будут вам очень благодарны.
Размещено на http://www.allbest.ru/
МИНИСТЕРСТВО ОБРАЗОВАНИЯ И НАУКИ УКРАИНЫ
Государственный университет информатики и искусственного интеллекта
КУРСОВАЯ РАБОТА
По дисциплине: «Алгоритмические языки и программирование»
Тема: «Разработка программного обеспечения для обработки информации с дорожно-транспортных происшествий»
Разработала:
И.В.Лысова
Руководитель:
А.Н.Шушура
Донецк 2011
Задание на курсовую работу
по дисциплине «Алгоритмические языки и программирование»
Студентки Лысовой Инны Владимировны группы СУА-10б |
||||
(фамилия, имя, отчество) |
||||
Тема проекта |
Разработка программного обеспечения для |
|||
обработки информации с дорожно-транспортных происшествий |
||||
Исходные данные по проекту |
Необходимо реализовать работу с базой данных, |
|||
представленной в виде структуры, а именно: добавление, сортирование, |
||||
поиск, удаление, объектов в базе данных. |
||||
Перечень искомых результатов |
||||
Программный продукт, реализующий. |
||||
работу с базой данных, выводящий результат выполнения операций на экран |
||||
и сохраняющий в файл. |
||||
Рекомендуемая литература |
||||
Павловская Т.А, Щупак Ю.А С и С++ |
||||
структурное программирование. |
||||
Руководитель |
М.С. Полуказакова |
|||
(подпись) |
(должность, ф.и.о.) А.Н. Шушура |
|||
(подпись) |
(должность, ф.и.о.) |
|||
Разработчик |
||||
(подпись) |
Содержание
Введение
1. Анализ предметной области и постановка задачи
1.1 Цель разработки данного проекта
1.2 Функциональные требования к программному продукту
1.3 Входные и выходные данные
2. Синтез структур данных
3. Алгоритмы работы системы
Выводы
Использованная литература
Приложения
Введение
Для разработки программного обеспечения необходимо сформулировать правильно поставленную задачу, определить входные и выходные данные, а также знать и понимать основные принципы работы программы.
Программа представляет собой множество исполняемых компьютером инструкций. Данные -- это то, что мы представляем себе как входную информацию для программы. База данных -- организованная в соответствии с определёнными правилами и поддерживаемая в памяти компьютера совокупность данных, характеризующая актуальное состояние некоторой предметной области и используемая для удовлетворения информационных потребностей пользователей.
Существует множество других определений, отражающих скорее субъективное мнение тех или иных авторов о том, что означает этот термин в их понимании, однако общепризнанная единая формулировка отсутствует. Наиболее часто используются отличительные признаки, описанные ниже.
База данных хранится и обрабатывается в вычислительной системе. Таким образом, любые некомпьютерные хранилища информации (архивы, библиотеки, картотеки и т. п.) базами данных не являются.
Базы данных включают в себя схему и собственно таблицы базы данных. Схема включает в себя описание содержания, структуры и ограничений целостности, используемые для создания и поддержки базы данных. Таблица базы данных включает в себя набор постоянных данных, определенных с помощью схемы.
Для разработки программного обеспечения нужно составить алгоритм поставленной задачи. Алгоритм -- это последовательность точных инструкций, выполнение которых приводит к решению поставленной задачи.
Самым востребованным прогрессивным языком программирования является С++.Это язык программирования общего назначения. Естественная для него область применения ? системное программирование, понимаемое в широком смысле этого слова. Кроме того, С++ успешно используется во многих областях приложения, далеко выходящих за указанные рамки. Реализации С++ теперь есть на всех машинах, начиная с самых скромных микрокомпьютеров - до самых больших супер-ЭВМ, и практически для всех операционных систем. В отличии от С , язык С++ поддерживает объективно-ориентированное программирование, которое появилось не так давно и стало мощным методом программирования.
Программное обеспечение для обработки информации с дорожно-транспортных происшествий широко применяется и используется в наши дни, так как ежедневно случаются ДТП. Данная разработка используется в базе данных ДАИ. С помощью разработанного ПО для обработки информации с ДТП введет удобный подсчет количества аварий и пострадавших, а также хранятся сведения о том, когда и где происходило ДТП.
Ведение базы данных по ДТП является целью курсовой работы, которая по качеству не будет уступать другим востребованным программам, но существенно сэкономит время и облегчит работу.
1. Анализ предметной области и постановка задачи
1.1 Цель разработки данного проекта
Разработка программного обеспечения для обработки информации о
дорожно-транспортных происшествиях включает анализ дорожно-транспортного происшествия, а именно когда и где случилось ДТП, последствия ДТП, пострадавшие в ДТП. Данная разработка необходима как база данных, в ДАИ и удобна в использовании.
В ходе выполнения курсовой работы отрабатываются такие умения:
-выполнять постановку задачи по разработке программ;
-разрабатывать и описывать применяемые структуры данных и алгоритмы;
-осуществлять программную реализацию разработанных алгоритмов и проводить их тестирование;
-разрабатывать программ в среде программирования VISUAL STUDIO 2008.
1.2 Функциональные требования к программному продукту
Необходимо запрограммировать ввод и редактирование данных, поиск данных, сортировку данных (если это необходимо), обработку информации по запросу с выводом на экран или печать.
1.3 Входные и выходные данные
Входными данным являются время и место происшествия и сведения об участниках ДТП. Эти данные имеют следующую структуру:
o ФИО водителя, пострадавших;
o Дата;
o Адрес произошедшего ДТП;
o Тип ДТП, сумма штрафа;
Выходные данные получаются на основании запросов пользователя.
Исходные данные данной программы хранятся в файле. После запуска программы пользователь может выбрать один из вариантов предложенных действий:
- просмотр данных;
- поиск данных:
- по водителям;
- по пострадавшим;
- по ДТП (по городам);
- сортировка данных:
- по количеству пострадавших;
- по сумме штрафа;
- редактирование данных:
- по пострадавшим;
- по водителям;
- по ДТП;
- добавление данных:
- по ДТП;
- удаление данных:
- по ДТП;
Данное меню выбора действий в общем случае может быть предложено пользователю 1000 раз.
2. Синтез структур данных
Входные данные читаются из файлов : vod.txt. , post.txt. ,dtp.txt .
Файл vod.txt. хранит сведения о водителях: ФИО , возраст .
Файл post.txt. хранит сведения о пострадавших: ФИО , возраст .
Файл dtp.txt. хранит сведения о ДТП: место ДТП , сумма штрафа, количество пострадавших, дата происшествия.
Для хранения описанных данных были разработаны такие структуры:
struct Vod //водители
{
int nomer;
char famV[20]; //фамилия
char nameV[20]; //имя
char otchV[20]; //отчество
int yearV; //возраст
};
struct Post //пострадавшие
{
int nomer;
char fam[20]; //фамилия
char name[20]; //имя
char otch[20]; //отчество
int year; //возраст
};
struct DTP //ДТП
{
int nomer;
char tup[50]; //тип ДТП
int cost; //сумма штрафа
int kol; //количество пострадавших
char city[30]; //город
char street [40]; //улица
char oblact[30]; //область
char data [30]; //дата
};
Для хранения текстовой информации используются статические массивы типа char , а для ее обработки -- специальные средства библиотеки <string.h>.
Числовая информация имеет целочисленные значения, которые используются типом int.
3. Алгоритмы работы системы
Работа программы начинается с предоставления пользователю выбора возможных действий с помощью меню. После выбора номера необходимого действия вызывается соответственный модуль-обработчик. Выход из программы осуществляется по желанию пользователя либо после 1000 отработанных шагов. Обобщенный алгоритм работы системы приведен.
Размещено на http://www.allbest.ru/
Рисунок 2.1 ?Алгоритм просмотра
Размещено на http://www.allbest.ru/
Рисунок 3.1 ?Алгоритм поиска
Алгоритм работы программы зависит от выбора пользователя. Рассмотрим каждый вариант ответа пользователя и реакцию программы.
При выборе пользователем пункта 1 («Просмотр») пользователь имеет возможность выбрать необходимые ему данные. При этом изначально данные хранятся в файлах.
Рисунок 4.1 ? Алгоритм сортировки
Рисунок 4.1 - Алгоритм добавления новых данных
Рисунок 4.2 - Алгоритм удаления записи
4 Описание функционирования программы
Рассмотрим вид работающей программы.
При запуске программы высветится окно с главным меню (см. рис. 7.1), в котором пользователю необходимо указать номер действия, которое он желает осуществить.
Рисунок 7.1 ? Главное меню программы
Для поиска записи выбираем пункт 2 (см. рис.7.2):
Рисунок 7.2 ? Варианты поиска
При работе с базами данных пользователю может быть необходимо быстро найти все данные о каком-либо ДТП. При выборе варианта поиска, например пункт 1 (см.рис. 7.3):
Рисунок 7.3 ? Поиск по фамилии водителей
При выборе сортировки, есть возможность выбора варианта сортировки. Сортировка по количеству пострадавших (см. рис .7.4) и сортировка по сумме штрафа (см. рис. 7.5).
Рисунок 7.4 ? Сортировка по количеству пострадавших
Рисунок 7.5 ? Сортировка по сумме штрафа
При выборе пункта редактирования, также есть вариант выбора (см. рис. 7.6). Например, изменяем по списку водителей первую запись (см. рис. 7.7).
Рисунок 7.6 ?Вариант выбора редактирования
Рисунок 7.7 ? Редактирования
Для добавления ДТП используем пункт 5 (см.рис. 7.8).
Для просмотра изменения, выбираем в меню пункт 1.(см.рис.7.9).
Рисунок 7.8 ? Добавление ДТП
Рисунок 7.8 ? Просмотр измененого ДТП
Для удаления записи посещений в главном меню необходимо нажать цифру 6. После выбора варианта удаления, на экране появится вопрос , какую строку удалить(см. рис. 10.1). Пользователю останется только выбрать запись, которую он хочет удалить. Для проверки правильности действия необходимо просмотреть измененную таблицу. (см. рис. 10.2).
Рисунок 10.1 ? Выбор удаления
Рисунок 10.2 ? Удаление записи
Выводы
Результатом выполнения курсовой работы является рабочая программа, осуществляющая регистрацию ДТП. Программа позволяет выполнять добавление, редактирование удаление, сортировку и поиск записей из базы данных. программный массив хранение информация
Достоинствами программы являются ее небольшой размер, высокая скорость работы, а также низкие требования к аппаратному обеспечению, что позволяет использовать ее практически на любом компьютере.
Недостатком этой программы является тот факт, что для многих служащих работающих с этой программой, язык Си++ и работа на нем являются неизвестной сферой, а, значит, в регистрации ДТП должен работать также и специалист по этим вопросам, чтобы в случае неполадки устранить ее в короткий срок.
Также к недостаткам программы можно отнести интерфейс командной строки, считающийся на данный момент устаревшим.
Дальнейшими усовершенствованиями программы может быть создание дружественного интерфейса в стиле Windows приложений, расширение функциональности программного продукта.
Использованная литература
Динман М.И. С++. Освой на примерах. - СПб.: БХВ-Петербург, 2006. - 384 с.
Липпман С. Основы программирования на С++. - М.: Издательский дом «Вильямс», 2002. - 256 с.
Либерти Дж. Освой самостоятельно С++ за 24 часа. - М.: Издательский дом «Вильямс», 2007. - 448 с.
Прата С. Язык программирования C. Лекции и упражнения / Пер. с англ. - М.: Издательский дом «Вильямс», 2006. - 960 с.
Павловская Т.А. C/C++. Учебник. - СПб.: Питер, 2001.- 464 с.
Приложения
ЛИСТИНГ ПРОГРАММЫ
Файл DTP.cpp
#include "DTP.h"
#pragma once
#include <iostream>
#include <string.h>
#include <fstream>
using namespace std;
int main ()
{
setlocale (LC_ALL, "Russian");
ifstream vod;
ifstream post;
ifstream dtp;
ofstream v;
ofstream p;
ofstream d;
Vod b[20];
Post a[20];
DTP c[20];
vod.open("voditeli.txt");
vod>>M;
for (int i=0; i<M; i++)
{
vod>>b[i].nomer;
vod>>b[i].famV;
vod>>b[i].nameV;
vod>>b[i].otchV;
vod>>b[i].yearV;
}
post.open("postradavshie.txt");
post>>N;
for (int i=0; i<N; i++)
{
post>>a[i].nomer;
post>>a[i].fam;
post>>a[i].name;
post>>a[i].otch;
post>>a[i].year;
}
dtp.open("dtp.txt");
dtp>>B;
for (int i=0; i<B; i++)
{
dtp>>c[i].nomer;
dtp>>c[i].tup;
dtp>>c[i].cost;
dtp>>c[i].kol;
dtp>>c[i].city;
dtp>>c[i].oblact;
dtp>>c[i].street;
dtp>>c[i].data;
}
vod.close();
post.close();
dtp.close();
//главный цикл
for (int i=0; i<1000; i++)
{
system ("cls");
cout<<"Программа по Дорожно-Транспортным проишествиям : \n";
cout<<"~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~"<<endl;
cout<<"ГЛАВНОЕ МЕНЮ : \n";
cout<<endl;
cout<<"Выберете неоюходимый вариан ответа \n";
cout<<"------------------------------------------------"<<endl;
cout<<"1-Просмотр данных"<<endl;
cout<<"2-Поиск данных"<<endl;
cout<<"3-Сортировка данных"<<endl;
cout<<"4-Редактирование данных"<<endl;
cout<<"5-Добавление данных"<<endl;
cout<<"6-Удаление данных"<<endl;
int ans;
cout<<"-->";
cin>>ans;
switch(ans)
{
case 1: {prosmotr (a,b,c); break;}
case 2: {poizk (a,b,c); break;}
case 3: {sort (c); break;}
case 4: {redak (b,a,c); break;}
case 5: {dobal(c); break;}
case 6: {ydal(a,b,c); break;}
default: {cout<<"ERROR!\n";
cout<<"Повторите ввод : "<<endl<<"\n"; _getch();}
}
}
_getch();
}
Файл DTP.h
#pragma once
#include<iostream>
#include <fstream>
#include <string.h>
#include <conio.h>
using namespace std;
struct Vod
{
int nomer;
char famV[15];
char nameV[10];
char otchV[20];
int yearV;
};
struct Post
{
int nomer;
char fam[15];
char name[10];
char otch[20];
int year;
};
struct DTP
{
int nomer;
char tup[50];
int cost;
int kol;
char city[30];
char street [40];
char oblact[30];
char data [30];
};
void sort (DTP *);
void redak (Vod&, Post &, DTP&);
void prosmotr(Vod&, Post&, DTP&);
void dobal(DTP&);
void poizk(Vod&, Post&, DTP&);
void ydal(Vod&, Post&, DTP&);
int N,M,B;
int vub;
void prosmotr(Post a[],Vod b[] ,DTP c[])
{
system ("cls");
cout<<"Данные какой таблицы вы желаете просмотреть: \n";
cout<<"====================================================\n";
cout<<"1-список пострадавших \n";
cout<<"2-список водителей \n";
cout<<"3-список ДТП \n";
cout<<"-->";
cin>>vub;
if (vub==1)
{
cout<<"===============================================================\n";
cout<<"№";cout.fill(' '); cout.width(15); cout<<" Имя"; cout.width(15);
cout.fill(' '); cout<<"Фамилия"; cout.width(15); cout.fill(' ');
cout<<"Отчество"; cout.width(10); cout.fill(' '); cout<<"Возраст"<<endl; cout.fill(' ');
cout<<"===============================================================\n";
for (int i=0; i<N;i++)
{
cout<<a[i].nomer;
cout.fill(' ');
cout.width(15);
cout<<a[i].name;
cout.fill(' ');
cout.width(15);
cout<<a[i].fam;
cout.fill(' ');
cout.width(15);
cout<<a[i].otch;
cout.fill(' ');
cout.width(10);
cout<<a[i].year<<endl;
}
}
if(vub==2)
{
cout<<"===============================================================\n";
cout<<"№";cout.fill(' '); cout.width(15); cout<<" Имя"; cout.width(15);
cout.fill(' '); cout<<"Фамилия"; cout.width(15); cout.fill(' ');
cout<<"Отчество"; cout.width(10); cout.fill(' '); cout<<"Возраст"<<endl; cout.fill(' ');
cout<<"===============================================================\n";
for (int i=0; i<M; i++)
{
cout<<b[i].nomer;
cout.fill(' ');
cout.width(15);
cout<<b[i].nameV;
cout.fill(' ');
cout.width(15);
cout<<b[i].famV;
cout.fill(' ');
cout.width(15);
cout<<b[i].otchV;
cout.fill(' ');
cout.width(10);
cout<<b[i].yearV<<endl;
}
}
if(vub==3)
{
cout<<"===============================================================================================================================\n";
cout<<"№";
cout.width(35);
cout.fill(' ');
cout<<" Тип ДТП";
cout.width(10);
cout.fill(' ');
cout<<"штраф";
cout.width(15);
cout.fill(' ');
cout<<" пострадщих";
cout.width(15);
cout.fill(' ');
cout<<"Город";
cout.width(15);
cout.fill(' ');
cout<<"Область";
cout.width(20);
cout.fill(' '); cout<<"Улица";
cout.width(15);
cout.fill(' '); cout<<"Дата"<<endl;
cout.fill(' ');
cout<<"===============================================================================================================================\n";
for (int i=0; i<B; i++)
{
cout<<c[i].nomer<<" ";
cout.width(35);
cout.fill(' ');
cout<<c[i].tup;
cout.width(10);
cout.fill(' ');
cout<<c[i].cost;
cout.width(15);
cout.fill(' ');
cout<<c[i].kol;
cout.width(15);
cout.fill(' ');
cout<<c[i].city;
cout.width(15);
cout.fill(' ');
cout<<c[i].oblact;
cout.fill(' ');
cout.width(20);
cout<<c[i].street;
cout.fill(' ');
cout.width(15);
cout<<c[i].data<<endl;
}
}
if (vub!=1&&vub!=2&&vub!=3)
{
cout<<"Выбран неправильный вариант\n";
_getch();
}
_getch();
}
void poizk (Post a[], Vod b[], DTP c[])
{
system ("cls");
cout<<"Выберете вариант поиска: \n";
cout<<"=============================\n";
cout<<"1-поиск по водителям\n";
cout<<"2-поиск по пострадавшим\n";
cout<<"3- поиск по ДТП\n";
int t;
cout<<"-->";
cin>>t;
int fl=0;
if(t==1)
{
char fami[15];
cout<<"Введите фамилию искомого водителя: \n";
cout<<"-->";
cin.get();
cin.getline(fami,15);
for (int i=0;i<M;i++)
{
int d;
d=strcmp(fami,b[i].famV);
if (d==0)
{
cout<<"=============================\n";
cout<<"№";cout.fill(' '); cout.width(15); cout<<" Имя"; cout.width(15);
cout.fill(' '); cout<<"Фамилия"; cout.width(15); cout.fill(' ');
cout<<"Отчество"; cout.width(10); cout.fill(' '); cout<<"Возраст"<<endl; cout.fill(' ');
cout<<"===============================================================\n";
cout<<b[i].nomer;
cout.fill(' ');
cout.width(15);
cout<<b[i].nameV;
cout.fill(' ');
cout.width(15);
cout<<b[i].famV;
cout.fill(' ');
cout.width(15);
cout<<b[i].otchV;
cout.fill(' ');
cout.width(10);
cout<<b[i].yearV<<endl; fl=1;
}
}
if (fl==0)
cout<<"Такого человека в базе нет!";
_getch();
}
if (t==2)
{
char faml[15];
cout<<"Введите фамилию искомого пострадавшего: \n";
cout<<"-->";
cin.get();
cin.getline(faml,15);
for (int i=0;i<N;i++)
{
int d;
d=strcmp(faml,a[i].fam);
if (d==0)
{
cout<<"===============================================================\n";
cout<<"№";cout.fill(' '); cout.width(15); cout<<" Имя"; cout.width(15);
cout.fill(' '); cout<<"Фамилия"; cout.width(15); cout.fill(' ');
cout<<"Отчество"; cout.width(10); cout.fill(' '); cout<<"Возраст"<<endl; cout.fill(' ');
cout<<"===============================================================\n";
cout<<a[i].nomer;
cout.fill(' ');
cout.width(15);
cout<<a[i].name;
cout.fill(' ');
cout.width(15);
cout<<a[i].fam;
cout.fill(' ');
cout.width(15);
cout<<a[i].otch;
cout.fill(' ');
cout.width(10);
cout<<a[i].year<<endl;
fl=1;
}
}
if (fl==0)
{
cout<<"Такого человека в базе нет!";
}
_getch();
}
if (t==3)
{
char town[20];
cout<<"Введите город произошедшего ДТП: \n";
cout<<"-->";
cin.get();
cin.getline(town,20);
cout<<"===============================================================================================================================\n";
cout<<"№";
cout.width(35);
cout.fill(' ');
cout<<" Тип ДТП";
cout.width(10);
cout.fill(' ');
cout<<"штраф";
cout.width(15);
cout.fill(' ');
cout<<" пострадщих";
cout.width(15);
cout.fill(' ');
cout<<"Город";
cout.width(15);
cout.fill(' ');
cout<<"Область";
cout.width(20);
cout.fill(' '); cout<<"Улица";
cout.width(15);
cout.fill(' '); cout<<"Дата"<<endl;
cout.fill(' ');
cout<<"===============================================================================================================================\n";
for (int i=0;i<B;i++)
{
int d;
d=strcmp(town,c[i].city);
if (d==0)
{
cout<<c[i].nomer<<" ";
cout.width(35);
cout.fill(' ');
cout<<c[i].tup;
cout.width(10);
cout.fill(' ');
cout<<c[i].cost;
cout.width(15);
cout.fill(' ');
cout<<c[i].kol;
cout.width(15);
cout.fill(' ');
cout<<c[i].city;
cout.width(15);
cout.fill(' ');
cout<<c[i].oblact;
cout.fill(' ');
cout.width(20);
cout<<c[i].street;
cout.fill(' ');
cout.width(15);
cout<<c[i].data<<endl;
fl=1;
}
}
if (fl==0)
{cout<<"В таком городе ДТП не загиристрировано\n";
_getch();
}
_getch();
}
if (t!=1&&t!=2&&t!=3)
cout<<"ERROR! Неверный ввод\n";
}
void sort(DTP *c)
{
system ("cls");
cout<<"Выберете вариант сортировки: \n";
cout<<"=============================\n";
cout<<"1-сортировка по количеству пострадавших\n";
cout<<"2-сортировка по сумме штрафа\n";
int q;
cout<<"-->";
cin>>q;
ofstream d("dtp.txt");
if (q!=1&&q!=2)
{
cout<<"Неверный выбор!";
}
if (q==1)
{
DTP w;
bool t=true;
while (t==true)
{
t=false;
for (int i=0;i<B;i++)
for(int j=0;j<B-(i+1);j++)
if (c[j].kol<c[j+1].kol)
{
w=c[j];
c[j]=c[j+1];
c[j+1]=w;
t=true;
}
}
//показуем
cout<<"===============================================================================================================================\n";
cout<<"№";
cout.width(35);
cout.fill(' ');
cout<<" Тип ДТП";
cout.width(10);
cout.fill(' ');
cout<<"штраф";
cout.width(15);
cout.fill(' ');
cout<<" пострадщих";
cout.width(15);
cout.fill(' ');
cout<<"Город";
cout.width(15);
cout.fill(' ');
cout<<"Область";
cout.width(20);
cout.fill(' '); cout<<"Улица";
cout.width(15);
cout.fill(' '); cout<<"Дата"<<endl;
cout.fill(' ');
cout<<"===============================================================================================================================\n";
d<<B<<" "<<endl;
for (int i=0; i<B; i++)
{
cout<<c[i].nomer<<" ";
d<<c[i].nomer<<" "<<c[i].tup<<" "<<c[i].cost<<" "<<c[i].kol<<" "<<c[i].city<<" "<<c[i].oblact<<" "<<c[i].street<<" "<<c[i].data<<endl;
cout.width(35);
cout.fill(' ');
cout<<c[i].tup;
cout.width(10);
cout.fill(' ');
cout<<c[i].cost;
cout.width(15);
cout.fill(' ');
cout<<c[i].kol;
cout.width(15);
cout.fill(' ');
cout<<c[i].city;
cout.width(15);
cout.fill(' ');
cout<<c[i].oblact;
cout.fill(' ');
cout.width(20);
cout<<c[i].street;
cout.fill(' ');
cout.width(15);
cout<<c[i].data<<endl;
}
_getch();
}
if (q==2)
{
DTP w;
bool t=true;
while (t==true)
{
t=false;
for (int i=0;i<B;i++)
for(int j=0;j<B-(i+1);j++)
if (c[j].cost<c[j+1].cost)
{
w=c[j];
c[j]=c[j+1];
c[j+1]=w;
t=true;
}
}
cout<<"===============================================================================================================================\n";
cout<<"№";
cout.width(35);
cout.fill(' ');
cout<<" Тип ДТП";
cout.width(10);
cout.fill(' ');
cout<<"штраф";
cout.width(15);
cout.fill(' ');
cout<<" пострадщих";
cout.width(15);
cout.fill(' ');
cout<<"Город";
cout.width(15);
cout.fill(' ');
cout<<"Область";
cout.width(20);
cout.fill(' '); cout<<"Улица";
cout.width(15);
cout.fill(' '); cout<<"Дата"<<endl;
cout.fill(' ');
cout<<"===============================================================================================================================\n";
d<<B<<" \n";
for (int i=0; i<B; i++)
{
d<<c[i].nomer<<" "<<c[i].tup<<" "<<c[i].cost<<" "<<c[i].kol<<" "<<c[i].city<<" "<<c[i].oblact<<" "<<c[i].street<<" "<<c[i].data<<endl;
cout<<c[i].nomer<<" ";
cout.width(35);
cout.fill(' ');
cout<<c[i].tup;
cout.width(10);
cout.fill(' ');
cout<<c[i].cost;
cout.width(15);
cout.fill(' ');
cout<<c[i].kol;
cout.width(15);
cout.fill(' ');
cout<<c[i].city;
cout.width(15);
cout.fill(' ');
cout<<c[i].oblact;
cout.fill(' ');
cout.width(20);
cout<<c[i].street;
cout.fill(' ');
cout.width(15);
cout<<c[i].data<<endl;
}
_getch();
}
d.close();
}
//редактирование
void redak (Vod b[], Post a[], DTP c[])
{
system ("cls");
cout<<"Редактировать: \n";
cout<<"=============================\n";
cout<<"1-водителей\n";
cout<<"2-пострадавшие\n";
cout<<"3-дтп\n";
int s;
cout<<"-->";
cin>>s;
int l,vos,k;
char famil[30], Name[20], oth[20];
switch (s)
{
case 1:
{
cout<<"Какую запись вы хотите изменить?\n";
cout<<"===============================================================\n";
cout<<"№";cout.fill(' '); cout.width(15); cout<<" Имя"; cout.width(15);
cout.fill(' '); cout<<"Фамилия"; cout.width(15); cout.fill(' ');
cout<<"Отчество"; cout.width(10); cout.fill(' '); cout<<"Возраст"<<endl; cout.fill(' ');
cout<<"===============================================================\n";
for (int i=0; i<M; i++)
{
cout<<b[i].nomer;
cout.fill(' ');
cout.width(15);
cout<<b[i].nameV;
cout.fill(' ');
cout.width(15);
cout<<b[i].famV;
cout.fill(' ');
cout.width(15);
cout<<b[i].otchV;
cout.fill(' ');
cout.width(10);
cout<<b[i].yearV<<endl;
}
cout<<"-->";
cin>>l;
if (l>M||l<=0)
{
cout<<"Неверный выбор!\n";
_getch();
break;
}
cin.get();
cout<<"Введите измененную фамилию\n";
cin.getline(famil,20);
cout<<"Введите измененное имя\n";
cin.getline(Name,20);
cout<<"Введите измененное отчетво\n";
cin.getline(oth,20);
cout<<"Введите возраст\n";
cin>>vos;
strcpy(b[l-1].famV,famil);
strcpy(b[l-1].nameV,Name);
strcpy(b[l-1].otchV,oth);
b[l-1].yearV=vos;
ofstream v("voditeli.txt");
v<<M<<endl;
for (int i=0; i<M; i++)
{
v<<b[i].nomer<<" "<<b[i].nameV<<" "<<b[i].famV<<" "<<b[i].otchV<<" "<<b[i].yearV<<endl;
}
break;
v.close();
}
case 2:
{
cout<<"Какую запись вы хотите изменить?\n";
cout<<"===============================================================\n";
cout<<"№";cout.fill(' '); cout.width(15); cout<<" Имя"; cout.width(15);
cout.fill(' '); cout<<"Фамилия"; cout.width(15); cout.fill(' ');
cout<<"Отчество"; cout.width(10); cout.fill(' '); cout<<"Возраст"<<endl; cout.fill(' ');
cout<<"===============================================================\n";
for (int i=0; i<N;i++)
{
cout<<a[i].nomer;
cout.fill(' ');
cout.width(15);
cout<<a[i].name;
cout.fill(' ');
cout.width(15);
cout<<a[i].fam;
cout.fill(' ');
cout.width(15);
cout<<a[i].otch;
cout.fill(' ');
cout.width(10);
cout<<a[i].year<<endl;
}
cout<<"-->";
cin>>l;
if (l>N||l<=0)
{
cout<<"Неверный выбор!\n";
_getch();
break;
}
cin.get();
cout<<"Введите изменнёную фамилию\n";
cin.getline(famil,30);
cout<<"Введите измененное имя\n";
cin.getline(Name,10);
cout<<"Введите изменнёное отчество\n";
cin.getline(oth,20);
cout<<"Введите возраст\n";
cin>>vos;
strcpy(a[l-1].fam,famil);
strcpy(a[l-1].name,Name);
strcpy(a[l-1].otch,oth);
a[l-1].year=vos;
ofstream p("postradavshie.txt");
p<<N<<endl;
for (int i=0; i<N;i++)
{
p<<a[i].nomer<<" "<<a[i].name<<" "<<a[i].fam<<" "<<a[i].otch<<" "<<a[i].year<<endl;
}
break;
p.close();
}
case 3:
{
cout<<"Какую запись вы хотите изменить?\n";
cout<<"===============================================================================================================================\n";
cout<<"№";
cout.width(35);
cout.fill(' ');
cout<<" Тип ДТП";
cout.width(10);
cout.fill(' ');
cout<<"штраф";
cout.width(15);
cout.fill(' ');
cout<<" пострадщих";
cout.width(15);
cout.fill(' ');
cout<<"Город";
cout.width(15);
cout.fill(' ');
cout<<"Область";
cout.width(20);
cout.fill(' '); cout<<"Улица";
cout.width(15);
cout.fill(' '); cout<<"Дата"<<endl;
cout.fill(' ');
cout<<"===============================================================================================================================\n";
for (int i=0; i<B; i++)
{
cout<<c[i].nomer<<" ";
cout.width(35);
cout.fill(' ');
cout<<c[i].tup;
cout.width(10);
cout.fill(' ');
cout<<c[i].cost;
cout.width(15);
cout.fill(' ');
cout<<c[i].kol;
cout.width(15);
cout.fill(' ');
cout<<c[i].city;
cout.width(15);
cout.fill(' ');
cout<<c[i].oblact;
cout.fill(' ');
cout.width(20);
cout<<c[i].street;
cout.fill(' ');
cout.width(15);
cout<<c[i].data<<endl;
}
cout<<"-->";
cin>>l;
if (l>B||l<=0)
{
cout<<"Неверный выбор!\n";
_getch();
break;
}
char gor[20], obla[20], str[20], dat[20];
int ch, koL;
cin.get();
cout<<"Введите изменнёный тип ДТП\n";
cin.getline(famil,20);
cout<<"Введите измененный штраф\n";
cin>>ch;
cout<<"Введите измененное кол-во пострадавших\n";
cin>>koL;
cout<<"Введите измененный город\n";
cin.get();
cin.getline(gor,20);
cout<<"Введите изменнёную область\n";
cin.getline(obla,20);
cout<<"Введите изменнёную улицу\n";
cin.getline(str,20);
cout<<"Введите изменнёную дату\n";
cin.getline(dat,20);
strcpy(c[l-1].tup,famil);
c[l-1].cost=ch;
c[l-1].kol=koL;
strcpy(c[l-1].city,gor);
strcpy(c[l-1].oblact,obla);
strcpy(c[l-1].street,str);
strcpy(c[l-1].data,dat);
ofstream d("dtp.txt");
d<<B<<endl;
for (int i=0; i<B; i++)
{
d<<c[i].nomer<<" "<<c[i].tup<<" "<<c[i].cost<<" "<<c[i].kol<<" "<<c[i].city<<" "<<c[i].oblact<<" "<<c[i].street<<" "<<c[i].data<<endl;
}
d.close();
break;
}
}
}
void ydal(Post a[], Vod b[], DTP c[])
{
system ("cls");
cout<<"Выберете с откуда удалить: \n";
cout<<"=============================\n";
cout<<"1-удаление пострадавших\n";
cout<<"2-удаление по водителям\n";
cout<<"3-удаление по ДТР\n";
int z;
cout<<"-->";
cin>>z;
if (z!=1&&z!=2&&z!=3)
{
cout<<"Неверный выбор!\n";
_getch();
}
cout<<"Какой № записи вы желаете удалить?\n";
cout<<"===============================================================\n";
if (z==1)
{
cout<<"№";cout.fill(' '); cout.width(15); cout<<" Имя"; cout.width(15);
cout.fill(' '); cout<<"Фамилия"; cout.width(15); cout.fill(' ');
cout<<"Отчество"; cout.width(10); cout.fill(' '); cout<<"Возраст"<<endl; cout.fill(' ');
cout<<"===============================================================\n";
for (int i=0; i<N;i++)
{
cout<<a[i].nomer;
cout.fill(' ');
cout.width(15);
cout<<a[i].name;
cout.fill(' ');
cout.width(15);
cout<<a[i].fam;
cout.fill(' ');
cout.width(15);
cout<<a[i].otch;
cout.fill(' ');
cout.width(10);
cout<<a[i].year<<endl;
}
}
if (z==1)
{
int y;
cout<<"-->";
cin>>y;
if (y>N||y<=0)
{
cout<<"Неверный выбор!\n";
_getch();
}
else
{
for (int i=y-1; i<N-1; i++)
{
strcpy(a[i].fam,a[i+1].fam);
strcpy(a[i].name,a[i+1].name);
strcpy(a[i].otch,a[i+1].otch);
a[i].year=a[i+1].year;
}
N=N-1;
ofstream p("postradavshie.txt", ios::out);
cout<<" \t Изменнённая база "<<endl;
cout<<"№";cout.fill(' '); cout.width(15); cout<<" Имя"; cout.width(15);
cout.fill(' '); cout<<"Фамилия"; cout.width(15); cout.fill(' ');
cout<<"Отчество"; cout.width(10); cout.fill(' '); cout<<"Возраст"<<endl; cout.fill(' ');
cout<<"===============================================================\n";
p<<N<<endl;
for (int i=0; i<N;i++)
{
p<<a[i].nomer<<" "<<a[i].name<<" "<<a[i].fam<<" "<<a[i].otch<<" "<<a[i].year<<endl;
cout<<a[i].nomer;
cout.fill(' ');
cout.width(15);
cout<<a[i].name;
cout.fill(' ');
cout.width(15);
cout<<a[i].fam;
cout.fill(' ');
cout.width(15);
cout<<a[i].otch;
cout.fill(' ');
cout.width(10);
cout<<a[i].year<<endl;
}
_getch();
p.close();
}
}
if (z==2)
{
cout<<"№";cout.fill(' '); cout.width(15); cout<<" Имя"; cout.width(15);
cout.fill(' '); cout<<"Фамилия"; cout.width(15); cout.fill(' ');
cout<<"Отчество"; cout.width(10); cout.fill(' '); cout<<"Возраст"<<endl; cout.fill(' ');
cout<<"===============================================================\n";
for (int i=0; i<M;i++)
{
cout<<b[i].nomer;
cout.fill(' ');
cout.width(15);
cout<<b[i].nameV;
cout.fill(' ');
cout.width(15);
cout<<b[i].famV;
cout.fill(' ');
cout.width(15);
cout<<b[i].otchV;
cout.fill(' ');
cout.width(10);
cout<<b[i].yearV<<endl;
}
}
if (z==2)
{
int y;
cout<<"-->";
cin>>y;
if (y>M||y<=0)
{
cout<<"Неверный выбор!\n";
_getch();
}
else
{
for (int i=y-1; i<M-1; i++)
{
strcpy(b[i].famV,b[i+1].famV);
strcpy(b[i].nameV,b[i+1].nameV);
strcpy(b[i].otchV,b[i+1].otchV);
b[i].yearV=b[i+1].yearV;
}
M=M-1;
cout<<" \t Изменнённая база \n"<<endl;
cout<<"№";cout.fill(' '); cout.width(15); cout<<" Имя"; cout.width(15);
cout.fill(' '); cout<<"Фамилия"; cout.width(15); cout.fill(' ');
cout<<"Отчество"; cout.width(10); cout.fill(' '); cout<<"Возраст"<<endl; cout.fill(' ');
cout<<"===============================================================\n";
ofstream v("voditeli.txt");
v<<M<<endl;
for (int i=0; i<M;i++)
{
v<<b[i].nomer<<" "<<b[i].nameV<<" "<<b[i].famV<<" "<<b[i].otchV<<" "<<b[i].yearV<<endl;
cout<<b[i].nomer<<" ";
cout.fill(' ');
cout.width(15);
cout<<b[i].nameV;
cout.fill(' ');
cout.width(15);
cout<<b[i].famV;
cout.fill(' ');
cout.width(15);
cout<<b[i].otchV;
cout.fill(' ');
cout.width(10);
cout<<b[i].yearV<<endl;
}
v.close();
}
}
if (z==3)
{
cout<<"№";
cout.width(35);
cout.fill(' ');
cout<<" Тип ДТП";
cout.width(10);
cout.fill(' ');
cout<<" штраф";
cout.width(15);
cout.fill(' ');
cout<<" пострадщих";
cout.width(20);
cout.fill(' ');
cout<<"Город"; cout.width(20);
cout.fill(' '); cout<<"Область";
cout.width(20);
cout.fill(' '); cout<<"Улица"; cout.width(10);
cout.fill(' '); cout<<"Дата"<<endl;
cout.fill(' ');
cout<<"===============================================================\n";
for (int i=0; i<B; i++)
{
cout<<c[i].nomer;
cout.fill(' ');
cout.width(35);
cout<<c[i].tup;
cout.fill(' ');
cout.width(10);
cout<<c[i].cost;
cout.fill(' ');
cout.width(15);
cout<<c[i].kol;
cout.fill(' ');
cout.width(20);
cout<<c[i].city;
cout.fill(' ');
cout.width(20);
cout<<c[i].oblact;
cout.fill(' ');
cout.width(20);
cout<<c[i].street;
cout.fill(' ');
cout.width(10);
cout<<c[i].data<<endl;
}
}
if (z==3)
{
int y;
cout<<"-->";
cin>>y;
if (y>B||y<=0)
{
cout<<"Неверный выбор!\n";
_getch();
}
else
{
for (int i=y-1; i<B-1; i++)
{
strcpy(c[i].tup,c[i+1].tup);
c[i].cost=c[i+1].cost;
c[i].kol=c[i+1].kol;
strcpy(c[i].city,c[i+1].city);
strcpy(c[i].oblact,c[i+1].oblact);
strcpy(c[i].street,c[i+1].street);
strcpy(c[i].data,c[i+1].data);
}
B=B-1;
cout<<" \t Изменнённая база "<<endl;
cout<<"№";
cout.width(25);
cout.fill(' ');
cout<<" Тип ДТП";
cout.width(5);
cout.fill(' ');
cout<<" штраф";
cout.width(15);
cout.fill(' ');
cout<<" пострадщих";
cout.width(15);
cout.fill(' ');
cout<<"Город"; cout.width(15);
cout.fill(' '); cout<<"Область";
cout.width(15);
cout.fill(' '); cout<<"Улица"; cout.width(10);
cout.fill(' '); cout<<"Дата"<<endl;
cout.fill(' ');
cout<<"===============================================================\n";
ofstream d("dtp.txt");
d<<B<<endl;
for (int i=0; i<B; i++)
{
d<<c[i].nomer<<" "<<c[i].tup<<" "<<c[i].cost<<" "<<c[i].kol<<" "<<c[i].city<<" "<<c[i].oblact<<" "<<c[i].street<<" "<<c[i].data<<endl;
cout<<c[i].nomer;
cout.fill(' ');
cout.width(20);
cout<<c[i].tup;
cout.fill(' ');
cout.width(5);
cout<<c[i].cost;
cout.fill(' ');
cout.width(15);
cout<<c[i].kol;
cout.fill(' ');
cout.width(15);
cout<<c[i].city;
cout.fill(' ');
cout.width(15);
cout<<c[i].oblact;
cout.fill(' ');
cout.width(15);
cout<<c[i].street;
cout.fill(' ');
cout.width(10);
cout<<c[i].data<<endl;
}
_getch();
d.close();
}
}
}
void dobal( DTP c[])
{
char t[40],gorod[20],region[30],yliz[20],time[10];
int s,K;
system ("cls");
cin.get();
cout<<"Введите тип Дтп\n";
cin.getline(t,40);
cout<<"Введите город\n";
cin.getline(gorod,20);
cout<<"Введите область\n";
cin.getline(region,30);
cout<<"Введите улицу\n";
cin.getline(yliz,20);
cout<<"Введите дату\n";
cin.getline(time,20);
cout<<"Введите штраф\n";
cin>>s;
cout<<"Введите кол-во пострадавших\n";
cin>>K;
strcpy(c[B].tup,t);
c[B].cost=s;
c[B].kol=K;
strcpy(c[B].city,gorod);
strcpy(c[B].oblact,region);
strcpy(c[B].street,yliz);
strcpy(c[B].data,time);
c[B].nomer=B+1;
B=B+1;
ofstream d("dtp.txt");
d<<B<<endl;
for (int i=0; i<B; i++)
{
d<<c[i].nomer<<" "<<c[i].tup<<" "<<c[i].cost<<" "<<c[i].kol<<" "<<c[i].city<<" "<<c[i].oblact<<" "<<c[i].street<<" "<<c[i].data<<endl;
}
d.close();
_getch();
}
Размещено на Allbest.ru
...Подобные документы
Изучение условий поставленной задачи и используемых данных для разработки программы хранения информации о рейсах поезда. Описание разработанных функций, листинга, блок-схем алгоритмов и дерева функции. Рассмотрение сценария диалога данной программы.
курсовая работа [532,7 K], добавлен 20.07.2014Системы управления базами данных и их использование для решения задач автоматизации предприятия. Разработка информационного и программного обеспечения для автоматизации хранения и обработки информации при организации работы агропромышленного предприятия.
курсовая работа [607,1 K], добавлен 07.05.2011Разработка программного обеспечения для автоматизации доступа, обработки, вывода информации об услугах автосервиса и его клиентах с использованием языка программирования С# и MySQL. Проектирование интерфейсов системы. Схема алгоритма работы программы.
курсовая работа [665,6 K], добавлен 02.04.2015Выбор технологии, языка и среды программирования. Анализ процесса обработки информации и оценка структур данных для ее хранения. Разработка основных алгоритмов решения и структурной схемы программного продукта. Проектирование интерфейса пользователя.
курсовая работа [449,8 K], добавлен 14.01.2011Анализ перспектив развития средств обработки текстовой и графической информации. Выбор программного обеспечения обработки информации, технических средств, периферийных устройств. Исследование особенностей работы с программой деловой графики MS Visio.
курсовая работа [616,2 K], добавлен 04.05.2013Набор требований к программному продукту "Калькулятор". Тестовые сценарии для модульного тестирования. Использование системы визуального проектирования. Разработка программного кода. Вычисление цикломатического числа и построение графы каждого модуля.
контрольная работа [170,4 K], добавлен 04.11.2014Программы работы с текстами: MS-DOS Editor, Word Pad, блокнот, word, текстовый процессор. Редакторы для обработки документов. Стили форматирования. Двоичное кодирование текстовой информации в компьютере. Операции технологического процесса ее обработки.
курсовая работа [324,0 K], добавлен 25.04.2013Выбор технологии, языка и среды программирования. Анализ процесса обработки информации и выбор структур данных для ее хранения, разработка основных алгоритмов. Проектирование интерфейса пользователя. Выбор стратегии тестирования и разработка тестов.
курсовая работа [332,3 K], добавлен 09.12.2014Определение и анализ наиболее эффективной стратегии на примере организации в ритейл сфере. Рассмотрение и характеристика основных видов требований к программному продукту. Ознакомление с принципами взаимосвязи нескольких типов информации для требований.
дипломная работа [2,1 M], добавлен 03.07.2017Процесс выбора технологий и инструментальных средств. Анализ требований и построения спецификаций создаваемого программного обеспечения. Контекстная и детализированная диаграмма "AS-IS". Разработка алгоритмов и структур данных для хранения информации.
курсовая работа [3,3 M], добавлен 04.06.2014Разработка программы, осуществляющей контроль за своевременностью обновления программного обеспечения с помощью рассылки электронных писем. Анализ требований к системе; выбор метода решения, алгоритма, выбор языка программирования, описание программы.
дипломная работа [5,6 M], добавлен 29.06.2011Анализ видов обеспечения автоматизированных систем предприятия. Средства программирования распределенных систем обработки информации. Изучение особенностей использования технологии распределенных объектов. Эксплуатация программного обеспечения системы.
отчет по практике [486,0 K], добавлен 23.11.2014Создание прикладного программного обеспечения для реализации интерфейса терминала по приему платежей за услуги связи. Анализ требований к программному обеспечению. Выбор языка программирования. Разработка интерфейса пользователя и проектной документации.
дипломная работа [1,3 M], добавлен 18.06.2015Характеристика объектно-ориентированного, процедурного, функционального программирования. Выбор языка программирования для создания программного обеспечения для управления справочником "Спортсмены". Алгоритм работы приложения, пользовательский интерфейс.
курсовая работа [1,6 M], добавлен 23.02.2016Cоздание и описание логической модели автоматизированной системы обработки информации. Проектирование структуры системы в виде диаграмм UML. Анализ программных средств разработки программного обеспечения и интерфейса. Осуществление тестирования программы.
дипломная работа [2,5 M], добавлен 25.01.2015Исследование создания программного продукта для хранения информации о персональных данных. Характеристика разработки алгоритма программы, предназначенного для выполнения следующих функций: заполнения и удаления информации о людях, чтения и сохранения.
курсовая работа [33,3 K], добавлен 17.01.2012Назначение и функции информационной системы как программно-аппаратного комплекса, предназначенного для хранения и обработки данных какой-либо предметной области. Каскадная схема создания ИС с обратной связью. Основные элементы языка программирования С++.
контрольная работа [1,7 M], добавлен 14.05.2012Обоснование выбора языка программирования. Анализ входных и выходных документов. Логическая структура базы данных. Разработка алгоритма работы программы. Написание программного кода. Тестирование программного продукта. Стоимость программного продукта.
дипломная работа [1008,9 K], добавлен 13.10.2013Характеристика и анализ существующей системы обработки информации и управления гостиницы. Назначение, функции, входная и выходная информация АРМ администратора. Алгоритм работы автоматизированной системы. Выбор ОС, программного и технического обеспечения.
дипломная работа [3,9 M], добавлен 28.01.2014Разработка сайта для хранения и обработки информации об абитуриентах в среде программирования Delphi 7. Архитектура базы данных. Функциональная схема программы. Даталогическая модель данных. Сущности БД и архива. Элементы пользовательского интерфейса.
дипломная работа [4,2 M], добавлен 30.03.2015