Создание структуры для хранения информации о "Продуктах"

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

Рубрика Программирование, компьютеры и кибернетика
Вид лабораторная работа
Язык русский
Дата добавления 08.12.2016
Размер файла 69,1 K

Отправить свою хорошую работу в базу знаний просто. Используйте форму, расположенную ниже

Студенты, аспиранты, молодые ученые, использующие базу знаний в своей учебе и работе, будут вам очень благодарны.

Размещено на http://www.allbest.ru/

Размещено на http://www.allbest.ru/

МИНИСТЕРСТВО ОБРАЗОВАНИЯ И НАУКИ РОССИЙСКОЙ ФЕДЕРАЦИИ

Федеральное государственное бюджетное образовательное учреждение высшего образования

Воронежский государственный архитектурно-строительный университет

Институт экономики, менеджмента и информационных технологий

Кафедра информационных технологий и автоматизированного

проектирования в строительстве

Отчет по лабораторной работе

Тема: Структура для хранения информации о "Продуктах"

По дисциплине: Основы программирование и алгоритмизации

Выполнил студент: Долгих Егор Олегович

Воронеж 2016

1. Постановка задачи

Условие задачи

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

Пояснение условия.

Пользователь вводит кол-во записей. Заполняет последовательно по условиям. На экран выводятся те записи, которые подходят по условию. При этом, в созданном заранее файле, происходит запись всей информации (после ее можно просмотреть).

Исходные данные:

struct_produkt - структурный массив

i- номер элемента массива

N- кол-во элементов массива

Nameprodukta - наименование продукта, вводится на англ. раскладке

dataproizvodstva- дата производства, вводится в форме хх/хх/хх

srokgodno- срок годности

price- цена nomersrii- номер серии

Алгоритм решения:

Пользователь вводит кол-во записей. Затем заполняет записи информацией. Программа создает файл для записи этой информации и записывает ее туда. После выводит наименование продукта, чей срок годности меньше 5 дней.

Результат:

Записи сохраняются в файл. На экран выводится необходимая информация, подходящая по условию.

Контрольный пример:

Вводим: молоко (годность 4 дня), яблоки (годность 23 дня), яйца (годность 2 дня). В файл запишется информация, которую введет пользователь. На экран вынесутся продукты: молоко и яйца.

2. Описание алгоритма решения

Пошаговая детализация:

Шаг 1. Объявление переменных

char fname[20] = "bazapoductov.txt"; // имя создаваемого файла

FILE *out;

int i,N; // переменные

struct _produkt { // структурный массив

char nameprodukta[22]; // переменная наименования продукции

char dataproizvodstva[20]; // дата производства

int srokgodno; // срок годности, указанный в днях (сколько осталось)

float price; // цена продукции

int nomerserii; // серия выпуска(??)

};

struct _produkt produkt[100];

программа файл алгоритм информация

Шаг 2. Приглашение к вводу количества записей

printf("Сколько вы хотите ввести записей?\n (Введите число)\n"); // спрашивает у пользователя кол-во вводимых записей

scanf("%d", &N);

Шаг 3. Цикл заполнения структуры записей

for (i = 0; i < N; i++) // цикл, который будет предлагать пользователю вводить определенную информацию (будет происходить пока i меньше кол-ва желаемых пользователя

{

printf("Введите название продукта: \n");

scanf( "%s", produkt[i].nameprodukta);

printf("Введите дату производства: \n");

scanf( "%s", produkt[i].dataproizvodstva);

printf("Введите срок годности\n (сколько осталось в днях?): \n");

scanf( "%d", &produkt[i].srokgodno);

printf("Введите стоимость товара: \n");

scanf( "%f", &produkt[i].price);

printf("Введите № серии: \n");

scanf( "%d", &produkt[i].nomerserii);

}

Шаг 4. Создание необходимого файла и проверка его создания.

if ((out = fopen(fname, "wt")) == NULL) // цикл для создания файла, и вывод ошибки, если файл не сможет создаться

{

printf("Ошибка открытия для записи ");

}

Шаг 5. Запись необходимой информации в файл с помощью цикла

fprintf(out, "--Информация о продуктах--\n\n"); // записывается в файл

for (i = 0; i < N; i++) // цикл для сохранения и записи в файл

{

setlocale(LC_ALL, "RUS");

fprintf(out, "Наименование: %s \n", produkt[i].nameprodukta);

fprintf(out, "Дата производства: %s \n", produkt[i].dataproizvodstva);

fprintf(out, "Срок годности: %d \n", produkt[i].srokgodno);

fprintf(out, "Цена: %.3f \n", produkt[i].price);

fprintf(out, "№ серии продукта: %d \n\n", produkt[i].nomerserii);

}

fclose(out); // закрытия потока файла

Шаг 6. 2 вложенных цикла в цикле, который проверяет все записи, внутри которого необходимое условие, после выполнения которого будет выводится необходимая информация на консоли. Если необходимое условие ни разу не выполняется, то выводится сообщение об этом. for (i = 0; i < N; i++) {

if (produkt[i].srokgodno < 5)

{

printf("---------------------------------------------------------------\n\n");

printf("--Информация о продукте, срок годности которого меньше 5 дней--\n\n"); // вывод информации на поставленный вопрос

printf("---------------------------------------------------------------\n\n");

for (i = 0; i < N; i++) // цикл перебирает записи введенные

{

for (i = 0; i < N; i++) // внутри верхнего цикла, есть этот, который будет выводить наименование продукта, если его срок годности меньше 5 дней

{

produkt[i].srokgodno < 5 ? // использована тернарная условная операция

printf("Наименование: %s \n", produkt[i].nameprodukta) :

printf(" \n");

}

}

}

if (produkt[i].srokgodno > 5)

{

printf("Продукции срока годности меньше 5 дней нет \n");// сообщение, если не будет продукции, подходящей по условию

}

}

Шаг 7. Задержка консоли

system("pause");

3. Код с комментариями

#include <stdio.h> // библиотеки

#include <locale.h>

#include <stdlib.h>

#include <math.h>

#include <conio.h>

int main(void) {

char fname[20] = "bazapoductov.txt"; // имя создаваемого файла

FILE *out;

int i,N; // переменные

struct _produkt { // структурный массив

char nameprodukta[22]; // переменная наименования продукции

char dataproizvodstva[20]; // дата производства

int srokgodno; // срок годности, указанный в днях ( сколько осталось)

float price; // цена продукции

int nomerserii; // серия выпуска(??)

};

struct _produkt produkt[100]; // записи могут формироваться до определенного "потолка" (в нашем случаи 100)

setlocale(LC_ALL, "RUS"); // локализация

printf("Программа заполняет структуру: ""Продукты""\n"); // описание функционала прог-мы

printf("Сколько вы хотите ввести записей?\n (Введите число)\n"); // спрашивает у пользователя кол-во вводимых записей

scanf("%d", &N); // считывания числа с консоли

for (i = 0; i < N; i++) // цикл, который будет предлагать пользователю вводить определенную информацию (будет происходить пока i меньше кол-ва желаемых пользователя

{printf("Введите название продукта: \n");

scanf( "%s", produkt[i].nameprodukta);

printf("Введите дату производства: \n");

scanf( "%s", produkt[i].dataproizvodstva);

printf("Введите срок годности\n (сколько осталось в днях?): \n");

scanf( "%d", &produkt[i].srokgodno);

printf("Введите стоимость товара: \n");

scanf( "%f", &produkt[i].price);

printf("Введите № серии: \n");

scanf( "%d", &produkt[i].nomerserii);

}

if ((out = fopen(fname, "wt")) == NULL) // цикл для создания файла, и вывод ошибки, если файл не сможет создаться

{

printf("Ошибка открытия для записи ");

}

fprintf(out, "--Информация о продуктах--\n\n"); // записывается в файл

for (i = 0; i < N; i++) // цикл для сохранения и записи в файл

{

setlocale(LC_ALL, "RUS");

fprintf(out, "Наименование: %s \n", produkt[i].nameprodukta);

fprintf(out, "Дата производства: %s \n", produkt[i].dataproizvodstva);

fprintf(out, "Срок годности: %d \n", produkt[i].srokgodno);

fprintf(out, "Цена: %.3f \n", produkt[i].price);

fprintf(out, "№ серии продукта: %d \n\n", produkt[i].nomerserii);

}

fclose(out); // закрытия потока файла

for (i = 0; i < N; i++) {

if (produkt[i].srokgodno < 5)

{

printf("---------------------------------------------------------------\n\n");

printf("--Информация о продукте, срок годности которого меньше 5 дней--\n\n"); // вывод информации на поставленный вопрос

printf("---------------------------------------------------------------\n\n");

for (i = 0; i < N; i++) // цикл перебирает записи введенные

{

for (i = 0; i < N; i++) // внутри верхнего цикла, есть этот, который будет выводить наименование продкута, если его срок годности меньше 5 дней

{

produkt[i].srokgodno < 5 ? // использована тернарная условная операция

printf("Наименование: %s \n", produkt[i].nameprodukta) :

printf(" \n");

}

}

}

if (produkt[i].srokgodno > 5)

{

printf("Продукции срока годности меньше 5 дней нет \n");

} // сообщение, если не будет продукции,подходящей по условию

}

Скриншот контрольных примеров

Рис. 1 Контрольный пример 1:

Рис. 2

Размещено на Allbest.ru

...

Подобные документы

  • Написание программы для работы с клиентами средствами языка Delphi, которая предусматривает ввод, редактирование и удаление информации. Разработка алгоритма решения задачи, описание переменных, вспомогательных процедур, входных и выходных данных.

    курсовая работа [355,7 K], добавлен 21.09.2010

  • Разработка программы, которая создает в отдельном потоке случайный массив целых чисел в заданном диапазоне и выводит на экран эти числа. Описание общего алгоритма, интерфейс программы. Методы решения и алгоритмы задач, реализуемых каждым потоком.

    курсовая работа [372,6 K], добавлен 17.04.2014

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

    курсовая работа [529,7 K], добавлен 19.12.2010

  • Разработка программы на языке VBA, которая вводит исходные данные, выполняет расчеты и выводит на экран заданную информацию. Типы блок-схем и их использование при написании программы. Описание входных данных и результат вычислений, листинг программы.

    курсовая работа [680,3 K], добавлен 03.08.2009

  • Анализ различных способов хранения информации: одномерный массив, типизированный файл и динамический список. Сортировка только положительных чисел. Словесное описание алгоритма. Блок-схема процедуры обработки данных с помощью одномерного массива.

    контрольная работа [319,7 K], добавлен 29.05.2014

  • Запись в файл и чтение в С++. Общее понятие о структуре. Многомерные и двумерные массивы. Логика работы программы. Схема алгоритма функции Main. Определение суммарного заработка, сотрудника с наибольшей зарплатой. Создание новой базы, листинг программы.

    курсовая работа [275,7 K], добавлен 07.10.2012

  • Создание программы на языке C++, обеспечивающей ввод исходной информации, ее обработку, реализацию алгоритма имитации процесса и выдачу необходимой информации. Разработка имитационной модели очереди с разнотипными заявками (модели работы порта).

    курсовая работа [563,8 K], добавлен 13.09.2012

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

    курсовая работа [1,5 M], добавлен 24.06.2015

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

    контрольная работа [21,5 K], добавлен 15.05.2013

  • Программа для расчета полинома. Описание и схема алгоритма, распределение памяти под код программы, под данные и стек. Схема хранения операций ввода-вывода и их подключение. Изменения стека во время прогона программы. Листинг программы с комментариями.

    курсовая работа [59,0 K], добавлен 02.12.2009

  • Принципы создания последовательных и файлов произвольного доступа. Формирование файлов, в одном из которых помещены фамилии пяти знакомых, а в другой номера их телефонов. Составление программы, которая по фамилии знакомого определяет номер его телефона.

    контрольная работа [17,9 K], добавлен 25.12.2010

  • Описание разрабатываемой программы с точки зрения пользователя и программиста. Поэтапная разработка программной системы. Создание базы данных в Access. Разработка структуры классов. Создание структуры для хранения данных. Проектирование интерфейса.

    курсовая работа [1,4 M], добавлен 07.08.2013

  • Характеристика программы на языке VBA, которая вводит исходные данные, выполняет расчеты и выводит результаты на экран. Описание переменных в программе, ее блок-схема и алгоритм работы. Листинг программы. Описание входных данных и результат вычислений.

    курсовая работа [721,4 K], добавлен 10.11.2010

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

    реферат [14,5 K], добавлен 06.12.2011

  • Решение задачи с помощью программы MS. Использование интерфейса для работы с электронной таблицей. Разработка и создание базы данных для хранения и обработки информации. Оформление пояснительной записки с помощью текстового редактора Microsoft Word.

    курсовая работа [2,7 M], добавлен 13.01.2015

  • Программа на языке VBA, которая выводит исходные данные на экран и выполняет расчеты и предназначена для учета на складе мастерской индивидуального пошива. Описание переменных и алгоритма программы. Листинг программы, примеры произведенных расчетов.

    реферат [25,4 K], добавлен 10.12.2010

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

    дипломная работа [2,4 M], добавлен 29.06.2014

  • Описание алгоритма решения задачи графическим способом. Ввод элементов исходного массива в цикле. Нахождение определённых элементов. Сортировка элементов с помощью пузырькового метода. Разработка программы на языке Pascal. Поиск наибольшего элемента.

    лабораторная работа [123,5 K], добавлен 15.01.2014

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

    курсовая работа [68,9 K], добавлен 09.04.2012

  • Изучение особенностей растровых и векторных графических редакторов. Создание графического редактора: выбор языка программирования, разработка структуры программы и алгоритма работы. Описание интерфейса программы. Руководство программиста и пользователя.

    курсовая работа [1,3 M], добавлен 28.07.2013

Работы в архивах красиво оформлены согласно требованиям ВУЗов и содержат рисунки, диаграммы, формулы и т.д.
PPT, PPTX и PDF-файлы представлены только в архивах.
Рекомендуем скачать работу.