Marketing Ügynökség
Kategória: Python - emelt szint
Feladat leírása
A CreativeHive digitális marketingügynökség egyre több megrendelést kap különböző cégektől. Az ügynökség vezetése szeretné elemezni az elmúlt év kampányainak adatait, hogy optimalizálni tudják az erőforrásaikat. A te feladatod egy Python program készítése, amely feldolgozza a kampányok adatait.
A kampanyok.txt tabulátorokkal tagolt szöveges állomány soronként tartalmazza az egyes marketingprojektek adatait. A fájl legfeljebb 500 sorból áll. Minden sor az alábbi adatokat tartalmazza:
-
Kezdés hónapja (1-12)
-
Kezdés napja (1-31)
-
Befejezés hónapja (1-12)
-
Befejezés napja (1-31)
-
Ügyfél kódja (egy rövid, nagybetűs azonosító, pl.
XYZ,COLA,BANK) -
Kampány típusa (szöveges, pl.
Social,PPC,SEO,TV,Print) -
Szerződött összeg (egész szám, forintban, szóközök nélkül)
Példa a bemeneti fájl egy sorára: 2 10 2 25 TECHCORP PPC 450000 (Jelentése: A TECHCORP ügyfél PPC kampánya február 10-től február 25-ig tartott, és 450.000 Ft volt az értéke.)
A programodat ugynokseg.py néven mentsd el! A megoldás során feltételezheted, hogy a bemeneti adatok formátuma helyes, és a dátumok valósak (nem szökőévvel számolunk).
A képernyőre írást igénylő részfeladatoknál írd ki a feladat sorszámát (pl. 3. feladat:), majd alá vagy mellé a kért választ. Ha a felhasználótól kérsz be adatot, egyértelműen jelezd, mit vársz tőle!
Részfeladatok
1. Olvasd be a
kampanyok.txtállomány tartalmát, és tárold el egy megfelelően választott összetett adatszerkezetben (pl. osztályok listája vagy szótárak listája)! Ügyelj arra, hogy a számadatokat számként kezeld!2. Írd ki a képernyőre, hogy hány kampányt rögzítettek a fájlban!
3. Keresd meg, hogy melyik volt a legnagyobb bevételt hozó kampány! Írd ki a képernyőre a kampány típusát, az ügyfél kódját és az összeget! Ha több ilyen is van, elég az egyiket megjelenítened.
4. Készíts egy
napok_szamanevű függvényt (vagy metódust), amely négy paramétert vár (kezdő hónap, kezdő nap, vég hónap, vég nap), és visszaadja a két dátum közötti időtartamot napokban! (A kezdő és a záró nap is beleszámít a kampány idejébe. Feltételezheted, hogy a hónapok napjainak száma: 31, 28, 31, 30, 31, 30, 31, 31, 30, 31, 30, 31). Segítség: Február 10-től Február 25-ig tartó kampány hossza: 25 - 10 + 1 = 16 nap.5. Számítsd ki minden kampány esetében az egy napra eső költséget (szerződött összeg / időtartam)! Keresd meg azt a kampányt, amelynél ez az érték a legmagasabb (azaz a legintenzívebb költésű kampányt)! Írd ki az ügyfél kódját és a napi költséget egészre kerekítve!
6. Kérj be a felhasználótól egy kampánytípust (pl.
SEO)! Számold össze és írd ki, hogy ebből a típusból összesen mennyi bevétele származott az ügynökségnek az év során! Ha a megadott típus nem szerepel a listában, írd ki, hogy „Nincs ilyen típusú kampány.”!7. A vezetőség kíváncsi a „hűséges” ügyfelekre. Határozd meg, hogy melyik ügyfél rendelte meg a legtöbb darabszámú kampányt! Írd ki az ügyfél kódját és a megrendelések számát! (Ha többen is vannak, sorold fel mindet!)
8. Írd ki a képernyőre azokat a kampányokat, amelyek átnyúlnak egyik hónapból a másikba (azaz a kezdő hónap nem egyezik meg a befejezés hónapjával)! A formátum legyen:
Ügyfél - Típus: Hónap.Nap - Hónap.Nap.9. Kérj be a felhasználótól egy dátumot (hónap és nap számát)! Határozd meg, hogy aznap éppen hány kampány futott aktívan! (Aktívnak számít a kampány a kezdő és a befejező napon is).
10. Az ügynökség tudni szeretné, melyik típusú szolgáltatás a legnépszerűbb az átlagos bevétel alapján. Csoportosítsd a kampányokat típus szerint, és számítsd ki az átlagos szerződött összeget típusonként! Írd ki azt a típust, ahol ez az átlag a legmagasabb!
11. Kérd be egy ügyfél kódját! Készíts egy listát az adott ügyfél összes kampányáról, időrendi sorrendben (kezdő dátum szerint). Vizsgáld meg, hogy volt-e olyan időszak, amikor ennek az ügyfélnek párhuzamosan (átfedéssel) futott két vagy több kampánya!
a) Írd ki a képernyőre az ügyfél kampányainak listáját.
b) Írd ki, hogy „Volt átfedés” vagy „Nem volt átfedés”.
12. Az előző feladatban (11-es pont) bekért ügyfél számára készíts egy részletes elszámolást egy
elszamolas_[UGYFELKOD].txtnevű fájlba!a) A fájl első sorában szerepeljen az ügyfél kódja.
b) Az utána következő sorokban sorold fel a kampányait:
Típus: Kezdés - Befejezés (Összeg Ft).c) A fájl végére írd ki az ügyfél által elköltött teljes végösszeget.