Mindenkinek házi feladat ellenőrizni a megoldást.
using System;
using System.Collections.Generic;
using System.Linq;
using System.IO;
namespace OrvosiNobeldijasok
{
class Elethossz
{
private int Tol { get; set; }
private int Ig { get; set; }
public int ElethosszEvekben => Tol == -1 || Ig == -1 ? -1 : Ig - Tol;
public bool IsmertAzElethossz => ElethosszEvekben != -1;
public Elethossz(string SzuletesHalalozas)
{
string[] m = SzuletesHalalozas.Split('-');
try
{
Tol = int.Parse(m[0]);
}
catch (Exception)
{
Tol = -1;
}
try
{
Ig = int.Parse(m[1]);
}
catch (Exception)
{
Ig = -1;
}
}
}
class Díjazott // 2. feladathoz
{
public int Év { get; private set; }
public string Név { get; private set; }
public string SzületésHalálozás { get; private set; }
public string Országkód { get; private set; }
public Díjazott(string sor)
{
string[] m = sor.Split(';');
Év = int.Parse(m[0]);
Név = m[1];
SzületésHalálozás = m[2];
Országkód = m[3];
}
}
class OrvosiNobeldijasok
{
static void Main()
{
// 2. feladat:
List<Díjazott> díjazottak = new List<Díjazott>();
foreach (var i in File.ReadAllLines("../../orvosi_nobeldijak.txt").Skip(1))
{
díjazottak.Add(new Díjazott(i));
}
// 3. feladat
Console.WriteLine($"3. feladat: Díjazottak száma: {díjazottak.Count} fő");
// 4. feladat
int utolsóÉv = díjazottak.First().Év;
foreach (var i in díjazottak.Skip(1))
{
if (i.Év > utolsóÉv) utolsóÉv = i.Év;
}
Console.WriteLine($"4. feladat: Utolsó év: {utolsóÉv}");
Console.Write("5. feladat: Kérem adja meg egy ország kódját: ");
string inputOrszágkód = Console.ReadLine().ToUpper();
List<Díjazott> inputOrszágDíjazottjai = new List<Díjazott>();
foreach (var i in díjazottak)
{
if (i.Országkód == inputOrszágkód) inputOrszágDíjazottjai.Add(i);
}
if (inputOrszágDíjazottjai.Count == 0)
{
Console.WriteLine("\tA megadott országból nem volt díjazott!");
}
if (inputOrszágDíjazottjai.Count == 1)
{
Console.WriteLine($"\tA megadott ország díjazottja:");
Console.WriteLine($"\tNév: {inputOrszágDíjazottjai.First().Név}");
Console.WriteLine($"\tÉv: {inputOrszágDíjazottjai.First().Év}");
Console.WriteLine($"\tSz/H: {inputOrszágDíjazottjai.First().SzületésHalálozás}");
}
if (inputOrszágDíjazottjai.Count > 1)
{
Console.WriteLine($"\tA megadott országból {inputOrszágDíjazottjai.Count} fő díjazott volt!");
}
Console.WriteLine("6. Statisztika");
Dictionary<string, int> stat = new Dictionary<string, int>();
foreach (var i in díjazottak)
{
if (stat.ContainsKey(i.Országkód)) stat[i.Országkód]++;
else stat.Add(i.Országkód, 1);
}
foreach (var i in stat)
{
if (i.Value > 5) Console.WriteLine($"\t{i.Key} - {i.Value} fő");
}
// 7. feladat
int élethosszÖsszeg = 0;
int ismertÉlethosszFő = 0;
foreach (var i in díjazottak)
{
Elethossz aktDíjazottÉletkora = new Elethossz(i.SzületésHalálozás);
if (aktDíjazottÉletkora.IsmertAzElethossz)
{
élethosszÖsszeg += aktDíjazottÉletkora.ElethosszEvekben;
ismertÉlethosszFő++;
}
}
Console.WriteLine($"7. feladat: A keresett átlag: {(double)élethosszÖsszeg / ismertÉlethosszFő:f1} év");
Console.ReadKey();
}
}
}
using System.IO;
using System.Windows;
using System.Collections.Generic;
namespace OrvosiNobeldijasokGUI
{
public partial class MainWindow : Window
{
public MainWindow()
{
InitializeComponent();
}
private void BtnMentés_Click(object sender, RoutedEventArgs e)
{
if (TbÉv.Text != "" && TbNév.Text != "" && TbSzH.Text != "" && TbOrszág.Text != "")
{
if (int.Parse(TbÉv.Text) <= 1989)
{
MessageBox.Show("Hiba! Az évszám nem megfelelő!", "Mentés");
return;
}
try
{
List<string> ki = new List<string>();
ki.Add("Év;Név;SzületésHalálozás;Országkód");
ki.Add($"{TbÉv.Text};{TbNév.Text};{TbSzH.Text};{TbOrszág.Text}");
File.WriteAllLines("../../uj_dijazott.txt", ki);
TbÉv.Text = "";
TbNév.Text = "";
TbSzH.Text = "";
TbOrszág.Text = "";
}
catch (System.Exception)
{
MessageBox.Show("Hiba az állomány írásánál!");
}
}
else MessageBox.Show("Töltsön ki minden mezőt!", "Mentés");
}
}
}
<Window x:Class="OrvosiNobeldijasokGUI.MainWindow"
xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
xmlns:d="http://schemas.microsoft.com/expression/blend/2008"
xmlns:mc="http://schemas.openxmlformats.org/markup-compatibility/2006"
xmlns:local="clr-namespace:OrvosiNobeldijasokGUI"
mc:Ignorable="d"
Title="Orvosi Nobel-díjasok" Height="250" Width="320">
<Grid>
<Label Content="Év:" HorizontalAlignment="Left" Margin="20,20,0,0" VerticalAlignment="Top"/>
<Label Content="Név:" HorizontalAlignment="Left" Margin="20,50,0,0" VerticalAlignment="Top"/>
<Label Content="Sz/H:" HorizontalAlignment="Left" Margin="20,80,0,0" VerticalAlignment="Top"/>
<Label Content="Ország:" HorizontalAlignment="Left" Margin="20,110,0,0" VerticalAlignment="Top"/>
<TextBox x:Name="TbÉv" HorizontalAlignment="Left" Height="23" Margin="80,20,0,0" TextWrapping="Wrap" VerticalAlignment="Top" Width="50"/>
<TextBox x:Name="TbNév" HorizontalAlignment="Left" Height="23" Margin="80,50,0,0" TextWrapping="Wrap" VerticalAlignment="Top" Width="200"/>
<TextBox x:Name="TbSzH" HorizontalAlignment="Left" Height="23" Margin="80,80,0,0" TextWrapping="Wrap" VerticalAlignment="Top" Width="100"/>
<TextBox x:Name="TbOrszág" HorizontalAlignment="Left" Height="23" Margin="80,110,0,0" TextWrapping="Wrap" VerticalAlignment="Top" Width="50"/>
<Button x:Name="BtnMentés" Content="Adatok mentése" HorizontalAlignment="Left" Margin="100,170,0,0" VerticalAlignment="Top" Width="100" Click="BtnMentés_Click" />
</Grid>
</Window>
-- A feladatok megoldására elkészített SQL parancsokat illessze be a feladat sorszáma után!
-- 9. feladat:
CREATE DATABASE tdhongrie
DEFAULT CHARACTER SET utf8
COLLATE utf8_hungarian_ci;
-- 11. feladat:
DELETE FROM
csapat
WHERE
id = 21;
-- 12. feladat:
SELECT
nev
FROM
versenyzo
WHERE
nemzetiseg = "HUN"
ORDER BY
nev ASC;
-- 13. feladat:
SELECT
nemzetiseg,
COUNT(id) AS indulokSzama
FROM
versenyzo
GROUP BY
nemzetiseg
ORDER BY
2 DESC;
-- 14. feladat:;
SELECT
eredmeny.szakasz,
eredmeny.ido
FROM
eredmeny INNER JOIN versenyzo
ON eredmeny.versenyzoId = versenyzo.id
WHERE
versenyzo.nev = "Valter Attila";
-- 15. feladat:
SELECT
csapat.csapatNev,
COUNT(versenyzo.id) AS magyarokSzama
FROM
versenyzo INNER JOIN csapat
ON versenyzo.csapatId = csapat.id
WHERE
versenyzo.nemzetiseg = "HUN"
GROUP BY
csapat.csapatNev
HAVING
COUNT(*) > 1;
Nincsenek megjegyzések:
Megjegyzés küldése