Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Практикум ОА Цымбалюк.doc
Скачиваний:
21
Добавлен:
29.08.2019
Размер:
2.1 Mб
Скачать

Задание №4. Написание программ для выполнения операций с файлами

Цель занятия: Научиться работать с файлами средствами языка программирования С++

Студенты должны знать: операции над файлами

уметь: выполнять различные операции над файлами

Задание.

  1. Выберите в меню Пуск – Программы - CodeGear RAD Studio 2009 - C++Builder 2009

  2. Создание новое приложение (FileNewVCL Forms Application).

  3. Создайте приложение Погода, которое добавляет в текстовый файл информацию о температуре воздуха. Каждая строка файла содержит дату и значение температуры. Если файла нет, то программа создаёт его в текущем каталоге. Кнопка ОК доступна только тогда, когда поле Температура содержит данные.

    1. Проектирование пользовательского интерфейса: добавьте следующие компоненты: MonthCalendar1, метку Label1, окно ввода Edit1 и кнопку Button1 Добавить.

    1. Программирование приложения:

      1. Добавьте программный код в конструктор программы:

int f;

//---------------------------------------------------------------------------

__fastcall TForm1::TForm1(TComponent* Owner)

: TForm(Owner)

{

MonthCalendar1->ShowTodayCircle=false;

MonthCalendar1->Date=Now();

Button1->Enabled=false; } //---------------------------------------------------------------------------

      1. Самостоятельно напишите программу для изменения содержимого в поле редактирования значения температуры: если длина строки = 0 (Edit1->Text.Length()==0) или длина строки = 1 и первый символ строки является символом «минус» ((Edit1->Text.Length() ==1) && (Edit1->Text[1]=='-')), то кнопка неактивна, иначе кнопка активна.

      2. Добавьте программу при нажатии на кнопку Добавить

Void __fastcall tForm1::Button1Click(tObject *Sender)

{

AnsiString st; // переменная для записи в файл

st=MonthCalendar1->Date.DateString()+" "+Edit1->Text+"\r\n";

If (FileExists("meteo.Txt"))

f=FileOpen("meteo.txt",fmOpenWrite);

else

f=FileCreate("meteo.txt");

// если файл существует то открыть для записи или создать файл

if (f != -1)

{

FileSeek(f,0,2);

FileWrite(f,st.c_str(),st.Length());

FileClose(f);

Button1->Enabled=false;

}

else

ShowMessage("Ошибка доступа к файлу: ни открыть,""ни создать не получилось");

}

      1. Напишите процедуру для нажатия в поле клавиш

Void __fastcall tForm1::Edit1KeyPress(tObject *Sender, wchar_t &Key)

{

if ((Key>='0') && (Key<='9')) return;

if ((Key=='.') || (Key==','))

{

Key=',';

if (Edit1->Text.Pos(',') !=0) Key=0;

return;

}

if (Key==8) return;

if ((Key=='-') && (Edit1->Text.Length()==0))return;

Key=0; //все остальные символы запрещены

}

      1. Самостоятельно напишите процедуру: при щелчке по компоненту Календарь окно ввода будет очищаться и фокус установится в поле ввода температуры.

  1. Задание для самостоятельного выполнения:

  1. Добавьте кнопки перехода по месяцам: Вперёд, Назад.

  2. Добавьте кнопки перехода по дням.

  3. Добавьте кнопки перехода по дням с помощью клавиш клавиатуры.

  4. Напишите программу Добрый день, таким образом, чтобы в зависимости от времени суток менялся текст приветствия: Добрый день (вечер).

  5. Напишите программу Добрый день, таким образом, чтобы в зависимости от времени суток менялся текст приветствия: Добрый день (вечер, утро).

  6. Напишите программу Добрый день, таким образом, чтобы в зависимости от времени суток менялся текст приветствия: Добрый день (вечер, утро, ночь).

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

  8. Добавьте окно Memo1 на форму, в которую требуется выводить записанную в файл температуру.

  9. Предусмотрите редактирование значений температуры в файле.

  10. Напишите программу для расчёта среднемесячной температуры.

  11. Напишите программу для расчёта минимальной температуры в году.

  12. Напишите программу для расчёта максимальной температуры в году.

Сдайте работу преподавателю

Вопросы для контроля и самоконтроля:

  1. Как создать текстовый файл программным способом?

  2. Как открыть файл для чтения (записи) данных?

  3. Как переходить по дням календаря?

  4. Как отобразить текущие дату и время?