Программирование с использованием шаблонов объектно-ориентированного проектирования
Автор: Чеширский Кот • Январь 20, 2022 • Лабораторная работа • 1,828 Слов (8 Страниц) • 222 Просмотры
МИНИСТЕРСТВО НАУКИ И ВЫСШЕГО ОБРАЗОВАНИЯ РОССИЙСКОЙ ФЕДЕРАЦИИ
федеральное государственное автономное образовательное учреждение высшего образования
«САНКТ-ПЕТЕРБУРГСКИЙ ГОСУДАРСТВЕННЫЙ УНИВЕРСИТЕТ
АЭРОКОСМИЧЕСКОГО ПРИБОРОСТРОЕНИЯ»
ИНСТИТУТ НЕПРЕРЫВНОГО И ДИСТАНЦИОННОГО ОБРАЗОВАНИЯ
КАФЕДРА КОМПЬЮТЕРНЫХ ТЕХНОЛОГИЙ И ПРОГРАММНОЙ ИНЖЕНЕРИИ |
ОЦЕНКА
ПРЕПОДАВАТЕЛЬ
Ст. преподаватель | Е. О. Шумова | |||
должность, уч. степень, звание | подпись, дата | инициалы, фамилия |
ОТЧЕТ О ЛАБОРАТОРНОЙ РАБОТЕ №1 |
Программирование с использованием шаблонов объектно-ориентированного проетирования |
по дисциплине: ОБЪЕКТНО-ОРИЕНТИРОВАННОЕ ПРОГРАММИРОВАНИЕ |
РАБОТУ ВЫПОЛНИЛ
СТУДЕНТ ГР. № | Z9432K | В. В. Шурков | |||
номер группы | подпись, дата | инициалы, фамилия | |||
Студенческий билет № | 2019/4167 |
Санкт-Петербург 2022
1. Цель работы
Приобрести практический навык внедрения шаблонов объектно-ориентированного проектирования в код программных систем.
2. Задание
Реализовать систему хранения информации о футбольном чемпионате. Информация опирается на следующие основные классы: Team (команда), Player (игрок), Match (матч). Эти классы связаны друг с другом посредством агрегации, ассоциации и проч.
Атрибуты классов
Team
- id — уникальный численный идентификатор.
- name — имя.
- players — игроки, играющие за данную команду в рамках чемпионата.
Player
- id — уникальный численный идентификатор.
- name — имя
- team – команда.
Match
- id — уникальный численный идентификатор.
- date — дата.
- location — место.
- result — счёт.
- team1 — первая команда.
- team2 — вторая команда.
- players – игроки, у частвовавшие в матче.
Обеспечить загрузку и сохранение этой базы данных в текстовый файл.
3. Текст программы
main.py
import Classes
from datetime import date
with open ("Files/Team+players_read.txt",'r') as file: # Считываем из 1-го файла игроков
file.readline() # и команды и добавляем их в классы
file.readline()
data = file.readline().split()
vse_igroki = dict()
vse_komandi = dict()
while data:
igrok = Classes.Player(data[0],data[1],data[2])
vse_igroki[data[0] + ' ' + data[1]] = igrok
if data[3] not in vse_komandi:
instance_name = Classes.Team(data[3],data[4])
instance_name(igrok)
vse_komandi[data[3]] = instance_name
else:
vse_komandi[data[3]](igrok)
data = file.readline().split()
with open ("Files/Match_read.txt",'r') as file: # Считываем из 2-го файла матчи
file.readline() # и добавляем их в классы
file.readline()
data = file.readline().split()
vse_matchi = dict()
while data:
chislo = [int (i) for i in data[3].split('.')]
instance_name = Classes.Match(vse_komandi[data[0]], vse_komandi[data[1]], data[2], date(chislo[0],chislo[1],chislo[2]), data[4], data[5])
vse_matchi[instance_name.match_name] = instance_name
data = file.readline().split(',')
if '\n' in data[-1]:
data[-1] = data[-1].replace('\n','')
for i in data:
if i in instance_name.team1.team_players or instance_name.team2.team_players:
...