Загрузил lionlik

Лабораторная №6

реклама
Федеральное агентство связи
Ордена Трудового Красного Знамени федеральное государственное
бюджетное
образовательное учреждение высшего образования
«Московский технический университет связи и информатики»
Кафедра информатики
ЛАБОРАТОРНАЯ РАБОТА № 6
по дисциплине “Языки программирования ”
на тему
«Создание приложений Windows Forms для работы с потоковыми
файлам»
Выполнил:
Проверил:
Москва 2020 г.
Оглавление
1. Индивидуальное задание на разработку проект..………………..…………..3
2. Разработка графического интерфейса пользователя приложения……..…3
3. Разработка программного кода приложения…………………………..……3
4. Результаты выполнения приложения..…………………………………..…..7
5. Доказательство правильности результатов……............................................9
2
1. Индивидуальное задание на разработку проект
Создать проект решения следующей задачи:
Строка содержит дату в формате "mm-dd-yyyy", где mm – месяц, dd –
день, yyyy – год. Проверьте корректность задания даты и получите строку
с датой в формате "dd.mm.yy", где yy – две последние цифры года.
2. Разработка графического интерфейса пользователя приложения
Рисунок 1 – Графический интерфейс проекта
3. Разработка программного кода приложения
Программные коды заголовочных файлов
#include "stdafx.h"
using namespace System;
using namespace System::Windows::Forms;
3
using namespace System::IO;
#include <tchar.h>
void FileProc(String^ InFile,String^ OutFile,String^ InBuffer,String^ OutBuffer ,ListBox^
lstInpFile, ListBox^ lstOutFile);
String^ Find(String^ s);
String^ DelSpace(String^ s);
String^ NewString(String^ s);
void Get(ListBox^ lstInpFile,String^ InBuffer);
// stdafx.h: включаемый файл для стандартных системных включаемых файлов
// или включаемых файлов для конкретного проекта, которые часто используются, но
// не часто изменяются
#pragma once
// TODO: Установите здесь ссылки на дополнительные заголовки, требующиеся для программы
#include "find.h"
Программный код файла Find.cp
#include "stdafx.h"
#include <tchar.h>
String^ Find(String^ s)
{
array <TCHAR>^ dlm={' '};
s=NewString(s);
return s;
}
String^ NewString(String^ s)
{
String^ s2;
String^ s3;
String^ s4;
s2=s->Substring(0,2);
s3=s->Substring(3,2);
s4=s->Substring(8,2);
array <String^>^ words={s3,s2,s4};
String ^str=str->Join(".",words ) ;
return str;
}
Программный код файла FilePro.cpp
#include <tchar.h>
#include "stdafx.h"
void FileProc(String^ InFile,String^ OutFile,String^ InBuffer,String^ OutBuffer ,ListBox^
lstInpFile, ListBox^ lstOutFile)
{
StreamReader^ sr = nullptr;
StreamWriter^ sw = nullptr;
try
{
sr = gcnew StreamReader(InFile);
sw = gcnew StreamWriter(OutFile,false);
}
catch(Exception^ ex)
{
4
MessageBox::Show(ex>Message,"Ошибка",MessageBoxButtons::OK,MessageBoxIcon::Error);
if(sr)sr->Close();
if(sw)sw->Close();
return;
}
try
{
while(InBuffer = sr->ReadLine())
{
if(InBuffer->Length==0)
continue;
Get(lstInpFile,InBuffer);
OutBuffer = Find(InBuffer);
sw->WriteLine(OutBuffer);
Get(lstOutFile,OutBuffer);
}
}
catch (Exception^ ex)
{
MessageBox::Show(ex>Message,"Ошибка",MessageBoxButtons::OK,MessageBoxIcon::Error);
}
sr->Close();
sw->Close();
}
Программный код файла Get.cpp
void Get(ListBox^ lstInpFile,String^ InBuffer)
{
lstInpFile->Items->Add(InBuffer);
}
Программный код событийных процедур в файле Form1.h
#pragma endregion
private: System::Void Form1_Load(System::Object^ sender, System::EventArgs^ e)
{
lstInpFile->Items->Clear();
lstOutFile->Items->Clear();
txtInpPath->Clear();
txtOutPath->Clear();
cmdExec->Enabled = false;
}
private: System::Void button1_Click(System::Object^ sender, System::EventArgs^
e)
{
OpenFileDialog^ openFileDialog = gcnew OpenFileDialog;
openFileDialog->Title= "Открытие входного файла";
openFileDialog->InitialDirectory = "d:\\";
openFileDialog->Filter = "Текстовые файлы (*.txt)| *.txt";
openFileDialog->FilterIndex = 1;
openFileDialog->ShowReadOnly = true;
openFileDialog->ReadOnlyChecked = true;
openFileDialog->RestoreDirectory = true;
5
if(openFileDialog->ShowDialog() ==
System::Windows::Forms::DialogResult::OK)
txtInpPath->Text = openFileDialog->FileName;
else
txtInpPath->Text = "";
cmdExec->Enabled = txtInpPath->Text->Length>0 && txtOutPath>Text->Length>0;
}
private: System::Void cmdOpenOutFile_Click(System::Object^ sender, System::EventArgs^
e)
{
SaveFileDialog^ saveFileDialog = gcnew SaveFileDialog;
saveFileDialog->Title= "Открытие выходного файла";
saveFileDialog->Filter = "Текстовые файлы (*.txt)| *.txt";
saveFileDialog->FilterIndex = 1;
saveFileDialog->OverwritePrompt = true;
if(saveFileDialog->ShowDialog() ==
System::Windows::Forms::DialogResult::OK)
txtOutPath->Text = saveFileDialog->FileName;
else
txtOutPath->Text = "";
cmdExec->Enabled = txtInpPath->Text->Length>0 && txtOutPath>Text->Length>0;
}
private: System::Void cmdExec_Click(System::Object^
{
lstInpFile->Items->Clear();
lstOutFile->Items->Clear();
sender, System::EventArgs^
e)
String^ InFile = txtInpPath->Text;
String^ OutFile = txtOutPath->Text;
String^ InBuffer = "";
String^ OutBuffer = "";
FileProc(InFile,OutFile,InBuffer,OutBuffer,lstInpFile,lstOutFile);
}
private: System::Void cmdExit_Click(System::Object^ sender, System::EventArgs^ e)
{
this->Close();
}
};
}
6
4. Результаты выполнения приложения
Рисунок 2 – Окно выбора входного файла
Рисунок 3 – Окно установки пути к выходному файлу
7
Рисунок 4 – Результаты работы приложения
5. Доказательство правильности результатов
Правильность работы приложения подтверждается приведенными выше
результатами его выполнения.
8
Скачать