Предмет: Информатика, автор: natada47714

Составить программу,которая описывает массив структур-телефонный справочник одноклассников,в котором будут отражены ФИ,адрес,телефон,хобби
Пусть в этом массиве отражены 10 одноклассников
Программа должна выполнять:ввод данных,поиск номеров телефона по фи,подсчет и вывод списком одноклассников по хобби(например:хобби игры-вася петров,ива иванов)


natada47714: на питоне
merkkaa: ввод данных, я как понял это добавление новых значений в словарь?
natada47714: Да
natada47714: Как телефонная книга, вроде, должно работать, то есть, if a[i] = ...., то там вывод имени
merkkaa: с использованием ооп?
natada47714: Да
natada47714: и с помощью счетчика любого, тип k=0 подсчитать колво хобби
natada47714: и какое хобби к кому относиться, тип
natada47714: Если поможешь, буду очень признателен

Ответы

Автор ответа: merkkaa
1

в итоге. Пол часа бился с выводом хобби и криво косо, но сделал.

На всякий кину в pastebin: https://pastebin.com/QwZRWA7b

По задания мне проверки делать я как понял не надо было.

Если что, пиши. А так сам на свой вкус поправить можешь.

10 имен лень делать было, так что думаю сам уже добавишь)

class Program:

   def __init__(self):

       self.massiv = {0: ["Кут Артём", "д11 Ул.Ленина", "89045161712", "Рисование"],

         1: ["Бояр Андрей", "д22 Ул.Пушкина", "89718121712", "Рисование"],

         2: ["Прос Ира", "д11 Ул.Ленина", "89045561712", "Спорт"],}

   def menu(self):

       print("\n1) Добавить нового одноклассника в список\n2)найти ФИ по номеру телефона\n3)Вывод хобби одноклассниокв\n")

       a = input(": ")

       if a == "1":

           Program.Create(self)

       elif a == "2":

           Program.findFI(self)

       elif a == "3":

           Program.findHobby(self)

   def Create(self):

       while 1:

           if input(("1) Добавить нового одноклассника в список\n2) Назад\n: ")) == "1":

               name = input("Введите имя: ")

               addres = input("Введите Адрес: ")

               phone = input("Введите номер телефона: ")

               hobby = input("Введите хобби")

               self.massiv[len(self.massiv)+1] = [name,addres,phone,hobby]

           else:

               print(self.massiv)

               Program.menu(self)

   def findFI(self):

       print("Введите 0, для возвращения в меню")

       findPhone = input("Введите номер телефона: ")

       if findPhone != 0:

           for i in self.massiv:

               if self.massiv[i][2] == findPhone:

                   print(self.massiv[i][0])

                   Program.menu(self)

       else:

           Program.menu(self)

       print("\nНе найдено\n")

       Program.menu(self)

   def findHobby(self):

       countHobby = 0

       membHobby = {0: 0}

       addmembHobby = []

       for i in self.massiv:

           for ii in membHobby:

               if self.massiv[i][3] != ii:

                   addmembHobby.append(self.massiv[i][3])

       for i in addmembHobby:  

           membHobby[i] = []

       del membHobby[0]

       for i in membHobby:

           for ii in self.massiv:

               if self.massiv[ii][3] == i:

                   membHobby[i].append(self.massiv[ii][0])

       

       print(membHobby)

       Program.menu(self)

           

a = Program()

a.menu()

   

Похожие вопросы
Предмет: Математика, автор: natali46691