Otomatik ders dağıtım programı (phayton&exe)

Kodla Büyü

erbay1

Üye
Mesajlar
46
Yöntem1 : Exe dosyası indir: GoogleDrive_İndir Zipli dosyayı klasöre çıkarıp, Kitap1.xlsx dosyasındaki verileri güncelleyin ve dagitim.exe 'yi çalıştırın. (Phayton kurulumu gerektirmez.)

3.webp

Yöntem 2: PHAYTON gerektirir
Bilgisayarınıza Phaytonu kurun. Ortools, ReportLab ve openpyxl & pandas kütüphanelerini yükleyin. Aşağıdaki indirdiğiniz"dagitim.py" ve "Kitap1.xlsx" dosyalarını masaüstüne çıkarın. Kitap1.xlsx dosyasındaki öğretmen ders saatleri, haftalık ders saatleri, öğretmen kısıtları vb. sayfaları düzenleyip kaydedin.

Masaüstünde Çalıştırma Komutları​

Kodunuzu masaüstünde bulunan dagitim.py dosyasını, işletim sisteminize uygun terminal/komut satırı komutunu kullanarak çalıştırabilirsiniz:

1. Windows (CMD / PowerShell)​

Komut penceresini açıp masaüstü dizinine geçiş yaptıktan sonra çalıştırabilirsiniz:

DOS

Kod:
cd Desktop
python dagitim.py

(Not: Python sistem yolunuza ekli değilse python yerine tam yolunu yazmanız gerekebilir veya doğrudan masaüstündeki dosyanın üzerine sağ tıklayıp terminalde açabilirsiniz.)

2. macOS / Linux (Terminal)​

Terminal uygulamasını açıp masaüstüne ulaştıktan sonra:

Bash
Kod:
cd ~/Desktop
python3 dagitim.py

Phayton Yüklü Değil mi?​

Windows:Microsoft Store üzerinden yüklemek için terminale şu komut yazılabilir:
DOS
Kod:
winget install -e --id Python.Python.3.13

Kütüphaneler yüklü değil mi?​

Teminalde ortools kütüphanesini yükleyin
Kod:
pip install ortools

Terminalde ReportLab kütüphanesini yükleyin

Kod:
pip install reportlab

Terminalde openpyx ve pandas kütüphanesini yükleyin

Kod:
pip install openpyxl pandas

dagitim.py dosyasını çalıştırdığınızda masaüstünde "dersprogrami_cikis.PDF" adlı bir dosya ; dagitim2.py dosyasını çalıştırdığınızda ise masaüstünde "dersprogrami_cikis.XLSX" adlı bir dosya oluşacak; sınıfların ve öğretmenlerin bireysel ders programları, öğretmen ve sınıf çarşaf listeleri hazırlanacaktır .
Varsayılan süre 180 saniye ayarlandı.
Dagitim dosyasınında şunu aratıp
Kod:
solver.parameters.max_time_in_seconds = 180.0
süreyi azaltıp çoğaltabilirsiniz.

PDF çıktı örnekleri:

2.webp

3.webp

4.webp

PDF çıktısı alan Phayton kodu için "dagitim.py" çalıştırın.
EXCEL çıktısı alan Phayton kodu için "dagitim2.py" çalıştırın.

Klasör içinde Çalıştırma Komutları​

İsterseniz PHAYTON_DERS_DAGITIM_PDF.zip ve PHAYTON_DERS_DAGITIM_XLSX.zip dosyalarını herhangi bir yere çıkartıp içindeki calistir.bat dosyasına tıklayarak kolayca çalıştırabilirsiniz.
 

Ekli dosyalar

Son düzenleme:

A.Mevcut Python Kodunun Excel Sayfasından Adığı Veriler

1. Günlük Ders Saatleri: Haftanın her bir günü (Pazartesi, Salı, Çarşamba, Perşembe, Cuma) için kaçar saat ders yapılacağı bilgisi sütun başlıkları ve altındaki değerler üzerinden tamamen okunur ve sisteme işlenir.

2. Sistem bu sayfadaki tüm yapısal eğitim verilerini eksiksiz okur:​

  • Sınıf Adları: Okuldaki sınıfların isimleri (Örn: 5-A vb.).
  • Dersin Adı: Okutulacak derslerin adları.
  • HDS (Haftalık Ders Saati): Her dersin haftalık toplam kaç saat olacağı.
  • Blok Bilgisi: Derslerin kaçar saatlik bloklar hâlinde işleneceği (Örn: 2+2 veya tekli bloklar).
  • Öğretmen Bilgisi: Hangi dersin hangi öğretmen tarafından verileceği.

3.Bu sayfada yer alan sütunlardan kod tarafından okunmaktadır:​

  • Boş Günler Sütunu: Öğretmenlerin izinli/boş olmak istediği günler okunur. Eğer öğretmenin yanında belirli gün isimleri yazıyorsa sistem o öğretmene ilgili günlerde kesinlikle ders atamaz.

B.Mevcut Python Kodunun Fiilen Dikkate Aldığı Kısıtlar

Mevcut Python kodu şu anda bunları hesaba katmaktadır:
  1. Ders Yerleştirme Zorunluluğu: Her ders ve blok, haftalık ders programına tam olarak 1 kez yerleştirilir.
  2. Sınıf Çakışma Kontrolü: Aynı sınıfa aynı saatte birden fazla ders atanamaz.
  3. Öğretmen Çakışma Kontrolü: Bir öğretmen aynı anda iki farklı sınıfta derste olamaz.
  4. Öğretmen Boş Gün Kısıtı (Kodda aktif): ÖĞRETMEN KISITLARI sayfasındaki "BOŞ GÜNLER" sütunu okunur; öğretmenin boş gününde ona ders verilmez.
  5. Aynı Sınıfta Günlük Ders Sınırı (Kodda aktif): Bir öğretmenin aynı sınıfta bir günde alacağı ders saati sınırlandırılır (Genel kurallardaki sınırlamaya benzer şekilde kod içinde uygulanır).
  6. Boşluk (Gap) Cezalandırması (Kodda aktif): Öğretmenin gün içindeki dersleri arasında boşluk kalması durumunda optimizasyon cezalandırma puanı ekler.
  7. Tek Saat Ders Cezalandırması (Kodda aktif): Bir günde sadece 1 saat ders verilmesi durumu ceza puanı ile engellenmeye çalışılır.
 
Son düzenleme:
merhaba hocam şöyle hata veriyor.
Traceback (most recent call last):
File "C:\Users\Administrator\Desktop\pythnon\PHAYTON_DERS_DAGITIM_XLSX\dagitim2.py", line 4, in <module>
from openpyxl.styles import Alignment, Border, Font, Side
ModuleNotFoundError: No module named 'openpyxl'
 
merhaba hocam şöyle hata veriyor.
Traceback (most recent call last):
File "C:\Users\Administrator\Desktop\pythnon\PHAYTON_DERS_DAGITIM_XLSX\dagitim2.py", line 4, in <module>
from openpyxl.styles import Alignment, Border, Font, Side
ModuleNotFoundError: No module named 'openpyxl'
openpyxl kütüphanesi eksik. Ortools, ReportLab ve openpyxl & pandas BU KÜTÜPHANELERİ EKLEMELİSİN. Phayton yüklemeye gerek kalmayan exe dosyasını paylaşacağım. onu denersin
 
ilksms
Geri
Üst