Разработка приложения 'Часы'

  • Вид работы:
    Курсовая работа (т)
  • Предмет:
    Информационное обеспечение, программирование
  • Язык:
    Русский
    ,
    Формат файла:
    MS Word
    558,2 Кб
  • Опубликовано:
    2014-06-26
Вы можете узнать стоимость помощи в написании студенческой работы.
Помощь в написании работы, которую точно примут!

Разработка приложения 'Часы'

Введение

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

Среда разработки Visual Studio, выбранная для создания проекта, широко распространена на платформе Microsoft Windows. Одна из версий - Visual Studio 2010 - охватывает все этапы создания приложений от разработки объектно-ориентированной архитектуры и кодирования до тестирования и отладки.

Язык С# и платформа .NET, выбранный для создания проекта, за относительно недолгое время своего существования стали основными технологиями для разработки современного программного обеспечения. Как и ожидалось, в версии .NET 4 появилось множество новых API-интерфейсов в библиотеках базовых классов, а также синтаксических конструкций в языке С#. Например, теперь можно создавать методы С#, которые поддерживают именованные и необязательные параметры. Кроме того, появилась возможность разрешать типы полностью во время выполнения с использованием ключевого слова dynamic.

Для проектирования программного обеспечения выбрана среда Star UML.

1. Анализ предметной области

Для реализации приложения «Часы» следует выделить следующие объекты:

Форма для отображения внешнего интерфейса часов;

Выпадающее меню и взаимодействия с пользователем;

Системное время которое будет считываться;

Стрелки аналоговых часов;

Таймер, по которому будет происходить отрисовка.

2. Техническое задание

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

Приложение должно обеспечивать:

Отображение времени в цифровом и аналоговом (стрелки) виде, с секундами и без;

Отображение (в аналоговом виде) римских или арабских цифр, соответствующих часам, в вариантах: без цифр; только 3, 6, 9 и 12; все;

Опциональное отображение даты в цифровом виде;

Задание параметров фона, стрелок, шрифтов времени и даты;

Задание параметров окна: обычное или «непотопляемое» (поверх остальных), с заголовком и без него.

3. Проектирование программного продукта

Диаграмма вариантов использования

Рисунок 1 - Диаграмма вариантов использования

Пользователь открывает приложение «Часы»;

Приложение считывает системное время и отображает текущее время в окне программы;

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

Диаграмма классов

часы программист руководство приложение

Рисунок 2 - Диаграмма классов

Приложение содержит в себе 3 класса

Класс: Form

Класс содержит:

Форму;

Переменную типа bool - showSec;

Метод отображения выпадающего меню menuStrip;

Метод вызова окна цветов colorDialog;

Метод вызова окна форматирования текста fontDialog;

Метод запуска таймера timer.

Класс: Time

Класс содержит:

Переменную типа DataTime - dt;

Переменную типа Point - coord;

Метод Time, присваивающий переменной dt текущее дату и время;

Метод coordSec, содержащий угол поворота секундной стрелки;

Метод coordMin, содержащий угол поворота минутной стрелки;

Метод coordHour, содержащий угол поворота часовой стрелки.

Класс: Arrow

Класс содержит:

Переменную типа Point - begin;

Переменную типа Point - end;

Переменную типа Pen - p;

Метод Show, отвечающий за отрисовку стрелок;

Метод Arrow, отвечающий за создание пера, с заданным цветом и размером.

Диаграмма последовательности

Рисунок 3 - Диаграмма последовательности

Пользователь открывает приложение;

Приложение показывает время и ожидает последующих действий;

Пользователь выбирает нужные настройки;

Настройки применяются;

Часы отображаются с принятыми настройками.

Диаграмма деятельности

Рисунок 4 - Диаграмма деятельности

Диаграмма состояний

Рисунок 5 - Диаграмма состояний

При запуске, приложения отображает текущее время и ожидает каких либо действий от пользователя;

Диаграмма компонентов

Рисунок 6 - Диаграмма компонентов

4. Тестирование и отладка

При выполнении тестирования проблем не обнаружено.

5. Руководство программиста

Приложение содержит в себе 3 класса

Класс: Form

Класс содержит:

Форму;

Переменную типа bool - showSec от нее значения зависит будет ли отрисовываться секундная стрелка;

Метод отображения выпадающего меню menuStrip;

Метод вызова окна цветов colorDialog;

Метод вызова окна форматирования текста fontDialog;

Метод запуска таймера timer.

Класс: Time

Класс содержит:

Переменную типа DataTime - dt - переменная будет содержать в себе текущую дату и время;

Переменную типа Point - coord - содержит конечную координату для отрисовки стрелок;

Метод Time, присваивающий переменной dt текущее дату и время;

Метод coordSec, содержащий угол поворота секундной стрелки;

Метод coordMin, содержащий угол поворота минутной стрелки;

Метод coordHour, содержащий угол поворота часовой стрелки.

Класс: Arrow

Класс содержит:

Переменную типа Point - begin - содержит начальную координату стрелок;

Переменную типа Point - end - содержит конечную координату стрелок;

Переменную типа Pen - p - перо для отрисовки;

Метод Show, отвечающий за отрисовку стрелок;

Метод Arrow, отвечающий за создание пера, с заданным цветом и размером.

6. Описание работы приложения

. Главное окно приложения

Рисунок 7 - Главное окно программы

. Главное окно приложения с открытым пунктом «Отображение»

Рисунок 8 - Главное окно приложения с открытым пунктом «Отображение»

. Главное окно приложения с открытым пунктом «Вид»

Рисунок 9 - Главное окно приложения с открытым пунктом «Вид»

. Главное окно приложения с выбранными надстройками «Отображение - арабские - все»

Рисунок 10 - Главное окно приложения с выбранными надстройками «Отображение - арабские - все»

5. Главное окно приложения с выбранными надстройками «Отображение - арабские - 3 6 9 12»

Рисунок 11 - Главное окно приложения с выбранными надстройками «Отображение - арабские - 3 6 9 12»

. Главное окно приложения с выбранными надстройками «Отображение - римские - все»

Рисунок 12 - Главное окно приложения с выбранными надстройками «Отображение - римские - все»

7. Главное окно приложения с выбранными надстройками «Отображение - римские - 3 6 9 12»

Рисунок 13 - Главное окно приложения с выбранными надстройками «Отображение - римские - 3 6 9 12»

. Главное окно приложения с выбранными надстройками «Отображение - Секунды»

Рисунок 14 - Главное окно приложения с выбранными надстройками «Отображение - Секунды»

9. После выбора пункта «Отображение - Цвет фона», открывается окно выбора цвета

Рисунок 15 - Окно выбора цвета

Рисунок 16 - Главное окно приложения после принятия настоек цвета

. После выбора пункта «Отображение - Цвет стрелок», открывается окно выбора цвета (рисунок 15).

Рисунок 13 - Главное окно приложения после принятия настоек выбора цвета стрелок

Настройка «Отображение - Шрифт» не активна, т.к. она используется только в цифровых часах.

Настройка «Отображение - Позиция» делает окно приложения непотопляемым (поверх всех).

Настройка «Отображение - Заголовок» убирает заголовок программы.

Рисунок 14 - Главное окно приложения после принятия настоек «Заголовок»

. Главное окно приложения с выбранными надстройками «Вид - Цифровой - С датой».


Главное окно приложения с выбранными надстройками «Вид - Цифровой - Без даты».

Рисунок 16 - Главное окно приложения с выбранными надстройками «Вид - Цифровой - Без даты»

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

Рисунок 17 - Меню в цифровых часах

. При выборе настройки «Отображение - Шрифт - Цвет» открывается окно выбора цвета (рисунок 15).

Рисунок 18 - Главное окно приложения с выбранными надстройками цвета цифр

. При выборе настройки «Отображение - Шрифт - Вид» открывается окно выбора шрифтов, начертаний, размера и др.

Рисунок 19 - Окно выбора шрифта

Рисунок 20 - Главное окно приложения с выбранными надстройками шрифта

. Пункт меню «Выход» закрывает приложение.

7. Руководство оператора

Программа необходима для отображения текущего времени в удобном для пользователя виде

Условия выполнения программы:

Операционная система семейства Windows XP или выше;

Установленная платформа MS .NET Framework версии 3.0 или выше.

Для корректного выполнения программы, необходимо чтоб системное дата и время были правильно настроены

Для запуска приложения необходимо запустить файл Clock.exe

8. Модель жизненного цикла

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

Рисунок 21 - Каскадная модель жизненного цикла

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

Достоинства модели:

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

выполняемые в четкой последовательности стадии позволяют уверенно планировать сроки выполнения работ и соответствующие ресурсы (денежные, материальные и людские).

Недостатки модели:

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

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

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

Заключение

В ходе выполнения курсовой работы были закреплены и углублены навыки использования объектно-ориентированного подхода к программированию.

Приобретены навыки программирования на языке C# в среде Visual Studio. Был получен навык работы с небольшим количеством компонентов среды и некоторыми встроенными библиотеками.

Закреплен материал прошлого семестра по способам проектирования программного обеспечения в среде Star UML.

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

1.     «Язык программирования C# 2010 и платформа .NET 4» Т. Эндрю Вильямс, 2010. 1392с.

2.      «Объектно-ориентированное программирование на С#» Учебное пособие, А.А. Андрианова, Л.Н. Исмагилов, Т.М. Мухтарова, 2012. - 134 с.

3.      Интернет ресурс: <http://habrahabr.ru/post/74330/>

.        Интернет ресурс: https://sites.google.com/site/anisimovkhv/learning/pris/ lecture/tema3 <https://sites.google.com/site/anisimovkhv/learning/pris/%20lecture/tema3>

Приложение А

Файл Times.cs

Исходный текст программы

Файл Times.cs

using System;System.Collections.Generic;System.Linq;System.Text;System.Threading.Tasks;System.Drawing;Clock

{Time

{dt;coord;Time()

{= new DateTime();

}Point coordSec()

{= DateTime.Now;= new Point(100+(int)(100 * Math.Sin(2 * Math.PI / 60 * dt.Second)), 100-(int)(100 * Math.Cos(2 * Math.PI / 60 * dt.Second)));coord;

}Point coordMin()

{= DateTime.Now;= new Point(100 + (int)(90 * Math.Sin(2 * Math.PI / 60 * dt.Minute)), 100 - (int)(90 * Math.Cos(2 * Math.PI / 60 * dt.Minute)));coord;

}Point coordHour()

{= DateTime.Now;hour;(dt.Hour <= 12)

{= dt.Hour;

}

{= dt.Hour - 12;

}= new Point(100 + (int)(80 * Math.Sin(2 * Math.PI / 12 * hour + 2 * Math.PI / (12 * 60) * dt.Minute)), 100 - (int)(80 * Math.Cos(2 * Math.PI / 12 * hour + 2 * Math.PI / (12 * 60) * dt.Minute)));coord;

}

}

}

Приложение Б

Файл Arrow.cs

Исходный текст программы

Файл Arrow.cs

using System;System.Collections.Generic;System.Linq;System.Text;System.Threading.Tasks;System.Drawing;Clock

{Arrow

{= new Pen(col, w);

}void Show(Graphics graphics).SmoothingMode = System.Drawing.Drawing2D.SmoothingMode.HighQuality;.DrawLine(p, begin, end);

}

}

}

Приложение B

Файл Form1.cs

Исходный текст программы

Файл Form1.cs

using System;System.Collections.Generic;System.ComponentModel;System.Data;System.Drawing;System.Linq;System.Text;System.Threading.Tasks;System.Windows.Forms;Clock

{partial class Form1 : Form

{Form1()

{();

}t = new Time();hour = new Arrow(Color.Black, 3);minute = new Arrow(Color.Black, 2);second = new Arrow(Color.Black, 1);showSec = true;void secondsToolStripMenuItem_Click(object sender, EventArgs e)

{= !(showSec);.Checked = !(seconds.Checked);

}void offNumToolStripMenuItem_Click(object sender, EventArgs e)

{.BackgroundImage = Clock.Properties.Resources.Clock;

}void allToolStripMenuItem1_Click(object sender, EventArgs e)

{.BackgroundImage = Clock.Properties.Resources.Clock_A;

}void toolStripMenuItem3_Click(object sender, EventArgs e)

{.BackgroundImage = Clock.Properties.Resources.Clock_A_3;

}void allToolStripMenuItem2_Click(object sender, EventArgs e)

{.BackgroundImage = Clock.Properties.Resources.Clock_R;

}void toolStripMenuItem4_Click(object sender, EventArgs e)

{.BackgroundImage = Clock.Properties.Resources.Clock_R_3;

}void colorToolStripMenuItem_Click(object sender, EventArgs e)

{(colorDialog1.ShowDialog() != DialogResult.Cancel)

{.BackColor = colorDialog1.Color;

}

}void аналоговыйToolStripMenuItem_Click(object sender, EventArgs e)

{.Visible = true;.BackgroundImage = Clock.Properties.Resources.Clock;_label.Visible = false;_label.Visible = false;.Enabled = true;.Enabled = true;.Enabled = true;.Enabled = true;.Enabled = true;.Enabled = true;.Enabled = false;(!(nameProg.Checked))

{.Height = 268;.Width = 324;

}

{.Height = 306;.Width = 340;

}

}void безДатыToolStripMenuItem_Click(object sender, EventArgs e)

{.Visible = false;.Enabled = true;.BackgroundImage = null;_label.Visible = true;_label.Visible = false;.Height = 150;.Width = 340;.Enabled = false;.Enabled = false;.Enabled = false;.Enabled = false;.Enabled = false;.Enabled = true;

}void показатьДатуToolStripMenuItem_Click(object sender, EventArgs e)

{.Visible = false;.BackgroundImage = null;_label.Visible = true;_label.Visible = true;.Height = 286;.Width = 340;.Enabled = false;.Enabled = false;.Enabled = false;.Enabled = false;.Enabled = false;.Enabled = true;

}void exitToolStripMenuItem_Click(object sender, EventArgs e)

{

Application.Exit();

}void name Tool Strip MenuItem_Click(object sender, EventArgs e)

{(nameProg.Checked).FormBorderStyle = System.Windows.Forms.FormBorderStyle.None;this.FormBorderStyle = System.Windows.Forms.FormBorderStyle.FixedSingle;.Checked = !(nameProg.Checked);

}void обычнаяToolStripMenuItem_Click(object sender, EventArgs e)

{.TopMost = false;

}void поверхВсехОконToolStripMenuItem_Click(object sender, EventArgs e)

{.TopMost = true;

}void Form1_Load(object sender, EventArgs e)

{.SetStyle(ControlStyles.DoubleBuffer, true);.SetStyle(ControlStyles.UserPaint, true);

}void Form1_MouseDown(object sender, MouseEventArgs e)

{.Capture = false;msg = Message.Create(this.Handle, 0xa1, new IntPtr(2), IntPtr.Zero);.WndProc(ref msg);

}void colorShr_Click(object sender, EventArgs e)

{(colorDialog1.ShowDialog() != DialogResult.Cancel)

{_label.ForeColor = colorDialog1.Color;_label.ForeColor = colorDialog1.Color;

}

}void viewShr_Click(object sender, EventArgs e)

{(fontDialog1.ShowDialog() != DialogResult.Cancel)

{_label.Font = fontDialog1.Font;_label.Font = fontDialog1.Font;

}

}void timer1_Tick(object sender, EventArgs e)

{.Refresh();_label.Text = DateTime.Now.ToLongTimeString();_label.Text = DateTime.Now.Date.ToString();(showSec)

{.end = t.coordSec();.Show(pbTime.CreateGraphics());

}.end = t.coordMin();.Show(pbTime.CreateGraphics());.end = t.coordHour();.Show(pbTime.CreateGraphics());

}void секунднаяToolStripMenuItem_Click(object sender, EventArgs e)

{(colorDialog1.ShowDialog() != DialogResult.Cancel)

{.p.Color = colorDialog1.Color;

}

}void минутнаяToolStripMenuItem_Click(object sender, EventArgse)

{(colorDialog1.ShowDialog() != DialogResult.Cancel)

}

}void часоваяToolStripMenuItem_Click(object sender, EventArgs e)

{(colorDialog1.ShowDialog() != DialogResult.Cancel)

{.p.Color = colorDialog1.Color;

}

}

}

}

Похожие работы на - Разработка приложения 'Часы'

 

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