Автор работы: Пользователь скрыл имя, 04 Марта 2013 в 22:35, курсовая работа
Создать проект, реализующий аналоговые часы. В программе должны иметься отдельные минутная, часовая и секундная стрелки. Необходимо реализовать будильник с возможностью установления даты сигналы. Должна быть реализована возможность выбора в качестве сигнала аудио файла.
Введение 3
Постановка задачи 4
Теоретическая часть 5
Результат работы программы 8
Заключение 9
Список литературы 10
Приложение. Листинг программы 11
Содержание
Введение 3
Постановка задачи 4
Теоретическая часть 5
Результат работы программы 8
Заключение 9
Список литературы 10
Приложение. Листинг программы 11
Введение
Программы, работающие на компьютере, можно разделить на три категории
1. Прикладные программы,
непосредственно
2. Системные программы,
выполняющие различные
3. Инструментальные
системы (системы
Данные категории программ в свою очередь так же разделяются на несколько категорий.
Например, прикладные программы можно разделить по уровню сложности обработки информации и результатов.
Данная программа относится к первой категории, служит вспомогательной программой, основная задача которой, это создание программы аналоговых часов с отображением на экране монитора циферблата часов, на котором повторяются движения большой, малой и секундной стрелок, как у настоящих часов. Программа проста в использовании и имеет интуитивно понятный интерфейс. В качестве инструмента разработки проекта применялась Microsoft Visual Studio 2012. Язык программирования – C#.
Создать проект, реализующий
аналоговые часы. В программе должны
иметься отдельные минутная, часовая
и секундная стрелки. Необходимо
реализовать будильник с
Графика необходима при организации пользовательского интерфейса. Образы информативнее текста. Framework.Net реализует расширенный графический интерфейс GDI+, обладающий широким набором возможностей. Но для рисования в формах достаточно иметь три объекта — перо, кисть и, хочется сказать, бумагу, но третий нужный объект — это объект класса Graphics, методы которого позволяют в формах заниматься графикой — рисовать и раскрашивать.
Класс Graphics — это основной класс, необходимый для рисования. Класс Graphics, так же, как и другие рассматриваемые здесь классы для перьев и кистей, находятся в пространстве имен Drawing, хотя классы некоторых кистей вложены в подпространствоDrawing2D.
Объекты этого класса зависят
от контекста устройства, (графика
не обязательно отображается на дисплее
компьютера, она может выводиться
на принтер, графопостроитель или другие
устройства), поэтому создание объектов
класса Graphics выполняется не традиционным
способом — без вызова конструктора класса.
Создаются объекты специальными методами
разных классов. Например, метод CreateGraphics класса
При рисовании в формах можно объявить в форме поле, описывающее объект класса Graphics:
Graphics graph; а в конструкторе формы произвести связывание с реальным объектом:
graph = CreateGraphics();
Затем всюду в программе, где нужно работать с графикой, используется глобальный для формы объект graph и его методы. Есть другой способ получения этого объекта — обработчики некоторых событий получают объект класса Graphics среди передаваемых им аргументов.
У класса Graphics большое число методов и свойств. Упомяну лишь о некоторых из них. Группа статических методов класса позволяет создать объект этого класса, задавая например описатель (handle) контекста устройства.
Для рисования наиболее важны
три группы методов. К первой относится
перегруженный метод
Класс Pen Методам группы Draw класса Graphics, рисующим контур фигуры, нужно передать перо — объект класса Pen. В конструкторе этого класса можно задать цвет пера и его толщину (чаще говорят «ширину пера»). Цвет задается объектом класса (структурой) Color. Для выбора подходящего цвета можно использовать упоминавшееся выше диалоговое окно Color либо одно из многочисленных статических свойств класса Color, возвращающее требуемый цвет. Возможно и непосредственное задание элементов структуры в виде комбинации RGB — трех цветов — красного, зеленого и голубого. Вместо создания нового пера с помощью конструктора можно использовать специальный класс предопределенных системных перьев.
Класс Brush, задающий кисти, устроен более сложно. Начну с того, что класс Brush является абстрактным классом, так что создавать кисти этого класса нельзя, но можно создавать кисти классов-потомков Brush. Таких классов пять — они задают кисть:
* SolidBrush — для сплошной закраски области заданным цветом;
* TextureBrush — для закраски области заданной картинкой (image);
* HatchBrush — для закраски области предопределенным узором;
* LinearGradientBrush — для сплошной закраски с переходом от одного цвета к другому, где изменение оттенков задается линейным градиентом;
* PathGradientBrush — для сплошной закраски с переходом от одного цвета к другому, где изменение оттенков задается более сложным путем.
Первые два класса кистей находятся в пространстве имен System.Drawing, остальные — в System.Drawing.Drawing2D.
Результат работы программы
Заключение
В ходе написания данной курсовой работы мною была изучена среда разработки Microsoft Visual Studio 2012.
Мною была разработана программа основная задача которой, это создание программы аналоговых часов с отображением на экране монитора циферблата часов, на котором повторяются движения большой, малой и секундной стрелок, как у настоящих часов. Также была реализована функция будильника с возможностью установления даты сигналы и возможностью выбора в качестве сигнала аудио файла.
Список литературы
1. К.Ватсон, К.Нейгел «Microsoft Visual C# 2008 Базовый курс» - М., Диалектика, 2009, 1216с.
2. Э.Троелсен «Язык программирования C# и платформа .Net 3.5» - М., Вильямс, 2010, 1344с
3. Г. Шилдт «C# 4.0: полное руководство» М., Диалектика, 2008, 752с.
4. Д.Албахари, Б.Албахари «C# 5.0. Справочник. Полное описание языка» М., Вильямс, 2012, 1064с.
Приложение.
Листинг программы
using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Linq;
using System.Text;
using System.Windows.Forms;
using System.IO;
namespace WindowsFormsApplication1
{
public partial class Form1 : Form
{
int mouseX, mouseY;
DateTime Time;
Graphics gr;
bool mousepressed;
public Form1()
{
InitializeComponent();
}
private void timer1_Tick(object sender, EventArgs e)
{
Time = DateTime.Now; // считываем системное время на компьютере
if (Time.ToString() == Properties.Settings.Default.
{
System.Media.SoundPlayer player = new System.Media.SoundPlayer(); // создаем обьект плэер
if (File.Exists(Properties.Settin
{
player.SoundLocation = Properties.Settings.Default.
player.Load();// загружаем аудио
player.PlayLooping();// воспроизводим аудио с повтором
}else Console.Beep();// если файл не выбран, либо программа ссылается на несуществующий аудиофайл, просто воспроизводим однократный писк
DialogResult result =
MessageBox.Show(Properties.Set
if (result == DialogResult.OK) player.Stop();
}
this.Refresh();//
if (Properties.Settings.Default.
if (Properties.Settings.Default.
gr.DrawImage(Properties.Resour
else gr.DrawImage(Image.FromFile(
gr.TranslateTransform(this.
gr.RotateTransform(30.0F * Time.Hour + 180 ); // поворачиваем полотно для рисования стрелок на нужный угол
gr.DrawImageUnscaled(
gr.RotateTransform(6.0F * Time.Minute + 180 - (30.0F * Time.Hour + 180)); // поворачиваем полотно для рисования стрелок на нужный угол
gr.DrawImageUnscaled(
gr.RotateTransform(6.0F * Time.Second + 180 - ((6.0F * Time.Minute + 180) - (30.0F * Time.Hour + 180)) - (30.0F * Time.Hour + 180)); // поворачиваем полотно для рисования стрелок на нужный угол
gr.DrawImageUnscaled(
gr.ResetTransform(); // сбрасываем все операции поворотов и переноса полотна
}
private void Form1_Load(object sender, EventArgs e)
{
TopMost = Properties.Settings.Default.
//gr = this.CreateGraphics(); // создаем графический обьект на форме для рисования на нем часов
//this.Size = Properties.Resources.backgnd_
//this.BackgroundImage = Properties.Resources.backgnd_
// this.TransparencyKey = Color.White; // выставляем прозрачный цвет для станд. фона (белый)
// this.BackColor = Color.White; // выставляем цвет для формы (белый)
imageList1.Images.Clear(); // очищаем список картинок от картинок ))
//
imageList1.ImageSize = Properties.Resources.
// imageList1.TransparentColor = Color.White; ; // выставляем прозрачный цвет картинок со стрелками
// imageList1.Images.Add(
// imageList1.Images.Add(
// imageList1.Images.Add(
//imageList1.Images.Add(
if (Properties.Settings.Default.
{
// пробуем считать параметры из настроек программы
if (File.Exists(Properties.Settin
{
this.Size = Image.FromFile(Properties.Sett
this.BackgroundImage = Image.FromFile(Properties.Sett
} else
{
this.Size = Properties.Resources.backgnd_
this.BackgroundImage = Properties.Resources.backgnd_
}
this.BackColor = Properties.Settings.Default.
this.TransparencyKey = Properties.Settings.Default.
imageList1.TransparentColor = Properties.Settings.Default.
if (File.Exists(Properties.Settin
else imageList1.ImageSize = Properties.Resources.
// проверяем наличие файлов и, если таковые имеются, загружаем их в список картинок