Feladat: cukrászda
Az adatok sorrendben a következők:
tipus
|
a termék típusa
|
elnevezes
|
a termék neve
|
egysegar
|
a termék egységára (ft)
|
hetfo
|
az adott termékből hétfőn eladott
darabszám
|
…
|
|
vasarnap
|
az adott termékből vasárnap eladott
darabszám
|
A feladatok a következők:
1. Olvasd be a
cukraszda.txt vesszővel tagolt fájlból
az összes adatot egy osztálypéldányokat
tartalmazó listába!
Az osztályban a napi adatoknak hozz létre egy listát. Írd ki az adatokat.
2. Írd ki a
képernyőre azoknak a réteseknek és tortaszeleteknek a nevét és az árát, amikből
legalább 150
darabot adtak el vasárnap.
3. Írd ki a
legdrágább tortaszelet nevét!
4. Írd ki,
hogy mennyi bevétele származott a cukrászdának a fagylaltokból a hétvégi három
napon.
5. Írd ki egy
új fájlba soronként szóközzel elválasztva az olyan termékek nevét és típusát,
amelyekből a pénteki bevétel nagyobb volt, mint a vasárnapi.
6. Melyik
termék hozott a legkevesebb bevételt a héten?
7. Emelt: Melyik
terméktípus hozott a legkevesebb bevételt a héten?
TXT (ne innen másold):
fagylalt,Áfonyafagyi,110,600,784,736,720,976,1472,1760
rétes,Almás rétes,180,89,155,93,217,196,179,147
csiga,Csokis csiga,125,109,187,213,178,138,211,276
tortaszelet,Csokoládétorta,118,75,73,87,88,102,165,180
csiga,Diós csiga,132,133,76,154,100,171,130,163
rétes,Diós rétes,235,120,109,98,105,320,144,190
tortaszelet,Dobostorta,195,90,88,102,103,117,180,195
fagylalt,Eperfagyi,110,966,1284,1176,1170,1236,1314,1368
tortaszelet,Erdőkrémtorta,190,120,101,126,129,135,175,200
fagylalt,Fahéjfagyi,110,630,735,771,801,849,969,1023
csiga,Fahéjas csiga,120,130,95,165,123,144,185,217
tortaszelet,Fahéjtorta,178,69,125,168,171,180,217,245
fagylalt,Írkrémfagyi,110,450,438,522,528,612,990,1080
tortaszelet,Írkrémtorta,198,44,58,65,64,55,93,111
csiga,Kakaós csiga,120,108,147,221,204,162,264,255
tortaszelet,Kávétorta,124,106,105,130,129,153,159,189
rétes,Mákos rétes,200,88,115,119,194,228,237,277
fagylalt,Mogyorófagyi,110,768,1164,1095,1209,1149,1230,1404
tortaszelet,Oroszkrémtorta,195,77,91,102,101,108,169,179
tortaszelet,Puncstorta,188,95,70,77,68,97,143,165
fagylalt,Sztracsatellafagyi,110,1040,912,1800,1460,1780,1988,1728
rétes,Túrós rétes,205,109,138,81,188,159,219,173
Egy lehetséges megoldás:
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.IO;
namespace cukraszdaReload
{
public class Cuki
{
public string tipus;
public string nev;
public int ar;
public List<int> napok;
public Cuki(string sor)
{
List<string> atmeneti = sor.Split(',').ToList();
tipus = atmeneti[0];
nev = atmeneti[1];
ar = Convert.ToInt32(atmeneti[2]);
napok = new List<int>();
for (int i = 3; i < atmeneti.Count; i++)
{
napok.Add(Convert.ToInt32(atmeneti[i]));
}
}
public override string ToString()//Ez egy extra szép megoldás
{
string text = string.Empty;
text += $"\nTermék típusa: {tipus}";
text += $"\nTermék neve: {nev}";
text += $"\nTermék ára: {ar} ft";
text += $"\nTermék eladása:\n";
string[] hetNapjai = { "hétfő", "kedd", "szerda", "csütörtök", "péntek", "szombat", "vasárnap" };
for (int i = 0; i < napok.Count; i++)
{
text += hetNapjai[i] + ": " + napok[i] + " db\n";
}
return text;
}
public void kiir() //Ez az extra egyszerű megoldás
{
Console.WriteLine("Termék típusa: " + tipus);
Console.WriteLine("Termék neve: " + nev);
Console.WriteLine("Termék ára: " + ar + " ft");
Console.WriteLine("Termék eladása hétfőtől péntekig (db): ");
for (int i = 0; i < napok.Count; i++)
{
Console.WriteLine(napok[i]);
}
}
}
class Program
{
static void vasarnapSzazOtven(List<Cuki> a)
{
for (int i = 0; i < a.Count; i++)
{
if (a[i].tipus == "rétes" || a[i].tipus == "tortaszelet")
{
if (a[i].napok[6] >= 150)
{
Console.WriteLine($"{a[i].nev}: {a[i].ar} Ft");
}
}
}
}
static void legdragabb(List<Cuki> a)
{
int legdragabb = a[0].ar;
string nev = a[0].nev;
for (int i = 0; i < a.Count; i++)
{
if ()
if (a[i].ar > legdragabb && a[i].tipus == "tortaszelet")
{
legdragabb = a[i].ar;
nev = a[i].nev;
}
}
Console.WriteLine($"Legdrágább tortaszelet: {nev}");
}
//másik megoldás:
static void legdragabb1(List<Cuki> a)
{
int legdragabb = a[0].ar;
string nev = a[0].nev;
for (int i = 0; i < a.Count; i++)
{
if (a[i].tipus == "tortaszelet")
{
if (a[i].ar > legdragabb)
{
legdragabb = a[i].ar;
nev = a[i].nev;
}
}
}
Console.WriteLine($"Legdrágább tortaszelet: {nev}");
}
static void bevetel(List<Cuki> a)
{
int bevetel = 0;
int hetvege = 0;
for (int i = 0; i < a.Count; i++)
{
if (a[i].tipus == "fagylalt")
{
hetvege = (a[i].napok[4] + a[i].napok[5] + a[i].napok[6])* a[i].ar;
bevetel += hetvege; //bevetel = bevetel + hetvege;
}
}
Console.WriteLine($"A hétvégi 3 nap bevétele a fagylaltokból: {bevetel} Ft");
}
static void fajlbaIras(List<Cuki> a)
{
StreamWriter sw = new StreamWriter("kiiras.txt");
for (int i = 0; i < a.Count; i++)
{
if (a[i].napok[4] > a[i].napok[6])
{
sw.WriteLine($"{a[i].tipus} {a[i].nev}");
}
}
sw.Close();
}
static void legkevesebbBevetel(List<Cuki> a)
{
int legkevesebb = a[0].napok.Sum()*a[0].ar;
int osszeg = 0;
string nev = a[0].nev;
for (int i = 0; i < a.Count; i++)
{
osszeg = a[i].napok.Sum() * a[i].ar;
if (osszeg < legkevesebb)
{
legkevesebb = osszeg;
nev = a[i].nev;
}
}
Console.WriteLine($"A legkevesebb bevételt hozta: {nev}");
}
static void Main(string[] args)
{
List<Cuki> cukraszda = new List<Cuki>();
foreach (var i in File.ReadAllLines("cukraszda.txt"))
{
cukraszda.Add(new Cuki(i));
}
for (int i = 0; i < cukraszda.Count; i++)
{
Console.WriteLine(cukraszda[i]);
}
Console.ReadLine();
for (int i = 0; i < cukraszda.Count; i++)
{
cukraszda[i].kiir();
Console.WriteLine();
}
//Hogyan hivatkozunk az osztályon belüli lista elemeire?:
for (int i = 0; i < cukraszda.Count; i++)
{
Console.WriteLine(i);
for (int j = 0; j < 7; j++)
{
Console.WriteLine(cukraszda[i].napok[j]);
}
Console.WriteLine();
}
//1.Olvasd be a cukraszda.txt vesszővel tagolt fájlból az összes adatot egy osztálypéldányokat
//tartalmazó listába! Az osztályban a napi adatoknak hozz létre egy listát.Írd ki az adatokat.
//2.Írd ki a képernyőre azoknak a réteseknek és tortaszeleteknek a nevét és az árát, amikből
//legalább 150 darabot adtak el vasárnap.
Console.WriteLine("2. feladat");
vasarnapSzazOtven(cukraszda);
//3.Írd ki a legdrágább tortaszelet nevét!
Console.WriteLine("\n3. feladat");
legdragabb(cukraszda);
//4.Írd ki, hogy mennyi bevétele származott a cukrászdának a fagylaltokból a hétvégi három napon.
Console.WriteLine("\n4. feladat");
bevetel(cukraszda);
//5.Írd ki egy új fájlba soronként szóközzel elválasztva az olyan termékek nevét és típusát, amelyekből a pénteki bevétel nagyobb volt, mint a vasárnapi.
Console.WriteLine("\n5. feladat");
fajlbaIras(cukraszda);
//6.Melyik termék hozott a legkevesebb bevételt a héten ?
Console.WriteLine("\n6. feladat");
legkevesebbBevetel(cukraszda);
//7.Emelt : Melyik terméktípus hozott a legkevesebb bevételt a héten?
Console.ReadLine();
}
}
}