Программирование приложения на Java.

Заказать уникальную курсовую работу
Тип работы: Курсовая работа
Предмет: Программирование
  • 22 22 страницы
  • 3 + 3 источника
  • Добавлена 11.03.2012
1 496 руб.
  • Содержание
  • Часть работы
  • Список литературы
  • Вопросы/Ответы
Содержание
Задание
Введение
1. Постановка задачи
2. Вычислительная система
2.1. Выбор программного средства разработки
2.2. Обоснование выбора операционной системы
2.3. Требования к программному и аппаратному обеспечению
3. Проектирование приложения
3.1. Проектирование алгоритма реализации
3.2. Разработка графического интерфейса программы
3.3. Варианты использования программы
3.4. Диаграмма деятельности
4. Программирование приложения
5. Описание применения программы
5.1. Инсталляция программы и системные требования
5.2. Руководство пользователя
Заключение
Список используемых источников
Приложение 1

Фрагмент для ознакомления

setLayout(new GridLayout(2, false));
// элемент ввода времени
final DateTime time = new DateTime(dialog, SWT.TIME|SWT.SHORT);
final Text note = new Text(dialog,SWT.LEFT);// элемент ввода строки записи
GridData grD = new GridData(); // устанавливаем данные раскладки
grD.horizontalAlignment = GridData.FILL;// заполнение по горизонтали
// занимать все дополнительное место по горизонтали, если таковое появится
grD.grabExcessHorizontalSpace = true;
grD.widthHint=350; // исходный размер в ширину 350 пикселов
note.setLayoutData(grD); // устанавливаем данные раскладки
new Label(dialog, SWT.NONE); // пустой объект для того, чтобы занять
// ячейку таблицы раскладки
Button ok = new Button(dialog, SWT.PUSH); // кнопка подтверждения
ok.setText(" Добавить "); // устанавливаем надпись на кнопке
// кнопка справа, надпись по центру
ok.setLayoutData(new GridData(SWT.RIGHT,SWT.CENTER,false,false));
// заводим слушателя для нажатия кнопки подтверждения
ok.addSelectionListener(new SelectionAdapter(){
public void widgetSelected(SelectionEvent e){
String nr=String.format("%02d:%02d !!! ",
time.getHours(),time.getMinutes())+note.getText(); // добавляемая надпись
int i;
for(i=0; i < lst.getItemCount(); i++){// проходим по списку
// время добавляемой записи раньше, чем у текущей
if(nr.substring(0,5).compareTo(lst.getItem(i).substring(0,5)) < 0){
lst.add(nr,i); // вставляем запись в текущую позицию
break;
}
}
if(i == lst.getItemCount()) // у добавляемой записи время больше,
// чем у всех текущих
lst.add(nr,lst.getItemCount()); // добавляем запись в конец списка
dialog.close(); // закрываем диалог
}
});
dialog.setDefaultButton(ok); // устанавливаем кнопку по умолчанию
dialog.pack();
dialog.open(); // открываем диалог
}
});
edit = new Button(sh,SWT.PUSH|SWT.CENTER); // кнопка "Редактировать"
grD = new GridData(); // объект данных раскладки для кнопки
grD.horizontalAlignment = GridData.FILL; // на ширину столбца
edit.setLayoutData(grD); // устанавливаем данные раскладки
edit.setText("Редактировать"); // устанавливаем надпись на кнопке
// заводим слушателя для нажатия кнопки "Редактировать"
edit.addSelectionListener(new SelectionAdapter(){
public void widgetSelected(SelectionEvent e){
final int num=lst.getSelectionIndex(); // фиксируем номер записи,выбранной в списке
if(num != -1){ // запись выбрана
// открываем окно диалога
final Shell dialog = new Shell(sh, SWT.DIALOG_TRIM|SWT.APPLICATION_MODAL);
dialog.setLayout(new GridLayout(2, false)); // менеджер раскладки табличный
// на два столбца
// элемент ввода времени
final DateTime time = new DateTime(dialog, SWT.TIME | SWT.SHORT);
final Text note = new Text(dialog,SWT.LEFT);// элемент ввода строки записи
GridData grD = new GridData(); // устанавливаем данные раскладки
grD.horizontalAlignment = GridData.FILL;// заполнение по горизонтали
grD.grabExcessHorizontalSpace = true; // занимать все дополнительное место по
// горизонтали, если таковое появится
grD.widthHint=350; // первоначальный размер в ширину 350
// пикселов
note.setLayoutData(grD); // устанавливаем данные раскладки
new Label(dialog,SWT.NONE); // пустой объект для того, чтобы занять
// ячейку таблицы раскладки
final String cur; // выбранная строка списка
cur=lst.getItem(num); // читаем выбранный элемент списка
note.setText(cur.substring(10)); // копируем текстовую часть строки в
// элемент ввода текста
time.setHours(Integer.parseInt(cur.substring(0,2))); // устанавливаем часы
// из строки
time.setMinutes(Integer.parseInt(cur.substring(3,5))); // устанавливаем минуты
// из строки
Button ok = new Button(dialog, SWT.PUSH); // кнопка подтверждения
ok.setText(" Сохранить "); // устанавливаем надпись на кнопке
// кнопка справа, надпись по центру
ok.setLayoutData(new GridData(SWT.RIGHT,SWT.CENTER,false,false));
// заводим слушателя для нажатия кнопки подтверждения
ok.addSelectionListener(new SelectionAdapter(){
public void widgetSelected(SelectionEvent e){
// отредактированная запись
String nr=String.format("%02d:%02d !!! ",
time.getHours(),time.getMinutes())+note.getText();
int i;
lst.remove(num); // удаляем исходную запись
for(i=0; i < lst.getItemCount(); i++){ // проходим по списку
// время отредактированной записи раньше, чем у текущей
if(nr.substring(0,5).compareTo(lst.getItem(i).substring(0,5)) < 0){
lst.add(nr,i); // вставляем запись в текущую позицию
break;
}
}
// у вставляемой записи время больше, чем у всех текущих
if(i == lst.getItemCount())
lst.add(nr,lst.getItemCount()); // добавляем запись в конец списка
dialog.close();
} // закрываем диалог
});
dialog.setDefaultButton(ok); // устанавливаем кнопку по умолчанию
dialog.pack();
dialog.open(); // открываем диалог
}
}
});
erase = new Button(sh,SWT.PUSH|SWT.CENTER); // кнопка "Удалить"
grD = new GridData(); // объект данных раскладки для кнопки
grD.horizontalAlignment = GridData.FILL; // на ширину столбца
erase.setLayoutData(grD); // устанавливаем данные раскладки
erase.setText("Удалить"); // устанавливаем надпись на кнопке
// заводим слушателя для нажатия кнопки "Удалить"
erase.addSelectionListener(new SelectionAdapter(){
public void widgetSelected(SelectionEvent e){
int num=lst.getSelectionIndex(); // определяем номер записи, выбранной в списке
if(num != -1) // запись выбрана
lst.remove(num); // удаляем ее
}
});
done = new Button(sh,SWT.PUSH|SWT.CENTER); // кнопка "Выполнено"
grD = new GridData(); // объект данных раскладки для кнопки
grD.horizontalAlignment = GridData.FILL; // на ширину столбца
done.setLayoutData(grD); // устанавливаем данные раскладки
done.setText("Выполнено"); // устанавливаем надпись на кнопке
// заводим слушателя для нажатия кнопки "Выполнено"
done.addSelectionListener(new SelectionAdapter(){
public void widgetSelected(SelectionEvent e){
int num=lst.getSelectionIndex(); // определяем номер записи, выбранной в списке
if(num != -1){ // запись выбрана
String cur=lst.getItem(num); // считываем ее из списка
if(cur.substring(6,9).compareTo("...") == 0) // это выполненная запись
cur=cur.replaceFirst("\\.\\.\\.","!!!"); // делаем ее невыполненной
else
cur=cur.replaceFirst("!!!","..."); // делаем ее выполненной
lst.setItem(num,cur); // заменяем запись в списке
}
}
});
move = new Button(sh,SWT.PUSH|SWT.CENTER); // кнопка "Перенести"
grD = new GridData(); // объект данных раскладки для кнопки
grD.horizontalAlignment = GridData.FILL; // на ширину столбца
move.setLayoutData(grD); // устанавливаем данные раскладки
move.setText("Перенести"); // устанавливаем надпись на кнопке
// заводим слушателя для нажатия кнопки "Выполнено"
move.addSelectionListener(new SelectionAdapter(){
public void widgetSelected(SelectionEvent e){
// определяем номер записи, выбранной в списке
final int num=lst.getSelectionIndex();
if(num != -1){ // запись выбрана
// открываем окно диалога
final Shell dialog = new Shell(sh, SWT.DIALOG_TRIM|SWT.APPLICATION_MODAL);
dialog.setLayout(new GridLayout(2, false)); // менеджер раскладки табличный
// на два столбца
// элемент ввода строки записи (только для чтения)
final Text note = new Text(dialog,SWT.LEFT|SWT.READ_ONLY);
GridData grD = new GridData(); // устанавливаем данные раскладки
grD.horizontalSpan = 2; // занимаем две колонки в ширину
grD.horizontalAlignment = GridData.FILL;// заполнение по горизонтали
grD.grabExcessHorizontalSpace = true; // занимать все дополнительное место
// по горизонтали, если таковое появится
grD.widthHint=350; // первоначальный размер в ширину 350 пикселов
note.setLayoutData(grD); // устанавливаем данные раскладки
// делаем объект календаря для ввода
final DateTime date = new DateTime(dialog, SWT.CALENDAR|SWT.BORDER);
// синхронизируем его с предыдущей датой
date.setDay(currDate.get(Calendar.DAY_OF_MONTH));
date.setMonth(currDate.get(Calendar.MONTH)-1);
date.setYear(currDate.get(Calendar.YEAR));
date.setFocus(); // и устанавливаем на него фокус
note.setText(lst.getItem(num).substring(10)); // копируем в элемент ввода
// текстовую часть строки
Button ok = new Button(dialog,SWT.PUSH); // кнопка подтверждения
ok.setText(" Перенести "); // устанавливаем надпись на кнопке
// кнопка справа, надпись по центру
ok.setLayoutData(new GridData(SWT.RIGHT,SWT.DOWN,false,false));
// заводим слушателя для нажатия кнопки подтверждения
ok.addSelectionListener(new SelectionAdapter(){
public void widgetSelected(SelectionEvent e){
lst.remove(num); // удаляем выбранную запись списка
WriteFile(currDate); // записываем данные из списка в файл
// синхронизируем предыдущую дату
currDate.set(date.getYear(),date.getMonth() + 1,date.getDay());
// синхронизируем главный элемент управления
calendar.setDate(date.getYear(),date.getMonth(),date.getDay());
lst.removeAll(); // удаляем все записи списка
ReadFile(date); // считываем записи новой даты
lst.add("00:00 !!! "+note.getText(),0); // добавляем запись с сохраненной
// записью, но нулевым временем
dialog.close(); // закрываем диалог
}
});
dialog.setDefaultButton(ok); // устанавливаем кнопку по умолчанию
dialog.pack();
dialog.open(); // открываем диалог
}
}
});
sh.pack();
sh.open(); // открываем главное окно
sh.addListener(SWT.Close, new Listener(){ // заводим слушателя для закрытия главного окна
public void handleEvent(Event event){
WriteFile(currDate); // записываем текущее содержимое списка в файл
}
});
while(!sh.isDisposed()){ // цикл обработки событий
if(!disp.readAndDispatch()) // окно не закрыто
disp.sleep(); // продолжаем ждать
}
sh.dispose(); // освобождаем ресурсы
Display.getCurrent().dispose(); // освобождаем ресурсы
}

public static void ReadFile(Calendar dt){ // чтение файла (параметр - календарная дата)
String fname=String.format("%04d%02d%02d.dat",currDate.get(Calendar.YEAR),
currDate.get(Calendar.MONTH),
currDate.get(Calendar.DAY_OF_MONTH));
ReadFile(fname);
}
// чтение файла (параметр - элемент управления календаря)
public static void ReadFile(DateTime dt){
String fname=String.format("%04d%02d%02d.dat",
calendar.getYear(),calendar.getMonth() + 1,calendar.getDay());
ReadFile(fname);
}
public static void ReadFile(String fname){ // чтение файла (параметр - имя файла)
try{
BufferedReader fi = new BufferedReader( // создаем ридер по имени файла
new InputStreamReader(
new FileInputStream(fname)));
String cur;
while((cur=fi.readLine()) != null) // читаем записи, пока не достигнут конец файла
lst.add(cur,lst.getItemCount()); // добавляем запись в список
fi.close(); // закрываем ридер
}catch (FileNotFoundException ex){ // файл не найден - просто пропускаем
}catch (IOException ex){ // ошибка чтения - выдаем сообщение
MessageBox mb = new MessageBox(sh, SWT.ICON_ERROR|SWT.OK);
mb.setMessage("Ошибка ввода/вывода");
mb.open();
}
}

public static void WriteFile(Calendar dt){ // запись файла (параметр - календарная дата)
String fname=String.format("%04d%02d%02d.dat",currDate.get(Calendar.YEAR),
currDate.get(Calendar.MONTH),
currDate.get(Calendar.DAY_OF_MONTH));
WriteFile(fname);
}
// запись файла (параметр - элемент управления календаря)
public static void WriteFile(DateTime dt){
String fname=String.format("%04d%02d%02d.dat",
calendar.getYear(),calendar.getMonth() + 1,calendar.getDay());
WriteFile(fname);
}
public static void WriteFile(String fname){
try {
BufferedWriter fo = new BufferedWriter( // создаем райтер по имени файла
new OutputStreamWriter(
new FileOutputStream(fname)));
for(int i=0; i < lst.getItemCount(); i++){ // читаем список до конца
fo.write(lst.getItem(i)); // записываем текущий элемент в файл
fo.newLine(); // добавляем перевод строки
}
fo.close(); // закрываем файл
} catch (IOException ex){ // ошибка записи - выдаем сообщение
MessageBox mb = new MessageBox(sh,SWT.ICON_ERROR|SWT.OK);
mb.setMessage("Ошибка ввода/вывода");
mb.open();
}
}
}











7

Список используемых источников
1. Standard Widget Toolkit http://ru.wikipedia.org/wiki/SWT
2. Чеботарев А. Java 2: второй шанс вавилонской башни. Издательский Дом "Комиздат" http://citforum.ru/programming/java/babylon/
3. Scarpino M., Holder S., Ng S., Mihalkovic L. SWT/JFace in Action Greenwich, CT, USA: Manning Publications Co., 2005. – 496 pp. ISBN 1-932394-27-3

Вопрос-ответ:

Какое программное средство использовалось для разработки приложения?

В данной работе для разработки приложения на Java было выбрано программное средство Intellij IDEA.

Какую операционную систему использовали при разработке приложения?

При разработке приложения использовалась операционная система Windows 10.

Какие требования предъявлялись к программному и аппаратному обеспечению для работы приложения?

Для работы приложения на Java требовалась установленная среда выполнения Java (JRE) версии 8 или выше. Также необходимо иметь достаточно мощный компьютер для эффективной работы программы.

Как проектировался алгоритм реализации приложения?

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

Какие возможности предоставляет графический интерфейс программы?

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

Какие программные средства использовались для разработки приложения на Java?

Для разработки приложения на Java было выбрано программное средство разработки (IDE) IntelliJ IDEA.

Почему была выбрана операционная система именно такая?

Операционная система Windows была выбрана для разработки приложения на Java, так как она является наиболее популярной и широко используется.

Какие требования предъявляются к программному и аппаратному обеспечению для работы приложения на Java?

Для работы приложения на Java требуется установленная виртуальная машина Java (JRE) версии не ниже указанной в требованиях. Кроме того, необходимо наличие операционной системы Windows и достаточного объема оперативной памяти и свободного места на жестком диске.

Какой алгоритм был использован для реализации приложения на Java?

Для реализации приложения на Java был использован алгоритм поиска кратчайшего пути в графе (алгоритм Дейкстры).

Какие варианты использования предлагает данная программа?

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