Skip to content
ICT_Kennisbank_2025

Windows Server

1
  • Beheer Topdesk

Cisco

4
  • Minecraft
  • Voorbeeld Netwerktekening
  • Uitwerking Oefenexamen Correct v Leeg
  • Commando Cheat Sheet S5

Powershell

3
  • PWS Oefenexamen – voor + na
  • Email sturen PWS
  • Benodigde kennis Powershell

Python

3
  • UserProgramma.py
  • Dobbelsteen Opdracht
  • Eindopdracht Python Atletiek Voorbeeld

SQL

2
  • Handboek SQL
  • Werkboek Databases V3.2 2021

Flowchart

2
  • Stroomschema
  • Flowchart voorbeelden

SEC

1
  • Oefen SEC
View Categories
  • Home
  • Docs
  • SQL/Python/PWS
  • Python
  • Eindopdracht Python Atletiek Voorbeeld

Eindopdracht Python Atletiek Voorbeeld

8 min read

Bij het maken van python bestanden moet je onthoudeen dat er een __init__.py bestand moet zijn, onthoud ook dat die ten aller tijden leeg is.

Voorbeeld van Main.py

import os

import time

import atletiek_python.atleet_tabel

import atletiek_python.prestatie_tabel

import atletiek_python.onderdeel_tabel

import atletiek_python.categorie_tabel

import atletiek_python.csv_prestaties_wegschrijven

def main_menu():

    while True:

        os.system(‘cls’)

        print(“\n— Hoofdmenu —“)

        print(“1. Tabel ‘Atleet’ Uitlezen”)

        print(“2. Voeg een Atleet toe”)

        print(“3. Tabel ‘Prestaties’ Uitlezen”)

        print(“4. Voeg een Prestatie toe bij een Atleet”)

        print(“5. Tabel ‘Onderdeel’ Uitlezen”)

        print(“6. Voeg een Onderdeel toe”)

        print(“7. Tabel ‘Categorie’ Uitlezen”)

        print(“8. Voeg een Categorie toe”)

        print(“9. CSV van Prestaties Weerschrijven”)

        print(“10. Afsluiten”)

        keuze = input(“Voeg 1 van de bovenstaande getallen toe:\n”)

        if keuze == “1”:

            os.system(“cls”)

            atletiek_python.atleet_tabel.lees_atleet_uit()

            input(“\nDruk ‘enter’ om terug te gaan”)

        elif keuze == “2”:

            os.system(“cls”)

            atleet_informatie = atletiek_python.atleet_tabel.atleet_informatie()

            atletiek_python.atleet_tabel.voeg_atleet_toe(atleet_informatie)

            input(“\nDruk ‘enter’ om terug te gaan”)        

        elif keuze == “3”:

            os.system(“cls”)

            atletiek_python.prestatie_tabel.lees_prestaties_uit()

            input(“\nDruk ‘enter’ om terug te gaan”)

        elif keuze == “4”:

            os.system(“cls”)

            atletiek_python.prestatie_tabel.voeg_prestatie_bij_atleet_toe()

            input(“\nDruk ‘enter’ om terug te gaan”)

        elif keuze == “5”:

            os.system(“cls”)

            atletiek_python.onderdeel_tabel.lees_onderdeel_uit()

            input(“\nDruk ‘enter’ om terug te gaan”)

        elif keuze == “6”:

            os.system(“cls”)

            onderdeel_info = atletiek_python.onderdeel_tabel.onderdeel_informatie()

            atletiek_python.onderdeel_tabel.voeg_onderdeel_toe(onderdeel_info)

            input(“\nDruk ‘enter’ om terug te gaan”)

        elif keuze == “7”:

            os.system(“cls”)

            atletiek_python.categorie_tabel.lees_categorie_uit()

            input(“\nDruk ‘enter’ om terug te gaan”)

        elif keuze == “8”:

            os.system(“cls”)

            categorie_info = atletiek_python.categorie_tabel.categorie_informatie()

            atletiek_python.categorie_tabel.voeg_categorie_toe(categorie_info)

            input(“\nDruk ‘enter’ om terug te gaan”)

        elif keuze == “9”:

            os.system(“cls”)

            atletiek_python.csv_prestaties_wegschrijven.schrijf_prestaties_naar_csv()

            input(“\nDruk ‘enter’ om terug te gaan”)

        elif keuze == “10”:

            os.system(“cls”)

            print(“U heeft het Programma afgesloten”)

            break

        else:

            os.system(‘cls’)

            print(“Foutmelding 000 \nDeze invoer word niet herkend, probeer het opnieuw”)

            time.sleep()

main_menu()

Voorbeeld van Atleet_Tabel.py

import os

import pymysql

import time

from datetime import datetime

def lees_atleet_uit():

    conn = pymysql.connect(

        host=’localhost’,

        user=’root’,

        passwd=’cfvh2002′,

        database=’atletiek’

    )

    cur = conn.cursor()

    cur.execute(“SELECT atleet_ID, naam, geboortedatum, atletiek_vereniging FROM atleten_tabel”)

    output = cur.fetchall()

    for i in output:

        print(i)

    conn.close()

def atleet_informatie():

    print(“We gaan nu een atleet toevoegen aan de database.”)

    conn = pymysql.connect(

        host=’localhost’,

        user=’root’,

        passwd=’cfvh2002′,

        database=’atletiek’

    )

    cur = conn.cursor()

    cur.execute(“SELECT MAX(atleet_id) FROM atleten_tabel”)

    result = cur.fetchone()

    nieuw_id = 1 if result[0] is None else int(result[0] + 1)

    atleet_gegevens = [nieuw_id]

    # Volledige naam invoer met controle op minimaal één spatie

    while True:

        naam = input(“Geef de volledige naam van de Atleet op: “).strip()

        if not naam:

            os.system(‘cls’)

            print(“Foutmelding 000\nOngeldige invoer. De naam mag niet leeg zijn.”)

            time.sleep(1.5)

        elif ” ” not in naam:

            os.system(‘cls’)

            print(“Foutmelding 000\nOngeldige invoer. De naam moet een voor- en achternaam bevatten.”)

            time.sleep(1.5)

        else:

            atleet_gegevens.append(naam)

            break

    # Geboortedatum invoer met validatie

    while True:

        geboortedatum = input(“Geef de geboortedatum op (YYYY-MM-DD): “).strip()

        try:

            datetime.strptime(geboortedatum, “%Y-%m-%d”)

            atleet_gegevens.append(geboortedatum)

            break

        except ValueError:

            os.system(‘cls’)

            print(“Foutmelding 000 \nOngeldige invoer. Voer de geboortedatum opnieuw in als YYYY-MM-DD.”)

            time.sleep(1.5)

    # Atletiek vereniging invoer

    while True:

        vereniging = input(“Geef de Atletiek vereniging op: “).strip()

        if vereniging:

            atleet_gegevens.append(vereniging)

            break

        else:

            os.system(‘cls’)

            print(“Foutmelding 000 \nOngeldige invoer. De vereniging mag niet leeg zijn.”)

            time.sleep(1.5)

    print(f’De ingevoerde gegevens zijn: {atleet_gegevens}’)

    cur.close()

    conn.close()

    return atleet_gegevens

def voeg_atleet_toe(atleet_informatie):

    conn = pymysql.connect(

        host=’localhost’,

        user=’root’,

        passwd=’cfvh2002′,

        database=’atletiek’

    )

    cur = conn.cursor()

    sql_exec = “INSERT INTO atleten_tabel (atleet_id, naam, geboortedatum, atletiek_vereniging) VALUES (%s, %s, %s, %s);”

    cur.execute(sql_exec, atleet_informatie)

    conn.commit()

    print(“De atleet is succesvol toegevoegd aan de database.”)

    cur.close()

    conn.close()

Voorbeeld van CSV_Prestaties_Wegschrijven.py

import pymysql

import csv

import os

def schrijf_prestaties_naar_csv():

    csv_bestand = ‘prestaties.csv’

    # Verwijder het bestand als het al bestaat

    if os.path.exists(csv_bestand):

        os.remove(csv_bestand)

    # Maak verbinding met de database

    conn = pymysql.connect(

        host=’localhost’,

        user=’root’,

        passwd=’cfvh2002′,

        database=’atletiek’

    )

    cur = conn.cursor()

    query = “””

    SELECT

        P.prestatie_id,

        A.naam,

        C.categorie_naam,

        O.onderdeel_naam,

        P.prestatie,

        P.datum_prestatie

    FROM

        prestaties_tabel P

    JOIN

        atleten_tabel A ON P.atleet_id = A.atleet_id

    JOIN

        categorie_tabel C ON P.categorie_id = C.categorie_id

    JOIN

        onderdelen_tabel O ON P.onderdeel_id = O.onderdeel_id

    “””

    # Voer de query uit

    cur.execute(query)

    output = cur.fetchall()

    # Schrijf data naar een CSV-bestand

    with open(csv_bestand, mode=’w’, newline=”, encoding=’utf-8′) as file:

        writer = csv.writer(file)

        # Schrijf de header

        writer.writerow([‘prestatie_id’, ‘naam’, ‘categorie’, ‘onderdeel’, ‘prestatie’, ‘datum_prestatie’])

        # Schrijf de data

        for record in output:

            writer.writerow(record)

    print(f”De prestaties zijn succesvol geschreven naar {csv_bestand}.”)

    cur.close()

    conn.close()

Updated on January 6, 2025

What are your Feelings

  • Happy
  • Normal
  • Sad
Share This Article :
  • Facebook
  • X
  • LinkedIn
  • Pinterest
Dobbelsteen Opdracht

All rights reserved