Similar presentations:
Presentation_Yashkin
1.
# -*- coding: utf-8 -*from pptx import Presentationfrom pptx.util import Inches, Pt
from pptx.dml.color import RGBColor
from pptx.enum.text import PP_ALIGN, MSO_ANCHOR
# ===== СОЗДАЁМ ПРЕЗЕНТАЦИЮ =====
prs = Presentation()
prs.slide_width = Inches(13.333) # Широкоформатный 16:9
prs.slide_height = Inches(7.5)
# ===== ЦВЕТА ПО МЕТОДИЧКЕ (не более 3) =====
BG_COLOR = RGBColor(220, 235, 245)
# Светло-голубой фон
TITLE_COLOR = RGBColor(0, 51, 102)
# Тёмно-синий для заголовков
TEXT_COLOR = RGBColor(0, 0, 0)
# Чёрный для текста
ACCENT_COLOR = RGBColor(0, 102, 153)
# Акцентный синий
# ===== ВСПОМОГАТЕЛЬНЫЕ ФУНКЦИИ =====
def set_slide_bg(slide, color):
"""Устанавливает цвет фона слайда"""
background = slide.background
fill = background.fill
fill.solid()
fill.fore_color.rgb = color
def add_title(slide, text, top=Inches(0.3), left=Inches(0.5), width=Inches(12),
height=Inches(1)):
"""Добавляет заголовок слайда"""
txBox = slide.shapes.add_textbox(left, top, width, height)
tf = txBox.text_frame
tf.word_wrap = True
p = tf.paragraphs[0]
p.text = text
p.font.size = Pt(32)
p.font.bold = True
p.font.color.rgb = TITLE_COLOR
p.alignment = PP_ALIGN.LEFT
return txBox
def add_subtitle(slide, text, top=Inches(1.3), left=Inches(0.5),
width=Inches(12), height=Inches(0.6)):
"""Добавляет подзаголовок"""
txBox = slide.shapes.add_textbox(left, top, width, height)
tf = txBox.text_frame
tf.word_wrap = True
p = tf.paragraphs[0]
p.text = text
p.font.size = Pt(20)
p.font.italic = True
p.font.color.rgb = ACCENT_COLOR
p.alignment = PP_ALIGN.LEFT
return txBox
def add_bullet_list(slide, items, top=Inches(2.0), left=Inches(0.8),
width=Inches(11.5), height=Inches(5)):
"""Добавляет маркированный список"""
txBox = slide.shapes.add_textbox(left, top, width, height)
tf = txBox.text_frame
tf.word_wrap = True
for i, item in enumerate(items):
if i == 0:
p = tf.paragraphs[0]
else:
2.
p = tf.add_paragraph()p.text = item
p.font.size = Pt(20)
p.font.color.rgb = TEXT_COLOR
p.space_after = Pt(10)
p.level = 0
return txBox
def add_centered_text(slide, text, top=Inches(2.5), left=Inches(1),
width=Inches(11), height=Inches(3)):
"""Добавляет текст по центру"""
txBox = slide.shapes.add_textbox(left, top, width, height)
tf = txBox.text_frame
tf.word_wrap = True
p = tf.paragraphs[0]
p.text = text
p.font.size = Pt(24)
p.font.color.rgb = TEXT_COLOR
p.alignment = PP_ALIGN.CENTER
return txBox
def add_two_columns(slide, left_items, right_items, top=Inches(2.0)):
"""Добавляет два столбца (для сравнения)"""
# Левый столбец
txBox1 = slide.shapes.add_textbox(Inches(0.5), top, Inches(6), Inches(5))
tf1 = txBox1.text_frame
tf1.word_wrap = True
for i, item in enumerate(left_items):
if i == 0:
p = tf1.paragraphs[0]
else:
p = tf1.add_paragraph()
p.text = item
p.font.size = Pt(18)
p.font.color.rgb = TEXT_COLOR
p.space_after = Pt(8)
# Правый столбец
txBox2 = slide.shapes.add_textbox(Inches(7), top, Inches(6), Inches(5))
tf2 = txBox2.text_frame
tf2.word_wrap = True
for i, item in enumerate(right_items):
if i == 0:
p = tf2.paragraphs[0]
else:
p = tf2.add_paragraph()
p.text = item
p.font.size = Pt(18)
p.font.color.rgb = TEXT_COLOR
p.space_after = Pt(8)
# =====================================================
# СЛАЙД 1. ТИТУЛЬНЫЙ
# =====================================================
slide = prs.slides.add_slide(prs.slide_layouts[6]) # Пустой макет
set_slide_bg(slide, BG_COLOR)
add_title(slide, "ГАПОУ СО «Новокуйбышевский гуманитарно-технологический
колледж»",
top=Inches(0.5), left=Inches(1), width=Inches(11))
add_subtitle(slide, "Специальность 09.02.07 Информационные системы и
программирование",
top=Inches(1.3), left=Inches(1), width=Inches(11))
3.
txBox = slide.shapes.add_textbox(Inches(1), Inches(2.5), Inches(11),Inches(1.5))
tf = txBox.text_frame
tf.word_wrap = True
p = tf.paragraphs[0]
p.text = "Внедрение на предприятии сервера в локальной сети"
p.font.size = Pt(36)
p.font.bold = True
p.font.color.rgb = TITLE_COLOR
p.alignment = PP_ALIGN.CENTER
txBox2 = slide.shapes.add_textbox(Inches(1), Inches(4.5), Inches(11), Inches(2))
tf2 = txBox2.text_frame
tf2.word_wrap = True
lines = [
"Выполнил: студент группы 47",
"Яшкин Роман Алексеевич",
"",
"Руководитель: _________________",
"",
"Новокуйбышевск — 2026"
]
for i, line in enumerate(lines):
if i == 0:
p = tf2.paragraphs[0]
else:
p = tf2.add_paragraph()
p.text = line
p.font.size = Pt(22)
p.font.color.rgb = TEXT_COLOR
p.alignment = PP_ALIGN.CENTER
# =====================================================
# СЛАЙД 2. ОПИСАНИЕ ОРГАНИЗАЦИИ
# =====================================================
slide = prs.slides.add_slide(prs.slide_layouts[6])
set_slide_bg(slide, BG_COLOR)
add_title(slide, "Описание организации")
items = [
"• ООО «ТехноПром» — оптовая торговля промышленным оборудованием",
"• Штатная численность: 68 сотрудников",
"• Компьютеризированных рабочих мест: 48 ПК",
"• Расположение: двухэтажное здание, 800 м²",
"• 9 подразделений: администрация, бухгалтерия, продажи,",
" закупки, склад, ИТ-отдел, кадры, юротдел, хозотдел",
"• Сеть построена в 2018 году, морально устарела"
]
add_bullet_list(slide, items, top=Inches(1.8))
# =====================================================
# СЛАЙД 3. МЕТОДОЛОГИЯ РАБОТЫ
# =====================================================
slide = prs.slides.add_slide(prs.slide_layouts[6])
set_slide_bg(slide, BG_COLOR)
add_title(slide, "Методология работы")
items = [
"Объект: информационная инфраструктура ООО «ТехноПром»",
"Предмет: процессы проектирования и внедрения сервера в ЛВС",
"",
"Цель: разработка и реализация проекта внедрения сервера,",
"
обеспечивающего централизованное управление ресурсами",
4.
"","Задачи:",
" 1. Раскрыть понятие и классификацию серверов",
" 2. Определить преимущества архитектуры «клиент–сервер»",
" 3. Выполнить сравнительный анализ серверных ОС",
" 4. Разработать проект внедрения сервера",
" 5. Апробировать разработанное решение"
]
add_bullet_list(slide, items, top=Inches(1.5))
# =====================================================
# СЛАЙД 4. ТЕОРЕТИЧЕСКИЕ ИЗЫСКАНИЯ
# =====================================================
slide = prs.slides.add_slide(prs.slide_layouts[6])
set_slide_bg(slide, BG_COLOR)
add_title(slide, "Теоретические изыскания")
add_subtitle(slide, "Сравнение моделей построения сети")
left_items = [
"ОДНОРАНГОВАЯ МОДЕЛЬ:",
"• До 10–15 компьютеров",
"• Нет централизации",
"• Локальная аутентификация",
"• Рассредоточенные данные",
"• Сложное резервное копирование",
"• Низкая масштабируемость"
]
right_items = [
"МОДЕЛЬ «КЛИЕНТ–СЕРВЕР»:",
"• До нескольких тысяч ПК",
"• Полная централизация",
"• Active Directory",
"• Централизованное хранение",
"• Резервное копирование по расписанию",
"• Высокая масштабируемость"
]
add_two_columns(slide, left_items, right_items, top=Inches(1.8))
# =====================================================
# СЛАЙД 5. ВЫБОР ИНСТРУМЕНТОВ — СЕРВЕРНЫЕ ОС
# =====================================================
slide = prs.slides.add_slide(prs.slide_layouts[6])
set_slide_bg(slide, BG_COLOR)
add_title(slide, "Выбор инструментов: серверные ОС")
items = [
"Windows Server 2022 — нативная поддержка AD, совместимость с 1С",
"Astra Linux SE — в реестре РФ, но ограниченная совместимость",
"Alt Linux 10 — бесплатно, но высокая сложность администрирования",
"Ubuntu Server — нет в реестре РФ, англоязычная документация",
"",
"✓ ВЫБОР: Windows Server 2022 Standard",
" Обоснование: масштаб предприятия, ПО 1С:Предприятие,",
" квалификация персонала, бюджет проекта"
]
add_bullet_list(slide, items, top=Inches(1.8))
# =====================================================
# СЛАЙД 6. ВЫБОР ИНСТРУМЕНТОВ — АППАРАТНОЕ ОБЕСПЕЧЕНИЕ
# =====================================================
slide = prs.slides.add_slide(prs.slide_layouts[6])
set_slide_bg(slide, BG_COLOR)
add_title(slide, "Выбор инструментов: аппаратное обеспечение")
5.
items = ["Платформа: Supermicro 6029P-TRT (2U)",
"Процессор: Intel Xeon Silver 4210R (10 ядер, 2,4 ГГц)",
"Оперативная память: 32 ГБ DDR4 ECC",
"RAID-контроллер: LSI MegaRAID 9361-8i",
"Диски ОС: 2×500 ГБ SSD (RAID 1)",
"Диски данных: 3×4 ТБ HDD (RAID 5, ~8 ТБ)",
"Сеть: 2×Intel I350-T2 Gigabit Ethernet",
"",
"Стоимость: 264 000 рублей"
]
add_bullet_list(slide, items, top=Inches(1.8))
# =====================================================
# СЛАЙД 7. ОПИСАНИЕ ВЫПОЛНЕНИЯ — АРХИТЕКТУРА СЕТИ
# =====================================================
slide = prs.slides.add_slide(prs.slide_layouts[6])
set_slide_bg(slide, BG_COLOR)
add_title(slide, "Архитектура локальной сети")
add_subtitle(slide, "Трёхуровневая модель с сегментацией на 7 VLAN")
items = [
"Ядро (Core): TP-Link T1600G-28TS (L3, маршрутизация VLAN)",
"Доступ (Access): TP-Link TL-SG2424P (L2, PoE) — 2 шт.",
"Интернет: MikroTik RB4011 (NAT, firewall, VPN)",
"",
"VLAN 10 — Серверный сегмент (192.168.10.0/24)",
"VLAN 20 — Администрация и ИТ (192.168.20.0/24)",
"VLAN 30 — Бухгалтерия (192.168.30.0/24) — изолирована",
"VLAN 40 — Продажи и закупки (192.168.40.0/24)",
"VLAN 50 — Склад (192.168.50.0/24)",
"VLAN 60 — Сетевое оборудование (192.168.60.0/24)",
"VLAN 99 — Гостевой Wi-Fi (192.168.99.0/24) — изолирован"
]
add_bullet_list(slide, items, top=Inches(1.8))
# =====================================================
# СЛАЙД 8. ОПИСАНИЕ ВЫПОЛНЕНИЯ — НАСТРОЙКА СЛУЖБ
# =====================================================
slide = prs.slides.add_slide(prs.slide_layouts[6])
set_slide_bg(slide, BG_COLOR)
add_title(slide, "Настройка серверных служб")
items = [
"✓ Active Directory Domain Services — контроллер домена technoprom.local",
"✓ DNS-сервер — зоны прямого и обратного просмотра",
"✓ DHCP-сервер — автоматическое распределение IP по VLAN",
"✓ Файловый сервер — разграничение прав по принципу AGDLP",
"✓ Групповые политики (GPO) — единые настройки безопасности",
"✓ WSUS — централизованное обновление рабочих станций",
"✓ Теневые копии (Shadow Copies) — восстановление файлов",
"",
"Подключено к домену: 48 рабочих станций"
]
add_bullet_list(slide, items, top=Inches(1.8))
# =====================================================
# СЛАЙД 9. ПРАКТИЧЕСКАЯ ЗНАЧИМОСТЬ — РЕЗЕРВНОЕ КОПИРОВАНИЕ
# =====================================================
slide = prs.slides.add_slide(prs.slide_layouts[6])
set_slide_bg(slide, BG_COLOR)
add_title(slide, "Практическая значимость: резервное копирование")
add_subtitle(slide, "Правило 3-2-1")
6.
items = ["3 копии данных: основная + 2 резервных",
"2 разных носителя: локальный NAS + облако",
"1 копия вне площадки: Яндекс.Облако",
"",
"Задание 1: Ежедневное инкрементальное копирование (23:00)",
" → NAS Synology DS920+ (RAID 5, ~10,8 ТБ)",
"",
"Задание 2: Еженедельное полное копирование (воскресенье 01:00)",
" → Bare-metal recovery образ",
"",
"Задание 3: Ежедневное копирование 1С и бухгалтерии (02:00)",
" → Облачное хранилище, хранение 90 дней"
]
add_bullet_list(slide, items, top=Inches(1.8))
# =====================================================
# СЛАЙД 10. ПРАКТИЧЕСКАЯ ЗНАЧИМОСТЬ — РЕЗУЛЬТАТЫ ТЕСТИРОВАНИЯ
# =====================================================
slide = prs.slides.add_slide(prs.slide_layouts[6])
set_slide_bg(slide, BG_COLOR)
add_title(slide, "Результаты тестирования")
add_subtitle(slide, "10 сценариев комплексного тестирования — все пройдены
успешно")
left_items = [
"✓ Тест аутентификации",
"✓ Тест DNS",
"✓ Тест DHCP",
"✓ Тест файлового сервера",
"✓ Тест GPO",
]
right_items = [
"✓ Тест резервного копирования",
"✓ Тест нагрузки (30 пользователей)",
"✓ Тест отказоустойчивости RAID",
"✓ Тест информационной безопасности",
"✓ Тест печати"
]
add_two_columns(slide, left_items, right_items, top=Inches(2.0))
# =====================================================
# СЛАЙД 11. ОСНОВНЫЕ ВЫВОДЫ
# =====================================================
slide = prs.slides.add_slide(prs.slide_layouts[6])
set_slide_bg(slide, BG_COLOR)
add_title(slide, "Основные выводы")
items = [
"✓ Внедрена клиент-серверная архитектура ЛВС",
"✓ Централизованная аутентификация через Active Directory",
"✓ Автоматизация сетевых служб (DHCP, DNS)",
"✓ Надёжное резервное копирование по правилу 3-2-1",
"",
"Результаты:",
" • Время приёма/увольнения: 40 мин → 15 мин",
" • Обновление парка ПК: 2–3 дня → 3–4 часа",
" • Риск потери данных: высокий → низкий",
" • Срок окупаемости проекта: 2,6 года",
" • NPV за 5 лет: 458 212 рублей"
]
add_bullet_list(slide, items, top=Inches(1.8))
# =====================================================
7.
# СЛАЙД 12. СПАСИБО ЗА ВНИМАНИЕ# =====================================================
slide = prs.slides.add_slide(prs.slide_layouts[6])
set_slide_bg(slide, BG_COLOR)
txBox = slide.shapes.add_textbox(Inches(1), Inches(2.5), Inches(11), Inches(2))
tf = txBox.text_frame
tf.word_wrap = True
p = tf.paragraphs[0]
p.text = "Спасибо за внимание!"
p.font.size = Pt(44)
p.font.bold = True
p.font.color.rgb = TITLE_COLOR
p.alignment = PP_ALIGN.CENTER
txBox2 = slide.shapes.add_textbox(Inches(1), Inches(4.5), Inches(11),
Inches(1.5))
tf2 = txBox2.text_frame
tf2.word_wrap = True
p2 = tf2.paragraphs[0]
p2.text = "Готов ответить на ваши вопросы"
p2.font.size = Pt(28)
p2.font.color.rgb = ACCENT_COLOR
p2.alignment = PP_ALIGN.CENTER
txBox3 = slide.shapes.add_textbox(Inches(1), Inches(6), Inches(11), Inches(1))
tf3 = txBox3.text_frame
tf3.word_wrap = True
p3 = tf3.paragraphs[0]
p3.text = "Яшкин Роман Алексеевич, группа 47"
p3.font.size = Pt(22)
p3.font.color.rgb = TEXT_COLOR
p3.alignment = PP_ALIGN.CENTER
# ===== СОХРАНЕНИЕ =====
filename = 'C:\\Diplom\\Presentation_Yashkin.pptx'
prs.save(filename)
print(f'
Презентация создана: {filename}')
print('
12 слайдов по требованиям методички НГТК')
✅✅