-
-
Save jandolejs/7d7222ed1c28c48e6e5b7fac4b1943df to your computer and use it in GitHub Desktop.
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
/* | |
* Created by SharpDevelop. | |
* User: prero | |
* Date: 22.05.2020 | |
* Time: 14:23 | |
* | |
* To change this template use Tools | Options | Coding | Edit Standard Headers. | |
*/ | |
using System; | |
namespace Obce_Semestralka | |
{ | |
/// <summary> | |
/// Description of Obce. | |
/// </summary> | |
public class Obec | |
{ | |
public string nazevO {get; set;} | |
public int smerovaci {get; set;} | |
public int obyvatele {get; set;} | |
public string kraj {get; set;} | |
public string okres {get; set;} | |
public string posta {get; set;} | |
public Obec(string nazev, int smerovaci, int obyvatele, string kraj, string okres, string posta) | |
{ | |
this.nazevO = nazevO; | |
this.smerovaci = smerovaci; | |
this.obyvatele = obyvatele; | |
this.kraj = kraj; | |
this.okres = okres; | |
this.posta = posta; | |
} | |
public override string ToString() | |
{ | |
return string.Format("[{0}, {1}, {2}, {3}, {4}, {5}]", nazevO, smerovaci, obyvatele, kraj, okres, posta); | |
} | |
} | |
} |
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
/* | |
* Created by SharpDevelop. | |
* User: prero | |
* Date: 21.05.2020 | |
* Time: 16:58 | |
* | |
* To change this template use Tools | Options | Coding | Edit Standard Headers. | |
*/ | |
using System; | |
using System.IO; | |
using System.Collections.Generic; | |
using System.Text; | |
namespace Obce_Semestralka | |
{ | |
class Program | |
{ | |
public static int PocetStran; | |
public static int Strana = 1; | |
public static List<Obec> Obce = new List<Obec>(); | |
public static List<Obec> FiltrObce = new List<Obec>(); | |
public static bool Pokracuj = true; | |
public static void Main(string[] args) | |
{ | |
Console.CursorVisible = false; | |
Console.OutputEncoding = Encoding.UTF8; | |
Menu(); | |
} | |
public static void NactiObce() | |
{ | |
string nazevS = "obce.txt"; | |
if (File.Exists(nazevS)) | |
{ | |
using (StreamReader sr = new StreamReader(nazevS, Encoding.UTF8)) | |
{ | |
string line; | |
while ((line = sr.ReadLine()) != null) | |
{ | |
string [] VesInfo = line.Split(';'); | |
string nazevO = VesInfo[0]; | |
int smerovaci = Convert.ToInt32(VesInfo[1]); | |
int obyvatele = Convert.ToInt32(VesInfo[2]); | |
string kraj = VesInfo[3]; | |
string okres = VesInfo[4]; | |
string posta = VesInfo[5]; | |
Obec obec = new Obec(nazevO, smerovaci, obyvatele, kraj, okres, posta); | |
Obce.Add(obec); | |
} | |
} | |
}else | |
{ | |
Console.WriteLine("Soubor obci nenalezen."); | |
} | |
} | |
public static void Menu() | |
{ | |
while(Pokracuj) | |
{ | |
VykresliMenu(); | |
ConsoleKeyInfo info = Console.ReadKey(); | |
switch (info.Key) { | |
case ConsoleKey.F1: | |
NactiObce(); | |
VypsaniObci(Obce, "Vypsani vsech obci"); | |
break; | |
case ConsoleKey.F2: | |
NactiObce(); | |
PismenoObce(); | |
break; | |
case ConsoleKey.F3: | |
NactiObce(); | |
VypisObceVKraji(); | |
break; | |
case ConsoleKey.F4: | |
NactiObce(); | |
VypisPoctuObyvatel(); | |
break; | |
case ConsoleKey.Escape: | |
Pokracuj = false; | |
break; | |
} | |
Console.Clear(); | |
} | |
} | |
public static void VykresliMenu() | |
{ | |
Console.BackgroundColor = ConsoleColor.DarkBlue; | |
Console.ForegroundColor = ConsoleColor.White; | |
Console.WriteLine("Databaze obci Ceske Republiky"); | |
Console.WriteLine("Napsal Michal Prerost 2020"); | |
Console.BackgroundColor = ConsoleColor.DarkGreen; | |
Console.ForegroundColor = ConsoleColor.White; | |
Console.WriteLine("F1 - Vypis vse"); | |
Console.WriteLine("F2 - Hledej dle prvniho pismene"); | |
Console.WriteLine("F3 - Hledej dle kraje"); | |
Console.WriteLine("F4 - Hledej dle poctu obyvatel"); | |
Console.BackgroundColor = ConsoleColor.DarkRed; | |
Console.ForegroundColor = ConsoleColor.White; | |
Console.WriteLine("ESC - Konec"); | |
Console.ResetColor(); | |
Obce.Clear(); | |
FiltrObce.Clear(); | |
Strana = 1; | |
PocetStran = 0; | |
} | |
public static void Napoveda() | |
{ | |
Console.BackgroundColor = ConsoleColor.DarkGreen; | |
Console.ForegroundColor = ConsoleColor.White; | |
Console.WriteLine("PgUp/PgDn - listuj nahoru/dolu\tF10 - zpet"); | |
Console.ResetColor(); | |
} | |
public static void HlavickaSeznamu() | |
{ | |
Console.BackgroundColor = ConsoleColor.DarkYellow; | |
Console.ForegroundColor = ConsoleColor.White; | |
Console.WriteLine("NAZEV//PSC//OBYVATEL//KRAJ//OKRES//POSTA"); | |
Console.ResetColor(); | |
} | |
public static void VypsaniObci(List<Obec> obceVstup, string nadpis) | |
{ | |
if (obceVstup.Count % 20 == 0) { | |
PocetStran = obceVstup.Count / 20; | |
} | |
else{ | |
PocetStran = (obceVstup.Count / 20) + 1; | |
} | |
int MinObci = 0; | |
int MaxObci = 20; | |
Pokracuj = true; | |
while (Pokracuj) { | |
Console.Clear(); | |
Napoveda(); | |
HlavickaSeznamu(); | |
for (int i = MinObci; i < obceVstup.Count; i++) { | |
if (i < MaxObci - 1) { | |
Console.WriteLine(obceVstup[i]); | |
} | |
} | |
ConsoleKeyInfo info = Console.ReadKey(); | |
switch (info.Key) { | |
case ConsoleKey.PageDown: | |
if (MaxObci < obceVstup.Count) { | |
MinObci += 20; | |
MaxObci += 20; | |
Strana++; | |
}else{ | |
continue; | |
} | |
break; | |
case ConsoleKey.PageUp: | |
if (MinObci > 0) { | |
MinObci -= 20; | |
MaxObci -= 20; | |
Strana--; | |
}else{ | |
continue; | |
} | |
break; | |
case ConsoleKey.F10: | |
Console.Clear(); | |
Pokracuj = false; | |
break; | |
} | |
} | |
MaxObci = 20; | |
MinObci = 0; | |
Pokracuj = true; | |
} | |
public static void PismenoObce() | |
{ | |
Console.Write("Zadej zacinajici pismeno obce a stiskni Enter: "); | |
bool Nema = true; | |
string Pismeno = Console.ReadLine().ToUpper(); | |
for (int i = 0; i < Obce.Count; i++) { | |
if (Obce[i].nazevO.StartsWith(Pismeno)) { | |
FiltrObce.Add(Obce[i]); | |
Nema = false; | |
} | |
} | |
if (Nema) { | |
Console.ForegroundColor = ConsoleColor.DarkGreen; | |
Console.WriteLine(@"Obec zacinajici na pismeno {0} neni v databzi.", Pismeno); | |
Console.ResetColor(); | |
Console.WriteLine("F10 - zpet"); | |
Nema = true; | |
Console.ReadKey(true); | |
} | |
else{ | |
VypsaniObci(FiltrObce, "F2 - Filtr: Obce podle pismene:"); | |
} | |
PocetStran = 0; | |
} | |
public static void NajdiObceVKraji(string kraj) | |
{ | |
for (int i = 0; i < Obce.Count; i++) { | |
if (kraj == Obce[i].kraj) { | |
FiltrObce.Add(Obce[i]); | |
} | |
} | |
VypsaniObci(FiltrObce, "F3 - Filtr: Obce v kraji:"); | |
} | |
public static void VypisObceVKraji() | |
{ | |
Console.WriteLine("Stiskni pismeno kraje, jez chces vypsat:"); | |
Console.WriteLine("A - Praha B - Jihomoravsky C - Jihocesky E - Pardubicky"); | |
Console.WriteLine("H - Kralovehradecky J - Vysocina K - Karlovarsky L - Liberecky"); | |
Console.WriteLine("M - Olomoucky P - Plzensky S - Stredocesky T - Moravskoslezsky"); | |
Console.WriteLine("U - Ustecky Z - Zlinsky"); | |
ConsoleKeyInfo info = Console.ReadKey(); | |
switch (info.Key) { | |
case ConsoleKey.A: | |
NajdiObceVKraji("Praha"); | |
break; | |
case ConsoleKey.B: | |
NajdiObceVKraji("Jihomoravsky"); | |
break; | |
case ConsoleKey.C: | |
NajdiObceVKraji("Jihocesky"); | |
break; | |
case ConsoleKey.E: | |
NajdiObceVKraji("Pardubicky"); | |
break; | |
case ConsoleKey.H: | |
NajdiObceVKraji("Kralovehradecky"); | |
break; | |
case ConsoleKey.J: | |
NajdiObceVKraji("Vysocina"); | |
break; | |
case ConsoleKey.K: | |
NajdiObceVKraji("Karlovarsky"); | |
break; | |
case ConsoleKey.L: | |
NajdiObceVKraji("Liberecky"); | |
break; | |
case ConsoleKey.M: | |
NajdiObceVKraji("Olomoucky"); | |
break; | |
case ConsoleKey.P: | |
NajdiObceVKraji("Plzensky"); | |
break; | |
case ConsoleKey.S: | |
NajdiObceVKraji("Stredocesky"); | |
break; | |
case ConsoleKey.T: | |
NajdiObceVKraji("Moravskoslezský"); | |
break; | |
case ConsoleKey.U: | |
NajdiObceVKraji("Ustecky"); | |
break; | |
case ConsoleKey.Z: | |
NajdiObceVKraji("Zlinsky"); | |
break; | |
} | |
} | |
public static void FiltrPoctuObyvatel(int MinPO, int MaxPO) | |
{ | |
bool Ma = false; | |
for (int i = 0; i < Obce.Count; i++) { | |
if (Obce[i].obyvatele <= MaxPO && Obce[i].obyvatele > MinPO) { | |
FiltrObce.Add(Obce[i]); | |
Ma = true; | |
} | |
} | |
if (!Ma) { | |
Console.WriteLine(); | |
Console.ForegroundColor = ConsoleColor.DarkGreen; | |
Console.WriteLine("Zadna obec v rozmezí {0:0,0} - {1:0,0} obyvatel neni.", MinPO, MaxPO); | |
Console.ResetColor(); | |
Console.WriteLine("F10 - zpet"); | |
Console.ReadKey(true); | |
}else{ | |
VypsaniObci(FiltrObce, "F4 - Filtr poctu obyvatel"); | |
} | |
} | |
public static void VypisPoctuObyvatel() | |
{ | |
Console.WriteLine("Stiskni pismeno pro zobrazeni obci podle poctu obyvatel:"); | |
Console.WriteLine("A - Obce s 0 - 1000 obyvatel"); | |
Console.WriteLine("B - Obce s 1001 - 10 000 obyvatel"); | |
Console.WriteLine("C - Obce s 10 001 - 100 000 obyvatel"); | |
Console.WriteLine("D - Obce s 100 001 - 500 000 obyvatel"); | |
ConsoleKeyInfo info = Console.ReadKey(); | |
switch (info.Key) { | |
case ConsoleKey.A: | |
FiltrPoctuObyvatel(0, 1000); | |
break; | |
case ConsoleKey.B: | |
FiltrPoctuObyvatel(1001, 10000); | |
break; | |
case ConsoleKey.C: | |
FiltrPoctuObyvatel(10001, 100000); | |
break; | |
case ConsoleKey.D: | |
FiltrPoctuObyvatel(100001, 500000); | |
break; | |
} | |
} | |
} | |
} |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment