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

Как сделать класс телефонной книги?

20.08.2013, 23:18. Показов 6962. Ответов 4
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Здравствуйте, несколько дней назад начал изучать питон и столкнулся с сложностью в создании классов. Есть программа телефонная книга которая позволяет вводить и выводить информацию об абонентах, удалять её и производить поиск по имени и телефону. Каким образом эту программу реализовать на основе одного класса методами которого будут: добавление абонента, удаление абонента, вывод всех абонентов, поиск по имени и поиск по телефону?

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
book = {'Ваня': 4098, 'Коля': 4139, 'Петя': 1489,}
e = "test"
x = 0
control = 0
while control == 0:
    a = int(input("""0 - новый контакт
1 - просмотр книги
2 - поиск по имени
3 - поиск по номеру
4 - удаление записи    """))
    if a == 1:
        b = book.keys()
        b = list(b)
        b.sort()
        for key in b:
            print(key +'-' +str(book[key]))
 
    elif a == 0:
        e = input("""Введите имя    """)
        x = int(input("""Введите номер    """))
        book[e]= x
    elif a == 2:
        e = input("""Введите имя    """)
        if e in book:
            print(book[e])
        else:
            print("Контакта не существует")
    elif a == 3:
        x = int(input("""Введите номер    """))
        mirror = dict(zip(book.values(), book.keys()))
        if x in mirror:
            print(mirror[x])
        else:
            print("Контакта не существует")
    elif a == 4:
        e = input("""Введите имя    """)
        if e in book:
            del book[e]
        else:
            print("Такой записи не существует")
    else:
        print("ERROR")
        
        break
0
cpp_developer
Эксперт
20123 / 5690 / 1417
Регистрация: 09.04.2010
Сообщений: 22,546
Блог
20.08.2013, 23:18
Ответы с готовыми решениями:

Создать класс, описывающий абонента телефонной книги в сотовом телефоне. C++
Создать класс, описывающий абонента телефонной книги в сотовом телефоне. Свойства: порядковый номер, Фамилия, Имя, номер телефона....

Создайте файл телефонной книги. Найдите номер телефонной станции (первые две цифры телефонного номера)
Создайте файл телефонной книги. Найдите номер телефонной станции (первые две цифры телефонного номера), у которой наибольшее количество...

Мне нужно было сделать класс "Домашняя библиотека". Там должны быть возможности:1) Поиска книги 2) Добавления книги 3) У
Всем привет! Мне нужно было сделать класс "Домашняя библиотека". Там должны быть возможности: 1) Поиска книги 2) Добавления книги 3)...

4
100 / 85 / 5
Регистрация: 06.05.2013
Сообщений: 242
21.08.2013, 01:18
В чем у тебя сложность, что конкретно не знаешь как сделать? Спрашивай постараюсь ответить.
0
4866 / 3288 / 468
Регистрация: 10.12.2008
Сообщений: 10,570
21.08.2013, 08:52
Цитата Сообщение от kirtnt Посмотреть сообщение
Каким образом эту программу реализовать на основе одного класса
там нужны два исполнителя: меню и книга

Python
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
class PhoneBook:
    def __init__(self):
        pass
    def add_person(self, *args):
        pass
    def update_person(self, n, *args):
        pass
    def delete_person(self, n):
        pass
    def get_person(self, n):
        pass
    def search_person(self, *args):
        pass
    def get_all_persons(self):
        pass
    def save(self, fname):
        pass
    def load(self, fname):
        pass
1
0 / 0 / 0
Регистрация: 30.10.2012
Сообщений: 5
21.08.2013, 09:31  [ТС]
Но в классе необходимо реализовать только саму книгу, меню отдельно от класса.

Добавлено через 43 секунды
Проблема заключается в том, что саму программу без классов реализовать сумел, а теперь не понимаю как саму книгу сделать в одном классе.
0
4866 / 3288 / 468
Регистрация: 10.12.2008
Сообщений: 10,570
21.08.2013, 09:46
Цитата Сообщение от kirtnt Посмотреть сообщение
а теперь не понимаю как саму книгу сделать в одном классе
в __init__() создаёшь внутренние переменные книги

Цитата Сообщение от kirtnt Посмотреть сообщение
Но в классе необходимо реализовать только саму книгу, меню отдельно от класса.
меню тоже делается таким же образом

у тебя исполнитель "Меню" должен общаться с пользователем и управлять исполнителем "Книга"
не думаю, что у тебя получится меню сделать, поэтому оставляй его, как есть

Добавлено через 1 минуту
Цитата Сообщение от kirtnt Посмотреть сообщение
Python
11
12
13
14
15
16
    if a == 1:
        b = book.keys()
        b = list(b)
        b.sort()
        for key in b:
            print(key +'-' +str(book[key]))
превращается в
Python
11
12
13
    if a == 1:
        for person in book.get_all_persons():
            print(person)
операции с книгой выполняются в экземпляре книги (инкапсулированы в нём)
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
raxper
Эксперт
30234 / 6612 / 1498
Регистрация: 28.12.2010
Сообщений: 21,154
Блог
21.08.2013, 09:46
Помогаю со студенческими работами здесь

Как достать из телефонной книги адреса чатов, адреса проживания и сайты
Здравствуйте, как достать из телефонной книги адреса чатов, адреса проживания и сайты. телефоны и имейлы я понял как достать, вот кусок...

Реализация телефонной книги
Код не работает , не могли бы подсказать где ошибка?? #pragma once namespace Vicprak3 { using namespace System; using...

Ошибочка в коде телефонной книги
Добрый день. Задача - написать телефонную книгу. Все работает, но... когда сначала добавляю контакт, потом удаляю и вывожу список......

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

Получить контакт из телефонной книги
Домашнее задание. Помогите решить, уже 3 сутки не могу понять putExtra и getExtra. Условие: Получить контакт из телефонной книги в...


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

Или воспользуйтесь поиском по форуму:
5
Ответ Создать тему
Новые блоги и статьи
BOINC: 22 года — и всё ещё работает
Programma_Boinc 12.03.2026
BOINC: 22 года — и всё ещё работает Дэвид Андерсон написал ретроспективу. Кратко: в 2001 году он ушёл из United Devices, где был CTO, и за несколько месяцев написал ядро BOINC — клиент, сервер,. . .
SDL3 для Desktop (MinGW): Создаём пустое окно с нуля для 2D-графики на SDL3, Си и C++
8Observer8 10.03.2026
Содержание блога Финальные проекты на Си и на C++: hello-sdl3-c. zip hello-sdl3-cpp. zip Результат:
Установка CMake и MinGW 13.1 для сборки С и C++ приложений из консоли и из Qt Creator в EXE
8Observer8 10.03.2026
Содержание блога MinGW - это коллекция инструментов для сборки приложений в EXE. CMake - это система сборки приложений. Здесь описаны базовые шаги для старта программирования с помощью CMake и. . .
Как дизайн сайта влияет на конверсию: 7 решений, которые реально повышают заявки
Neotwalker 08.03.2026
Многие до сих пор воспринимают дизайн сайта как “красивую оболочку”. На практике всё иначе: дизайн напрямую влияет на то, оставит человек заявку или уйдёт через несколько секунд. Даже если у вас. . .
Модульная разработка через nuget packages
DevAlt 07.03.2026
Сложившийся в . Net-среде способ разработки чаще всего предполагает монорепозиторий в котором находятся все исходники. При создании нового решения, мы просто добавляем нужные проекты и имеем. . .
Модульный подход на примере F#
DevAlt 06.03.2026
В блоге дяди Боба наткнулся на такое определение: В этой книге («Подход, основанный на вариантах использования») Ивар утверждает, что архитектура программного обеспечения — это структуры,. . .
Управление камерой с помощью скрипта OrbitControls.js на Three.js: Вращение, зум и панорамирование
8Observer8 05.03.2026
Содержание блога Финальная демка в браузере работает на Desktop и мобильных браузерах. Итоговый код: orbit-controls-threejs-js. zip. Сканируйте QR-код на мобильном. Вращайте камеру одним пальцем,. . .
SDL3 для Web (WebAssembly): Синхронизация спрайтов SDL3 и тел Box2D
8Observer8 04.03.2026
Содержание блога Финальная демка в браузере. Итоговый код: finish-sync-physics-sprites-sdl3-c. zip На первой гифке отладочные линии отключены, а на второй включены:. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru