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

Анализ предметной области. Диаграмма классов. Проектирование программного продукта "Часы". Тестирование и отладка, руководство программиста. Описание работы приложения. Руководство оператора, модель жизненного цикла. Файл Times.cs, Arrow.cs, Form1.cs.

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

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

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

Размещено на http://www.allbest.ru/

[Введите текст]

Введение

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

Среда разработки 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. Описание работы приложения

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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/

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

Приложение А

Файл Times.cs

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

Файл Times.cs

using System;

using System.Collections.Generic;

using System.Linq;

using System.Text;

using System.Threading.Tasks;

using System.Drawing;

namespace Clock

{

class Time

{

DateTime dt;

Point coord;

public Time()

{

dt = new DateTime();

}

public Point coordSec()

{

dt = DateTime.Now;

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

return coord;

}

public Point coordMin()

{

dt = DateTime.Now;

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

return coord;

}

public Point coordHour()

{

dt = DateTime.Now;

int hour;

if (dt.Hour <= 12)

{

hour = dt.Hour;

}

else

{

hour = dt.Hour - 12;

}

coord = 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)));

return coord;

}

}

}

Приложение Б

Файл Arrow.cs

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

Файл Arrow.cs

using System;

using System.Collections.Generic;

using System.Linq;

using System.Text;

using System.Threading.Tasks;

using System.Drawing;

namespace Clock

{

class Arrow

{

Point begin = new Point(101, 101);

public Point end = new Point();

public Pen p;

public Arrow(Color col, int w)

{

p = new Pen(col, w);

}

public void Show(Graphics graphics)

graphics.SmoothingMode = System.Drawing.Drawing2D.SmoothingMode.HighQuality;

graphics.DrawLine(p, begin, end);

}

}

}

Приложение B

Файл Form1.cs

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

Файл Form1.cs

using System;

using System.Collections.Generic;

using System.ComponentModel;

using System.Data;

using System.Drawing;

using System.Linq;

using System.Text;

using System.Threading.Tasks;

using System.Windows.Forms;

namespace Clock

{

public partial class Form1 : Form

{

public Form1()

{

InitializeComponent();

}

Time t = new Time();

Arrow hour = new Arrow(Color.Black, 3);

Arrow minute = new Arrow(Color.Black, 2);

Arrow second = new Arrow(Color.Black, 1);

bool showSec = true;

private void secondsToolStripMenuItem_Click(object sender, EventArgs e)

{

showSec = !(showSec);

seconds.Checked = !(seconds.Checked);

}

private void offNumToolStripMenuItem_Click(object sender, EventArgs e)

{

this.BackgroundImage = Clock.Properties.Resources.Clock;

}

private void allToolStripMenuItem1_Click(object sender, EventArgs e)

{

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

}

private void toolStripMenuItem3_Click(object sender, EventArgs e)

{

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

}

private void allToolStripMenuItem2_Click(object sender, EventArgs e)

{

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

}

private void toolStripMenuItem4_Click(object sender, EventArgs e)

{

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

}

private void colorToolStripMenuItem_Click(object sender, EventArgs e)

{

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

{

this.BackColor = colorDialog1.Color;

}

}

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

{

pbTime.Visible = true;

this.BackgroundImage = Clock.Properties.Resources.Clock;

Time_label.Visible = false;

Date_label.Visible = false;

offNum.Enabled = true;

arabNum.Enabled = true;

romeNum.Enabled = true;

seconds.Enabled = true;

colorFon.Enabled = true;

colorArrow.Enabled = true;

shrift.Enabled = false;

if (!(nameProg.Checked))

{

this.Height = 268;

this.Width = 324;

}

else

{

this.Height = 306;

this.Width = 340;

}

}

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

{

pbTime.Visible = false;

shrift.Enabled = true;

this.BackgroundImage = null;

Time_label.Visible = true;

Date_label.Visible = false;

this.Height = 150;

this.Width = 340;

offNum.Enabled = false;

arabNum.Enabled = false;

romeNum.Enabled = false;

seconds.Enabled = false;

colorArrow.Enabled = false;

shrift.Enabled = true;

}

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

{

pbTime.Visible = false;

this.BackgroundImage = null;

Time_label.Visible = true;

Date_label.Visible = true;

this.Height = 286;

this.Width = 340;

offNum.Enabled = false;

arabNum.Enabled = false;

romeNum.Enabled = false;

seconds.Enabled = false;

colorArrow.Enabled = false;

shrift.Enabled = true;

}

private void exitToolStripMenuItem_Click(object sender, EventArgs e)

{

Application.Exit();

}

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

{

if (nameProg.Checked)

this.FormBorderStyle = System.Windows.Forms.FormBorderStyle.None;

else this.FormBorderStyle = System.Windows.Forms.FormBorderStyle.FixedSingle;

nameProg.Checked = !(nameProg.Checked);

}

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

{

this.TopMost = false;

}

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

{

this.TopMost = true;

}

private void Form1_Load(object sender, EventArgs e)

{

this.SetStyle(ControlStyles.DoubleBuffer, true);

this.SetStyle(ControlStyles.UserPaint, true);

}

private void Form1_MouseDown(object sender, MouseEventArgs e)

{

this.Capture = false;

var msg = Message.Create(this.Handle, 0xa1, new IntPtr(2), IntPtr.Zero);

this.WndProc(ref msg);

}

private void colorShr_Click(object sender, EventArgs e)

{

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

{

Time_label.ForeColor = colorDialog1.Color;

Date_label.ForeColor = colorDialog1.Color;

}

}

private void viewShr_Click(object sender, EventArgs e)

{

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

{

Time_label.Font = fontDialog1.Font;

Date_label.Font = fontDialog1.Font;

}

}

private void timer1_Tick(object sender, EventArgs e)

{

pbTime.Refresh();

Time_label.Text = DateTime.Now.ToLongTimeString();

Date_label.Text = DateTime.Now.Date.ToString();

if (showSec)

{

second.end = t.coordSec();

second.Show(pbTime.CreateGraphics());

}

minute.end = t.coordMin();

minute.Show(pbTime.CreateGraphics());

hour.end = t.coordHour();

hour.Show(pbTime.CreateGraphics());

}

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

{

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

{

second.p.Color = colorDialog1.Color;

}

}

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

{

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

{

minute.p.Color = colorDialog1.Color;

}

}

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

{

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

{

hour.p.Color = colorDialog1.Color;

}

}

}

}

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


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

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

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

  • Обзор существующих решений и обоснование выбора языка программирования. Разработка структурной схемы, интерфейса программного продукта. Технические требования к оборудованию, тест программного продукта, руководство системного программиста и оператора.

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

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

    курсовая работа [586,4 K], добавлен 26.06.2015

  • Характеристика системы программирования. Главные составные части Delphi. Интерфейс программного приложения. Результаты работы программы. Руководство системного программиста и оператора. Язык программирования Delphi, среда компилятора Borland 7.0.

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

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

    учебное пособие [1,9 M], добавлен 25.05.2015

  • Форма "Form1", "Form2", "Form3" (2D) и "Form3" (3D), диаграмма классов. Тестирование, его протокол, руководство пользователя. Просмотр общих и подробных сведений статистики, графического представления в 2D и 3D, выход из приложения, листинг программы.

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

  • Проектирование системы управления базами данных. Особенности реализации в MS SQL. Разработка пользовательского интерфейса. Тестирование и отладка приложения. Руководство пользователя и системного администратора. Анализ и методы разработки приложений.

    курсовая работа [867,9 K], добавлен 16.07.2013

  • Разработка интернет-приложения (Web–сервиса), позволяющего делать заказы онлайн, выполнять их обработку. Диаграмма вариантов использования. Модель предметной области. Описание концептуальных классов. Моделирование процесса выполнения операций в языке UML.

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

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

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

  • Особенности разработки и представления проекта программы, представляющей собой аналоговые часы с циферблатом, часовой, минутной и секундной стрелкой. Применение MS Visual Studio 2010, языка С++ для ее написания и компилирования. Специфика библиотеки MFC.

    курсовая работа [440,2 K], добавлен 17.03.2014

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