Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
ПЗ.docx
Скачиваний:
0
Добавлен:
01.07.2025
Размер:
182.89 Кб
Скачать

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

  1. Включить бизнес логику исходного приложения в свой пользовательский класс;

  2. Добавить к приложению визуализацию текущей даты и времени с использованием отдельного потока;

  3. Добавить возможность сохранения текущего состояния приложения в файл и чтения из файла;

  4. Предусмотреть обработку исключительных ситуаций и создать классы для обработки этих ситуаций;

  5. Добавить элементы графического интерфейса к главному окну приложения.

В данном курсовом проекте будет осуществлена трансляция игрового WEB-приложения с языка Java на язык C# (WPF-приложение).

В качестве исходного кода было выбрано приложение (апплет) Clock2.java поставляемое вместе с компилятором в качестве Demo-приложения. Исходный код приведен в приложении А.

2 Теоретический раздел

Трансляция программы — преобразование программы, представленной на одном из языков программирования, в программу на другом языке и, в определённом смысле, равносильную первой.

Язык, на котором представлена входная программа, называется исходным языком, а сама программа — исходным кодом. Выходной язык называется целевым языком или объектным кодом.

При трансляции необходимо учитывать отличительные особенности исходного и целевого языков.

Внешние модули в Java и в C# подключаются сходным образом. В Java используется ключевое слово import, в С# — using. Существенным отличием между import в Java и using в C# является то, что C# использует концепцию пространств имён (namespace), напоминающую одноимённый механизм C++. В Java используется концепция пакетов.

В C# классы могут располагаться в файлах произвольным образом. Имя файла исходного кода никак не связано с именами определяемых в нём классов. Допускается расположить в одном файле несколько общедоступных (public) классов. В Java каждый файл может содержать только один общедоступный (public) класс, причём Java требует, чтобы имя файла совпадало с именем этого класса, что исключает путаницу в именах файлов и классов.

В C# нет множественного наследования, в отличие от Java.

3 Обзор предметной области

3.1 Апплет Clock2.Java

В приложении Clock2.java реализованы аналоговые часы с круглым циферблатом. Часы показывают текущее системное время. В данном приложении также есть отображения текущей даты, времени в цифровом виде. На рисунку 3.1 отображена работа приложения.

Рисунок 3.1 – Работа приложения Clock2.java

3.2 Обзор исходного кода Clock2.Java

Бизнес логика приложения описана в классе public class Clock2 extends Applet implements Runnable. Данный класс унаследован от класса Applet и включает в себя интерфейс Runnable для работы в потоке. Далее будут описаны основные методы и поля класса.

Thread timer – поток, который отвечает за отображение часов (перерисовку).

int lastxs, lastys, lastxm, lastym, lastxh, lastyh – хранят координаты для перерисовки стрелок часов.

SimpleDateFormat formatter – хранит формат отображаемой даты.

String lastdate – строковое значение отображаемой даты.

Font clockFaceFont – фон часов.

Date currentDate – хранит полученное системное время для дальнейшего отображения.

Color handColor – цвет основных стрелок.

Color numberColor – цвет чисел циферблата.

Метод public void init() – служит для инициализации переменных класса апплета, таких как время, дата, цвет и др.

Метод public void plotpoints(int x0, int y0, int x, int y, Graphics g) – предназначен для рисования точек окружности по заданным координатам int x0, int y0, int x, int y на графическом объекте Graphics g.

Метод public void circle(int x0, int y0, int r, Graphics g) – выполняет рисование окружности циферблата путем рисования точек с помощью метода plotpoints. Принимает в качестве параметров координаты центра int x0, int y0, радиус int r и графический объект для рисования Graphics g.

Метод public void paint(Graphics g) – главный метод класса, который осуществляет перерисовку стрелок, даты, времени. В этом методе вычисляются координаты стрелок. В качестве единственного параметра принимает объект для рисования Graphics g.

Метод public void start - вызывается после метода init в момент, когда пользователь начинает просматривать документ HTML с встроенным в него аплетом. В этом методе инициализируется и запускается поток осуществляющий перерисовку приложения.

Метод public void stop() - получает управление, когда пользователь покидает страницу с аплетом и загружает в окно браузера  другую страницу. Метод stop вызывается перед методом destroy. Осуществляет освобождение памяти.

Метод public void run() – это определение метода интерфейса Runnable. Данный метод выполняет перерисовку приложения вызывая в цикле метод repaint(), пока существует поток timer данного класса.

Метод public void update(Graphics g) – осуществляет перерисовку приложения путем вызова метода paint().В качестве единственного параметра принимает объект для рисования Graphics g.

Метод public String getAppletInfo() – возвращает информацию о приложении и его авторе.

Метод public String[][] getParameterInfo() – возвращает массив строк, в которых описаны цветовые настройки приложения.

Соседние файлы в предмете [НЕСОРТИРОВАННОЕ]