Федеральное государственное образовательное учреждение высшего профессионального образования «московский государственный технический университет гражданской авиации»




НазваниеФедеральное государственное образовательное учреждение высшего профессионального образования «московский государственный технический университет гражданской авиации»
страница1/8
Дата публикации29.01.2014
Размер0.92 Mb.
ТипПрактическая работа
litcey.ru > Спорт > Практическая работа
  1   2   3   4   5   6   7   8

ФЕДЕРАЛЬНОЕ АГЕНТСТВО ВОЗДУШНОГО ТРАНСПОРТА


ФЕДЕРАЛЬНОЕ ГОСУДАРСТВЕННОЕ ОБРАЗОВАТЕЛЬНОЕ УЧРЕЖДЕНИЕ ВЫСШЕГО ПРОФЕССИОНАЛЬНОГО ОБРАЗОВАНИЯ

«МОСКОВСКИЙ ГОСУДАРСТВЕННЫЙ ТЕХНИЧЕСКИЙ УНИВЕРСИТЕТ ГРАЖДАНСКОЙ АВИАЦИИ»
Кафедра вычислительных машин, комплексов, систем и сетей
О
Черкасова Н.И, доцент, к ф-м н.
тчет защищен с оценкой

_______________________________________

_______________________________________

(подпись преподавателя, дата)
О Т Ч Е Т

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

по дисциплине «Алгоритмические языки и программирование»

В
Новичков В.Д. ЭВМ-101032
ыполнил студент группы ЭВМ 1-2

__________________________________

(Ф.И.О., № зачетной книжки)

__________________________________

(подпись, дата)

Москва 2011

Аннотация

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

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

^ Практическая работа №1
1.1 Цель работы

Освоение методов работы с бинарными и текстовыми файлами, освоение алгоритмов удаления данных из бинарного файла.
^ 1.2 Техническое задание

Разработка схемы алгоритмов, структуру и текст программы для обработки структурных данных текстового и бинарного файлов заданного варианта с использованием функций создания файлов и удаления ряда структур из файлов.

Схемы алгоритмов должны быть разработаны для каждой функции.

Тестирование проводить с помощью файла данных с поисковыми признаками для удаления: должны быть удалены соответствующие записи.
^ 1.3 Вариант задания

Структура: Название спортивной секции, ФИО тренера, длительность тренировки,
стоимость занятий, количество спортсменов.

1.4 Структура программы

Программа содержит следующие функции:

read_fs - Функция чтения бинарного файла

crat - Функция создания бинарного файла

p_header - Функция вывода заголовка таблицы и на экран и в файл

p_header_s - Функция вывода заголовка таблицы только на экран

wR_f - Функция записи в бинарный файл, считывая из текстового

wR_manual - Функция записи в бинарный файл данных, введённых вручную

filter_ - Функция, фильтрующая строку от лишних пробелов

pri - Функция для форматированного вывода сообщения об ошибке

delstruct - Функция удаления структур из бинарного файла, считывая признаки
из специального текстового файла.

p - Форматированный вывод элемента структуры

prnborder - Форматированный вывод текста в рамочке с указанием цвета границ



Рисунок 1.1^ СТРУКТУРА ПРОГРАММЫ

1.5 Разработка алгоритма программы


Рисунок 1.2. Алгоритм главной функции



Рисунок 1.2. Продолжение

Функция crat используется для создания бинарного файла, структуры заполняются вручную с клавиатуры.



Рисунок 1.3 Функция создания бинарного файла crat

Функция p_header используется для вывода массива заголовка таблицы и в файл и на экран.



Рисунок 1.4 Функция вывода заголовка p_header


Функция p_header_s используется для вывода массива заголовка таблицы только на экран.


Рисунок 1.5 Функция вывода на экран заголовка

Функция p_exheader используется для вывода массива заголовка расширенной таблицы на экран.



Рисунок 1.6 Функция вывода на экран расширенного заголовка p_exheader

Функция P используется для форматированного вывода выбранной структуры.
Параметр функции разрешает/запрещает вывод в файл.

Рисунок 1.7. Функция форматированного вывода элементов структуры P

Функция exp используется для форматированного вывода выбранной структуры, включая скрытые системные флаги.
Параметр функции разрешает/запрещает вывод в файл.


Рисунок 1.8 Функция exp для форматированного вывода расширенной таблицы
Функция wR_f используеся для чтения данных для структуры из текстового файла и их запись в бинарный файл.


Рисунок. 1.9 Функция wR_f для записи в бинарный файл, используя данные текстового файла

Функция wR_manual используется для ввода данных в бинарный файл посредством клавиатурного ввода

Рисунок 1.10 Функция записи бинарного файла wR_manual используя данные, введённые с клавиатуры

Функция read_fs используеся для вывода содержимого всего бинарного файла на экран и в файл. В зависимости от единственного параметра PrFile может не выводить в файл ничего, выводить только на экран, и может вывести таблицу в расширенном формате, с отображением скрытых системных флагов структуры.


Рисунок 1.11 Функция read_fs для чтения данных из бинарного файла с выводом на экран и файл.


Рисунок 1.11 Продолжение

Функция delstruct предназначена для удаления указанных в специальном файле структур.
Сначала ищет необходимые структуры и метит их в системных флагах как “deleted”.
После разметки, функция приступает к удалению данных из файла.
Удаляемая структура “закрашивается” следующей, т.к. начиная с удалённой структуры, все последующие структуры будут копированы на позицию –Z. После затирания структур, происходит “срезание” с конца того количества структур, которое было удалено из файла.
Рисунок 1.12 Функция delstruct для поиска, разметки и удаления структур из бинарного файла


Рисунок 1.12 Продолжение

Рисунок 1.12 Продолжение

Таблица 1.1 Глобальные переменные

Имя

Тип

Назначение

fin

Ifstream

Стандартный входной файловый поток

fout

Ofstream

Стандартный выходной файловый поток

io

fstream

Стандартный двунаправленный файловый поток

e

const char

Замена “endl” в целях уменьшения текста программы

header[]

char *

Массив, содержащий заголовок и разделители таблицы

exheader[]

char *

Массив, содержащий заголовок и разделители расширенной таблицы

FileName

char *

Имя открытого в данный момент бинарного файла

counter

int

Счётчик

key;

char

Хранение ответов диалогов

presskey

char

Хранение ответов диалогов меню

presskey1

char

Хранение ответов диалогов субменю 1

Presskey2

char

Хранение ответов диалогов субменю 2

Presskey3

char

Хранение ответов диалогов субменю 3

Presskey4

char

Хранение ответов диалогов субменю 4

Presskey5

char

Хранение ответов диалогов субменю 5

Presskey6

char

Хранение ответов диалогов субменю 6

Presskey7

char

Хранение ответов диалогов субменю 7

Presskey8

char

Хранение ответов диалогов субменю 8

Presskey9

char

Хранение ответов диалогов субменю 9

stud

stud

Промежуточная переменная структурного типа, используемая для чтения и записи.

z

int

Размер структуры типа stud в байтах.



Таблица 1.2 Локальные переменные

Имя

Тип

Назначение

uri

Int

Используется в операторе цикла for

T[80]

char

Буфер обмена, используемый при чтении данных

wantenter

int

Используется для ответов диалога “Хотите добавить ещё?”

PrFile

int

Параметр, разрешающий или запрещающий вывод в файл

n

Int

Подсчёт количества структур в файле

s

float

Σ “Общее количество спортсменов”

Name[85]

char

Носитель обрабатываемого поискового признака

deleting

Int

Указатель на бинарный файл, из которого удаляются структуры

FSize

Long

Размер бинарного файла, который необходимо установить после удаления структур


В “приложении А” представлен исходный текст программы DELETER.CPP.
В “приложении Б” представлен файл с поисковыми данными “delete.dat” и результат тестирования программы.

^ ПРИЛОЖЕНИЕ А


DELETER.CPP

/*

МГТУ ГА

ЭВМ-1-2

Виталий Новичков
22 июня 2011

(С) 2011 Wohlhabenden.NET
Практические работы #1
*/
#include

#include

#include

#include

#include

#include

#include

#include

#include

#include

#include
#include "p1_vars.h"
#include "sndmsgs.h"
void p(int),

read_fs(int),

crat(int),

add_(),

find01(int),

p_header(),

p_header_s(),

wR_f(int),

filter_(char *, int),

pri(char *),

delstruct();
#include "helperfn.h"

#include "read_fs.c"

#include "wr_f.c"

#include "wr_manua.c"

#include "crat.c"

#include "delete.cpp"
void main(int argc, char *params[])

{
clrscr();
//Подготовка файла-отчета работы программы

#include "logfile1.c"


clrscr();

int Welcome=0;
if (argc>1)

{

if (file_exists(params[1]))

strcpy(FileName, params[1]);

else

strcpy(FileName, "");

}

else

strcpy(FileName, "");
if (strcmp(FileName, ""))

{

goto OpenFile;

}

else

{

printf("\nДля создания нового файла нажмите ENTER,\n\

для открытия существующего нажмите любую клавишу...");

if (getch()==13)

{

printf("\n");

#include "mitem001.c"

goto OpenFile;

}

else

{

printf("\n");

goto OpenFile;

}

OpenFile:

#include "mitem002.c"

Continue:
}
#include "mitem003.c"
#include "mitem007.c"
fout.close();

clrscr();

textcolor(7);

cprintf("\n");

textcolor(2);

cprintf("\nДо свидания!");

textcolor(7);

cprintf("\n");
//Предложение просмотреть файл результатов после работы программы

#include "logfile.c"

}

p1_vars.h

//Глобальные переменные

#ifndef WOHLHABENDEN

#define WOHLHABENDEN

#include

//Определение функции вывода сообщения в красной рамочке,

//выровненной по центру экрана

#include "prnbrdr.c"
ifstream fin;

ofstream fout;

fstream io;
const char e='\n';
// Голова таблицы

char * header[] =

{

" Спортивные секции ",

"╔══════════╦══════════╦══════════════╦═══════════════╦═════════════╗",

"║ Название ║ ФИО ║ Длительность ║ Стоимость ║ Количество ║",

"║ секции ║ Тренера ║ Тренировки ║ одного занятия║ Спортсменов ║",

"╠══════════╬══════════╬══════════════╬═══════════════╬═════════════╣",

"╚══════════╩══════════╩══════════════╩═══════════════╩═════════════╝"

//├────────┤ ├────────┤ ├────────────┤ ├─────────────┤ ├───────────┤

// 10 10 14 15 13

// Линейка измерения длины таблицы

};
char * exheader[] =

{

" Спортивные секции ",

"╔══════════╦══════════╦══════════════╦═══════════════╦═════════════╦══════════╗",

"║ Название ║ ФИО ║ Длительность ║ Стоимость ║ Количество ║ Флаги ║",

"║ секции ║ Тренера ║ Тренировки ║ одного занятия║ Спортсменов ║ ║",

"╠══════════╬══════════╬══════════════╬═══════════════╬═════════════╬══════════╣",

"╚══════════╩══════════╩══════════════╩═══════════════╩═════════════╩══════════╝"

//├────────┤ ├────────┤ ├────────────┤ ├─────────────┤ ├───────────┤ ├─────────┤

// 10 10 14 15 13 10

// Линейка измерения длины таблицы

};

char * FileName="[null]"; //Имя бинарного файла
int counter;

int strid;

char key;
char presskey; //Переменная для работы с меню

char presskey1; //Переменная для работы с субменю 1

char presskey2; //Переменная для работы с субменю 2

char presskey3; //Переменная для работы с субменю 3

char presskey4; //Переменная для работы с субменю 4

char presskey5; //Переменная для работы с субменю 5

char presskey6; //Переменная для работы с субменю 6

char presskey7; //Переменная для работы с субменю 7

char presskey8; //Переменная для работы с субменю 8

char presskey9; //Переменная для работы с субменю 9
//Определение основной структуры

struct stud

{

char s_name[10];

char FN_trainer[10];

int delay_tr;

int cost_ts;

int sprtmen_q;

int id;//Идентификатор структуры (Должен быть хеш из суммы всех

//данных структуры, пока случайное число)

char flags[10]; //системные флаги.

//Пишутся только в бинарный файл, на экране и в текстовый файл

//не выводятся.

}

st;//Основной указатель на структуру - ST
//Переменные для сортировки данных

int z = sizeof(stud);//Определение размера структуры

#endif

SNDMSGS.H

#ifndef SoundMessages

#define SoundMessages

//sndmsgs.c
//Звук ошибки

void ErrSnd()

{

sound(1300);

delay(150);

sound(1000);

delay(130);

nosound();

}
//Высокий сигнал

void HighBeep()

{

sound(3000);

delay(50);

nosound();

}
//Низкий сигнал

void LowBeep()

{

sound(500);

delay(50);

nosound();

}
//Колокольчики Вверх

void ChimesIn()

{

int sndz=50;

sound(sndz);delay(60);sndz+=50;
do{sound(sndz);delay(60);sndz+=100;}while(sndz<500);

sound(sndz);delay(60);sndz+=500;

do{sound(sndz);delay(60);sndz+=1000;}while(sndz<=5000);

nosound();

}

//Колокольчики Вниз

void ChimesOut()

{

int sndz=5000;

sound(sndz);delay(60);sndz-=500;

do{sound(sndz);delay(60);sndz-=1000;}while(sndz>1000);

do{sound(sndz);delay(60);sndz-=100;}while(sndz>100);

sound(sndz);delay(60);sndz-=50;

sound(sndz);delay(60);

nosound();

}
//Звук-шутка :-)

void DeleteSnd()

{

int sndz=5000;

do{sound(sndz);delay(10);sndz-=50;}while(sndz>=1000);

sound(sndz);delay(60);sndz-=500;

do{sound(sndz);delay(60);sndz-=100;}while(sndz>100);

sound(sndz);delay(60);sndz-=50;

sound(sndz);delay(60);

nosound();

}

void Police()

{

int sndz=500;

for(int i=0; i<10; i++)

{

do{sound(sndz);delay(1);sndz+=10;}while(sndz<=2000);

do{sound(sndz);delay(1);sndz-=10;}while(sndz>=500);

}

nosound();

}
void Whistle()

{

int sndz=500;

do{sound(sndz);delay(1);sndz+=10;}while(sndz<=2000);

nosound();

}

#endif

//HELPERFN.H
#ifndef HelperFunctions

#define HelperFunctions
int file_exists(char *filename)

{

return (access(filename, 0) == 0);

}
int CheckFileOpen()

{

if (!strcmp(FileName, ""))

{

pri("Файл не открыт");

getch();

return 1;

}

return 0;

}

long converts(char *str)

{

long a=0;

a=*(int*)str;

return a;

}

#include "filter.c"
#include "pri.c"
#include "pheader.c"
#include "p.c"
#endif

FILTER.C

// Удаление пробелов в начале и в конце строки – параметр void filter_(char *a, int debug=0)

{

int i, j, l=strlen(a);

if (debug) cout << "Применение фильтра: \""<for (i=0; i
if( (a[i]!=' ') && (a[i]!='\t') )

for(j=l-1; j>=1; j--)

if((a[j]!=' ')&&(a[j]!='\t')&&(a[j]!='\n'))

{

for(l=i; l<=j; l++)

a[l-i]=a[l];

a[l-i]='\0';

goto m;

}

a[0] = NULL;

m:

if (debug) cout <<" => \""<
}
//PRI.C

void pri(char *s)

{

prnborder(s,12);

fout << "\n <<<< СБОЙ ПРОГРАММЫ!!!>>>>\n\n";

ErrSnd();

}
//PHEADER.C

void p_header()

{

for(int uri=0; uri<5; uri++)

{

fout << header[uri] << '\n';

cout << header[uri] << '\n';

}

}
void p_header_s()

{

for(int uri=0; uri<5; uri++)

{

cout << header[uri] << '\n';

}

}
void p_exheader()

{

for(int uri=0; uri<5; uri++)

{

cout << exheader[uri] << '\n';

}

}

P.C

void p(int PrFile=1)

{cout << '║' << setiosflags(ios::left)<<

setw(10) << st.s_name << '║' <<

setw(10) << st.FN_trainer << '║' <<

setw(14) << st.delay_tr << "║ " <<

setw(14) << st.cost_ts << "║ " <<

setw(12) << st.sprtmen_q << "║\n";
if (PrFile)

fout << '║' << setiosflags(ios::left)<<

setw(10) << st.s_name << '║' <<

setw(10) << st.FN_trainer << '║' <<

setw(14) << st.delay_tr << "║ " <<

setw(14) << st.cost_ts << "║ " <<

setw(12) << st.sprtmen_q << "║\n";

}

void exp(int PrFile=1)

{

cout << '║' << setiosflags(ios::left)<<

setw(10) << st.s_name << '║' <<

setw(10) << st.FN_trainer << '║' <<

setw(14) << st.delay_tr << "║ " <<

setw(14) << st.cost_ts << "║ " <<

setw(12) << st.sprtmen_q << "║" <<

setw(10) << st.flags << "║\n";
if (PrFile)

fout << '║' << setiosflags(ios::left)<<

setw(10) << st.s_name << '║' <<

setw(10) << st.FN_trainer << '║' <<

setw(14) << st.delay_tr << "║ " <<

setw(14) << st.cost_ts << "║ " <<

setw(12) << st.sprtmen_q << "║" <<

setw(10) << st.flags << "║\n";

}
// READ_FS.C

void read_fs(int PrFile=1)

{

int n=0;

float s=0;

if (PrFile) fout << "\n ЧТЕНИЕ ФАЙЛА\n";

fin.open(FileName, ios::in|ios::binary);

if (!fin)

{ pri("Ошибка открытия бинарного файла для чтения"); exit(0); }
if (PrFile<3)

p_header();

else

p_exheader();

counter=0;

while(fin.peek()!=EOF)

{ counter++;

fin.read((char *) &st, z);

if (strcmp(st.flags, "hidden")!=0)

if (PrFile<3)

p(PrFile);

else

exp(PrFile);

s+=st.sprtmen_q;

n++;

if (counter>=22) {key=getch(); counter=0;}

}

if (PrFile) fout << header[5]<<"\n\nОбщее количество спортсменов: "<
"\nКоличество структур в файле: " << n << endl;

if (PrFile<3) cout << header[5] << "\n\nОбщее количество спортсменов: "<
"\nКоличество структур в файле: " << n << endl;

else

cout << exheader[5] << "\n\nОбщее количество спортсменов: "<
"\nКоличество структур в файле: " << n << endl;

fin.close();

}

//wr_f.c

void wR_f(int dbg=0)

{

char T[80];

while(!fin.eof())

{

fin.getline(st.s_name, 10); filter_(st.s_name, dbg);

fin.getline(st.FN_trainer, 10); filter_(st.FN_trainer, dbg);

fin >> st.delay_tr;

fin >> st.cost_ts;

fin >> st.sprtmen_q;

fin.getline(T, 80);

st.id=rand();

strcpy(st.flags, "none");

io.write((char *) &st, z);

p();

}

fout << header[5]<< endl;

cout << header[5] << '\n';

}
//wr_manua.c

void wR_manual(int dbg=0)

{

if(dbg);

char T[80];

int wantenter=1;

while(wantenter)

{

printf("\nВведите название секции:\n");

cin >> st.s_name;

printf("\nВведите имя тренера\n");

cin >> st.FN_trainer;

printf("\nВведите целое значение длительности тренировки\n");

cin >> st.delay_tr;

printf("\nВведите целое значение стоимости тренировки (USD)\n");

cin >> st.cost_ts;

printf("\nВведите количество спорсменов\n");

cin >> st.sprtmen_q;

st.id=rand();

strcpy(st.flags, "none");

io.write((char *) &st, z);

p();

printf("\nЗапись добавлена!\nНажмите любую клавишу для продолжения или Esc для выхода: ");

presskey4=getch();

if(presskey4==27) wantenter=0;

cout << e << header[4] << '\n';

//p();

}

fout << header[5]<< endl;

cout << header[5] << '\n';

}

//crat.c

void crat(int dbg=0, char *FileName=NULL)

{

struct stud;

fout << "\n Создание файла\n";

if (file_exists("crat.dat"))

{

printf("Прочитать данные из файла CRAT.DAT?");

key=getch();
if((presskey5=='y')||(presskey5=='Y'))

{

printf("Y\n");

fin.open("crat.dat");

if(!fin)

{

pri("Ошибка при открытии файла данных");

exit(0);

}

}

}

else presskey5='N';
NewFileName:
if (FileName==NULL)

{

printf("\n\nПожалуйста, введите имя нового файла: ");

cin >> FileName;

}
if (file_exists(FileName))

{

printf("\nФайл существует, Заменить (Y/N)? ");
FileExistWaring01:

key=getch();

if ((key!='n')&&(key!='N')&&(key!='y')&&(key!='Y'))

{

ErrSnd();

goto FileExistWaring01;

}

if ((key=='n')||(key=='N'))

goto NewFileName;

}
gotoxy(1, wherey());
io.open(FileName, ios::out|ios::binary);

if(!io)

{

pri("Ошибка открытия бинарного файла для его создания");

exit(0);

}
p_header();
if ((presskey5!='y')&&(presskey5!='Y'))

wR_manual(dbg);

else

wR_f(dbg);

fin.close();

io.close();

printf("\n\nФайл успешно создан!\n\n");

}

//DELETE.CPP

void delstruct()

{
//Вывести содержимое структуры на экран и спросить номер удаляемой структуры
//или попросить указать, какую структуру искать,

//чтобы пометить как удаленную

char t[80]; //Массив-буффер

char name[85];

float cost_ts; //Переменная для новой стоимости

fout << "\n\n удадение данных из файла\n\n";

//Открытие файла с данными для поиска и коррекции структур

fin.open("delete.dat", ios::in);

if(!fin)

{

pri("Ошибка открытия файла данных удаления данных");

goto ExitFromDeleting;

}

while(fin.peek()!=EOF)

{

fin >> name;

int k=0;
//Открытие бинарного файла в режиме чтения/записи

io.open(FileName, ios::in|ios::out|ios::binary);

if(!io)

{

pri("Ошибка открытия файла для удаления из него данных");

getch();

break;

}

//Пока читаются данные - цикл поиска структуры

while(io.read((char *)&st, z))

if(!strcmp(st.s_name, name))

{

//Установка Флага "Удалён" на удаляемую структуру

strcpy(st.flags, "deleted");

p();

//Указатель записи в файле перемещается на

//одну структуру назад

io.seekp(-z, ios::cur);

//Запись в файл откорректированной структуры

io.write((char*)&st, z);

k++;

}

if(!k) fout << "[Секция "<< name <<" не найдена!]"<
io.close();

}

fin.close(); io.close();

printf("\n\nВыбранные записи помечены для удаления.\n\n");

read_fs(3);

printf("\n\nНажмите любую клавишу для начала удаления данных...\n\n");

getch();

//Произвести удаление помеченных структур
int deleting;

deleting = open(FileName, O_BINARY | O_RDWR);

if(!deleting)

{

pri("Ошибка открытия файла для удаления данных");

exit(7);

}
register int FSize;

register int DelFlag;
do_delete:

/*

Цикл будет удалять помеченные структуры по одной.

Он будет выполняться до тех пор, пока все помеченные

структуры не будут удалены

*/

DelFlag=0;

FSize=0;

counter=0;

lseek(deleting, 0L, SEEK_SET);

while(read(deleting, (char *)&st, z))

{

FSize+=z;

if((!strcmp(st.flags, "deleted"))||(!strcmp(st.s_name, ""))

||(!strcmp(st.FN_trainer, ""))

||(st.delay_tr==0)

||(st.cost_ts==0)

||(st.sprtmen_q==0))

{

counter++;

FSize-=z;

while(read(deleting, (char *)&st, z))

{

//Копирование следующей структуры на место помеченной структуры

lseek(deleting, -z, SEEK_CUR);

lseek(deleting, -z, SEEK_CUR);

write(deleting, (char*)&st, z);

lseek(deleting, +z, SEEK_CUR);

FSize+=z;

if(!strcmp(st.flags, "deleted")) DelFlag++;

}

break;

}

}

chsize(deleting, FSize);

if (DelFlag) goto do_delete;

if (counter) {prnborder("Удаление данных завершено", 2); DeleteSnd();}

else {prnborder("Ошибка удаления данных", 4); ErrSnd();}
close(deleting);

ExitFromDeleting:

}

//LOGFILE1.C
register char *LogFileName;

strcpy(LogFileName, params[0]);

LogFileName[strlen(LogFileName)-3]='l';

LogFileName[strlen(LogFileName)-2]='o';

LogFileName[strlen(LogFileName)-1]='g';
fout.open(LogFileName);

if (!fout)

{

pri("Ошибка при открытии файла отчета");

getch();

exit(0);

}

int debug=0;
//MITEM001.C

crat(debug, NULL);

delay(500);
//MITEM002.C

CheckFile:
printf("\nПожалуйста, введите имя файла для открытия: ");

cin >> FileName;

if (cin.eof()||cin.fail())

{

cin.clear();

cin.ignore();

}

if (!file_exists(FileName))

{

printf("\n\nФайл не существует. Вы хотите создать новый? (Y/N) ");

presskey2=0;

while((presskey2!='y')&&(presskey2!='Y')&&

(presskey2!='n')&&(presskey!='N'))

{

presskey2=getch();

}
switch(presskey2)

{

case 'Y':case 'y':

crat(0, FileName);

break;

case 'N':case 'n':

goto CheckFile;

}

}

printf("\n\nФайл успешно открыт!");

delay(500);

//MITEM003.C
read_fs(0);

if(!getch()) getch();
//MITEM007.C

delstruct();

read_fs(1);

if(!getch())getch();
//LOGFILE.C

char key;

printf("\nОткрыть файл отчетов? (Y/N)");

ChimesOut();

while((key!='y')&&(key!='Y')&&(key!='n')&&(key!='N')&&(key!=27))

{

key=getch();

if(!key)

key=getch();

}

char TheEdiTor[5];

strcpy(TheEdiTor, "edit ");

if(((key=='y')||(key=='Y'))&&(key!=27))

{

strcat(TheEdiTor, LogFileName);

system(TheEdiTor);

}
  1   2   3   4   5   6   7   8

Похожие:

Федеральное государственное образовательное учреждение высшего профессионального образования «московский государственный технический университет гражданской авиации» iconГосударственное образовательное учреждение высшего профессионального...
...
Федеральное государственное образовательное учреждение высшего профессионального образования «московский государственный технический университет гражданской авиации» icon«Уфимский государственный авиационный технический университет» Телефонный справочник
Федеральное государственное бюджетное образовательное учреждение высшего профессионального образования
Федеральное государственное образовательное учреждение высшего профессионального образования «московский государственный технический университет гражданской авиации» iconКоллективный договор
Работодатель – федеральное государственное бюджетное образовательное учреждение высшего профессионального образования «Уфимский государственный...
Федеральное государственное образовательное учреждение высшего профессионального образования «московский государственный технический университет гражданской авиации» iconКоллективный договор
Работодатель – федеральное государственное бюджетное образовательное учреждение высшего профессионального образования «Уфимский государственный...
Федеральное государственное образовательное учреждение высшего профессионального образования «московский государственный технический университет гражданской авиации» iconГосударственное образовательное учреждение высшего профессионального...
Государственное образовательное учреждение высшего профессионального образования
Федеральное государственное образовательное учреждение высшего профессионального образования «московский государственный технический университет гражданской авиации» iconФедеральное государственное бюджетное образовательное учреждение...
Федеральное государственное бюджетное образовательное учреждение высшего профессионального образования
Федеральное государственное образовательное учреждение высшего профессионального образования «московский государственный технический университет гражданской авиации» iconФедеральное государственное бюджетное образовательное учреждение...
Федеральное государственное бюджетное образовательное учреждение высшего профессионального образования
Федеральное государственное образовательное учреждение высшего профессионального образования «московский государственный технический университет гражданской авиации» iconРоссийской Федерации Федеральное государственное бюджетное образовательное...
Российской Федерации, а также локальными актами федерального государственного бюджетного образовательного учреждения высшего профессионального...
Федеральное государственное образовательное учреждение высшего профессионального образования «московский государственный технический университет гражданской авиации» iconГражданско-правовой договор №
Федеральное государственное бюджетное образовательное учреждение высшего профессионального образования «Московский государственный...
Федеральное государственное образовательное учреждение высшего профессионального образования «московский государственный технический университет гражданской авиации» iconФедеральное государственное бюджетное образовательное учреждение...
Федеральное государственное бюджетное образовательное учреждение высшего профессионального образования
Вы можете разместить ссылку на наш сайт:
Школьные материалы


При копировании материала укажите ссылку © 2013
контакты
litcey.ru
Главная страница