Информационная система диагностики отклонений в развитии у детей раннего возраста

Программный комплекс Лонгитюд. Разработка алгоритмов и базы данных. Программа KID RCDI для точной оценки развития ребенка. Разработка технической документации. Использование инструкции по применению Веб-приложения. Анализ существующих систем и подходов.

Рубрика Программирование, компьютеры и кибернетика
Вид дипломная работа
Язык русский
Дата добавления 19.01.2017
Размер файла 1,2 M

Отправить свою хорошую работу в базу знаний просто. Используйте форму, расположенную ниже

Студенты, аспиранты, молодые ученые, использующие базу знаний в своей учебе и работе, будут вам очень благодарны.

Проверка корректности ввода номера полиса производится попыткой перевести введенную строку в число, если возникнет ошибка, значит, присутствуют буквы и на экране появится сообщение об ошибке ввода, поле с ошибкой подсветится розовым цветом, представлено на рисунке 6.5. Код проверки:

try{number=Long.parseLong(tf1.getText());}

catch(NumberFormatException exc){ if(!tf1.getText().equals("")){InputError();tf1.setBackground(Color.PINK);} if(tf1.getText().equals("")){tf1.setText(tf1.getName());tf1.setBackground(Color.PINK);}}

Рисунок 6.5 Проверка корректности ввода

Также по следующему алгоритму проверится выбор даты рождения:

int day=Integer.parseInt(String.valueOf(cb1.getSelectedItem()));

int month=cb2.getSelectedIndex();

int years=currentYear-cb3.getSelectedIndex();

Calendar inputDate=Calendar.getInstance();

inputDate.set(years, month, day); if(inputDate.getTimeInMillis()>Calendar.getInstance().getTimeInMillis()||

(((Calendar.getInstance().getTimeInMillis()-inputDate.getTimeInMillis())/(1000*60*60*24))>(365*3+1)))

{JOptionPane.showMessageDialog(null, "Невернаядата", "Ошибка",

JOptionPane.ERROR_MESSAGE); return; }

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

private static String generatePassword(){

StringBuilder sb=new StringBuilder();

char symb1, symb2, symb3;

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

symb1=(char) (65+(Math.random()*26));

symb2=(char) (97+(Math.random()*26));

symb3=(char) (48+(Math.random()*10));

Random r=new Random();

int vybor=r.nextInt(3)+1;

switch(vybor){

case 1: sb.append(symb1);

break;

case 2: sb.append(symb2);

break;

case 3: sb.append(symb3);

break;

}

}

returnsb.toString();

}

После того как сгенерирован код, нужно получить его хэш, для того чтобы внести его в базу данных в качестве настоящего пароля.

import java.security.*;

public class Sha {

public static String hash256(String data) throws NoSuchAlgorithmException {

MessageDigest md = MessageDigest.getInstance("SHA-256");

md.update(data.getBytes());

return bytesToHex(md.digest());

}

public static String bytesToHex(byte[] bytes) {

StringBuffer result = new StringBuffer();

for (byte byt: bytes) result.append(Integer.toString((byt & 0xff) + 0x100, 16).substring(1));

returnresult.toString();

}

Для того чтобы усложнить задачу потенциальным взломщикам конвертацию пароля в хэш выполняется два раза с добавлением к паролю последних его двух символов.

String hashPass=hash256(hash256(pass+pass.substring(pass.length()-2)));

Далее выполняется операция поиска пользователя в базе данных, алгоритм реализован следующим образом:

private static boolean isUserExist(long id){

boolean result=false;

try {

String query=String.format("Select * from Mysql.user where

user=%d",id);

MyConnection.openConnection(false);

ResultSet r=MyConnection.statement.executeQuery(query);

while(r.next()){

if(r.getString("User").equals(String.valueOf(id))){

result=true;

} }

} catch (SQLException ex){

Logger.getLogger(MyQuery.class.getName()).log(Level.SEVERE, null, ex);}

return result;

}

В этом модуле создается запрос к базе данных, затем он отправляется на сервер и результат заносится в список ResultSet. В цикле while выполняется поиск строки с идентификатором интересующего нас пользователя, и если он найден, то в логическую переменную вносится значение true, иначе false. Эта переменная отправляется в тот метод, который запросил поиск пользователя.

Если пользователь не найден, выполнится добавление пользователя в базу данных следующим кодом:

if(isUserExist(id)==false){

MyConnection.statement.executeUpdate(createUser(id,hash256(hash256(pass+pass.substring(pass.length()-2)))));

MyConnection.statement.executeUpdate(grantPrivileges(id, "Select"));

MyConnection.statement.executeUpdate(grantPrivileges(id, "SelectOnUsers"));

MyConnection.statement.executeUpdate(grantPrivileges(id, "Insert"));

}

private static String createUser(long id,String pass){

String persent="%";

String priv=String.format("Create user '%d'@'%s' identified by '%s' ; \n", (int)id,persent,pass);

return priv;

private static String grantPrivileges(long id,String typeOfPrivileges){

String priv="";

String persent="%";

if(typeOfPrivileges.equals("Select")){priv=String.format("GRANT

select on bolnica.questions to '%d'@'%s';",(int)id,persent);}

else if(typeOfPrivileges.equals("SelectOnUsers"))

{priv=String.format("GRANT SELECT (id, name, birthday) on

bolnica.users to '%d'@'%s';",(int)id,persent);}

else if(typeOfPrivileges.equals("Insert")){priv=String.format("GRANT

INSERT, SELECT on bolnica.results to '%d'@'%s';",(int)id,persent);}

returnpriv;

}

Если в результате операции поиска добавляемый пользователь будет найден в базе данных, то вначале выполнится его удаление, а затем повторится код, представленный выше. Операция удаления выглядит так:

else if(isUserExist(id)==true){

MyConnection.statement.executeUpdate ("Drop USER '" + id + "'@'%';"); …}

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

Если перейти на вкладку «поиск» в главном окне, то на ней будет показана строка для ввода номера полиса, заполнив которую и нажав «поиск», можно будет найти в БД пациента и сформировать по нему график результатов, представлено на рисунке 6.6.

Алгоритм поиска выглядит точно так же, как и при добавлении пользователя в базу данных. Если пользователь найден, то станут активны кнопка «сформировать» и меню выбора стиля графика. На данный момент доступны графики в виде точек, соединенных линиями и в виде плоских и объемных столбиков. В перспективе планируется добавить график в виде паутинки и сделать возможным взаимодействие с графиком через нажатия на диаграмму, чтобы просмотреть историю ответов на конкретные вопросы, а также, нажав на интересующую область из списка, сформировать график только по ней.

Рисунок 6.6 Панель поиска пользователя

На странице с построенным графиком есть меню, из которого можно сохранить результат в jpg формат, либо сразу вывести на печать, представлено на рисунке 6.7. Если график не помещается на экране, то включается вертикальная полоса прокрутки, но при сохранении в файл график будет полностью развернут, и элементы управления окном будут отсутствовать. Реализация рисования графика на языке программирования будет представлена в приложении.

Рисунок 6.7 График

6.2 Веб- приложение

Программа для прохождения теста написана так же на языке программирования Java. Пользователь, перейдя по адресу, на котором расположен тест, увидит страницу, на которой необходимо будет авторизоваться, заполнив поля «Номер полиса» и «Пароль», представлено на рисунке 6.8. Эти данные пользователь получит у своего специалиста (невролога, педиатра).

Алгоритм авторизации такой же, как и в программе администратора, поэтому дублировать код не имеет смысла.

Рисунок 6.8 Авторизация пользователя

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

Реализация поиска вопроса в БД выглядит так:

public static synchronized void createQuery(HttpSession session)

throws ClassNotFoundException, SQLException{

//-----------СоздаюподключениекБД--------------

Class.forName("com.mysql.jdbc.Driver");

Connection conn=null;

conn=DriverManager.getConnection(url,

(String)session.getAttribute("user"),

(String)session.getAttribute("password"));

Statement statement=conn.createStatement();

String user=(String)session.getAttribute("user");

int vozrast=takeAge(session);

int period=0;

//--Установка периодов прохождения теста----

if(vozrast<12){period=1;}

else if(vozrast>=12&&vozrast<24){period=3;}

else if(vozrast>=24&&vozrast<36){period=6;}

session.setAttribute("period", period);

String ExecuteCommand;

//--Создание запроса для поиска соответствующего вопроса--

ExecuteCommand="Select bolnica.questions.idQuestions,"

+ " bolnica.questions.Question, bolnica.questions.Power,"

+ " bolnica.questions.Tips, bolnica.questions.Category from "

+ "questions left join (Select idQuestions, result "

+ " from results where id="

+ user

+ ") as tab1 on questions.idQuestions=tab1.idQuestions"

+ " where category ="

+ vozrast

+ " and result is null;";

ArrayList test=new ArrayList();

System.out.println(ExecuteCommand);

ResultSet res =statement.executeQuery(ExecuteCommand);

while (res.next()){

test.add(res.getString(1));

test.add(res.getString(2));

test.add(res.getString(3));

test.add(res.getString(4));

test.add(res.getString(5));

}

if(conn!=null)conn.close();

//----Проверка доступности вопросов в списке-------

if(test.size()>0){session.setAttribute("testIsStarted",true);

session.setAttribute("avalQuest",true);

session.setAttribute("i", 0);}

else{session.setAttribute("avalQuest",false);}

session.setAttribute("text",test);

}

Если вопросы получены, то они последовательно выводятся на страницу. Когда список будет пустым, выполнится проверка результатов и, если необходимо, поиск вопросов, представлено на рисунках 6.9-6.12.

Рисунок 6.9 Исходный код проверки ответов

Рисунок 6.10 Продолжение исходного кода проверки ответов

Рисунок 6.11 Продолжение исходного кода проверки ответов

Рисунок 6.12 Продолжение исходного кода проверки ответов

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

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

Рисунок 6.13 - Страница вопросов

Таким образом, программа администратора и Web-приложение полностью написаны на языке программирования Java. Такая реализация является удобной, так как для написания программы достаточно уверенно владеть только этим языком и знать основы SQL, HTML, CSS. Такие требования позволяют следить за работой системы одному специалисту.

7. Отладка и экспериментальное тестирование

Существует несколько классификаций по виду тестирования:

1) модульное тестирование - проверка отдельных функций;

2) интеграционное тестирование- проверка совместной работы нескольких модулей;

3) системное тестирование - проверка работы системы в целом.

Кроме этого, есть классификация по области тестирования:

1) функциональное тестирование;

2) тестирование производительности;

3) тестирование удобства использования;

4) тестирование безопасности.

Тестирование так же подразделяют на «ручное» и «автоматическое». Под автоматическим методом понимается написание дополнительных подпрограмм или функций, которые запускают все приложение или его часть для исследования на предмет ошибок. Ручное тестирование в основном служит для поиска логических ошибок в алгоритмах, часто в этом помогает встроенный в среду разработки отладчик. В своей работе я использую оба этих метода.

Отладчик в NetBeans позволяет размещать точки останова в коде и пошагово исследовать алгоритм программы. Так как используемый мной язык является объектно-ориентированным, то в коде много вложенных друг в друга функций и поиск ошибок усложняется. Отладчик позволяет перемещаться по всей иерархии функций, углубляясь в каждый элемент, или, наоборот, пропуская тот, в котором разработчик уверен.

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

Модульный тест представляет собой программу, которая в исследуемый метод с входящими аргументами вносит соответствующие параметры, а затем сравнивает результат работы с эталонным значением, которое задается программистом. Если ожидаемый результат совпадает с полученным в ходе работы метода, то тест считается пройденным. Такое тестирование запускается каждый раз при компиляции программы через среду разработки, поэтому оно и называется автоматическим. Если тест окажется проваленным, то компилятор сообщит об ошибке, и программа завершится, и собрать проект уже не удастся.

Рисунок 7.1 - Модульное тестирование

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

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

Для оценки производительности работы программы я использовал статистику среды разработки, показывающую время выполнения метода, а также статистику обработки запросов в СУБД. Например, для того чтобы отследить насколько верно написан SQL-запрос необходимо перед соответствующей командой ввести слово «explain», и результатом такого запроса уже будет количество итераций по таблице и время обработки запроса, представлено на рисунке 7.2. Благодаря этому можно подобрать наиболее оптимальные команды для обращения к базе данных. Так я смог обнаружить, что при заполненной таблице результатов в пятьсот тысяч строк, обработка запроса с соединением таблиц выполнялась за 7,4 секунды, а это критически много. Проиндексировав соответствующие таблицы, эта же команда стала выполняться за 0,04 секунды [11].

Рисунок 7.2 - Проверка производительности

При тестировании безопасности необходимо уделить внимание трем аспектам:

1) конфиденциальность;

2) целостность;

3) доступность.

Конфиденциальность обеспечивает сокрытие определенных ресурсов. В разрабатываемой информационной системе такими ресурсами являются пользовательские данные. Защита этих данных обеспечивается ограниченным доступом в настройках СУБД, а также ограниченным функционалом самого клиента, с помощью которого пользователь обращается к базе данных. Получить доступ к ней напрямую нельзя, так как пароль пользователя является фиктивным. Узнать алгоритм, по которому пароль преобразуется, невозможно, не получив при этом исходные данные программы [12].

За целостность базы данных отвечает СУБД и настроенная архитектура базы данных. Она не позволяет вносить некорректные значения, или удалять части связанных данных. Клиентское приложение так же вносит данные по заданным шаблонам, обеспечивая дополнительный контроль.

Доступ к данным разрешен только авторизованным пользователям, наделенным правами, соответствующими их статусу по отношению к базе данных. Так в системе предусмотрены три вида пользователей:

1) администратор БД;

2) специалист (невролог, терапевт), регистрирующий пациентов и анализирующий результаты;

3) пользователь (тестируемый пациент).

Первая группа пользователь имеет полный доступ к БД. Второй группе разрешается добавлять пользователей в систему и наделять их правами для работы с базой данных, считывать данные из любых таблиц, вносить изменения в таблицу пользователей. Права второй группы распространяются только внутри БД, разрабатываемой информационной системы. Третья группа имеет право считывать часть общей таблицы пользователей, считывать таблицу вопросов и добавлять строки в таблицу результатов. За исполнение данных ограничений отвечает как настройка БД, так и приложение, через которое клиент работает с системой.

8. Разработка технической документации

8.1 Системные требования

Основным требованием к системе для работы программы администратора является наличие виртуальной Java-машины. Загрузить ее можно с официального сайта по ссылке http://java.com/ru/download/.

Для работы Web-приложения на сервере:

1) настроенный Web-сервер, работающий с WebApplicationArchive. Скачать его можно с сайта: https://glassfish.java.net/download.html;

2) доступ в интернет;

3) наличие виртуальной Java-машины;

4) доступ к базе данных;

5) веб- обозреватель (браузер).

Для работы клиентской части Web- приложения (прохождения онлайн теста) необходим браузер и выход в интернет.

8.2 Инструкция по использованию программы администратора

При запуске программы необходимо пройти авторизацию, представлено на рисунке 6.2. Если программа не настроена, будет выведено соответствующее сообщение, послу чего нужно в меню «Файл» выбрать пункт «Настройки», представлено на рисунке 6.3. Здесь нужно заполнить поля «Адрес сервера» в виде «127.0.0.1», «Порт» для доступа к БД в моем случае «3306» и «Имя пользователя», затем нажать кнопку «Сохранить».

В главном окне программы, представлено на рисунке 6.4, для добавления пользователя следует заполнить все поля и дату рождения, затем нажать кнопку «Добавить». Если пользователь уже существует в БД, то будет задан вопрос о внесении изменений. На экран будет выведен шестизначный пароль для пользователя, который необходимо записать. Логином для пользователя будет номер его полиса.

Для получения результатов тестирования нужно перейти на вкладку «Поиск», заполнить поле «Номер полиса» и нажать кнопку «Найти», представлено на рисунке 6.6. Если пользователь найден, то краткая информация о нем будет выведена в данное окно и станет активной кнопка «Сформировать». Рядом с ней расположен выпадающий список для выбора вида графика. Сформированный график будет выведен в отдельном окне, представлено на рисунке 6.7. В меню «Файл» доступны кнопки «Сохранить» и «Печать» для вывода графика в файл.jpg или на бумагу соответственно.

8.3 Инструкция по использованию Web-приложения

Для авторизации пользователю необходимо ввести в соответствующие поля номер полиса и пароль, выданный специалистом (неврологом, педиатром).

Если в вопросе доступна подсказка, то она будет отмечена знаком «?», нажав на который она будет выведена. С помощью кнопок «Предыдущий», «Следующий» можно перемещаться по списку вопросов. Для подтверждения ответа необходимо выбрать кнопку «Да» или «Нет» и нажать «Подтвердить». Внесенные ответы исправлять нельзя. Вопросы на тест выводятся в соответствии с возрастом тестируемого. Тест необходимо проходить в определенные промежутки времени: до 1 года - один раз в месяц, от года до двух лет - каждые три месяца, от двух до трех лет - каждые полгода.

Заключение

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

1) система не должна зависеть от используемой операционной системы. Для этого я создал приложение, работающее на виртуальной Java-машине, поддерживаемой всеми современными операционными системами;

2) пользователи должны иметь доступ к системе без привязки к месту. Для выполнения данного требования было принято решение создать Web-клиент для прохождения теста в режиме реального времени, тем самым обеспечив работу системы на любых устройствах, поддерживающих HTML;

3) система должна работать на современной, надежной базе данных. Выбранная мной СУБД MySQL, соответствует этим требованиям, а также является бесплатной;

4) необходимо обеспечить возможность безопасной работы в режиме многопоточного доступа. Данное требование обеспечивается совокупностью работы базы данных, и технологией, используемой при разработке Web- клиента;

5) система должна облегчить анализ результатов теста специалистом. Для решения данной задачи я создал визуальное представление результатов тестирования в виде графиков, наложенных друг на друга. Это позволяет не просто видеть результат, но и отслеживать изменения, происходящие с течением времени.

Разработанная мной система перед внедрением будет тестироваться специалистами в области медицины, и, в соответствии с их рекомендациями, будут вноситься изменения в существующий код или разрабатываться дополнительные функции. Также уже запланировано добавление определенных функций таких как, построение графика по определенной области, добавление возможности просмотра ответов на конкретные вопросы, нажав по столбику или точке диаграммы. Возможность поиска человека по фамилии и имени в базе данных. В перспективе возможно подключение данной системы к уже существующей медицинской системе ЕМИАС.

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

1. Ларина, О. В. Информационно-коммуникационные медицинские диагностические технологии как первый этап в системе помощи детям раннего возраста [Электронный ресурс] / О. В. Ларина // Научно-методический электронный журнал «Концепт». - 2016. - Т. 11. - С. 2546-2550.

2. Программное обеспечение для психолога [Электронный ресурс]: Лонгитиюд: сайт. - Режим доступа: http://testpsy.net/ru/.

3. Руководства по оценке развития детей на основе шкал KID и RCDI: Чистович И., Рейтер Ж., Шапиро Я. Руководство по оценке развития младенцев до 16 месяцев на основе русифицированной шкалы KID. 2-е издание Санкт- Петербург: Институт раннего вмешательства, 2000.

4. Обследование по шкалам KID / RCDI. [Электронный ресурс]: Красноярский центр лечебной педагогики: сайт.

5. Свободная энциклопедия Википедия

6. Проектирование реляционных баз данных на основе принципов нормализации [Электронный ресурс]: Введение с системы управления базами данных

7. MySQL [Электронный ресурс]: [официальный сайт]. - Режим доступа: http://www.mysql.com.

8. Нотация «Crow's foot» [Электронный ресурс]: Студопедия: сайт. - Режим доступа: http://studopedia.su/1_38350_notatsiya­pitera­chena.html.

9. Швецов, А. Н. Агентная архитектура как основа построения корпоративных систем/ А. Н. Швецов, В. И. Летовальцев// Автоматизация и энергосбережение машиностроительного производства, технология и надежность машин, приборов и оборудования: матер. четвертой научно-технической конференции 24-26 ноября 2008 г. - Вологда, 2008. - Т. 2. - С. 178-181.

10. Белоцерковская И. Е. Алгоритмизация. Введение в язык программирования С++/ И.Е. Белоцерковская; Н.В. Галина; Л.Ю. Катаева. - 2-е издание, испр. - Москва: Национальный Открытый Университет «ИНТУИТ», 2016. - С. 197- 201.

11. Андрианов, И. А. Эффективные методы поиска в последовательностях для больших баз данных / И. А. Андрианов, П. А. Горбунов// Информатизация процессов формирования открытых систем на основе СУБД, САПР, АСНИ и систем искусственного интеллекта (ИНФОС-2013): 7-я международная научно-техническая конференция, 28 июня 2013 г. / отв. ред.: В. А. Горбунов. - Вологда, 2013. - С. 10-14. - Библиография: с. 14.

12. Нечаев, В. И. Элементы криптографии: основы теории защиты информации: [учебное пособие для университетов и педагогических. вузов]/ В. И. Нечаев; [под ред. В. А. Садовничего]. - Москва: Высшая школа, 1999. - 108, [1] с.

Размещено на Allbest.ru


Подобные документы

  • Формирование входных и выходных данных, SQL–скрипт генерации таблиц базы данных. Создание интерфейса программного приложения и проектирование форм базы данных. Требования к аппаратно–программному обеспечению. Инструкции по установке и эксплуатации.

    курсовая работа [1,6 M], добавлен 08.02.2013

  • Разработка базы данных с целью автоматизации процессов составления, ведения и распространения информации об расписании занятий в спортивном комплексе "Маяк". Анализ предметной области. Разработка алгоритмов работы программы и приложения пользователя.

    дипломная работа [1,0 M], добавлен 12.07.2015

  • Проектирование логической структуры базы данных методом нормальных форм, сущность связь. Сравнительный анализ спроектированной базы данных и базы данных существующих информационных систем. Выбор и обоснование состава технических и программных средств.

    курсовая работа [3,0 M], добавлен 22.12.2014

  • Проектирование базы данных "Информационная система жилищного кооператива", целью которой является облегчение администрирования ЖЭКами. Инфологическое, логическое и физическое проектирование модели базы данных. Разработка основных алгоритмов программы.

    курсовая работа [432,8 K], добавлен 25.03.2012

  • История возникновения систем управления базами данных (СУБД). Непосредственный и программный режимы работы СУБД Visual FoxPro. Активное использование форм, запросов и отчетов. Разработка информационной базы данных "Оптовая база". Создание файла базы.

    курсовая работа [2,5 M], добавлен 05.01.2015

  • Обоснование выбора метода проектирования и инструментальных средств для разработки программного средства и базы данных. Требования к эргономике и технической эстетике. Разработка алгоритмов приложения. Руководство пользователя. Безопасность труда.

    дипломная работа [2,9 M], добавлен 17.10.2014

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

    дипломная работа [942,1 K], добавлен 19.05.2011

  • Разработка информационной системы "Салон портьер" для автоматизации деятельности менеджера фирмы, занимающейся пошивом портьер на заказ. Создание и обоснование проекта базы данных. Создание запросов, форм, отчетов. Тестирование программного приложения.

    курсовая работа [4,6 M], добавлен 07.02.2016

  • Разработка базы данных для информационной системы "Библиотека". Системный анализ, инфологическое, даталогическое и физическое проектирование. Программирование бизнес-логики, разработка клиентского приложения. Создание web-приложения, web-доступ.

    курсовая работа [3,3 M], добавлен 15.09.2014

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

    курсовая работа [2,2 M], добавлен 14.04.2019

Работы в архивах красиво оформлены согласно требованиям ВУЗов и содержат рисунки, диаграммы, формулы и т.д.
PPT, PPTX и PDF-файлы представлены только в архивах.
Рекомендуем скачать работу.