Главная Случайная страница


Полезное:

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


Категории:

АрхитектураАстрономияБиологияГеографияГеологияИнформатикаИскусствоИсторияКулинарияКультураМаркетингМатематикаМедицинаМенеджментОхрана трудаПравоПроизводствоПсихологияРелигияСоциологияСпортТехникаФизикаФилософияХимияЭкологияЭкономикаЭлектроника






Реализация методов класса Directory





Реализация методов класса определена в файле “clas2.cpp”. К нему подключается файл, содержащий сам класс “clas.cpp”,в котором описываются методы и функции класса Directory. Рассмотрим некоторые из них:

void Directory::vivod(){

system("cls");

cout << "Операция вывода каталога: " << name_kot << endl;

cout << "_____________________________________________________________";

for (int i = 0; i < kol_file; i++){

cout << "Имя файла: " << '\t' << '\t' << "| " << KATALOG[i].name << endl;

cout << "Расширение: " << '\t' << '\t' << "| " << KATALOG[i].tip << endl;

cout << "Дата и время создания: " << '\t' << "| " << KATALOG[i].data_sozd[0] << "." << KATALOG[i].data_sozd[1] << "." << KATALOG[i].data_sozd[2] << " " << KATALOG[i].data_sozd[3] << ":" <<

 

KATALOG[i].data_sozd[4] << ":" << KATALOG[i].data_sozd[5] << endl;

Изм.
Лист
№ докум.
Подпись
Дата
Лист
 
МГТУ МИРЭА.09.03.01.6ПЗ  
cout << "Дата и время изменения: " << "| " << KATALOG[i].data_izm << endl;

cout << "Атрибут «только чтение»:" << "| " << KATALOG[i].atr_read << endl;

cout << "Атрибут «скрытый»: " << '\t' << "| " << KATALOG[i].atr_skr << endl;

cout << "Атрибут «системный»: " << '\t' << "| " << KATALOG[i].atr_sys << endl;

cout << "Размер файла: " << '\t' << '\t' << "| " << KATALOG[i].razmer << endl;

cout << "____________________________________________________________";

}

cout << "Колличество файлов: " << kol_file << " | Общий размер каталога: " << size_katalog << " байт" << endl;

cout << "____________________________________________________________";

system("pause");

}

 

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

void Directory::peresechenie(Directory peresech){

USES_CONVERSION;

int kol_f;

string Put, BUFF, Put2;

Put2 = peresech.put_katalog + "\\Пересечение с " + name_kot;

LPCWSTR a1 = A2W((Put2 + "\\*.*").c_str());

WIN32_FIND_DATA FindFileData1;

HANDLE hf1;

hf1 = FindFirstFile(a1, &FindFileData1);

if (hf1!= INVALID_HANDLE_VALUE){

do{

if ((FindFileData1.cFileName[0])!= '.'){

BUFF = W2A(FindFileData1.cFileName);

remove((Put2 + "\\" + BUFF).c_str());

}

 

Изм.
Лист
№ докум.
Подпись
Дата
Лист
 
МГТУ МИРЭА.09.03.01.6ПЗ  
} while (FindNextFile(hf1, &FindFileData1)!= 0);

FindClose(hf1);

}

CreateDirectory(A2W(Put2.c_str()), NULL);

Put = put_katalog + "\\Пересечение с " + peresech.name_kot;

LPCWSTR a = A2W((Put + "\\*.*").c_str());

WIN32_FIND_DATA FindFileData;

HANDLE hf;

hf = FindFirstFile(a, &FindFileData);

if (hf!= INVALID_HANDLE_VALUE){

do{

if ((FindFileData.cFileName[0])!= '.'){

BUFF = W2A(FindFileData.cFileName);

remove((Put + "\\" + BUFF).c_str());

}

 

} while (FindNextFile(hf, &FindFileData)!= 0);

FindClose(hf);

 

}

CreateDirectory(A2W(Put.c_str()), NULL);

kol_f = 0;

for (int i = 0; i < kol_file; i++){

for (int j = 0; j < peresech.kol_file; j++){

if ((KATALOG[i].name == peresech.KATALOG[j].name) && (KATALOG[i].tip == peresech.KATALOG[j].tip)){

CopyFile(A2W((put_katalog + "\\" + KATALOG[i].name + "." + KATALOG[i].tip).c_str()), A2W((Put + "\\" + KATALOG[i].name + "." + KATALOG[i].tip).c_str()), true);

CopyFile(A2W((put_katalog + "\\" + KATALOG[i].name + "." + KATALOG[i].tip).c_str()), A2W((Put2 + "\\" + KATALOG[i].name + "." + KATALOG[i].tip).c_str()), true);


cout << "Имя файла: " << '\t' << '\t' << "| " << KATALOG[i].name << endl;

cout << "Расширение: " << '\t' << '\t' << "| " << KATALOG[i].tip << endl;

cout << "Дата и время создания: " << '\t' << "| " << KATALOG[i].data_sozd[0] << "." << KATALOG[i].data_sozd[1] << "." << KATALOG[i].data_sozd[2] << " " << KATALOG[i].data_sozd[3] << ":" << KATALOG[i].data_sozd[4] << ":" << KATALOG[i].data_sozd[5] << endl;

cout << "Дата и время изменения: " << "| " << KATALOG[i].data_izm << endl;

cout << "Атрибут «только чтение»:" << "| " << KATALOG[i].atr_read << endl;

cout << "Атрибут «скрытый»: " << '\t' << "| " << KATALOG[i].atr_skr << endl;

cout << "Атрибут «системный»: " << '\t' << "| " << KATALOG[i].atr_sys << endl;

cout << "Размер файла: " << '\t' << '\t' << "| " << KATALOG[i].razmer << endl;

cout << "____________________________________________________";

kol_f++;

}

}

}

cout << "Колличество файлов: " << kol_f << endl;

cout << "____________________________________________________________";

system("pause");

}

 

Изм.
Лист
№ докум.
Подпись
Дата
Лист
 
МГТУ МИРЭА.09.03.01.6ПЗ  
В данном методе реализован процесс выполнения операции пересечения. Для начала, из главной программы выбираются 2 каталога, после чего у каталога под номером один вызывается метод пересечения в который отправляется каталог под номером два. В процессе выполнения метода пересечения в каталогах создаются подкаталоги, в которые будут добавлены файлы по результатам выполнения метода.


 

заключение

Изм.
Лист
№ докум.
Подпись
Дата
Лист
 
МГТУ МИРЭА.09.03.01.6ПЗ  
В процессе реализации были выполнены следующие задачи:

- изучен процесс реализации классов на языке программирования C++. В

- изучен материал Win-Api для работы с файлами и каталогами.

- Усвоен принципы работы библиотек необходимых для выполнения задания.

- Осуществлён комфортный и легкий в освоении интерфейс.

Таким образом все поставленные задачи были выполнены, а цель достигнута


Изм.
Лист
№ докум.
Подпись
Дата
Лист
 
МГТУ МИРЭА.09.03.01.6ПЗ  
Список используемой литературы

 

1. Основы объектно-ориентированного программирования [Электронный ресурс]. – Режим доступа: http://help.adobe.com/ru_RU/ActionScript/3.0_ProgrammingAS3/WS5b3ccc516d4fbf351e63e3d118a9b90204-7f35.html. – Заглавие с экрана. – (Дата обращения: 22.05.2015г.).

2. Объектно-ориентированное программирование – Википедия [Электронный ресурс]. – Режим доступа: https://ru.wikipedia.org/wiki/Объектно-ориентированное_программирование#. – (Дата обращения: 22.05.2015г.).


3. Павловская, Т.А. С/C++ Программирование на языке высокого уровня / Т.А. Павловская. – СПб.: Питер, 2003. – 461с.: ил.

4. Лафоре, Р. Объектно-ориентированное программирование в С++ / О. Лафоре. – 4-е изд. – СПб.: Питер, 2004. – 923с.







Date: 2016-05-23; view: 343; Нарушение авторских прав



mydocx.ru - 2015-2024 year. (0.013 sec.) Все материалы представленные на сайте исключительно с целью ознакомления читателями и не преследуют коммерческих целей или нарушение авторских прав - Пожаловаться на публикацию