Aki nem fejezte be az adatbázist, annak házi feladat.
Hivatalos megoldások:
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.IO;
namespace sudokuCLI
{
class Feladvany
{
public string Kezdo { get; private set; }
public int Meret { get; private set; }
public Feladvany(string sor)
{
Kezdo = sor;
Meret = Convert.ToInt32(Math.Sqrt(sor.Length));
}
public void Kirajzol()
{
for (int i = 0; i < Kezdo.Length; i++)
{
if (Kezdo[i] == '0')
{
Console.Write(".");
}
else
{
Console.Write(Kezdo[i]);
}
if (i % Meret == Meret - 1)
{
Console.WriteLine();
}
}
}
}
class sudokuCLI
{
static void Main(string[] args)
{
//3.feladat
List<Feladvany> feladvanyok = new List<Feladvany>();
foreach (string Seged in File.ReadAllLines("feladvanyok.txt"))
{
feladvanyok.Add(new Feladvany(Seged));
}
Console.WriteLine("3. feladat: Beolvasva {0} feladvány", feladvanyok.Count);
//4.feladat
int meret;
do
{
Console.Write("\n4. feladat: Kérem a feladvány méretét [4..9]: ");
meret = Convert.ToInt32(Console.ReadLine());
} while (meret < 4 || meret > 9);
int meretDb = 0;
foreach (var Seged in feladvanyok)
{
if (Seged.Meret == meret)
{
meretDb++;
}
}
Console.WriteLine("{0}x{0} méretű feladványból {1} darab van tárolva", meret, meretDb);
//5.feladat
Random Veletlen = new Random();
int kivalasztott;
do
{
kivalasztott = Veletlen.Next(0, feladvanyok.Count);
} while (feladvanyok[kivalasztott].Meret != meret);
Console.WriteLine("\n5. feladat: A kiválasztott feladvány:\n{0}", feladvanyok[kivalasztott].Kezdo);
//6.feladat
int toltottDb = 0;
foreach (char szamJegy in feladvanyok[kivalasztott].Kezdo)
{
if (szamJegy != '0')
{
toltottDb++;
}
}
double szazalekErtek = Math.Round((double)100 * toltottDb / feladvanyok[kivalasztott].Kezdo.Length, 0, MidpointRounding.AwayFromZero);
Console.WriteLine("\n6. feladat: A feladvány kitöltöttsége: {0}%", szazalekErtek);
//7.feladat
Console.WriteLine("\n7. feladat: A feladvány kirajzolva:");
feladvanyok[kivalasztott].Kirajzol();
//8.feladat
StreamWriter Ki = new StreamWriter("sudoku" + meret + ".txt");
foreach (var seged in feladvanyok)
{
if (seged.Meret == meret)
{
Ki.WriteLine(seged.Kezdo);
}
}
Ki.Close();
Console.WriteLine("\n8. feladat: sudoku{0}.txt állomány {1} darab feladvánnyal létrehozva", meret, meretDb);
Console.ReadLine();
}
}
}
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
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 sudokuGUI
{
/// <summary>
/// Interaction logic for MainWindow.xaml
/// </summary>
public partial class MainWindow : Window
{
public MainWindow()
{
InitializeComponent();
}
public int meret = 4;
public int mezoSzam = 16;
private void MeretModositas(object sender, RoutedEventArgs e)
{
if ((sender as Button).Content.ToString() == "-" && meret > 4)
{
meret--;
MeretBox.Text = meret.ToString();
mezoSzam = meret * meret;
}
else if ((sender as Button).Content.ToString() == "+" && meret < 9)
{
meret++;
MeretBox.Text = meret.ToString();
mezoSzam = meret * meret;
}
}
private void HosszFrissites(object sender, TextChangedEventArgs e)
{
HosszCimke.Content = "Hossz: " + KezdoAllapot.Text.Length;
}
private void Ellenorzes(object sender, RoutedEventArgs e)
{
if (mezoSzam > KezdoAllapot.Text.Length)
{
int karakterKulonbseg = mezoSzam - KezdoAllapot.Text.Length;
MessageBox.Show("A feladvány rövid: kell még " + karakterKulonbseg + " számjegy!");
}
else
{
if (mezoSzam < KezdoAllapot.Text.Length)
{
int karakterKulonbseg = KezdoAllapot.Text.Length - mezoSzam;
MessageBox.Show("A feladvány hosszú: törlendő " + karakterKulonbseg + " számjegy!");
}
else
{
MessageBox.Show("A feladvány megfelelő hosszúságú!");
}
}
}
}
}
<Window x:Class="sudokuGUI.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:sudokuGUI"
mc:Ignorable="d"
Title="Sudoku-ellenőrző" Height="210" Width="540">
<Grid>
<Label Content="Új feladvány mérete:" HorizontalAlignment="Left" Margin="17,29,0,0" VerticalAlignment="Top"/>
<Button Content="-" Click="MeretModositas" HorizontalAlignment="Left" Margin="142,30,0,0" VerticalAlignment="Top" Width="17" />
<TextBox Name="MeretBox" HorizontalAlignment="Left" Height="23" Margin="164,30,0,0" TextWrapping="Wrap" Text="4" TextAlignment="Center" VerticalAlignment="Top" Width="24" IsReadOnly="True"/>
<Button Content="+" Click="MeretModositas" HorizontalAlignment="Left" Margin="193,30,0,0" VerticalAlignment="Top" Width="17"/>
<Label Content="Kezdőállapot:" HorizontalAlignment="Left" Margin="17,79,0,0" VerticalAlignment="Top"/>
<TextBox Name="KezdoAllapot" TextChanged="HosszFrissites" HorizontalAlignment="Left" Height="23" Margin="21,107,0,0" TextWrapping="Wrap" Text="" VerticalAlignment="Top" Width="490"/>
<Label Name="HosszCimke" Content="Hossz: 0" HorizontalAlignment="Left" Margin="17,130,0,0" VerticalAlignment="Top"/>
<Button Content="Ellenőrzés" Click="Ellenorzes" HorizontalAlignment="Left" Margin="436,139,0,0" VerticalAlignment="Top" Width="75"/>
</Grid>
</Window>
-- A feladatok megoldására elkészített SQL parancsokat illessze be a feladat sorszáma után!
-- 8. feladat:
CREATE DATABASE konyvtarak
DEFAULT CHARACTER SET utf8
COLLATE utf8_hungarian_ci;
-- 10. feladat:
UPDATE megyek
SET megyeNev="Budapest"
WHERE megyeNev="BP";
-- 11. feladat:
SELECT
konyvtarNev, irsz
FROM
konyvtarak
WHERE
konyvtarNev LIKE "%Szakkönyvtár%";
-- 12. feladat:
SELECT
konyvtarNev, irsz, cim
FROM
konyvtarak
WHERE
irsz LIKE "1%"
ORDER BY
irsz ASC;
-- 13. feladat:
SELECT
telepNev,
count(id) AS konyvtarDarab
FROM
konyvtarak INNER JOIN telepulesek
ON konyvtarak.irsz=telepulesek.irsz
GROUP BY
telepNev
HAVING konyvtarDarab>=7;
-- 14. feladat:
SELECT
megyeNev,
count(irsz) AS telepulesDarab
FROM
telepulesek INNER JOIN megyek
ON telepulesek.megyeId=megyek.id
WHERE
irsz NOT LIKE "1%"
GROUP BY
megyeNev
ORDER BY
telepulesDarab DESC;
Nincsenek megjegyzések:
Megjegyzés küldése