using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using System.Windows;
using System.Windows.Controls;
using System.Windows.Data;
using System.Windows.Documents;
using System.Windows.Input;
using System.Windows.Media;
using System.Windows.Media.Imaging;
using System.Windows.Navigation;
using System.Windows.Shapes;
namespace IranyitoMutato
{
/// <summary>
/// Interaction logic for MainWindow.xaml
/// </summary>
public partial class MainWindow : Window
{
public MainWindow()
{
InitializeComponent();
}
private double Szamol(int kiserlet, int sikeres, int yardok, int tdPassz, int eladott)
{
double a, b, c, d;
a = MinMax(((double)sikeres / kiserlet - 0.3) * 5);
b = MinMax(((double)yardok / kiserlet - 3) * 0.25);
c = MinMax(((double)tdPassz / kiserlet) * 20);
d = MinMax(2.375 - ((double)eladott / kiserlet) * 25);
return 100 * (a + b + c + d) / 6;
}
private double MinMax(double x)
{
if (x < 0) return 0;
if (x > 2.375) return 2.375;
return x;
}
private void tbKísérlet_TextChanged(object sender, TextChangedEventArgs e)
{
int kísérlet;
if (int.TryParse(tbKísérlet.Text,out kísérlet) && kísérlet > 0)
{
tbEladott.IsEnabled = true;
tbSikeres.IsEnabled = true;
tbTDk.IsEnabled = true;
tbYardok.IsEnabled = true;
}
}
private void btnSzamol_Click(object sender, RoutedEventArgs e)
{
try
{
double mutató = Math.Round(
Szamol(int.Parse(tbKísérlet.Text),
int.Parse(tbSikeres.Text),
int.Parse(tbYardok.Text),
int.Parse(tbTDk.Text),
int.Parse(tbEladott.Text)), 2);
lMutató.Foreground = Brushes.Black;
lMutató.Content = "Irányító mutató: " + mutató;
}
catch (Exception)
{
lMutató.Foreground = Brushes.Red;
lMutató.Content = "Hibás adat";
}
}
}
}
<Window x:Class="IranyitoMutato.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:IranyitoMutato"
mc:Ignorable="d"
Title="Irányító mutató kalkulátor" Height="223" Width="564">
<Grid>
<Label Content="Átadási kísérletek száma:" HorizontalAlignment="Left" Margin="10,10,0,0" VerticalAlignment="Top"/>
<Label Content="Sikeres átadások száma:" HorizontalAlignment="Left" Margin="10,40,0,0" VerticalAlignment="Top"/>
<Label Content="Passzolt yardok:" HorizontalAlignment="Left" Margin="10,70,0,0" VerticalAlignment="Top"/>
<Label Content="Tochdown passzok:" HorizontalAlignment="Left" Margin="10,100,0,0" VerticalAlignment="Top"/>
<Label Content="Eladott átadások:" HorizontalAlignment="Left" Margin="10,130,0,0" VerticalAlignment="Top"/>
<TextBox x:Name="tbKísérlet" HorizontalAlignment="Left" Margin="163,14,0,0" Text="0" TextWrapping="Wrap" VerticalAlignment="Top" Width="40" TextAlignment="Center" TextChanged="tbKísérlet_TextChanged"/>
<TextBox x:Name="tbSikeres" IsEnabled="False" HorizontalAlignment="Left" Margin="163,44,0,0" Text="0" TextWrapping="Wrap" VerticalAlignment="Top" Width="40" TextAlignment="Center"/>
<TextBox x:Name="tbYardok" IsEnabled="False" HorizontalAlignment="Left" Margin="163,74,0,0" Text="0" TextWrapping="Wrap" VerticalAlignment="Top" Width="40" TextAlignment="Center"/>
<TextBox x:Name="tbTDk" IsEnabled="False" HorizontalAlignment="Left" Margin="163,104,0,0" Text="0" TextWrapping="Wrap" VerticalAlignment="Top" Width="40" TextAlignment="Center"/>
<TextBox x:Name="tbEladott" IsEnabled="False" HorizontalAlignment="Left" Margin="163,134,0,0" Text="0" TextWrapping="Wrap" VerticalAlignment="Top" Width="40" TextAlignment="Center"/>
<Label Name="lMutató" Content="Irányító mutató:" HorizontalAlignment="Left" Margin="288,66,0,0" VerticalAlignment="Top" FontWeight="Bold" FontSize="20"/>
<Button x:Name="btnSzamol" Content="Számol" HorizontalAlignment="Left" Margin="330,111,0,0" VerticalAlignment="Top" RenderTransformOrigin="0.177,-0.185" Width="62" Click="btnSzamol_Click"/>
</Grid>
</Window>
Az osztály meg volt adva:
using System;
using System.Collections.Generic;
using System.Text;
namespace NFL
{
class Jatekos
{
public string Név { get; set; }
public int Yardok { get; set; }
public int Kísárletek { get; set; }
public int Passzok { get; set; }
public int TDk { get; set; }
public int Eladott { get; set; }
public double Mutató { get; set; }
public string Egyetem { get; set; }
public int YardMeterben
{
get
{
return (int)Math.Round(Yardok * 0.9144);
}
}
public Jatekos(string sor)
{
//Deshaun Watson;4823;544;382;33;7;112,4;Clemson
string[] adatok = sor.Split(';');
Név = adatok[0];
Yardok = int.Parse(adatok[1]);
Kísárletek = int.Parse(adatok[2]);
Passzok = int.Parse(adatok[3]);
TDk = int.Parse(adatok[4]);
Eladott = int.Parse(adatok[5]);
Mutató = Konvertal(adatok[6]);
Egyetem = adatok[7];
}
private double Konvertal(string iranyitoMutato)
{
var decimalSeparator = System.Globalization.CultureInfo.CurrentCulture.NumberFormat.NumberDecimalSeparator;
iranyitoMutato = iranyitoMutato.Replace(",", decimalSeparator).Replace(".", decimalSeparator);
if (double.TryParse(iranyitoMutato, out var ertek))
return ertek;
throw new FormatException("Hibás érték (irányítómutató)");
}
public string FormazottNev(string nev)
{
var n = nev.Split(' ');
n[n.Length - 1] = n[n.Length - 1].ToUpper();
return string.Join(" ", n);
}
}
}
using System;
using System.Collections.Generic;
using System.IO;
namespace NFL
{
class Program
{
static void Main(string[] args)
{
List<Jatekos> játékosok = new List<Jatekos>();
foreach (var sor in File.ReadAllLines("NFL_iranyitok.txt"))
{
játékosok.Add(new Jatekos(sor));
}
Console.WriteLine("5. feladat: A statisztikában {0} irányító szerepel.",játékosok.Count);
Console.WriteLine("7. feladat: Legjobb irányítók:");
foreach (var item in játékosok)
{
if (item.Mutató >= 100 && item.YardMeterben >= 4000)
{
Console.WriteLine("\t{0} (Irányító mutató: {1}. Passzok: {2}m.",
item.FormazottNev(item.Név),item.Mutató,item.YardMeterben);
}
}
Console.Write("8. feladat: Eladott labdák száma: ");
int eladott = int.Parse(Console.ReadLine());
List<string> legtobbeladott = new List<string>();
foreach (var item in játékosok)
{
if (item.Eladott > eladott)
legtobbeladott.Add(item.FormazottNev(item.Név));
}
legtobbeladott.Sort();
File.WriteAllLines("legtobbeladott.txt", legtobbeladott);
int legjobb = 0;
for (int i = 1; i < játékosok.Count; i++)
{
if (játékosok[i].TDk > játékosok[legjobb].TDk)
{
legjobb = i;
}
}
Console.WriteLine("9. feladat: A legtöbb TD-t szerző játékos: ");
Console.WriteLine("\tNeve: {0}",játékosok[legjobb].Név);
Console.WriteLine("\tTD-k száma: {0}",játékosok[legjobb].TDk);
Console.WriteLine("\tEladott labdák száma: {0}",játékosok[legjobb].Eladott);
Dictionary<string, int> stat = new Dictionary<string, int>();
foreach (var item in játékosok)
{
if (stat.ContainsKey(item.Egyetem))
stat[item.Egyetem]++;
else
stat.Add(item.Egyetem, 1);
}
Console.WriteLine("10. feladat: Legsikeresebb egyetemek:");
foreach (var item in stat)
{
if (item.Value > 1)
Console.WriteLine("\t{0} - {1}",item.Key,item.Value);
}
}
}
}
-- A feladatok megoldására elkészített SQL parancsokat illessze be a feladat sorszáma után!
-- 11. feladat:
CREATE DATABASE utazas
CHARACTER SET utf8
COLLATE utf8_hungarian_ci;
-- 13. feladat:
UPDATE helyseg
SET nev = 'Porec'
WHERE nev = 'Porecs';
-- 14. feladat:
SELECT DISTINCT
szalloda.nev
FROM utak
INNER JOIN szalloda
ON utak.szalloda_az = szalloda.az
WHERE szalloda.tengerpart_tav = 0
AND szalloda.felpanzio = 'Igen'
AND utak.indulas BETWEEN '2022.01.01' AND '2022.01.31';
-- 15. feladat:
SELECT
szalloda.nev,
szalloda.besorolas
FROM szalloda
WHERE szalloda.nev LIKE '%hotel%'
ORDER BY szalloda.nev;
-- 16. feladat:
SELECT
helyseg.orszag AS Ország,
COUNT(szalloda.az) AS `Szállodák száma`
FROM szalloda
INNER JOIN helyseg
ON szalloda.helyseg_az = helyseg.az
GROUP BY helyseg.orszag
ORDER BY `Szállodák száma` DESC;
-- 17. feladat:
SELECT
szalloda.nev AS `Szálloda neve`,
AVG(utak.ar) AS `Átlagár/fő`,
szalloda.besorolas AS `Csillagok száma`
FROM szalloda
INNER JOIN helyseg
ON szalloda.helyseg_az = helyseg.az
INNER JOIN utak
ON utak.szalloda_az = szalloda.az
WHERE helyseg.orszag = 'Egyiptom'
AND utak.idotartam = 8
GROUP BY szalloda.az,
szalloda.nev,
szalloda.besorolas
ORDER BY `Átlagár/fő` DESC
LIMIT 1;
Nincsenek megjegyzések:
Megjegyzés küldése