Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- using System;
- using System.Collections.Generic;
- using System.Linq;
- using System.Text;
- using System.Threading.Tasks;
- /* Za seminarsko nalogo sem se odločil, da bom izdelal aplikacijo IMENIK. */
- namespace Seminarska_Naloga
- {
- class Seminarska_Naloga
- {
- // Funkcija za "čiščenje" konzolnega okna in ponovni prikaz menija.
- public static void VrniMenu() {
- Console.WriteLine("------------");
- Console.Write("Za vrnitev v menu pritisni poljubno tipko.");
- Console.ReadKey();
- Console.Clear();
- GlavniMeni();
- }
- // Funkcija za prikaz glavnega menija
- public static void GlavniMeni()
- {
- Console.WriteLine("IMENIK");
- Console.WriteLine("------------");
- Console.WriteLine("V. Vnos");
- Console.WriteLine("S. Seznam");
- Console.WriteLine("B. Brisanje");
- Console.WriteLine("I. Iskanje");
- Console.WriteLine("------------");
- Console.WriteLine("Z. Izhod");
- Console.Write("Vnesi svojo izbiro: ");
- }
- // Funkcija, s katero pridobimo podatke od uporabnika.
- public static string[] VnosKontakta(string[] imenik, int indexPolje)
- {
- string imePriimek, naslov, sestavljeniPodatki;
- int posta;
- /* Uporabnik vnese ime in priimek, zanka preveri število vnesenih znakov. Če je
- * preveliko na to opozori uporabnika in zahteva ponovni vnos. */
- Console.Write("Vnesi ime in priimek (max. 30 znakov): ");
- imePriimek = Console.ReadLine();
- while (imePriimek.Length > 30)
- {
- Console.WriteLine("Vnesel si preveliko število znakov. Poizkusi ponovno.");
- Console.Write("Vnesi ime in priimek (max. 30 znakov): ");
- imePriimek = Console.ReadLine();
- }
- /* Uporabnik vnese naslov, zanka preveri število vnesenih znakov. Če je
- * preveliko na to opozori uporabnika in zahteva ponovni vnos. */
- Console.Write("Vnesi naslov (max. 20 znakov): ");
- naslov = Console.ReadLine();
- while (naslov.Length > 20)
- {
- Console.WriteLine("Vnesel si preveliko število znakov. Poizkusi ponovno.");
- Console.Write("Vnesi naslov (max. 20 znakov): ");
- naslov = Console.ReadLine();
- }
- // Uporabnik vnese poštno število
- Console.Write("Vnesi poštno številko: ");
- posta = int.Parse(Console.ReadLine());
- /* Vnesene podatke združimo v enoten string sestavljeniPodatki. Spremenljivko
- * posta pretvorimo nazaj v string. */
- sestavljeniPodatki = imePriimek + " " + naslov + " " + posta.ToString();
- // Sestavljen niz sestavljeniPodatki zapišemo v polje.
- imenik[indexPolje] = sestavljeniPodatki;
- // Vrnemo polje imenik
- return imenik;
- }
- // Funkcija, ki bo omogočala izpis seznama kontaktov.
- public static void IzpisSeznamaKontaktov(string[] imenik) {
- for (int i = 0; i < imenik.Length; i++) {
- //Console.Write(i + 1 + ". kontakt: ");
- if(imenik[i] == null) {
- }
- else {
- Console.WriteLine(imenik[i]);
- }
- }
- }
- /* Funkcija, ki išče iskani niz (zaporedno). Uporabil sem for zanko, ki gre skozi polje in preveri vsak element v
- * njemu z IndexOf metodo, če vse string, ki ga iščemo. Če IndexOf vrne katerokoli drugo vrednost razen -1
- * pomeni, da smo string našli in nam vrne njegov indeks. Če iskanega niza ne najdemo v polju nam funkcija vrne -1. */
- public static int IskanjeZaporedno(string[] imenik, string iskaniNiz) {
- for (int i = 0; i < imenik.Length; i++) {
- if (imenik[i].IndexOf(iskaniNiz) != -1)
- return i;
- }
- return -1;
- }
- public static void IskanjeBinarno(string[] imenik, string iskaniNiz) {
- Array.Sort(imenik);
- //Array.Sort(imenik, (a, b) => a == null ? 1 : b == null ? -1 : a.CompareTo(b));
- //int i = 1;
- //foreach (var item in imenik) {
- // Console.WriteLine(i + ". " + item);
- // i++;
- //}
- int pos = Array.BinarySearch(imenik, iskaniNiz);
- Console.WriteLine(pos);
- }
- static void Main(string[] args)
- {
- // Incializacija spremenljivk
- bool izvajanjeWhile = true;
- char izbiraVMeniju;
- string[] imenik = new string[50];
- int indexPolje = 0;
- string iskaniNiz;
- // Priklic metode, ki prikaže glavni meni
- GlavniMeni();
- // Zanka, ki se bo izvajala dokler uporabnik ne bo vnesel 'Z'
- while (izvajanjeWhile)
- {
- // Uporabnikov vnos
- izbiraVMeniju = Char.ToUpper(char.Parse(Console.ReadLine()));
- // Menu
- switch (izbiraVMeniju)
- {
- case 'V':
- VnosKontakta(imenik, indexPolje);
- indexPolje++;
- VrniMenu();
- break;
- case 'S':
- Console.WriteLine("Seznam kontaktov: ");
- IzpisSeznamaKontaktov(imenik);
- VrniMenu();
- break;
- case 'B':
- Console.Clear();
- GlavniMeni();
- break;
- case 'I':
- Console.Write("Vnesi ime in priimek osebe, ki jo iščeš: ");
- iskaniNiz = Console.ReadLine();
- //IskanjeZaporedno(imenik, iskaniNiz);
- //if (IskanjeZaporedno(imenik, iskaniNiz) == -1) {
- // Console.WriteLine("Te osebe ni v imeniku!");
- //}
- //else {
- // Console.WriteLine("Podatki o iskani osebi: " + imenik[IskanjeZaporedno(imenik, iskaniNiz)]);
- //}
- IskanjeBinarno(imenik, iskaniNiz);
- break;
- case 'Z':
- Console.Write("Program Imenik se zapira.");
- izvajanjeWhile = false;
- break;
- }
- }
- Console.ReadKey();
- }
- }
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement