Программирование сетевых приложений

  • Вид работы:
    Контрольная работа
  • Предмет:
    Информационное обеспечение, программирование
  • Язык:
    Русский
    ,
    Формат файла:
    MS Word
    671,69 Кб
  • Опубликовано:
    2016-11-13
Вы можете узнать стоимость помощи в написании студенческой работы.
Помощь в написании работы, которую точно примут!

Программирование сетевых приложений

Министерство образования Республики Беларусь

Учреждение образования

"БЕЛОРУССКИЙ ГОСУДАРСТВЕННЫЙ УНИВЕРСИТЕТ

ИНФОРМАТИКИ И РАДИОЭЛЕКТРОНИКИ"

Институт Информационных технологий

Специальность "Информационные системы и технологии (в экономике)"

КОНТРОЛЬНАЯ РАБОТА

(контролируемая самостоятельная управляемая преподавателем

работа студента)

Программирование сетевых приложений

Выполнила:

Студентка-заочница 3 курса

Колтунова Татьяна Сергеевна

Проверил: Сторожев Д.А.





Минск, 2016

Содержание

 

Постановка задачи

Задание 1

Задание 2

Задание 3

Заключение

Список использованных источников

Постановка задачи

В предложенной контрольной работе необходимо выполнить четыре практических задания:

Задание 1.

Разработать сайт аэропорта. К разработанному сайту составить диаграммы UML: вариантов использования, состояний, последовательности. Сайт должен содержать модуль JavaScript, позволяющий осуществлять фильтрацию записей в заданном направлении полета.

Задание 2.

Разработать GUI-приложение с организацией взаимодействия с БД для моделирования конкурентоспособности предприятия.

Задание 3.

Разработать апплет, реализующий изображение летящего самолета.

Задание 4.

Разработать приложение на основе JSP/Servlets с базой данных по учету продаж телевизоров в магазине техники.

 

Задание 1


Разработать сайт аэропорта. К разработанному сайту составить диаграммы UML: вариантов использования, состояний, последовательности. Сайт должен содержать модуль JavaScript, позволяющий осуществлять фильтрацию записей в заданном направлении полета.

1.1    Описание сайта

-       Индексная страница (default.html) содержит 5 фреймов;

-       в одном из фреймов находится модуль навигации (menu.html) по сайту (меню содержит 5 опций);

-       информация о рейсах храниться в tickets. xml и визуализируется с помощью tickets. xsl на странице "Расписание рейсов"

-       сайт создавался с применением таблиц стилей

-       в верхней части сайта расположен анимированный логотип

-       на сайте можно осуществлять поиск рейсов по 4 критериям (JavaScript)

Рисунок 1 - Главная страница (Internet Explorer 10)

Рисунок 2 - Новости

Рисунок 3 - Поиск рейса

Рисунок 4 - Контактная информация

1.2    Модели UML


сайт аэропорт диаграмма самолет

Рисунок 5 - Диаграмма вариантов использования (Use Case)

Рисунок 6 - Диаграмма состояний (State machine diagram)

Рисунок 7 - Диаграмма последовательностей действий (Sequence diagram)

Файл tickets. xml

<? xml version="1.0" encoding="WINDOWS-1251"? >

<? xml-stylesheet type='text/xsl' href='tickets. xsl'? >

<tickets>

<ticket>

<flight>SU315</flight>

<date>12.12.2015</date>

<from>Москва</from>

<to>Минск</to>

<tarif>Эконом</tarif>

</ticket>

<ticket>

<flight>D463</flight>

<date>11.12.2015</date>

<from>Париж</from>

<tarif>Эконом</tarif>

</ticket>

<ticket>

<flight>K342</flight>

<date>30.12.2015</date>

<from>Санкт-Петербург</from>

<to>Москва</to>

<tarif>Эконом</tarif>

</ticket>

<ticket>

<flight>K342</flight>

<date>24.12.2015</date>

<from>Санкт-Петербург</from>

<to>Москва</to>

<tarif>Эконом</tarif>

</ticket>

<ticket>

<flight>K342</flight>

<date>30.12.2015</date>

<from>Санкт-Петербург</from>

<to>Москва</to>

<tarif>Эконом</tarif>

</ticket>

<ticket>

<flight>K342</flight>

<date>31.12.2015</date>

<from>Санкт-Петербург</from>

<to>Москва</to>

<tarif>Бизнес</tarif>

</ticket>

<ticket>

<flight>SU54</flight>

<date>11.05.2016</date>

<from>Лондон</from>

<to>Франкфурт</to>

<tarif>Эконом</tarif>

</ticket>

<ticket>

<flight>KR56</flight>

<date>19.12.2015</date>

<from>Санкт-Петербург</from>

<to>Симферополь</to>

<tarif>Эконом</tarif>

</ticket>

<ticket>

<flight>DF34</flight>

<date>18.01.2016</date>

<from>Пекин</from>

<to>Анталия</to>

<tarif>Эконом</tarif>

</ticket>

<ticket>

<flight>QD32</flight>

<date>17.01.2016</date>

<from>Стамбул</from>

<to>Москва</to>

<tarif>Эконом</tarif>

</ticket>

<ticket>

<flight>FD54</flight>

<date>31.01.2016</date>

<from>Санкт-Петербург</from>

<to>Милан</to>

<tarif>Эконом</tarif>

</ticket>

<ticket>

<flight>DF34</flight>

<date>16.01.2016</date>

<from>Москва</from>

<to>Минск</to>

</ticket>

<ticket>

<flight>WE543</flight>

<date>23.02.2016</date>

<from>Париж</from>

<to>Нью-Йорк</to>

<tarif>Эконом</tarif>

</ticket>

<ticket>

<flight>FD34</flight>

<date>11.05.2016</date>

<from>Санкт-Петербург</from>

<to>Милан</to>

<tarif>Эконом</tarif>

</ticket>

<ticket>

<flight>DF75</flight>

<date>18.03.2016</date>

<from>Санкт-Петербург</from>

<to>Милан</to>

<tarif>Бизнес</tarif>

</ticket>

</tickets>

Файл tickets. xsl

<? xml version="1.0" encoding="WINDOWS-1251"? >

<xsl: stylesheet version="1.0" xmlns: xsl="#"896746.files/image008.gif">

где Q - значение отдельного (обобщенного или главного) показателя качества оцениваемого изделия в соответствующих единицах измерения; Qб - значение аналогичного показателя качества эталонного (базового) изделия в тех же единицах измерения.

К показателям качества продукции относятся следующие группы показателей:

назначения;

надежности (безотказности, долговечности, ремонтопригодности, сохраняемости);

экологичности;

эргономичности;

технологичности;

эстетичности;

стандартизации и унификации;

патентно-правовые;

безопасности применения;

сертификационные.

Качество продукции непосредственно связано с его потребительной стоимостью и прямо определяет границы и уровень удовлетворения потребности, для реализации которой она приобретается. Качество продукции является фундаментом механизма конкурентоспособности продукции предприятия, причем относительно низкое качество не означает низкой конкурентоспособности. Более того, высокое качество - тоже не синоним конкурентоспособности. Пример: автомобильная компания "Донинвест", г. Ростов-на-Дону. Свое развитие эта компания начала с производства по лицензии "ДЭУ Моторс" (Южная Корея) легковых автомобилей "ДЭУ Эсперо".

Поскольку эти машины характеризовались лучшим соотношением цена-качество по сравнению с отечественными аналогами, а по отношению к японским и немецким аналогам были более дешевыми (имеется в виду рынок новых автомобилей), продукция предприятия достаточно быстро отвоевала необходимую долю рынка, подтвердив свою конкурентоспособность. За 10 000 долл. потребителям предлагалась модель автомобиля с двигателем 2 л, электростеклоподъемниками, высокими скоростными возможностями (разгон до 100 км/ч - 10 с), современного дизайна и более высокого по сравнению с отечественными автомобилями уровня сборки. От зарубежных аналогов ее выгодно отличала цена - конкуренты оценивали машины аналогичного класса в 16-25 тыс. долл.

Однако в дальнейшем в конкурентной стратегии предприятия был допущен стратегический просчет. Посчитав, что платежеспособный спрос потребителей новых автомобилей серьезно вырос, "Донинвест" выпустил на рынок серию новых моделей, среди которых линию "ДЭУ Эсперо" продолжил "Донинвест Кондор". Этот автомобиль представляет собой пример машины европейского уровня, однако и его цена (18 000 долл.) также является европейской.

Вместо развития своего сегмента рынка новых автомобилей, переходного от отечественных автомобилей класса ВАЗ 2109-2110 к гораздо более качественным, но и дорогим иномаркам, "Донинвест" предпринял решительную попытку штурма именно сегмента относительно дорогих автомобилей, оставив без внимания такие факторы, как ограниченный платежеспособный спрос (который колебался на уровне 5-7 тыс. долл. за новый автомобиль), накопленный потенциал в области качества и маркетинга у конкурентов, наконец, предпочтения потребителей. В результате предприятие не смогло выйти на экономически эффективный уровень использования производственной мощности, что стало следствием недостаточной конкурентоспособности его продукции (при относительно высоком качестве).

Поэтому в настоящее время выпуск "ДЭУ Эсперо" ростовской сборки возобновлен, а производство "Донинвест Кондор" сворачивается. Другой пример: ГАЗ 3105 - автомобиль-лимузин высочайшего качества по цене 75 тыс. долл., выпускавшийся в 1995-1997 гг. в Нижнем Новгороде. Этот автомобиль потребителями воспринимался как экзотика. И хотя по качеству и цене он ничуть не отставал от конкурентов ("Мерседес" или "БМВ"), психология потребителей протестовала против покупки за такие деньги отечественного автомобиля. Производители не учли, что в высшей ценовой группе ценятся уже не столько качество автомобиля, сколько его престиж, который невозможно завоевать одной, по сути случайной, моделью. В результате ГАЗ 3105 остался раритетом, образцом высокого качества, которому место только в музее.

Ниже представлена схема данных и скриншоты разработанного приложения.




Файл ServerWork. javanet;db. DatabaseConnector;db. SQLExecute;logic. *;java. io. IOException;java. io. ObjectInputStream;java. io. ObjectOutputStream;java.net. ServerSocket;java.net. Socket;java. util. Date;class ServerWork extends Thread {ServerWork (String name, Socket socketAccepted, int newPort) {(name);{clientMessageSenderStream = new ObjectOutputStream (socketAccepted. getOutputStream ());. writeInt (newPort);. close ();. close ();

{newServerSocket = new ServerSocket (newPort);= newServerSocket. accept ();

}

} catch (Exception e) {. printStackTrace ();

}

}void setDatabaseConnector (DatabaseConnector databaseConnector) {. initSQLFormer (databaseConnector. getDatabaseConnection ());

}Socket getSocket () {socketNew;

}void run () {{= new ObjectOutputStream (socketNew. getOutputStream ());= new ObjectInputStream (socketNew. getInputStream ());command;{{= (String) clientReader. readObject ();. out. println (. getInetAddress (). getHostName () +

" ["+socketNew. getInetAddress (). getHostAddress () +

"] "+getCurrentTime () +" - command: "+);(command);

} catch (IOException cnfex) {= "exit";

}

} while (! command. equals ("exit"));. close ();. close ();. close ();

} catch (Exception e) {. err. println (getName () +" - "+e. getMessage ());. printStackTrace ();

}

}void chooseAction (String command) throws IOException, ClassNotFoundException {(command. equals (NetCommands. DISCONNECT_FROM_SERVER)) { doExit (); }logic = (Logic) clientReader. readObject ();number = logic. getNumberOfSelectedFields ();= logic. instanceFromRecordsValues ( (String []) clientReader. readObject (), number);. setNumberOfSelectedFields (number);(command. endsWith (NetCommands. SELECT_ALL_RECORDS)) {. setSqlOrder (clientReader. readObject (). toString ());. writeObject (SQLExecute. selectAll (logic));

} else(command. endsWith (NetCommands. SELECT_RECORD)) {. writeObject (SQLExecute. selectRecord (logic));

} else(command. endsWith (NetCommands. DELETE_CURRENT_RECORD)) {. deleteRecord (logic);

} else(command. endsWith (NetCommands. UPDATE_CURRENT_RECORD)) {. updateRecord (logic);

} else(command. endsWith (NetCommands. ADD_NEW_RECORD)) {. addRecord (logic);

}

}void doExit () {{. close ();. close ();. close ();

} catch (IOException e) {. printStackTrace ();

}Socket socketNew;ObjectOutputStream clientSender;ObjectInputStream clientReader;static String getCurrentTime () {currentTime = new Date ();hours = currentTime. getHours ();minutes = currentTime. getMinutes ();seconds = currentTime. getSeconds ();hours+": "+ (minutes<10?"0"+minutes: minutes) +": "+ (seconds<10?"0"+seconds: seconds);

}

}

 

Задание 3


Разработать апплет, реализующий изображение летящего самолета.

На рисунке ниже представлена реализация апплета. Далее приведен его исходный код.


<HTML>

<HEAD>

<TITLE>Flying plain</TITLE>

</HEAD>

<BODY>

<hr>

<applet code="FlyingPlain. class" height=144>

</applet>

</BODY>

</HTML>java. awt. *;java.net. URLClassLoader;java.net. URL;java. applet. Applet;class FlyingPlain extends Applet implements Runnable {volatile Thread flyerThread;static Image pimg, cimg;FlyingPlain () throws HeadlessException {= getImage ("clouds. jpg");= getImage ("plain. gif");

}Image getImage (String name) {getImage (name, this);

}Image getImage (String name, Component cmp) {img = null;urlLoader =

(URLClassLoader) cmp. getClass (). getClassLoader ();fileLoc = urlLoader. findResource ("img/" + name);= cmp. getToolkit (). createImage (fileLoc);tracker = new MediaTracker (cmp);. addImage (img, 0);{. waitForID (0);(tracker. isErrorAny ()) {. out. println ("Error loading image " + name);

}

} catch (Exception ex) { ex. printStackTrace (); }img;

}void paint (Graphics g) {. drawImage (cimg, 0, 0, null);. drawImage (pimg, plainX, plainY, null);

}void start () {= new Thread (this);. start ();

}void stop () {= null;

}plainX = 0;plainY = 0;plainXPlus = true;plainYPlus = true;void resetPlainCoordinate () {d = getSize ();widthDiv = 5;heightDiv = 5;width = (int) d. getWidth ();height = (int) d. getHeight ();( (plainX+widthDiv) >width) {= - 130;

}(plainYPlus && (plainY+heightDiv+49) >height) {= false;

}(! plainYPlus && (plainY-heightDiv) <0) {= true;

}+=widthDiv;(plainYPlus)+= 5;- = 5;

}void run () {me = Thread. currentThread ();(flyerThread == me) {{. currentThread (). sleep (100);();

} catch (InterruptedException e) {

}();

}

}

}

 

Задание 4

Разработать приложение на основе JSP/Servlets с базой данных по учету продаж телевизоров в магазине техники.

Код сервлета (procedure. java):javax. servlet. http. *; // стандартные функции сервлета

import javax. servlet. http. HttpServletRequest; // работа с пришедшим запросом

import javax. servlet. http. HttpServletResponse; // работа с ответом для клиента

import javax. servlet. http. HttpSession; // работа с сессией

import javax. servlet. ServletException; // исключительные ситуации

import java. sql. *; // работа с sql

import java. io. IOException; // ошибки ввода вывода

import java. io. PrintWriter; // печать в потокclass procedure extends HttpServlet {void init () throws ServletException {. init ();

// установка соединения с БД

String url = "jdbc: odbc: tv"; // ссылка на драйвер базы данных

try{. forName ("sun. jdbc. odbc. JdbcOdbcDriver");

}catch (Exception e) {. out. println ("Classdefnotfound"+e);

}{= DriverManager. getConnection (url);= conn. createStatement (ResultSet. TYPE_SCROLL_INSENSITIVE, ResultSet. CONCUR_UPDATABLE);

}catch (Exception e) { e. printStackTrace (); }

}void doPost (HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {action = Integer. parseInt (request. getParameter ("action"));

// анализируется код операции

switch (action) {

case LOGIN_ACTION: logon (request, response); break;ADD_ACTION: add (request, response); break;EDIT_ACTION: edit (request, response); break;DELETE_ACTION: delete (request, response); break;

}

}void logon (HttpServletRequest request, HttpServletResponse response) {{session = request. getSession ();. setAttribute ("statement", sq);. sendRedirect ("manager. jsp");

} catch (Exception e) { e. printStackTrace (); }

}void add (HttpServletRequest request, HttpServletResponse response) {model = request. getParameter ("model");data_prodazhi = request. getParameter ("data_prodazhi");price = request. getParameter ("price");( (model! = null) && (data_prodazhi! = null) && (price! = null))

{ // Проверяем корректность пришедших данных, если все ок, формируем запрос к базе на добавление

String query = "INSERT INTO tvshop (model, data_prodazhi, price) VALUES ('" + model +"', '" + data_prodazhi + "', '" + price +"')";{. executeUpdate (query);. sendRedirect ("main. jsp");

} catch (SQLException e) {. printStackTrace ();

} catch (IOException e) {. printStackTrace ();

}

}

}void edit (HttpServletRequest request, HttpServletResponse response) {model = request. getParameter ("model");data_prodazhi = request. getParameter ("data_prodazhi");price = request. getParameter ("price");id = request. getParameter ("id");( (model! = null) && (data_prodazhi! = null) && (price! = null))

{ // Проверяем корректность пришедших данных, если все ок, формируем запрос к базе на добавление

String query = "UPDATE tvshop SET model='"+model+"', data_prodazhi='"+data_prodazhi+"', price='"+price+"' WHERE id="+id+"";{. executeUpdate (query);. sendRedirect ("main. jsp");

} catch (SQLException e) {. printStackTrace ();

} catch (IOException e) {. printStackTrace ();

}

}void delete (HttpServletRequest request, HttpServletResponse response) {id = request. getParameter ("id");query = "DELETE FROM tvshop WHERE id="+id+"";{. executeUpdate (query);. sendRedirect ("main. jsp");

} catch (SQLException e) {. printStackTrace ();

} catch (IOException e) {. printStackTrace ();

}

}void destroy () {{. close ();. close ();

} catch (Exception e) {e. printStackTrace (); }. destroy ();

}Connection conn;Statement sq;static final int LOGIN_ACTION = 0; // Для удобства ставим в соответствие с кодом операции "говорящую" константуstatic final int ADD_ACTION = 1;static final int EDIT_ACTION = 2;static final int DELETE_ACTION = 3;

}

Скриншоты:










Заключение


В данной контрольной работе были выполнены четыре практических задания по дисциплине "Программирование сетевых приложений"

В первом задании был разработан сайт агентства недвижимости. К разработанному сайту были составлены диаграммы UML: вариантов использования, состояний, деятельности. Сайт содержат модуль JavaScript, позволяющий осуществлять поиск объектов недвижимости по определенным критериям.

Во втором задании было разработано GUI-приложение с организацией взаимодействия с БД, реализующее методику расчета стоимости акционерного капитала с помощью модели Goldman Sachs.

В третьем задании был создан апплет с классом Triangle, в котором определяется какие из m-введенных треугольников прямоугольные. Прямоугольные треугольники рисуются другим цветом.

В четвёртом задании было создано приложение на основе JSP/Servlets с базой данных по учету обращений в службу технической поддержки.

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

Список использованных источников


1.      ГОСТ 19.701-90 (ИСО 5807-85). Единая система программной документации. Схемы алгоритмов, программ данных и систем. Условные обозначения и правила выполнения;

2.      Боггс, У. UML и Rational Rose / У. Боггс, М. Боггс. - М.: Издательство "ЛОРИ", 2001. - 582 с;

.        Унучек Т.М., Сторожев Д.А., Унучек Е.Н., Комличенко В.Н., Марудов Д.С. / Языки программирования для разработки сетевых приложений: язык программирования Java, Лабораторный практикум для студентов, Минск, 2008г. - 65 с.

4.      Интернет обучение [Электронный ресурс] / UML спецификация. - www.omg.com <http://www.omg.com/> - Дата доступа: 27.11 2015;

.        Интернет обучение [Электронный ресурс] / Как создать Servlet? Полное руководство - devcolibri.com/4284 - Дата доступа: 10.12 2015;

.        Интернет обучение [Электронный ресурс] / Как работать с MySQL в Java - devcolibri.com/1394 - Дата доступа: 04.12 2015;

.        Интернет обучение [Электронный ресурс] /Thinking in Java, 2nd edition, Revision 11/2000г. / by Bruce Eckel - http://www.ccfit. nsu.ru/~deviv/courses/oop/tij2nd/SimpleContents.html - Дата доступа: 04.12 2015.

Похожие работы на - Программирование сетевых приложений

 

Не нашли материал для своей работы?
Поможем написать уникальную работу
Без плагиата!