0 / 0 / 0
Регистрация: 27.11.2021
Сообщений: 23

Организовать хранение и редактирование структуры данных автосалона в файле

06.06.2023, 11:23. Показов 1172. Ответов 3
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
1)Организовать хранение и редактирование структуры данных автосалона в файле.
2)Реализовать ввод значений (заполнение полей структуры) и запись их в файл
Структура автосалона:
- марка авто
- модель авто
- год выпуска
- цвет кузова
- тип кузова
- объем двигателя
- тип двигателя
3)Реализовать вывод значений из файла по запросу: все автомобиль определенной марки

Помогите пожалуйста доделать программу

Python
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
class Car:
    def init(self, brand="", model="", year="", color="", body_type="", engine_volume="", engine_type=""):
        self.brand = brand
        self.model = model
        self.year = year
        self.color = color
        self.body_type = body_type
        self.engine_volume = engine_volume
        self.engine_type = engine_type
 
    def input(self):
        self.brand = input("Brand: ")
        self.model = input("Model: ")
        self.year = input("Year: ")
        self.color = input("Color: ")
        self.body_type = input("Body Type: ")
        self.engine_volume = input("Engine Volume: ")
        self.engine_type = input("Engine Type: ")
 
class CarDealer:
    def init(self, file_name):
        self.file_name = file_name
 
    def add_car(self, car):
        with open(self.file_name, 'a') as f:
            f.write(f"{car.brand},{car.model},{car.year},{car.color},{car.body_type},{car.engine_volume},{car.engine_type}\n")
 
    def get_cars_by_brand(self, brand):
        cars = []
        with open(self.file_name, 'r') as f:
            for line in f:
                car_data = line.strip().split(',')
                if car_data[0] == brand:
                    car = Car(*car_data)
                    cars.append(car)
        return cars
0
Лучшие ответы (1)
Programming
Эксперт
39485 / 9562 / 3019
Регистрация: 12.04.2006
Сообщений: 41,671
Блог
06.06.2023, 11:23
Ответы с готовыми решениями:

Организовать хранение данных в файле в следущую структуру, фио, дата, время
Задание Организовать хранение данных в файле в следущую структуру, фио, дата, время 1) Написать процедуру считывания этого файла 2)...

Организовать хранение в файле нескольких записей о ваших друзьях
2. Напишите программу, организующую хранение в файле нескольких (до 5) записей о ваших друзьях.(произвольных=) ). Организуйте вывод...

Хранение файлов и файловый менеджер в файле(листе) Excel, Бинарное хранение данных в CustomProperty листа Excel
Всем привет! Хочу поделится наработками, которые получились в процессе реализации своих задач. Отдельная благодарность! Андрей VG, за...

3
 Аватар для TimutGin
515 / 339 / 146
Регистрация: 16.02.2021
Сообщений: 626
06.06.2023, 12:50
Лучший ответ Сообщение было отмечено TATSIANA71B как решение

Решение

Python
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
class Car:
    def __init__(self, brand="", model="", year="", color="", body_type="", engine_volume="", engine_type=""):
        self.brand = brand
        self.model = model
        self.year = year
        self.color = color
        self.body_type = body_type
        self.engine_volume = engine_volume
        self.engine_type = engine_type
 
    def input(self):
        print("Введите характеристики авто: ")
        self.brand = input("Brand: ")
        self.model = input("Model: ")
        self.year = input("Year: ")
        self.color = input("Color: ")
        self.body_type = input("Body Type: ")
        self.engine_volume = input("Engine Volume: ")
        self.engine_type = input("Engine Type: ")
        print(f"Заполнено: {self.brand},{self.model},{self.year},{self.color},{self.body_type},{self.engine_volume},{self.engine_type}\n")
 
class CarDealer:
    def __init__(self, file_name):
        self.file_name = file_name
 
    def add_car(self, car):
        
        with open(self.file_name, 'a') as f:
            f.write(f"{car.brand},{car.model},{car.year},{car.color},{car.body_type},{car.engine_volume},{car.engine_type}\n")
            print(f"Сохранено в файл: {self.file_name}")
 
    def get_cars_by_brand(self, brand):
        cars = []
        with open(self.file_name, 'r') as f:
            for line in f:
                car_data = line.strip().split(',')
                if car_data[0] == brand:
                    cars.append(line)
        return cars
 
 
if __name__ == '__main__':
    new_car = Car()
    new_car.input()
    dealer = CarDealer("input.txt")
    dealer.add_car(new_car)
    
    print(*dealer.get_cars_by_brand(input("Поиск по бренду: ")))
1
 Аватар для Semen-Semenich
5237 / 3481 / 1176
Регистрация: 21.03.2016
Сообщений: 8,310
06.06.2023, 21:11
TATSIANA71B, TimutGin, зачем тут класс в ваших случаях??? то же самое
Python
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
def input_():
        print("Введите характеристики авто: ")
        brand = input("Brand: ")
        model = input("Model: ")
        year = input("Year: ")
        color = input("Color: ")
        body_type = input("Body Type: ")
        engine_volume = input("Engine Volume: ")
        engine_type = input("Engine Type: ")
        print(f"Заполнено: {brand},{model},{year},{color},{body_type},{engine_volume},{engine_type}\n")
        return f'{brand},{model},{year},{color},{body_type},{engine_volume},{engine_type}'
    
def add_car():
        with open(file_name, 'a') as f:
            f.write(f"{input_()}\n")
            print(f"Сохранено в файл: {file_name}")
            
def get_cars_by_brand(brand):
        with open(file_name, 'r') as f:
            for line in f:
                car_data = line.strip().split(',')
                if car_data[0] == brand:            
                    return line
                
        
file_name = "input.txt"
add_car()
brand = input('brand: ')
print(get_cars_by_brand(brand))
вы не понимаете концепцию классов а еще откройте для себя модуль pickle

Python
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
import pickle
 
class Car:
    def __init__(self, brand, model, year, color, body_type, engine_volume, engine_type):
        self.brand = brand
        self.model = model
        self.year = year
        self.color = color
        self.body_type = body_type
        self.engine_volume = engine_volume
        self.engine_type = engine_type
        
    def get_brand(self):
        return self.brand
    
    def __str__(self):
        return f'''brand - {self.brand}
model - {self.model}
year - {self.year}
color - {self.color}
body_type - {self.body_type}
engine_volume - {self.engine_volume}
engine_type - {self.engine_type}\n'''
                
class CarDealer:
    def __init__(self):
        self.list_car = []
                
    def add_car(self):
        print("Введите характеристики авто: ")
        vehicle_data = [ input(f'{header}: ') for header in 'brand model year color body_type engine_volume engine_type'.split()]
        car = Car(*vehicle_data)
        print(f'Заполнено: {car}')
        self.list_car.append(car)
        
    def get_cars_by_brand(self, brand):
        for car in self.list_car:
            if car.get_brand() == brand:
                print(car)
 
def extract_data(file_name):
    try:
        with open(file_name, 'rb') as f:
            dealer = pickle.load(f)
    except:
        dealer = CarDealer()
    return dealer
 
def data_dump(dealer, file_name):
    with open(file_name, 'wb') as f:
        pickle.dump(dealer, f)
    print('Сохранено')
 
        
file_name =  "input.txt"            
dealer = extract_data(file_name)
while True:
    option = input('Добавить данные - 1, просмотреть - 2, выход - 0: ')
    if option == '1':
        dealer.add_car()
    elif option == '2':
        dealer.get_cars_by_brand(input('brand: '))
    elif option == '0':
        data_dump(dealer, file_name)
        break
1
 Аватар для TimutGin
515 / 339 / 146
Регистрация: 16.02.2021
Сообщений: 626
06.06.2023, 23:50
Цитата Сообщение от Semen-Semenich Посмотреть сообщение
зачем тут класс в ваших случаях???
Почему нет?Попросили дописать - просто дописал код с учётом того-что это отдельный модуль программы,
которых может быть десятки в подобной программе.Если конечно это не просто задачка из курса.

Цитата Сообщение от Semen-Semenich Посмотреть сообщение
зачем тут класс в ваших случаях???
а зачем функции?? можно так
Python
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
file_name = 'input.txt'
flag = input('1 - Добавить авто, 2 - Поиск по бренду: ')
run = 1
while run:
    if flag == '1':
        print("Введите характеристики авто: ")
        brand,model,year = input("Brand: "),input("Model: "),input("Year: ")
        color,body_type,engine_volume,engine_type = input("Color: "),input("Body Type: "),input("Engine Volume: "),input("Engine Type: ")
        print(f"Заполнено: {brand},{model},{year},{color},{body_type},{engine_volume},{engine_type}\n")
        with open(file_name, 'a') as f:
            f.write(f"{brand},{model},{year},{color},{body_type},{engine_volume},{engine_type}\n")
            print(f"Сохранено в файл: {file_name}")
    elif flag == '2':
        brand = input('Введите название бренда: ')
        with open(file_name, 'r') as f:
            for line in f:
                car_data = line.strip().split(',')
                if car_data[0] == brand:
                    print(line)
    else: print("Нет такого варианта!")
 
    flag = input('1 - Добавить авто, 2 - Поиск по бренду: ')
Цитата Сообщение от Semen-Semenich Посмотреть сообщение
а еще откройте для себя модуль pickle
Спасибо за совет, как раз начал изучать работу с файлами.
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
inter-admin
Эксперт
29715 / 6470 / 2152
Регистрация: 06.03.2009
Сообщений: 28,500
Блог
06.06.2023, 23:50
Помогаю со студенческими работами здесь

Как правильно организовать хранение данных?
Добрый день! Прошу совета. Есть база Mysql. Есть класс типа Машина В него входит несколько подклассов (Модель, Цвет, Параметры). ...

Как лучше организовать хранение данных?
Всем доброго времени суток. Есть необходимость хранения в базе 500 чисел. Числа поступают в большом количестве, но нужны только 500...

Хранение данных (добавление, редактирование, поиск, удаление) до 500МБ
Сейчас какой то конкретной задачи нет, просто стало интересно, подскажите, вот допустим есть какая то программа для учета чего либо,...

Организовать хранение набора данных с помощью массива структур
Организовать хранение набора данных с помощью массива структур. Написать метод для заполнения массива данными. Написать метод для...

Как организовать хранение увеличивающихся данных - список списков?
Хочу написать программу, решающую пятнашки. В сети нашёл исходники аж 2 шт, оба работают неудовлетворительно, а именно - виснут при...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
4
Ответ Создать тему
Опции темы

Новые блоги и статьи
Валидация и контроль данных табличной части документа перед записью
Maks 22.04.2026
Алгоритм из решения ниже реализован на примере нетипового документа, разработанного в КА2. Задача: контроль и валидация данных табличной части документа перед записью с учетом регламента компании. . .
Отчёт о затраченных материалах за определенный период с макетом печатной формы
Maks 21.04.2026
Отчёт из решения ниже размещён в конфигурации КА2. Задача: разработка отчёта по затраченным материалам за определённый период, с возможностью вывода печатной формы отчёта с шапкой и подвалом. В. . .
Отчёт о спецтехнике находящейся в ремонте
Maks 20.04.2026
Отчёт из решения ниже размещен в конфигурации КА2. Задача: отобразить спецтехнику, которая на данный момент находится в ремонте. Есть нетиповой документ "Заявка на ремонт спецтехники" который. . .
Памятка для бота и "визитка" для читателей "Semantic Universe Layer (Слой семантической вселенной)"
Hrethgir 19.04.2026
Сгенерировано для краткого описания по случаю сборки и компиляции скелета серверного приложения. И пусть после этого скажут, что статьи сгенерированные AI - туфта и не интересно. И это не реклама -. . .
Запрет удаления строк ТЧ документа при определённом условии
Maks 19.04.2026
Алгоритм из решения ниже реализован на примере нетипового документа "Аккумуляторы", разработанного в конфигурации КА2. У данного документа есть ТЧ, в которой в зависимости от прав доступа. . .
Модель заражения группы наркоманов
alhaos 17.04.2026
Условия задачи сформулированы тут Суть: - Группа наркоманов из 10 человек. - Только один инфицирован ВИЧ. - Колются одной иглой. - Колются раз в день. - Колются последовательно через. . .
Мысли в слух. Про "навсегда".
kumehtar 16.04.2026
Подумалось тут, что наверное очень глупо использовать во всяких своих установках понятие "навсегда". Это очень сильное понятие, и я только начинаю понимать край его смысла, не смотря на то что давно. . .
My Business CRM
MaGz GoLd 16.04.2026
Всем привет, недавно возникла потребность создать CRM, для личных нужд. Собственно программа предоставляет из себя базу данных клиентов, в которой можно фиксировать звонки, стадии сделки, а также. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru