Автор: Пользователь скрыл имя, 06 Мая 2012 в 15:01, курсовая работа
Современные приложения должны быть безопасны, высокопроизводительны, работать в распределенной среде, быть нейтральны к архитектуре. Требования к переносимости заставили отказаться от традиционного способа создания и доставки бинарных файлов, содержащих машинные коды и, следовательно, привязанных к определенной платформе. Созданная компанией Sun Microsystems система разработки Java удовлетворяет всем этим требованиям.
Введение 3
1 ПРОГРАММНЫЙ ИНТЕРФЕЙС 4
1.1 Описание классов 4
1.2 Описание файлов 10
2 ПОЛЬЗОВАТЕЛЬСКИЙ ИНТЕРФЕЙС 12
Заключение 18
Список использованных источников 19
Класс public class ReadCsv является подклассом ListVuz, служит для обработки данных из файлов с расширением *.csv. Содержит поле List<Vuz> vuzList, организующее список. Включает процедуры для чтения из файла и записи в коллекцию данных о ВУЗах, обработки данных в коллекции и записи из коллекции в файл:
public ReadCsv() – конструктор без параметров;
public void readFile(String vuzCsv) – процедура, осуществляющая чтение из файла. Определяет тип записи по значению идентификатора и заносит в коллекцию. В процедуру передается переменная строкового типа, являющаяся именем считываемого файла;
public void print() – вывод записей из коллекции на экран в виде: одна запись – одна строка;
public void insert(Vuz ref) – процедура записывает элемент в конец коллекции. В процедуру передается переменная типа Vuz;
public int delete(int index) – удаление элемента с соответствующим индексом. В процедуру передается переменная целого типа, являющаяся индексом записи. Если индекс меньше нуля, то он просто возвращается, если он больше размера коллекции, то возвращается размер коллекции, а если запись найдена, то она удаляется;
public getItem(int index) – возвращает запись типа Vuz с соответствующим индексом;
public int getSize() – возвращает количество записей в коллекции, значение целого типа;
public int find(Vuz obj) – поиск определенной записи в коллекции. В процедуру передается переменная типа Vuz, которая сравнивается с записями в коллекции, если такая же запись найдена, то возвращается ее индекс целого типа, а если не найдена, то выводится соответствующее сообщение;
public List<Vuz> getVuzList() – возвращает коллекцию;
public void setVuzList(List<Vuz> vuzList) – конструктор заполнения из потока. В конструктор передается переменная параметризованного типа List<Vuz>;
public void saveCsv(String filename) – процедура записывает в файл с расширением *.csv. В процедуру передается переменная строкового типа, являющаяся именем записываемого файла;
public void saveDb(String filename) – процедура записывает в файл с расширением *.mdb. В процедуру передается переменная строкового типа, являющаяся именем записываемого файла.
Класс public class ReadDb является подклассом ListVuz, служит для обработки данных из файлов с расширением *.mdb. Содержит поле List<Vuz> vuzList, организующее список. Чтение из файла и запись в файл производится при помощи SQL-запросов. Включает процедуры для чтения из файла и записи в коллекцию данных о ВУЗах, обработки данных в коллекции и записи из коллекции в файл:
public ReadDb() – конструктор без параметров;
public void readFile(String vuzDb) – процедура, осуществляющая чтение из базы данных при помощи SQL–запросов, заносит полученные результаты в коллекцию. В процедуру передается переменная строкового типа, которая является именем считываемой базы данных;
public void print() – вывод записей из коллекции на экран в виде: одна запись – одна строка;
public void insert(Vuz ref) – процедура записывает элемент в конец коллекции. В процедуру передается переменная типа Vuz;
public int delete(int index) – удаление элемента с соответствующим индексом. В процедуру передается переменная целого типа, являющаяся индексом записи. Если индекс меньше нуля, то он просто возвращается, если он больше размера коллекции, то возвращается размер коллекции, а если запись найдена, то она удаляется;
public getItem(int index) – возвращает запись типа Vuz с соответствующим индексом;
public int getSize() – возвращает количество записей в коллекции, значение целого типа;
public int find(Vuz obj) – поиск определенной записи в коллекции. В поцедуру передается переменная типа Vuz, которая сравнивается с записями в коллекции, если такая же запись найдена, то возвращается ее индекс целого типа, а если не найдена, то выводится соответствующее сообщение;
public List<Vuz> getVuzList() – возвращает коллекцию;
public void setVuzList(List<Vuz> vuzList) – конструктор заполнения из потока. В конструктор передается переменная параметризованного типа List<Vuz>;
public void saveCsv(String filename) – процедура записывает в файл с расширением *.csv. В процедуру передается переменная строкового типа, являющаяся именем записываемого файла;
public void saveDb(String filename) – процедура записывает в файл с расширением *.mdb. В процедуру передается переменная строкового типа, являющаяся именем записываемого файла.
Класс public class Runner включает процедуру public static void main(String[] args), благодаря которой происходит запуск разработанной программы. В данной процедуре происходит определение объектов класса ListVuz. В дальнейшем эти объекты по запросу Пользователя вызывают необходимые процедуры обработки данных: считывание из файла, вывод на экран, поиск записи, добавление и удаление записи, сортировка коллекции, запись в файл. Вся информация и результаты обработки выводятся на консоль.
Программа считывает данные из файлов различных форматов, которые должны иметь определенную структуру.
Разработанный программный комплекс осуществляет считывание и запись файлов с расширениями *.csv и *.mdb, в которых содержится информация о ВУЗах.
Файл с расширением *.csv представляет собой таблицу, колонки которой содержат соответствующую информацию: название ВУЗа, дата основания, количество студентов, тип (академия, институт, университет), дополнительная информация в зависимости от типа ВУЗа.
Файл с расширением *.mdb представляет собой базу данных, состоящую из четырех таблиц:
Vuz – данная таблица содержит общую информацию о ВУЗах (название, дата основания, количество студентов);
Univer – данная таблица содержит информацию об университетах (названия факультетов, количество бюджетных мест, количество платных мест);
Institut – данная таблица содержит информацию об институтах (учебный профиль, количество стипендиатов, сумма стипендий);
Academ – данная таблица содержит информацию об академиях (учебный профиль, оплата, срок обучения);
Ниже в таблице 1 представлена структура таблицы «Vuz».
Таблица 1 – Структура таблицы «Vuz»
Название поля | Тип поля | Описание поля |
idName | Счетчик | Код ВУЗа |
name | Текстовый | Название ВУЗа |
year | Числовой | Дата создания |
nomStud | Числовой | Количество студентов |
В отношении, состоящем из этих атрибутов, можно выделить первичный ключ – это поле idName.
Далее в таблице 2 представлена структура таблицы «Univer».
Таблица 2 – Структура таблицы «Univer»
Название поля | Тип поля | Описание |
idName | Числовой | Код ВУЗа |
fakultet | Текстовый | Название факультета |
butzet | Числовой | Количество бюджетных мест |
platno | Числовой | Количество платных мест |
В данной таблице нет необходимости вводить ключевое поле, так как она носит дополнительную информацию о ВУЗе и не имеет уникальных полей. Поле idName является внешним ключом и обеспечивает возможность установить связь данных таблицы «Univer» с таблицей «Vuz».
Далее в таблице 3 представлена структура таблицы «Institut».
Таблица 3 – Структура таблицы «Institut»
Название поля | Тип поля | Описание |
idName | Числовой | Код ВУЗа |
profil | Текстовый | Учебный профиль |
kolStud | Числовой | Количество стипендиатов |
sumStip | Числовой | Сумма стипендий |
В данной таблице не вводится ключевое поле, так как она не имеет уникальных полей и носит дополнительную информацию о ВУЗе. Поле idName является внешним ключом и обеспечивает возможность установить связь данных таблицы «Institut» с таблицей «Vuz».
Далее в таблице 4 представлена структура таблицы «Academ».
Таблица 4 – Структура таблицы «Academ»
Название поля | Тип поля | Описание |
idName | Числовой | Код ВУЗа |
profil | Текстовый | Учебный профиль |
oplata | Числовой | Размер оплаты |
srocObuch | Числовой | Срок обучения |
В данной таблице нет ключевого поля, так как она не имеет уникальных полей и носит дополнительную информацию о ВУЗе. Поле idName является внешним ключом и обеспечивает возможность установить связь данных таблицы «Academ» с таблицей «Vuz».
Схема данных отражающая связи в данных представлена на рисунке 1.
Рисунок 1 – Схема данных базы данных «ВУЗы Гомеля»
Из рисунка 1 видно, что основной таблицей базы является таблица «Vuz». Остальные таблицы связаны с этой таблицей.
Для того чтобы начать работу с программой необходимо в среде разработки Eclips открыть проект OopKurs. В нем выбрать файл Runner.java и запустить на выполнение.
Так как разрабатывалось консольное приложение, то весь диалог с пользователем производится через консоль. Данный диалог реализован посредством вывода на консоль программой понятного пользователю запроса, последующего считывания ответа и соответствующей обработки. После начала работы на консоль выводится просьба ввести имя файла, из которого будет считываться информация для дальнейшей обработки.
В
контрольном примере будут
Рисунок 2 – Ввод имен файлов
Если такие файлы найдены, то происходит обработка данных, а если нет, то выводится сообщение об ошибке.
Для контрольного примера будут использован файл vuz.csv, содержимое которого представлено на рисунке 3, и база данных db1.mdb.