Помощь в учёбе, очень быстро...
Работаем вместе до победы

Список используемых источников

РефератПомощь в написанииУзнать стоимостьмоей работы

Delete SecondData, SecondBool, TimeSecond, SecondNumber; If ((Indata == Indata) && (Indata == Indata — 1)). If ((Indata == Indata — 1) && (Indata == Indata)). If ((Indata == 1) && (Indata == Station + 1)). Первая стадия обработки. Модуль обработки данных. Вторая стадия обработки. Вычисление интервалов*/. Первичная обработка*/. Вторичная обработка*/. Модуль вывода данных. For (int i = 1; i… Читать ещё >

Список используемых источников (реферат, курсовая, диплом, контрольная)

  • 1. Орлов, С. А. Технология разработки программ / С. А. Орлов. — СПб.: Питер, 2004. — 420с.
  • 2. Лафоре Р. Объектно-ориентированное программирование в C++. — СПб: Питер, 2004. — 923с.
  • 3. Гамма, Э., Хелм, Р., Джонсон, Р., Влиссидесс, Д. Приемы объектно-ориентированного программирования. Паттерны проектирования. — Спб: Питер, 2010. — 366 с.
  • 4. Годунова Е. К.

    Введение

    в теорию графов. Индивидуальные задания. — МПГУ, 2012. — 44 с.

Приложение 1

Программная документация: файл листинг программы

#include.

#include.

using namespace std;

class train.

{.

private:

int Str = 0, Station;

public:

//Модуль считывания кол-ва станций.

void ReadStation ().

{.

cout <> Station;

Station = Station — 1;

}.

//Модуль считывания начальных данных.

void ReadIN ().

{.

ReadStation ();

char *str = new char[1024];

ifstream INS («D:input.txt»);

while (!INS.eof ()).

{.

INS.getline (str, 1024, ' ');

Str++;

}.

INS.close ();

float**Indata = new float*[Str];

for (int i = 0; i < Str; i++).

Indata[i] = new float[3];

ifstream IN;

IN.open («D:input.txt»);

for (int i = 0; i < Str; i++).

for (int j = 0; j < 3; j++).

IN >> Indata[i][j];

IN.close ();

SaveData (Indata);

}.

//Модуль обработки данных.

void SaveData (float**Indata).

{.

float*Data = new float[Station];

float*NumberData = new float[Station];

/*Первичная обработка*/.

int Number = 0, Shet = 0, Bool = 0;

for (int i = 0; i < Str; i++).

{.

if (Indata[i][0] + 1 == Indata[i][1]).

{.

Data[Number] = Indata[i][2];

NumberData[Number] = Indata[i][0];

}.

else if (Indata[i][0] - 1 == Indata[i][1]).

{.

Data[Number] = Indata[i][2];

NumberData[Number] = Indata[i][1];

}.

else.

Number—;

Number++;

}.

Number = 0;

float*TimeNumberData = new float[Station];

for (int i = 1; i < Station + 1; i++).

{.

Bool = 0;

for (int j = 0; j < Station; j++).

{.

if (i == NumberData[j]).

Bool = 1;

}.

if (Bool == 0).

{.

TimeNumberData[Number] = i;

Number++;

}.

}.

for (int i = 0; i < Number; i++).

NumberData[Station — i — 1] = TimeNumberData[i];

Bool = Number;

delete TimeNumberData;

float*TimeData = new float[Station];

for (int i = 0; i < Station; i++).

{.

Number = NumberData[i];

TimeData[Number — 1] = Data[i];

if (i >= Station — Bool).

TimeData[Number — 1] = 0;

}.

for (int i = 0; i < Station; i++).

Data[i] = TimeData[i];

delete TimeData;

/*Вычисление интервалов*/.

int Gap = 0, SecondGap = 0;

float AllLong;

for (int i = 0; i < Str; i++).

if ((Indata[i][0] == 1) && (Indata[i][1] == Station + 1)).

AllLong = Indata[i][2];

for (int i = 0; i < Str; i++).

{.

for (int j = 0; j < Str; j++).

{.

Gap = Indata[i][1] - 1;

SecondGap = Indata[i][0] - 1;

if ((Indata[i][0] == Indata[j][0]) && (Indata[i][1] == Indata[j][1] - 1)).

if (Data[Gap] == 0).

Data[Gap] = Indata[j][2] - Indata[i][2];

if ((Indata[i][0] == Indata[j][0] - 1) && (Indata[i][1] == Indata[j][1])).

if (Data[SecondGap] == 0).

Data[SecondGap] = Indata[i][2] - Indata[j][2];

if ((Indata[i][0] == 1)&&(Indata[j][1] == Station + 1)&&(Indata[i][1] == Indata[j][0] - 1)).

if (Data[Gap] == 0).

Data[Gap] = AllLong — (Indata[j][2] + Indata[i][2]);

}.

}.

/*Вторичная обработка*/.

//Подготовка.

float**SecondData = new float *[Str];

for (int i = 0; i < Str; i++).

SecondData[i] = new float[3];

Number = 0;

for (int i = 0; i < Str; i++).

{.

if (Indata[i][0] + 1 == Indata[i][1]).

Number—;

else if (Indata[i][0] - 1 == Indata[i][1]).

Number—;

else.

{.

SecondData[Number][0] = Indata[i][2];

SecondData[Number][1] = Indata[i][0];

if (Indata[i][0] < Indata[i][1]).

SecondData[Number][2] = Indata[i][1] - Indata[i][0];

if (Indata[i][0] > Indata[i][1]).

SecondData[Number][2] = Indata[i][0] - Indata[i][1];

}.

Number++;

}.

int Koll = 0, SecondBool = 0;

Koll = Number;

Number = 0;

Bool = 0;

float*TimeSecond = new float[Station];

float**SecondNumber = new float*[Station];

for (int i = 0; i < Station; i++).

SecondNumber[i] = new float[2];

for (int i = 0; i < Koll; i++).

{.

for (int j = 0; j < SecondData[i][2]; j++).

TimeSecond[j] = SecondData[i][1] + j;

for (int j = 0; j < SecondData[i][2]; j++).

{.

Shet = TimeSecond[j];

if (Data[Shet — 1] > 0).

Number++;

}.

Number = SecondData[i][2] - Number;

if (Number == 1).

{.

SecondNumber[Bool][0] = i;

Bool++;

}.

else.

{.

SecondNumber[SecondBool][1] = i;

SecondBool++;

}.

Number = 0;

}.

//Первая стадия обработки.

for (int i = 0; i < Bool; i++).

{.

Number = SecondNumber[i][0];

for (int j = 0; j < SecondData[Number][2]; j++).

TimeSecond[j] = SecondData[Number][1] + j;

for (int j = 0; j < SecondData[Number][2]; j++).

{.

Shet = TimeSecond[j];

if (Data[Shet — 1] > 0).

SecondData[Number][0] = SecondData[Number][0] - Data[Shet — 1];

else.

Koll = Shet — 1;

}.

Data[Koll] = SecondData[Number][0];

}.

//Вторая стадия обработки.

for (int i = 0; i < SecondBool; i++).

{.

Number = SecondNumber[i][1];

for (int j = 0; j < SecondData[Number][2]; j++).

TimeSecond[j] = SecondData[Number][1] + j;

for (int j = 0; j < SecondData[Number][2]; j++).

{.

Shet = TimeSecond[j];

if (Data[Shet — 1] > 0).

SecondData[Number][0] = SecondData[Number][0] - Data[Shet — 1];

else.

Koll = Shet — 1;

}.

Data[Koll] = SecondData[Number][0];

}.

delete SecondData, SecondBool, TimeSecond, SecondNumber;

WriteOUT (Data);

}.

//Модуль вывода данных.

void WriteOUT (float*Data).

{.

ofstream OUT;

OUT.open («D:OUT.txt», ios: out);

for (int i = 0; i < Station; i++).

{.

if (Data[i] == 0).

{.

OUT << i + 1 << «-» << i + 2 << «: Недостаточно данных» << endl;

cout << i + 1 << «-» << i + 2 << «: Недостаточно данных» << endl;

}.

else.

{.

OUT << i + 1 << «-» << i + 2 << «: „<< Data[i] <<“ км.» << endl;

cout << i + 1 << «-» << i + 2 << «: „<< Data[i] <<“ км.» << endl;

}.

}.

cout << «Файл сохранен в D: OUT. txt» << endl;

OUT.close ();

}.

};

void main ().

{.

setlocale (LC_ALL, «rus»);

float*Data = new float[3];

train ferst;

ferst.ReadIN ();

system («pause»);

}.

Показать весь текст
Заполнить форму текущей работой