Файл: Методические указания для учебной практики пм02.docx

ВУЗ: Не указан

Категория: Не указан

Дисциплина: Не указана

Добавлен: 06.12.2023

Просмотров: 24

Скачиваний: 1

ВНИМАНИЕ! Если данный файл нарушает Ваши авторские права, то обязательно сообщите нам.


Документ для печати – информация об автомобиле.

Диаграмма должна отображать общее количество автомобилей каждой марки (четыре любые марки выбирает пользователь).
Индивидуальное задание:16
Типизированный файл должен содержать данные о товарах на складе (наименование товара, поставщик, цена, количество, стоимость (это поле пользователем не заполняется, оно должно вычисляться на основании полей "цена" и "количество")).

Просмотр и печать по условию: информация о товарах, количество которых находится в указанном диапазоне.

Удаление по условию – по наименованию поставщика.

Документ для печати – накладная.

Диаграмма должна отображать общую стоимость поставки товаров за каждый месяц указанного года.
Индивидуальное задание:17
Типизированный файл должен содержать данные о выставке собак (название выставки, место проведения выставки, дата проведения выставки, кличка собаки, порода, возраст, высота в холке, оценка(отлично/хорошо), занятое место).

Просмотр и печать по условию: информация о собаках выбранной породы и выставки, возраст которых находится в указанном диапазоне.

Документ для печати – диплом участника выставки.

Диаграмма должна отображать общее количество участников каждой породы(четыре любые породы которые выбирает пользователь) на указанной выставке .
Индивидуальное задание:18
Типизированный файл должен содержать данные о призёрах зимней олимпиады (ФИО спортсмена, возраст спортсмена, вид спорта, страна, медаль, год проведения олимпиады).

Просмотр и печать по условию: информация о спортсменах-призёрах выбранной страны, возраст которых находится в указанном диапазоне.

Документ для печати – диплом участника олимпиады.

Диаграмма должна отображать общее количество призеров по виду медалей во время проведения олимпиады указанного года.
Индивидуальное задание:19
Типизированный файл должен содержать данные о дипломных работах студентов колледжа, подлежащих защите (ФИО студента, Группа, ФИО научного руководителя, тема дипломной работы, количество страниц в работе, рекомендуемая оценка).

Просмотр и печать по условию: информация о дипломных работах студентов выбранной группы, рекомендуемая оценка которых, совпадает с указанной.

Документ для печати – рецензия дипломной работы.

Диаграмма должна отображать общее количество студентов имеющих оценку 5, 4, 3,2.


Индивидуальное задание:20
Типизированный файл должен содержать данные о прохождении студентами-юношами колледжа учебных сборов в войсковой части (ФИО студента, Группа, Дата начала учебных сборов, количество дней, номер в/ч).

Просмотр и печать по условию: информация о студентов выбранной группы, проходивших учебные сборы в указанной в/ч.

Документ для печати – справка о прохождении учебных сборов.

Диаграмма должна отображать общее количество студентов прошедших учебные сборы за последние три четыре года.
Индивидуальное задание:21
Типизированный файл должен содержать данные о ежегодной всероссийской олимпиаде по программированию (ФИО участника, Город, Название учебного заведения, Дата, количество баллов за тест, количество баллов за практическую часть, поле «общее количество баллов» должно заполняться программно).

Просмотр и печать по условию: информация об участниках выбранного города, набравших общее количество баллов больше указанного.

Удаление по условию – дата проведения олимпиады.

Документ для печати – справка о результатах олимпиады.

Диаграмма должна отображать общее количество баллов набранных участниками трёх городов. Выбор этих городов осуществляется пользователем программы.

3 Основные сведения из теории
Различаются файлы трех типов:
а) текстовые (последовательный доступ к записям),
б) типизированные (прямой доступ к записям)
в) и нетипизированные (двоичные файлы).

Для доступа к файлам используется специальная файловая переменная (далее в качестве имени файловой переменной будем использовать символ F).
Файловая переменная описывается так:

Var F : Textfile – для текстовых файлов

Var f : file of <тип данных> - для типизированных файлов

Var f : file –для нетипизированных файлов.
Обычная техника программирования при работе с файлами включает вызовы следующих процедур:

  1. AssignFile (F, Filename:string); - устанавливает связь между логическим именем файла (файловой переменной) и физическим именем файла.

  2. Rewrite (F); -открывает файл для записи: если файл не существует, то он создается, если существует, то очищается.

  3. Append (F);- открытие текстового файла для добавления информации в конец файла,

в этом случае файл не очищается.

  1. Reset (F);-открывает существующий файл для чтения - если файл текстовый, для чтения или записи – если файл типизированный или нетипизированный.

  2. CloseFile (F); -закрывает файл (прерывает связь, установленную AssignFile).



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

Read (var F;<список переменных>); -считывает из текстового или типизированного файла указанный список.

Readln (var F;<список переменных>); - считывет из файла (только текстового) указанный список переменных и преводит позицию чтения на следующую запись.
Для записи данных в файл существуют процедуры:

Write (var F; <список переменных>); - записывает в текстовый или типизированный файл указанный список.

Writeln (var F; <список переменных>); - записывает в текстовый файл указанный список и символ перехода на новую строку.
Пример:

Пусть в текстовом файле Sadik.txt хранится список детей – в каждой строке файла содержится возраст ребенка, имя и фамилия. Следует считать весь список детей в Memo3, список детей младше 5 лет – в Memo1, список детей 5 лет и старше – в Memo2.
Procedure Tform4.Button1Click (Sender:Tobject);

Var

F : TextFile ; // файловая переменная

Vozr : integer ; // возраст

Famname : string ; // фамилия и имя

Begin

Memo1.Clear ; Memo2.Clear ; Memo3.Clear ; // очищаемсодержимоевсех Memo

Memo3.Lines.LoadfromFile ('d:\sadik.txt') ; // считываемвесьсписокдетейизфайлав Memo3

AssignFile (F, 'd:\sadik.txt') ;

Reset (F) ; // открываем файл для чтения

While not Eof (F) do

Begin

Readln (F, Vozr, Famname) ;

If Vozr < 5 then Memo1.LinesAppend (Famname + '-' + IntTostr (Vozr) )

Else Memo2.Lines.Append (Famname + '-' + IntToStr (Vozr) )

End ;
CloseFile (f) ;

End;
Полезные функции, применимые при работе с файлами


  1. Переименование файла:

Function RenameFile(const Oldname, Newname: string) : boolean; -функция возвращает значение true, если переименование прошло успешно; переименовывать можно только закрытые(не открытые для чтения или записи) файлы.



  1. Определение факта существования файла:

Function FileExists (const Fname:string):boolean; возвращает true, если файл существует.
Пример: If FileExists ('a:\doc1.txt') then

If NOT RenameFile ('a:\doc1.txt', 'a:\doc1.bak') then

ShowMessage (' дублирование имени файла или файл занят другой программой! ' ) ;
If not FileExists ( 'a:\doc1.txt' ) then Memo1.Lines.SaveToFile ( 'a:\doc1.txt' ) ;



  1. Определение размера файла (для текстовых файлов не используется)

Function FileSize(F) : integer;

Где F- логическое имя файла.
Пример: создадим процедуру, позволяющую определить и отобразить размер любого выбранного пользователем файла.

Procedure Tform1.Button3Click (Sender:Tobject);

Var Size : integer ;

F : file ;

Begin


If Opendialog1.Execute then

Begin

AssignFile (F, Opendialog1.Filename) ;
Reset (F) ;

Size := FileSize (F) ;

CloseFile (f) ;

Label1.WordWrap := true ; //возможность вывода в несколько строк

Label1.Caption := 'Размер файла ' + Opendialog1.Filename + 'равен ' + IntToStr (size) + ' байт' ;
End ;

End ;


4)Удаление файла

Function Deletefile(const Fname:string):boolean; - Возвращает true при успешном удалении файла.

5) Выделение частей имени файла

Function ExtractFileExt (const Fname : string) : string; - выделяет расширение из указанного имени файла.

Function ExtractFileDir (const Fname : string) : string; -выделяет из полного имени файла имя устройства и маршрут. Или Function ExtractFilePath (const Fname : string) : string;

Function ExtractFileName (const Fname : string) : string; - выделяет из полного имени файла только имя c расширением, отбрасывая путь и устройство.

Функции для работы с каталогами и дисками


  1. Function CreateDir (const dir : string) : boolean; - создается новый каталог Dir, если функция возрастает true

  2. Function RemoveDir (const Dir : string) : boolean; - удаляется пустой каталог с диска (файлы предварительно удаляются функцией DeleteFile).

  3. Function SetCu r r entDir(const Dir : string): boolean; - устанавливается текущим каталог Dir.

  4. Function GetCu r r entDir : string; - определяет имя текущего каталога.



Работа с типизированными файлами

Типизированные файлы являются файлами прямого доступа – к любой записи файла можно обратиться напрямую по номеру записи. Существуют специальные процедуры и функции для работы с типизированными файлами:

  1. Procedure Seek (var F;File; N:longint); - перемещает указатель (курсор) в файле на запись с номером N.

  2. Function FilePos (var F:file):longint; - функция возвращает номер записи в файле F, на которой находится указатель

  3. Function Filesize (var F:File):longint; - возвращает число записей в файле F.

  4. Procedure Truncate (var F:File); - процедура удаляет все записи от текущей включительно до конца файла.


Пример: сформируем типизированный файл, где будут хранится сведения о поступающих на склад товарах. Нажатие на кнопку Добавить должно добавлять одну запись в файл, содержащую сведения о поступившем товаре: дату поставки, название товара, цену и количество поступившего товара.

Procedure Tform1.Button1Click (sender:Tobject); // программируемкнопку Добавить

Type

Ttov = record //структура записи, содержащая сведения о товаре

DateP : TdateTime; //дата поставки

Tovar : string[15]; //название товара

Cena : real; //цена товара

Count : integer; //количество товара

End;

Var Tov_rec : Ttov; //запись содержащая сведения о товаре


Ft : file of Ttov; // файл для хранения сведений о товаре

Begin

{формируем запись}

Tov_rec.DateP := dateTimePicker1.Date;

Tov_rec.Tovar := Combobox1.text;

Tov_rec.Cena := StrToFloat (edit1.text);

Tov_rec.Count := StrToInt (edit2.text);

AssignFile (Ft, 'tovar.dat'); //связьсреальнымфайлом

If not FileExists ('tovar.dat') then Rewrite (Ft) //открываемфайлдлязаписиданных

Else begin

Reset (ft);

Seek (Ft, Filesize (Ft)); //переходнапоследнююзапись файла

End;

Write (Ft,Tov_rec); //записываем на диск одну запись

CloseFile (Ft);

Edit1.text := '';

Edit2.text := '';

End;

ПРИМЕР построения диаграммы
procedure TForm1.BitBtn1Click(Sender: TObject);

Var a1,a2,a3 : longint;

begin

a1:=100; a2:=200; a3:=300;

chart1.SeriesList[0].Add(A1, 'Цех 1', clYellow);

chart1.SeriesList[0].Add(A2, 'Цех 2 ', clBlue);

chart1.SeriesList[0].Add(A3, 'Цех 3 ', clRed);

end;

Приложение А
Экранные формы



Рисунок А.1 – Экранная форма «Справочник «Товары»



Рисунок А.2 – Экранная форма «Добавление записи»



Рисунок А.3 – Экранная форма «Просмотр по условию»