Форум программистов, компьютерный форум, киберфорум
Python для начинающих
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.50/4: Рейтинг темы: голосов - 4, средняя оценка - 4.50
0 / 0 / 0
Регистрация: 27.11.2021
Сообщений: 23

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

06.06.2023, 11:23. Показов 1107. Ответов 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
5222 / 3469 / 1173
Регистрация: 21.03.2016
Сообщений: 8,295
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
Ответ Создать тему
Новые блоги и статьи
Первый деплой
lagorue 16.01.2026
Не спеша развернул своё 1ое приложение в kubernetes. А дальше мне интересно создать 1фронтэнд приложения и 2 бэкэнд приложения развернуть 2 деплоя в кубере получится 2 сервиса и что-бы они. . .
Расчёт переходных процессов в цепи постоянного тока
igorrr37 16.01.2026
/ * Дана цепь постоянного тока с R, L, C, k(ключ), U, E, J. Программа составляет систему уравнений по 1 и 2 законам Кирхгофа, решает её и находит токи на L и напряжения на C в установ. режимах до и. . .
Восстановить юзерскрипты Greasemonkey из бэкапа браузера
damix 15.01.2026
Если восстановить из бэкапа профиль Firefox после переустановки винды, то список юзерскриптов в Greasemonkey будет пустым. Но восстановить их можно так. Для этого понадобится консольная утилита. . .
Изучаю kubernetes
lagorue 13.01.2026
А пригодятся-ли мне знания kubernetes в России?
Сукцессия микоризы: основная теория в виде двух уравнений.
anaschu 11.01.2026
https:/ / rutube. ru/ video/ 7a537f578d808e67a3c6fd818a44a5c4/
WordPad для Windows 11
Jel 10.01.2026
WordPad для Windows 11 — это приложение, которое восстанавливает классический текстовый редактор WordPad в операционной системе Windows 11. После того как Microsoft исключила WordPad из. . .
Classic Notepad for Windows 11
Jel 10.01.2026
Old Classic Notepad for Windows 11 Приложение для Windows 11, позволяющее пользователям вернуть классическую версию текстового редактора «Блокнот» из Windows 10. Программа предоставляет более. . .
Почему дизайн решает?
Neotwalker 09.01.2026
В современном мире, где конкуренция за внимание потребителя достигла пика, дизайн становится мощным инструментом для успеха бренда. Это не просто красивый внешний вид продукта или сайта — это. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru