A többágú szelekciós dolgozat feladatsorához hasonló feladatsort adok itt meg megoldással, hogy ez alapján tudjatok gyakorolni, és a házit megoldani.
using System;
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
namespace tobbagu
{
class Program
{
//Ahol érdemes, használj a megoldás során többágú szelekciót!
//Ha ez nem megy, akkor megoldhatod kétágú szelekciókkal is.
//Írnod kell egy programot, ami a megadott adatok alapján
//segít egy negyedikesnek az ország 8 osztályos művészeti szakgimnáziumai közül választani.
//(rövidített neveket használj: Kisképző Budapesten, Kós Károly Debrecenben, Nyíregyházi Nyíregyházán)
//Feladat:
//Tárold struktúrákban a 3 iskola rövidített nevét; a helyseget (pl. Budapest), tanulói létszámát,
//túljelentkezés arányát (pl. 5, ez ötszörös túljelentkezést jelent);
//illetve azt, hogy a tanulók hány százaléka kollégista (pl. 12, ami 12%-ot jelent).
public struct szakgimik
{
public string nev;
public string helyseg;
public int letszam;
public int tulJelentkezes;
public int kollegista;
}
static void Main(string[] args)
{
szakgimik kiskepzo = new szakgimik();
kiskepzo.nev = "Kisképző";
kiskepzo.helyseg = "Budapest";
kiskepzo.letszam = 500;
kiskepzo.tulJelentkezes = 5;
kiskepzo.kollegista = 70;
szakgimik kos = new szakgimik();
kos.nev = "Kós Károly";
kos.helyseg = "Debrecen";
kos.letszam = 700;
kos.tulJelentkezes = 4;
kos.kollegista = 60;
szakgimik nyiregyhazi = new szakgimik();
nyiregyhazi.nev = "Nyíregyházi";
nyiregyhazi.helyseg = "Nyíregyháza";
nyiregyhazi.letszam = 350;
nyiregyhazi.tulJelentkezes = 3;
nyiregyhazi.kollegista = 65;
//Írd ki ezeket az adatokat a képernyőre, egy iskola adatait egy "A", "B", "C" idézőjeles betűkkel ellátott sorba.
Console.WriteLine("\"A\" iskola neve: {0} , létszáma: {1}, túljelentkezés hányszoros: {2}, ennyi kollégista van: {3}, város: {4}\n", kiskepzo.nev, kiskepzo.letszam, kiskepzo.tulJelentkezes, kiskepzo.kollegista, kiskepzo.helyseg);
Console.WriteLine("\"B\" iskola neve: {0} , létszáma: {1}, túljelentkezés hányszoros: {2}, ennyi kollégista van: {3}, város: {4}\n", kos.nev, kos.letszam, kos.tulJelentkezes, kos.kollegista, kos.helyseg);
Console.WriteLine("\"C\" iskola neve: {0} , létszáma: {1}, túljelentkezés hányszoros: {2}, ennyi kollégista van: {3}, város: {4}\n", nyiregyhazi.nev, nyiregyhazi.letszam, nyiregyhazi.tulJelentkezes, nyiregyhazi.kollegista, nyiregyhazi.helyseg);
//Kérdezd meg a negyedikes diákot, hogy melyik iskolát választja.
//Csak a betűt kelljen beütnie.
//Írd ki a választásától függően a képernyőre az iskola nevét, ezen kívül
//azt, hogy jelenleg hány fő kollégista van az iskolában.
//Ha valótlan betűt ütött be a diák, írj ki hibaüzenetet.
Console.Write("Melyik iskolát választod? (A/B/C)");
char valasztas = Convert.ToChar(Console.ReadLine());
int kollegista=0; //biztos, hogy egész számra kell kerekíteni, az int típussal ez megoldódik
string nev = "";
string varos = "";
//szebb megoldás: string varos=string.Empty;
switch (valasztas)
{
case 'A':
kollegista = kiskepzo.letszam * kiskepzo.kollegista/100;
Console.WriteLine("Az iskola neve: {0}\n Kollégisták száma: {1}\n", kiskepzo.nev, kollegista);
nev = kiskepzo.nev;
varos = kiskepzo.helyseg;
break;
case 'B':
kollegista = kos.letszam * kos.kollegista/100;
Console.WriteLine("Az iskola neve: {0}\n Kollégisták száma: {1}\n", kos.nev, kollegista);
nev = kos.nev;
varos = kos.helyseg;
break;
case 'C':
kollegista = nyiregyhazi.letszam * nyiregyhazi.kollegista/100;
Console.WriteLine("Az iskola neve: {0}\n Kollégisták száma: {1}\n", nyiregyhazi.nev, kollegista);
nev = nyiregyhazi.nev;
varos = nyiregyhazi.helyseg;
break;
default:
Console.WriteLine("Rossz betűt adtál meg. ");
break;
}
//Ezután kérdezd meg a negyedikest, hogy kér-e kollégiumot: <i/n> formában kérd ezt be.
//Ha kér, és a választott iskola Budapesten van,
//akkor írd ki neki, hogy a kollégiumi díj 10000 ft lesz.
//Ha vidéki, írd ki neki, hogy a kollégiumi díj 7000 ft lesz.
//Ha nem kér kollégiumot, írd ki, hogy a titkárságon le kell adnia a lakcímét.
Console.Write("Kérsz kollégiumot? (i/n)");
char ker = Convert.ToChar(Console.ReadLine());
switch (ker)
{
case 'i':
if (varos=="Budapest")
Console.WriteLine("A kollégiumi díj 10000 ft lesz.");
else
Console.WriteLine("A kollégiumi díj 7000 ft lesz.");
break;
case 'n':
Console.WriteLine("A titkárságon le kell adnod a lakcímedet.");
break;
default:
Console.WriteLine("Rossz betűt adtál meg. ");
break;
}
//Ezután kérdezd meg, hogy jelentkezik-e az iskolába.
//Ha jelentkezik, írd ki:
//„Üdvözöllek a ………… iskola tanulói között!”
//A pontozás helyére illeszd be a választott iskola nevét.
//Ha nem jelentkezik, köszönj el tőle.
Console.WriteLine("Jelentkezel az iskolába? igen/nem");
string jelentkezes = Console.ReadLine();
if (jelentkezes == "igen")
Console.WriteLine("Üdvözöllek a {0} iskola tanulói között! ", nev);
else
{
if (jelentkezes == "nem")
Console.WriteLine("Szia!");
else
Console.WriteLine("Rossz szót adtál meg. ");
}
Console.ReadLine();
}
}
}