2.1 Постановка задачі
Написати програму, яка виводить на екран працюючий "Електронний годинник" з будильником, сигнал будильника звучить декілька секунд, а годинник працює до тих пір, коли користувач на натисне любу клавішу.
Коментар.
Програма буде розроблена в середовищі Visual Studio 2013 і написана на мові С#.
Програма повинна чітко виконувати своє завдання , мати чітко працюючі модулі часу і таймеру(будильника). Використання цієї програми не повинно витрачати на себе багато часу, це супроводжується тим що вона має достатньо простий інтерфейс, інтуїтивно зрозумілий для кожної людини не залежно від її віку та рівня освіти.
Перед створенням програми було використно декілька підручників, що в подальшому домогли створити програму, також був використаний Інтернет для пошуку інформації.
4
КР25.003072.022-81
2.2 Блок-схеми рішення задачі:
Початок
ТАК
НІ!
НІ!
ТАК
КІНЕЦЬ
ТАК
ТАК
НІ!
НІ!
Чи
відмінений він?
Чи
скінчився час?
Запускаємо Будильник?
Чи
є то час?
Введення
часу
Будильник!!!!
5
КР25.003072.022-81
2.3 Текст програми з коментарями:
//подключение директив
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.Media;
//окончание директив
namespace bursik
{
public partial class Form1 : Form // Подключение класса формы.
{
private SoundPlayer sp; // Функция проигрывателя.
public Form1() // Действия при загрузке формы.
{
InitializeComponent();
timer1.Enabled = true; // Включаем таймер
timer1.Interval = 1000; // Задаем интервал обновления в 1 сек.
sp = new SoundPlayer(); // Обьект плеера.
sp.Stream = Properties.Resources.alarm; // Находим аудиозапись в Resources.
}
string h, s; // Инициализация строковых переменных.
int res, i, j; // Инициализация целочисленных переменных
private void button2_Click(object sender, EventArgs e)
{
h = textBox1.Text; // время звонка (Часы)
s = textBox2.Text; // время звонка (Минуты)
textBox1.Enabled = false; // Делаем неактивным текстбокс
textBox2.Enabled = false; // Делаем неактивным текстбокс
}
private void timer1_Tick(object sender, EventArgs e) // Класс таймера
{
if (i == 1 && res != 2) // Если будильник звонит и кнопка остановить не нажато, то
{
j++; // Счетчик обновления мелодии
if (j == 10) { j = 0; sp.Play(); } // Если мелодия звучит 10 сек, повторяем заново.
}
if (res == 1) { sp.Play(); res = 0; } // Если время пришло - проигрываем.
if (res == 2) { sp.Stop(); } // Кнопка отмены - останавливаем
label1.Text = DateTime.Now.ToLongTimeString(); // Выводим текущее время
if (DateTime.Now.ToLongTimeString() == h + ":" + s + ":00") { res = 1; i = 1; } // Если время = заданному
}
private void Form1_Load(object sender, EventArgs e)
{
}
private void button1_Click(object sender, EventArgs e) // Действие на нажатие кнопки отменить
{
textBox1.Enabled = true; // Активируем поле
6
textBox2.Enabled = true; // Активируем второе поле
textBox1.Text = ""; // Очищаем форму
textBox2.Text = ""; // Очищаем форму
res = 2; // Переменная для отмены.
}
private void label6_Click(object sender, EventArgs e)
{
}
private void label1_Click(object sender, EventArgs e)
{
}
}
}
7
КР25.003072.022-81
