Магазин одежды - Программа считывает из файла записи в виде товаров в магазине одежды: Название, материал, количество поступившего товара, цена товара. Добавить несколько своих процедур, но обязательно чтоб была сортировка по какой-то характеристике, и со
Описание
Цель работы:
/ задача из РК программа в Pascal Lazarus.
В архиве также файл с объяснениями работы программы. Тэги: Программа на Lazarus, PascalObject, Pascal, Delphi, Turbo Delphi, Pascal ABC / Анимация, ЛР, РК, ДЗ, 2023
Условия для программы, под которые она выполнена:
Магазин одежды - Программа считывает из файла записи в виде товаров в магазине одежды: Название, материал, количество поступившего товара, цена товара. Добавить несколько своих процедур, но обязательно чтоб была сортировка по какой-то характеристике, и создание нового массива с определенным фильтром. Вывод в типизированный и текстовый файлы.
Добавлена ещё процедура минимум-максимум.
Пример оформления:

И вывод сделать отдельным пунктом в меню

Программа в сделанном виде:













После сортировки лишнее убралось.


Показать/скрыть дополнительное описание
Домашнее задание. Вариант 6. ДЗ Магазин одежды Цель работы: / задача из РК программа в Pascal Lazarus. В архиве также файл с объяснениями работы программы. Тэги: Программа на Lazarus, PascalObject, Pascal, Delphi, Turbo Delphi, Pascal ABC / Анимация, ЛР, РК, ДЗ, 2023 Условия для программы, под которые она выполнена: Магазин одежды - Программа считывает из файла записи в виде товаров в магазине одежды: Название, материал, количество поступившего товара, цена товара. Добавить несколько своих процедур, но обязательно чтоб была сортировка по какой-то характеристике, и создание нового массива с определенным фильтром. Вывод в типизированный и текстовый файлы. Добавлена ещё процедура минимум-максимум.
Пример оформления: И плюс добавить процедуру добавления нового товара в список И вывод сделать отдельным пунктом в меню Программа в сделанном виде: При выходе сохраняется оставшийся массив После сортировки лишнее убралось. 1.Типы данных: •Определены два пользовательских типа данных: ClothingItem и ClothingArray. •ClothingItem - это запись (record), представляющая информацию о предмете одежды (название, материал, количество, цена). •ClothingArray - это динамический массив предметов одежды. 2.Процедуры: •ReadClothingItems: Читает информацию о предметах одежды из файла и выводит ее на экран. •WriteClothingItems: Записывает информацию о предметах одежды в файл.
•DisplayAndWriteSortedItems: Выводит отсортированный список предметов одежды на экран и записывает его в файл. •SortByName: Сортирует предметы одежды по названию. •FindMinPrice: Находит предмет с минимальной ценой и выводит информацию о нем. •FindMaxPrice: Находит предмет с максимальной ценой и выводит информацию о нем. •FilterByMaterial: Фильтрует предметы одежды по материалу и выводит результат на экран и в файл. •AddNewItem: Добавляет новый предмет одежды в массив. 3.Основной блок программы: •Сначала запрашивается имя входного файла с данными о предметах одежды. •Затем программа выводит список доступных операций для пользователя, и пользователь может выбирать операции, вводя соответствующие номера операций.
•Программа выполняет выбранную операцию, а затем снова выводит меню операций. •Пользователь может завершить выполнение программы, выбрав операцию \"7. Exit\". 4.Файлы: •Данные о предметах одежды читаются из файла, который указывает пользователь. •Результаты операций записываются в файл \'Rezultat.txt\'. 5.Завершение программы: •После выполнения всех операций программа выводит отсортированный список предметов одежды и сохраняет его в файл \'Rezultat.txt\'. •Программа завершается. При выходе сохраняется оставшийся массив После сортировки лишнее убралось. Код программы: program project1; // Определение типа записи для представления одного товара type ClothingItem = record Name: string; Material: string; Quantity: Integer; Price: Double; end; // Определение массива записей для представления списка товаров ClothingArray = array of ClothingItem; // Процедура для чтения данных о товарах из файла procedure ReadClothingItems(var items: ClothingArray; const fileName: string); var fileHandle: TextFile; item: ClothingItem; lineNumber: Integer; begin Assign(fileHandle, fileName); Reset(fileHandle); SetLength(items, 0); lineNumber := 1; WriteLn(\'No:\', \' Naimenovanie, \', \' Material, \', \'Kolichestvo,\', \' Price\'); while not Eof(fileHandle) do begin // Чтение данных о товаре из файла ReadLn(fileHandle, item.Name); ReadLn(fileHandle, item.Material); ReadLn(fileHandle, item.Quantity); ReadLn(fileHandle, item.Price); // Добавление товара к массиву SetLength(items, Length(items) + 1); items[High(items)] := item; // Отображение сведений о текущем элементе WriteLn(\'-------------------------------------------------------\'); WriteLn(lineNumber, \': \', item.Name, \', \', item.Material, \', \', item.Quantity, \', \', item.Price:0:2); Inc(lineNumber); end; writeln; Close(fileHandle); end; // Процедура для записи данных о товарах в файл с нумерацией procedure WriteClothingItems(const items: ClothingArray; const fileName: string); var fileHandle: TextFile; item: ClothingItem; lineNumber: Integer; begin Assign(fileHandle, \'Rezultat.txt\'); Append(fileHandle); WriteLn(fileHandle, \'No \', \'Naimenovanie \', \' Material \', \' Kolichestvo \', \' Price\'); lineNumber := 1; for item in items do begin // Запись данных о товаре в файл WriteLn(fileHandle, \'-------------------------------------------------------\'); WriteLn(fileHandle, lineNumber, \': \', item.Name, \', \', item.Material, \', \', item.Quantity, \', \', item.Price:0:2); Inc(lineNumber); end; Close(fileHandle); end; // Процедура для отображения и записи отсортированных товаров procedure DisplayAndWriteSortedItems(var items: ClothingArray); var item: ClothingItem; lineNumber: Integer; begin lineNumber := 1; writeln; Writeln(\'Sorted Items:\'); writeln; WriteLn(\'No \', \'Naimenovanie \', \' Material \', \' Kolichestvo \', \' Price\'); for item in items do begin WriteLn(\'-------------------------------------------------------\'); WriteLn(lineNumber, \': \', item.Name, \', \', item.Material, \', \', item.Quantity, \', \', item.Price:0:2); Inc(lineNumber); end; writeln; WriteClothingItems(items, \'Rezultat.txt\'); end; // Процедура для сортировки товаров по названию procedure SortByName(var items: ClothingArray); var i, j: Integer; temp: ClothingItem; begin for i := Low(items) to High(items) - 1 do for j := i + 1 to High(items) do if items.Name > items[j].Name then begin temp := items; items := items[j]; items[j] := temp; end; DisplayAndWriteSortedItems(items); end; // Процедура для поиска товара с минимальной ценой procedure FindMinPrice(const items: ClothingArray); var minPrice: Double; item: ClothingItem; fileHandle: TextFile; i, k: integer; begin if Length(items) = 0 then begin Writeln(\'No items to find minimum price.\'); Exit; end; minPrice := 9999999; for i := 0 to High(items) do if items.Price < minPrice then begin minPrice := items.Price; k := i; end; Writeln(\'Minimum price: \', items[k].Price:0:2); writeln; WriteLn(\'Naimenovanie \', \' Material \', \' Kolichestvo \', \' Price\'); WriteLn(items[k].Name, \', \', items[k].Material, \', \', items[k].Quantity, \', \', items[k].Price:0:2); Assign(fileHandle, \'Rezultat.txt\'); Append(fileHandle); WriteLn(fileHandle, \'Naimenovanie \', \' Material \', \' Kolichestvo \', \' Price\'); WriteLn(fileHandle, items[k].Name, \', \', items[k].Material, \', \', items[k].Quantity, \', \', items[k].Price:0:2); Close(fileHandle); writeln; end; // Процедура для поиска товара с максимальной ценой procedure FindMaxPrice(const items: ClothingArray); var maxPrice: Double; item: ClothingItem; fileHandle: TextFile; i, k: integer; begin if Length(items) = 0 then begin Writeln(\'No items to find maximum price.\'); Exit; end; maxPrice := 0; for i := 0 to High(items) do if items.Price > maxPrice then begin maxPrice := items.Price; k := i; end; Writeln(\'Maximum price: \', items[k].Price:0:2); writeln; WriteLn(\'Naimenovanie \', \' Material \', \' Kolichestvo \', \' Price\'); WriteLn(items[k].Name, \', \', items[k].Material, \', \', items[k].Quantity, \', \', items[k].Price:0:2); Assign(fileHandle, \'Rezultat.txt\'); Append(fileHandle); WriteLn(fileHandle, \'Naimenovanie \', \' Material \', \' Kolichestvo \', \' Price\'); WriteLn(fileHandle, items[k].Name, \', \', items[k].Material, \', \', items[k].Quantity, \', \', items[k].Price:0:2); Close(fileHandle); writeln; end; // Процедура для фильтрации товаров по материалу procedure FilterByMaterial(var items: ClothingArray; const materialFilter: string); var i: Integer; filteredItems: ClothingArray; fileHandle: TextFile; lineNumber: Integer; begin Assign(fileHandle, \'Rezultat.txt\'); Append(fileHandle); WriteLn(fileHandle, \'No \', \'Naimenovanie \', \' Material \', \' Kolichestvo \', \' Price\'); lineNumber := 1; for i := Low(items) to High(items) do begin if items.Material = materialFilter then begin WriteLn(\'-------------------------------------------------------\'); WriteLn(lineNumber, \': \', items.Name, \', \', items.Material, \', \', items.Quantity, \', \', items.Price:0:2); WriteLn(fileHandle, \'-------------------------------------------------------\'); WriteLn(fileHandle, lineNumber, \': \', items.Name, \', \', items.Material, \', \', items.Quantity, \', \', items.Price:0:2); Inc(lineNumber); end; end; Close(fileHandle); SetLength(filteredItems, 0); for i := Low(items) to High(items) do begin if items.Material = materialFilter then begin SetLength(filteredItems, Length(filteredItems) + 1); filteredItems[High(filteredItems)] := items; end; end; items := filteredItems; writeln; end; //процедура добавления нового элемента в массив записей procedure AddNewItem(var items: ClothingArray); var newItem: ClothingItem; begin writeln; Write(\'Vvedite naimenovanie: \'); Readln(newItem.Name); Write(\'Vvedite material: \'); Readln(newItem.Material); Write(\'Vvedite kolichestvo: \'); Readln(newItem.Quantity); Write(\'Vvedite price: \'); Readln(newItem.Price); SetLength(items, Length(items) + 1); items[High(items)] := newItem; WriteLn(\'Item added successfully:\'); WriteLn(\'Naimenovanie \', \' Material \', \' Kolichestvo \', \' Price\'); WriteLn(\'-------------------------------------------------------\'); WriteLn(newItem.Name, \', \', newItem.Material, \', \', newItem....
Характеристики домашнего задания
Преподаватели
Список файлов
