- •Практикум
- •Г. Петропавловск-Камчатский
- •Введение
- •Задание №1. Операции ввода-вывода. Арифметические операции.
- •Int a;b;c; double X,
- •Int a,b,c; float a,b,c;
- •Float X; scanf (“%f”,X);
- •Задание №2. Операторы условного перехода if-case
- •Int main(int argc, char* argv[])
- •Найдите синтаксические и логические ошибки в инструкциях (если есть)
- •Задание №3. Оператор цикла for
- •Int main(int argc, char* argv[])
- •Задание №4. Одномерные и многомерные массивы
- •Задание №5. Алгоритмы поиска и сортировки данных
- •Найдите синтаксические и логические ошибки в инструкциях
- •Сформулируйте одной фразой, какое действие выполняет фрагмент:
- •Задание №6. Массивы символов
- •Int _tmain(int argc, _tchar* argv[])
- •Написать программу для решения задачи:
- •Написать программу для решения задачи:
- •Класс string
- •Функции работы со строками Задание №7. Функции
- •Void fill_screen (void)
- •Напишите функцию для:
- •Задание №1. Создание программ с использованием компонентов: tEdit, tButton, tLabel
- •Проектирование интерфейса приложения:
- •Программирование приложения
- •Void __fastcall tForm1::Edit1KeyPress(tObject *Sender, wchar_t &Key)
- •Void __fastcall tForm1::Button1Click(tObject *Sender)
- •Задание №2. Создание программ с использованием компонентов: tComboBox, tListBox
- •Задание №3. Создание программ с использованием компонента Timer
- •Создайте приложение «Угадай число»
- •Void __fastcall tForm1::Timer1Timer(tObject *Sender)
- •Void __fastcall tForm1::CheckBox1Click(tObject *Sender)
- •Void __fastcall tForm1::Button1Click(tObject *Sender)
- •Void __fastcall tForm1::Button2Click(tObject *Sender)
- •Задание для самостоятельного выполнения:
- •Задание №4. Написание программ для выполнения операций с файлами
- •Void __fastcall tForm1::Button1Click(tObject *Sender)
- •If (FileExists("meteo.Txt"))
- •Void __fastcall tForm1::Edit1KeyPress(tObject *Sender, wchar_t &Key)
- •Задание для самостоятельного выполнения:
- •Задание №5. Использование компонентов tRichEdit, tMainManu, tOpenDialog и др.
- •Проектирование интерфейса приложения
- •Программирование приложения
- •Void __fastcall tForm1::imOpenClick(tObject *Sender)
- •Void __fastcall tForm1::imSaveClick(tObject *Sender)
- •Void __fastcall tForm1::imToolBarClick(tObject *Sender)
- •Void __fastcall tForm1::AboutClick(tObject *Sender)
- •Задание для самостоятельного выполнения:
- •Задание №6. Работа с графикой. Вывод текста. Программа Приветствие
- •Напишите процедуру при изменении размера формы:
- •Void __fastcall tForm1::FormResize(tObject *Sender)
- •Void __fastcall tForm1::Button4Click(tObject *Sender)
- •Void __fastcall tForm1::Button1Click(tObject *Sender)
- •Void __fastcall tForm1::Button5Click(tObject *Sender)
- •Задание №8. Базы данных. Создание приложения Записная книжка
- •Создание базы данных.
- •Проектирование интерфейса приложения
- •Программирование приложения
- •Void __fastcall tForm1::BitBtn1Click(tObject *Sender)
- •Задание №9. Ежедневник
- •Void __fastcall tForm1::FormShow(tObject *Sender)
- •Void __fastcall tForm1::Button1Click(tObject *Sender)
- •Void __fastcall tForm1::Button3Click(tObject *Sender)
- •Задание №10. Будильник
- •Int cHour, cMinute;
- •Int alrHour, alrMinute;
- •Void __fastcall CreateTrayIcon (int n, AnsiString Tip);
- •Void __fastcall DeleteTrayIcon (int n);
- •Void __fastcall tForm1::CreateTrayIcon (int n, AnsiString Tip)
- •Void __fastcall tForm1::DeleteTrayIcon (int n)
- •Void __fastcall tForm1::Button1Click(tObject *Sender)
- •Void __fastcall tForm1::Timer1Timer(tObject *Sender)
- •Задание №11. Часы
- •Int ahr, amin, asec;
- •Void __fastcall tForm1::Timer1Timer(tObject *Sender)
- •Задание №12. Очистка диска
- •Void __fastcall tForm1::Button1Click(tObject *Sender)
- •Void __fastcall tForm1::Button2Click(tObject *Sender)
- •Задание для самостоятельного выполнения:
- •Рекомендуемая литература
Задание №9. Ежедневник
Цель занятия: Закрепить умения и навыки работы с базами данных
Студенты должны знать: свойства и методы компонентов для работы с графикой
уметь: создавать приложение для работы с графикой
Задание.
Создайте новую базу данных Planner.mdb.
Создайте таблицу, согласно рисунка ниже. Заполните данными (произвольно).
Выберите в меню Пуск – Программы - CodeGear RAD Studio 2009 - C++Builder 2009
Создание новое приложение (File – New – VCL Forms Application).
Проектирование интерфейса приложения. Переименуйте заголовок приложения на Ежедневник.
Подключите базу данных. Для этого измените свойство ConectionString компонента ADOConnection1. Измените свойство LoginPrompt на False, Connected=True.
Измените свойства компонента ADODataSet1: Connection = ADOConnection1, CommandText= Select * From schedure order by aDate
Измените свойство DataSet компонента DataSoure на ADODataSet1
Измените свойства компонента DBGrid1: DataSource на DataSoure1, Columns[0].FieldName = aDate, Columns[0].Title.Caption = Когда, Columns[1].FieldName = aTask, Columns[1].Title.Caption = Что
Программирование приложения
Добавьте следующие модули #include <DateUtils.hpp>, #include <ComObj.hpp>
Опишите переменные:
AnsiString stDay[7]={"воскресенье","понедельник","вторник","среда","четверг","пятница","суббота"};
AnsiString stMonth[12]={"января","февраля","марта","апреля","мая","июня","июля","августа","сентября", "октября","ноября","декабря"};
Самостоятельно опишите процедуру ShowSQL и её реализацию. Указания к выполнению: процедуру должна выводить в диалоговом окне значение свойства CommandText компонента ADODataSet1.
Напишите процедуру на событие onShow формы:
Void __fastcall tForm1::FormShow(tObject *Sender)
{
TDateTime Today, NextDay;
Word Year,Month,Day;
Today=Now();
DecodeDate(Today,Year,Month,Day);
Label1->Caption="Сегодня"+IntToStr(Day)+" "+stMonth[Month-1]+" "+IntToStr(Year)+" года, "+stDay[DayOfWeek(Today)-1];
switch(DayOfWeek(Today)){
case 6:NextDay=Today+3; break; //сегодня пятница, смотрим, что запланировано на понедельник
case 7:NextDay=Today+2; break; //сегодня суббота - аналогично
default:NextDay=Today+1; break;
}
ADODataSet1->CommandText="SELECT*FROM schedule WHERE aDate BETWEEN DateValue('"+FormatDateTime("dd/mm/yyyy",Today)+"') AND DateValue('"+FormatDateTime("dd/mm/yyyy",NextDay)+"') ORDER BY aDate";
if (CheckBox1->Checked) ShowSQL();
Button1->Enabled=false;
Button2->Enabled=false;
Button3->Enabled=false;
Button4->Enabled=false;
return;
}
if (!ADODataSet1->RecordCount)
ShowMessage("На сегодня и ближайшие дни ни каких дел не запланировано.");
}
Напишите процедуру при нажатии на кнопку Сегодня
Void __fastcall tForm1::Button1Click(tObject *Sender)
{
AnsiString today=FormatDateTime("dd/mm/yyyy",Now());
Form1->Label2->Caption="Сегодня";
ADODataSet1->Close();
ADODataSet1->CommandText="SELECT*FROM schedule WHERE aDate=DateValue('" +today+"')";
if (CheckBox1->Checked) ShowSQL();
ADODataSet1->Open();
if (!ADODataSet1->RecordCount) ShowMessage("На завтра никаких дел не запланировано!");
}
Аналогично, напишите процедуру при нажатии на кнопку Завтра. Указания для выполнения: при определении завтрашней даты используйте функцию: Now()+1.
Напишите процедуру для отображения запланированных мероприятий на текущей неделе: