Разработка приложения 'Передачи данных по сети'
КУРСОВОЙ ПРОЕКТ
Разработка
приложения "Передачи данных по сети"
Содержание
Введение
1. Постановка
задачи
1.1 Описание предметной области
1.2 Актуальность решаемой задачи
1.3 Характеристика решаемой задачи
. Проектирование программного модуля
2.1 Сбор исходных материалов
2.2 Описание входных и выходных данных
2.3 Описание схемы программы
2.4 Выбор программного обеспечения
3. Реализация программного модуля
.1 Описание типов данных
3.2 Описание структуры разрабатываемого проекта
.3 Проектирование и реализация интерфейса программы
3.4 Тестирование программного модуля
.5 Разработка справочной системы
4. Энерго и
ресурсосбережение
Заключение
Список используемых источников
Приложение
Введение
В данное время часто используются компьютеры объединённые в единую
сеть.Чаще всего для передачи данных по сети используются съёмные носители,что
замедляет процесс выполнения каких-либо задач.Эта проблема подталкнула написать
программу передачи данных по сети.Теперь не нужно использовать съёмные
накопители для передачи данных на другие компьютеры в сети,теперь достаточно
установить приложение Network 1.0 и передавать файлы не теряя лишнего времени.
1. Постановка задачи
1.1 Описание предметной области
программный модуль интерфейс справочный
Программа "ПДД" позволяет осуществить обучение Правилам
дорожного движения, а также после изучение материала предоставляется
возможность оценить свои знания и пройти тест . Данная программа служит
электронным учебником по Правилам дорожного движения 2011 года. Программа будет
очень востребована у многих людей, так как Правила необходимы в нашей настоящей
автомобильной жизни.
Подобного рода программы очень актуальны в настоящее время, т.к.
становится все больше пользователей овладеть в полной мере автомобилем.
.2 Актуальность решаемой задачи
В данной программе решаемой задачей является облегчение работы с
компьютерами в сети, рассылки каких-либо файлов на удалённые машины
пользователей.
1.3 Характеристика решаемой задачи
Темой данного проекта является разработка программы Передачи данных по
сети.
Данная программа предназначена для Передачи данных по сети. Программа
актуальна в любой сфере деятельности, где используются компьютеры объеденённые
в сеть.
Реализация данного проекта происходила объектно-ориентированной среде программирования
Delphi 7.
2. Проектирование программного модуля
2.1 Сбор необходимых материалов
Для создания данной программы была изучена различная научная литература
по программированию, а именно "Программирование в Delphi 7" и "Приемы программирования в Delphi 7.0. на основе VCL"
Архангельский А.Я., "Самоучитель Delphi", Дмитрий Кузан и Владимир Шапоров.,"Программирование Win32 API в Delphi".
2.2 Описание входных и выходных данных
Входными данными являются файл выбранный пользователем.
Выходными данными являются принятый файл, справкат.
2.3 Описание схемы программы
Программа представлена в виде формы, на которой находятся кнопки и другие
компоненты Delphi.
Для создания программы были созданы информационные модели. Схемы работы
алгоритмов программы представлены на рисунках 1, 2.
.4 Выбор программного обеспечения
Для реализации поставленной задачи была выбрана среда программирования Delphi, так как она обладает следующими
достоинствами:
- Быстрота разработки приложения.
- Высокая производительность разработанного приложения.
- Hизкие требования разработанного приложения к ресурсам
компьютера.
- Возможность разработки новых компонентов и инструментов
собственными средствами Delphi.
- Удачная проработка иерархии объектов
- Доступно огромное количество визуальных компонентов сторонних
разработчиков
3. Реализация программного модуля
3.1 Описание типов данных
В программе используются следующие типы данных: string, integer,byte, Boolean,.
Тип integer предназначен для хранения целых
чисел в диапазоне от -2 147 483 648… до +2 147 483 647.
Тип string - это строковый тип. При работе с
этим типом память выделяется по мере надобности (динамически) и ограничена
имеющейся в распоряжении программы доступной памятью.
Тип Byte является наименьшей формой целого числа, занимая 8 битов (1
байт) памяти. Он поддерживает только положительные целых числа от 0 до 255.
Переменные типа Boolean которые могут принимать два возможных значения,
иногда называемых правдой (true) и ложью (false). Присутствует в подавляющем
большинстве языков программирования как самостоятельная сущность или
реализуется через численный тип. В подавляющем большинстве языков за истину
полагается единица, за ложь - ноль.
.2 Описание структуры разрабатываемого проекта
Весь проект разработан на объектно-ориентированном языке Delphi7.
Данный проект состоит из файлов:
Сервер:(1),
Unit (1).dfm, Unit (1).dcu, Unit (1).pas., Unit (1).ddp, project1.cfg,
project1.dof, project1.dpr, project1.res, NewProject.chm.
Клиент:
Unit(1), Unit (1).dfm, Unit (1).dcu, Unit (1).pas., Unit (1).ddp, project1.cfg,
project1.dof, project1.dpr, project1.res, NewProject.chm.
Программа хранится на CD-R диске в папке "Курсовой проект
Лазаренко". В ней находится файл Network_Server 1.0 и Network_Client 1.0. После установки данного файла запускаем
программу через Exe-файл.
Весь программный код представлен в приложении.
.3 Проектирование и реализация интерфейса программы
При разработки данного проекта были использованы различные компоненты Delphi7.
2. Label - этот компонент представляет собой метку, специально предназначенную
для отображения текста.
. Image - этот компонент позволяет отображать информацию,
содержащуюся в графических файлах различных типов.
4. Button - это компонент нажатия, проще сказать кнопка, позволяет при
нажатии
выполнить необходимую функцию.
5. Open Dialog - это
компонент для обзора файлов.
6. Xpman - компонент для придания кнопкам более красивой формы.
7. ServerSocket - компонент для создания многопотокового сервера
8. ClientSocket - компонент для приёма потоков сервера
9. ProgressBar - Его назначение -показать пользователю, что приложение
работает, а не зависло.
10. StatusBar - компонент добавляет значок в строке состояния системы и
уведомление в окно уведомления.
3.4 Тестирование программного модуля
Тестирование проводилось с целью проверки работоспособности программы.
Тестирование программы проводилось на ПК со следующими характеристиками:
· процессор AMD Athlon 2 x2 processor P340 (2.2 GHz);
· оперативная память 2,00 ГБ;
· винчестер 320 Гб;
· видеокарта ATI Mobility Radeon HD 5470 512MBVRAM;
· мышь;
· клавиатура;
· 15,6" HD LED LCD;
· DVD - ROM;
Программа корректно работает на операционных системах семейства Windows.
.5 Разработка справочной системы
Разработка справочной системы производилась с помощью программы Help and Manual. Это позволило создать справочную систему по данной
программе, которая включает все интересующие пользователя вопросы по данной
программе, а также создана инструкция по использованию данного приложения.
4. Энерго и ресурсосбережения
n = /(8-tрп),(1)
где - время работы компьютера, ч;
Тпк =118 ч.;
tрп - суммарное время регламентированных
перерывов, в течение
рабочего дня, ч;
tрп
= 60 мин = 1 час.
Для нахождения суммарной продолжительности регламентированных перерывов в
течение всего времени разработки программного модуля
,(2)
где - суммарная продолжительность регламентированных перерывов в
течение всего времени разработки программного модуля.
ч.
Экономия электроэнергии рассчитывается по формуле
,(3)
где - потребляемая мощность ПК, кВт;
= 0,24
кВт;
- потребляемая мощность компьютера в ждущем режиме;
= 0,07 кВт.
руб.
Использование мер по энерго- и ресурсосбережению, при разработке
программного модуля, позволило сэкономить денежные средства в размере 560
рублей.
Заключение
В результате выполнения данной работы был воплощен в жизнь проект по
созданию программы "Передачи данных по сети".
В возможности данного программного средства входит передача данных в
сети, а так же открытие переданного файла. Данный проект был разработан на
таком объектно-ориентированном языке программирования Delphi, что позволяет
программе обеспечить высокую скорость, а так же качество создаваемой программы,
что в настоящие время имеет большое значение.
Данная программа ориентирована для внедрения в школьные учебные
заведения, а также в ССУЗЫ и ВУЗЫ и предприятия где необходима пересылка данных
по сети. Данная программа значительно снизит затраты времени на передачу файлов
между компьютерами.
Список используемых источников
1. Архангельский А.Я. Программирование Delphi7/.- М.: ООО Бином - пресс, 2003 г.-
1152с.: ил.
. Архангельский А.Я. Программирование в Delphi для
Windows. Версии 2006, 2007, Turbo Delphi/, - М.: ООО
"Бином-Пресс", 2010 г.
- 1248 с.: ил.
. Фаронов В.В. Delphi 7.0 - программирование на языке высокого уровня/:
Учебник для вузов - СПб.: Питер, 2006 г. - 640с.: ил.
. Бобровский С.И. Delphi 7. Учебный курс/. 200 4г.-
736 с.: ил.
. Антоненко С.К. Правила дорожного движения, 2011 год.
Приложение
Серверная часть программы:
uses, Messages, SysUtils, Variants, Classes, Graphics,
Controls, Forms,, ScktComp, StdCtrls, ComCtrls, XPMan, jpeg, ExtCtrls,
Menus,ShellAPI;= class(TForm): TButton;: TButton;: TStatusBar;: TEdit;:
TServerSocket;: TOpenDialog;: TProgressBar;: TXPManifest;: TImage;: TMainMenu;:
TMenuItem;Button1Click(Sender: TObject);Button2Click(Sender:
TObject);ServerSocket1ClientRead(Sender: TObject;:
TCustomWinSocket);FormCreate(Sender: TObject);FormDestroy(Sender:
TObject);ServerSocket1ClientConnect(Sender: TObject;:
TCustomWinSocket);ServerSocket1ClientDisconnect(Sender: TObject;:
TCustomWinSocket);N1Click(Sender: TObject);
{ Private declarations }
{ Public declarations };: TForm1;: TMemoryStream;
{$R *.dfm}TForm1.Button1Click(Sender:
TObject);.Execute;.Text:=OpenDialog1.FileName;;TForm1.Button2Click(Sender:
TObject);: integer;: ^Byte;:= TMemoryStream.Create; // Создание буфер для файла.LoadFromFile(Edit1.Text);
// Загружаем файл в буфер
// Посылаем информацию о файле (команда # название # размер)
ServerSocket1.Socket.Connections[0].SendText('file#'+Edit1.Text+'#'+IntToStr(MS.Size)+'#');
MS.Position := 0; // Переводим каретку в начало файла:= MS.Memory; //
Загружаем в переменную "P" файл:=ServerSocket1.Socket.Connections[0].SendBuf(P^, MS.Size);
// Посылаем файл
// Выводим прогресс.Position := Size*100 div MS.Size;.SimpleText := 'Отправлено '+IntToStr(Size)+' из '+IntToStr(MS.Size)+' байт';TForm1.ServerSocket1ClientRead(Sender:
TObject;: TCustomWinSocket);Socket.ReceiveText = 'end' then // Если клиент принял файл, то....SimpleText := 'Клиент принял файл';
MS.Free; // Убиваем буфер;
end;TForm1.FormCreate(Sender: TObject);.Open;// открытие сокета;TForm1.FormDestroy(Sender: TObject);.Close; // закрытие сокета;TForm1.ServerSocket1ClientConnect(Sender: TObject;:
TCustomWinSocket);.SimpleText := 'Соединение установлено';
end;TForm1.ServerSocket1ClientDisconnect(Sender:
TObject;: TCustomWinSocket);.SimpleText := 'Соединение не установлено';;TForm1.N1Click(Sender: TObject);(0, nil,
PChar('NewProject.chm'), nil, nil, SW_SHOWNORMAL);
end;
end.
Клиентская часть программы:
{ Private declarations }: string; // имя файла: integer; //
размер: boolean; // режим клиента: TMemoryStream; // бурер
{ Public declarations };: TForm1;
{$R *.dfm}TForm1.Writing(Text: string);msg:integer;MS.Size
< Size then // если принято меньше размера файла то выполняем.Write(Text[1],
Length(Text)); // запись в буфер
// прогресс передачи файла.Position := MS.Size*100 div
Size;.SimpleText := 'принято '+IntToStr(MS.Size)+' из '+IntToStr(Size); MS.Size = Size then // если файл принят то выполняем
begin
Receive
:= false; // переход клиента в норм режим
MS.Position := 0; // перевод каретки в начало
буфера
MS.SaveToFile('D:/Network/'+ExtractFileName(Name));//
сохраняем файл.Socket.SendText('end'); // файл принят.Free; // уничтожение
буфера.SimpleText := 'файл принят';:=MessageDlg('Открыть загруженный
файл?',mtCustom,[mbYes,mbNo], 0);msg = mrYes then(0,'open',PChar(Name),'','',SW_SHOW);;;TForm1.FormCreate(Sender:
TObject);IP:String;('Network','Введите IP адрес',IP);.Address:=IP; //IP.Open;
// Открываем сокетcreatedir('D:\Network') = true then('папка создана')
showmessage('при создании папки возникли ошибки');
Receive
:= false; // Режим клиента - приём команд
end;TForm1.FormDestroy(Sender: TObject);.Close; // Закрываем
сокет;TForm1.ClientSocket1Connect(Sender: TObject;:
TCustomWinSocket);.SimpleText := 'Соединение
установлено';;TForm1.ClientSocket1Disconnect(Sender: TObject;:
TCustomWinSocket);.SimpleText := 'Соединение не
установлено';;TForm1.ClientSocket1Read(Sender: TObject;: TCustomWinSocket);:
string; // принятый текст:= Socket.ReceiveText;Receive then // если клиен в
режиме приёма файла то(RText) // запись в буфер
else
// если клиен не в режиме приёма файла то
beginCopy(Rtext, 0, Pos('#', Rtext) -1) = 'file' then // если
это файл то:= TMemoryStream.Create; // создание буфера(Rtext, 1, Pos('#',
Rtext)); // определение имя:= Copy(Rtext, 0, Pos('#', Rtext) -1); //
определение имя(Rtext, 1, Pos('#', Rtext));
// определение размер
Size := StrToInt(Copy(Rtext, 0, Pos('#', Rtext) -1));// вывод
размера(Rtext, 1, Pos('#', Rtext));
// удаление разделителя
Label1.Caption := 'размер файла: '+IntToStr(Size)+' байт';.Caption
:= 'имя файла: '+Name;:= true; // режим приёма файла(RText); // запись в
буфер;;;TForm1.N1Click(Sender: TObject);(0, nil, PChar('NewProject.chm'), nil,
nil, SW_SHOWNORMAL);;.