Добавил:
Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
лабы - 2 сем - Калмычков / курсач по проге - 2 сем (Калмычков).docx
Скачиваний:
0
Добавлен:
09.07.2025
Размер:
649.8 Кб
Скачать

Анализ задания

Для каждого перечня названий будет создан отдельный список с порядковым номером и именем элемента, таким образом, каждому названию будет присвоено число. В списке деталей каждой детали помимо номера будут присвоены дополнительные значения (вес, цена, запас на складе) и номер фирмы. Сведения о разных автомобилях представляют набор чисел, где каждое число относится к элементу нужного списка. Чтобы связать автомобили с деталями, нужно пройтись по файлу со сведениями, собрать нужный набор информации для каждого автомобиля (полный вес и стоимость автомобиля, а также количество машин, которые можно изготовить) и привязать его к соответствующей модели в списке автомобилей. Для решения 1, 2 и 3 вопросов этого будет достаточно. Чтобы ответить на 4 вопрос, во время прохождения по файлу со сведениями нужно сравнить конечный вес нового автомобиля с предыдущим весом и выделять самый легкий и тяжелый вес.

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

Автомобили:

1. Volvo

2. Toyota

3. BMV

Фирмы:

1. Autolite

2. Bosch

3. Dayso

Детали:

1. pin, 0.03кг, 256 руб., 1 фирма, 30000 шт.

2. wheel, 20 кг, 3000 руб., 2 фирма, 2400 шт.

3. belt, 0.5 кг., 1500 руб., 3 фирма, 20000 шт.

4. spring, 0.06 кг., 300 руб., 1 фирма, 100 шт.

5. screw, 0.33 кг., 500 руб., 2 фирма, 3490 шт.

Сведения об автомобилях:

Для 1.Volvo

1 1 30

1 2 4

1 3 5

1 4 20

1 5 15

Для 2.Toyota

2 1 35

2 2 4

2 5 2

Для 3.BMV

3 1 4

3 3 25

РЕЗУЛЬТАТ:

Номер: 1

Марка автомобиля: Volvo

Вес: 89.55 кг

Стоимость: 40680 рублей

Возможное количество: 5

Номер: 2

Марка автомобиля: Toyota

Вес: 81.71 кг

Стоимость: 21960 рублей

Возможное количество: 600

Номер: 3

Марка автомобиля: BMV

Вес: 12.62 кг

Стоимость: 38524 рублей

Возможное количество: 800

Самая тяжелая модель: Volvo 89.55 кг

Самая легкая модель: BMV 12.62 кг

Пользовательские типы

Название

Поля структуры

Тип

Назначение

Struct StrL

massiv

char

Массив символов

len

int

Длина массива

weight

float

Вес детали

cena

int

Цена детали

sklad

int

Запас летали на складе

Struct ListNodeH

podstroka

StrL

Подстрока

*next

ListNodeH

Указатель на следующий

эдемент горизонтального списка

Struct ListNodeV

f_H

Formular

Подстрока

*next

ListNodeH

Указатель на следующий

эдемент горизонтального списка

ReadV

bool

Считывание горизонтального списка

Print1

void

Вывод горизонтального списка

Struct FormularH

*head

ListNodeH

Указатель на головной элемент

*cur

ListNodeH

Указатель на текущий элемент

*last

ListNodeH

Указатель на последний элемент

*prev

ListNodeH

Указатель на предыдущий элемент

Struct FormularV

*head

ListNodeV

Указатель на головной элемент

*cur

ListNodeV

Указатель на текущий элемент

*last

ListNodeV

Указатель на последний элемент

*prev

ListNodeV

Указатель на предыдущий элемент

Формальная постановки задачи

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

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

Этапы трансляции

Особенности решения задачи на компьютере, ввод и вывод

Для реализации задачи использовалась библиотека iostream и fstream. Ввод входных файлов осуществляется из файлов cars.txt, details.txt, firms.txt, info.txt. В файлах записаны названия, номера и числа, которые считываются в списки. Для списков автомобилей и фирм в файле представлены строки с номерами и названиями. Для списка с деталями в файле даны строки с несколькими значениями типа int, название из буквенных символов char и значение типа float (вес).

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