private void dgvHenkilot_SelectionChanged(object sender, EventArgs e) { /* * * Mikäli jotain on valittuna, niin salli napit, ja mikäli taas ei niin, laita enable=false * * */ if (dgvHenkilot.SelectedRows.Count > 0) { Henkilo item = (Henkilo)dgvHenkilot.SelectedRows[0].DataBoundItem; Henkilo row = henkilot.Find(x => x.henkilotunnus == item.henkilotunnus); lblHenkilo.Text = row.kutsumanimi + " " + row.sukunimi + " valittu."; btnMuokkaaHenkilo.Enabled = true; btnPoistaHenkilo.Enabled = true; btnLisaaToimisuhde.Enabled = true; dgvToimisuhteet.DataSource = null; if (row.toimisuhteet.Count > 0) { dgvToimisuhteet.DataSource = row.toimisuhteet; } } else { lblHenkilo.Text = ""; btnMuokkaaHenkilo.Enabled = false; btnLisaaToimisuhde.Enabled = false; btnPoistaHenkilo.Enabled = false; } }
static void TestaaHenkiloRekisteri() { // ludaan muutamaan testi henkilö Henkilot popo = new Henkilot(); Henkilo hlo = new Henkilo { Etunimi = "Jack", Sukunimi = "Russell", Hetu = "311270-123A" }; Henkilo hlo1 = new Henkilo { Etunimi = "Kirsi", Sukunimi = "Kernell", Hetu = "121270-234B" }; Henkilo hlo2 = new Henkilo { Etunimi = "Mat", Sukunimi = "Mickelson", Hetu = "011280-456C" }; // lisätään henkilöt popoon popo.LisaaHenkilo(hlo); popo.LisaaHenkilo(hlo1); popo.LisaaHenkilo(hlo2); // tulostetaan popo näytölle foreach (Henkilo h in popo.Henkilolista) { Console.WriteLine("Henkilö {0}", h.ToString()); } //TODO kysy käyttäjältä hetu sitä vataava henkilö näytölle Console.WriteLine("Löyty henkilö {0}", popo.HaeHenkiloHetulla("011280-456C")); // henkilö näytölle indexilla Console.WriteLine("Löyty henkilö {0}", popo.HaeHenkilo(1)); }
public MuokkaaHenkilo(Paaikkuna paaikkuna, int id) { /* * Muokataan henkilöä 'id' * id on henkilöt listan indeksi * * */ InitializeComponent(); this.id = id; this.paaikkuna = paaikkuna; Henkilo h = this.paaikkuna.henkilot[id]; tbPostinumero.KeyPress += this.paaikkuna.Postinumero_KeyPress; tbEtunimet.Text = String.Join(" ", h.etunimet); cbKutsumanimi.DataSource = h.etunimet; cbKutsumanimi.SelectedItem = h.kutsumanimi; tbSukunimi.Text = h.sukunimi; tbHetu.Text = h.henkilotunnus; tbPostinumero.Text = h.postinumero; tbPostitoimipaikka.Text = h.postitoimipaikka; tbKatuosoite.Text = h.katuosoite; }
public void paivita() { /* * * Päivittää datagridin ja napit, mikäli on valittuna, hyödyllinen funktio * */ dgvHenkilot.DataSource = null; dgvHenkilot.DataSource = henkilot; if (dgvHenkilot.SelectedRows.Count > 0) { Henkilo h = (Henkilo)dgvHenkilot.SelectedRows[0].DataBoundItem; dgvToimisuhteet.DataSource = null; if (h.toimisuhteet.Count > 0) { dgvToimisuhteet.DataSource = h.toimisuhteet; } else { btnMuokkaaToimisuhde.Enabled = false; btnPoistaToimisuhde.Enabled = false; } } else { btnPoistaHenkilo.Enabled = false; btnMuokkaaHenkilo.Enabled = false; } }
private void btnLisaaHenkilo_Click(object sender, EventArgs e) { /* * Lisätään henkilö listaan * Lisätään lokirivi lokit listaan */ Henkilo henkilo = this.paaikkuna.henkilot[this.id]; henkilo.kutsumanimi = cbKutsumanimi.Text; henkilo.sukunimi = tbSukunimi.Text; henkilo.postinumero = tbPostinumero.Text; henkilo.postitoimipaikka = tbPostitoimipaikka.Text; henkilo.katuosoite = tbKatuosoite.Text; paaikkuna.henkilot[id] = henkilo; if (!this.paaikkuna.ehdotukset.ContainsKey(tbPostinumero.Text.Substring(0, 2))) { this.paaikkuna.ehdotukset.Add(tbPostinumero.Text.Substring(0, 2), tbPostitoimipaikka.Text); } LokiRivi lokirivi; lokirivi.kuka = Environment.UserName; lokirivi.tietotyyppi = "Henkilön muokkaus"; lokirivi.tieto = henkilo.henkilotunnus; lokirivi.milloin = DateTime.Now; paaikkuna.loki.Add(lokirivi); paaikkuna.paivita(); this.Close(); }
static void Main(string[] args) { //Tässä luodaan pino asiakkaat. Stack asiakkaat = new Stack(); Henkilo h1 = new Henkilo("Akseli", "040-123456", 1000); Henkilo h2 = new Henkilo("Majia", "040-234567", 2000); Henkilo h3 = new Henkilo("Niklas", "040-345678", 3000); //Tässä pinoon lisätään päivämäärä. asiakkaat.Push(DateTime.Now); //Seuraavassa pinoon lisätään Henkilo-olioita. asiakkaat.Push(h1); asiakkaat.Push(h2); asiakkaat.Push(h3); //Tässä pinon alkioiden lukumäärä otetaan talteen. //Huomaa, että joka kerta, kun kutsutaan metodi //Pop(), pinon koko pienenee! int pinonKoko = asiakkaat.Count; Console.WriteLine("Alkioiden lukumäärä: " + pinonKoko); //Seuraavassa pinon sisältö tulostetaan näytölle. IEnumerator enumerator = asiakkaat.GetEnumerator(); while (enumerator.MoveNext()) { Console.WriteLine(enumerator.Current); } //Tässä pinon kaikki alkiot kopioidaan //pinonAlkiot taulukkoon. object[] pinonAlkiot = asiakkaat.ToArray(); Console.WriteLine("Alkiot tulostettuna taulukon kautta: "); //Seuraavassa taulukkon pinonAlkiot sisältö //tulostetaan näytölle. foreach (object obj in pinonAlkiot) { Console.WriteLine(obj); } Console.WriteLine("Päällimmäisin alkio tulostettuna Peek()-metodilla: "); Console.WriteLine(asiakkaat.Peek()); Console.WriteLine("Alkiot tulostettuna Pop()-metodilla:"); for (int i = 0; i < pinonKoko; i++) { Console.WriteLine(asiakkaat.Pop()); } Console.WriteLine("Alkioiden lukumäärä: " + asiakkaat.Count); }
public ActionResult UusiTyontekija(Henkilo h) { ViewBag.Message = "Uusi työntekijä"; ViewBag.Onnistui = DataAccess.LisääHenkilö(h); ViewData["osasto_id"] = DataAccess.HaeOsastoIdt(); return(View()); }
private void btnLisaaToimisuhde_Click(object sender, EventArgs e) { /* * * avaa lisää toimisuhde ikkunan */ Henkilo item = (Henkilo)dgvHenkilot.SelectedRows[0].DataBoundItem; int row = henkilot.FindIndex(x => x.henkilotunnus == item.henkilotunnus); LisaaToimisuhde ikkuna = new LisaaToimisuhde(this, row); ikkuna.ShowDialog(); }
private void btnMuokkaaToimisuhde_Click(object sender, EventArgs e) { /* * avaa muokkaa toimisuhde ikkunan */ Henkilo item = (Henkilo)dgvHenkilot.SelectedRows[0].DataBoundItem; int row = henkilot.FindIndex(x => x.henkilotunnus == item.henkilotunnus); Toimisuhde item_2 = (Toimisuhde)dgvToimisuhteet.SelectedRows[0].DataBoundItem; int row_2 = item.toimisuhteet.FindIndex(x => x.nimike == item_2.nimike); if (dgvToimisuhteet.SelectedRows.Count > 0 && dgvHenkilot.SelectedRows.Count > 0) { MuokkaaToimisuhde ikkuna = new MuokkaaToimisuhde(this, row, row_2); ikkuna.ShowDialog(); } }
private void btnMuokkaaHenkilo_Click(object sender, EventArgs e) { /* * avaa muokkaahenkilö ikkunan */ if (dgvHenkilot.SelectedRows.Count > 0) { Henkilo item = (Henkilo)dgvHenkilot.SelectedRows[0].DataBoundItem; int row = henkilot.FindIndex(x => x.henkilotunnus == item.henkilotunnus); MuokkaaHenkilo ikkuna = new MuokkaaHenkilo(this, row); ikkuna.ShowDialog(); } else { paivita(); } }
private void dgvToimisuhteet_ColumnHeaderMouseClick(object sender, DataGridViewCellMouseEventArgs e) { DataGridView grid = (DataGridView)sender; SortOrder so = SortOrder.None; SortOrder current = grid.Columns[e.ColumnIndex].HeaderCell.SortGlyphDirection; Henkilo item = (Henkilo)dgvHenkilot.SelectedRows[0].DataBoundItem; Henkilo row = henkilot.Find(x => x.henkilotunnus == item.henkilotunnus); if (current == SortOrder.None || current == SortOrder.Ascending) { so = SortOrder.Descending; } else { so = SortOrder.Ascending; } string column = grid.Columns[e.ColumnIndex].Name; if (column.Equals("Nimike")) { if (so == SortOrder.Ascending) { dgvToimisuhteet.DataSource = row.toimisuhteet.OrderBy(x => x.nimike).ToList(); } else { dgvToimisuhteet.DataSource = row.toimisuhteet.OrderByDescending(x => x.nimike).ToList(); } } else { dgvToimisuhteet.DataSource = row.toimisuhteet; } grid.Columns[e.ColumnIndex].HeaderCell.SortGlyphDirection = so; }
static void Main(string[] args) { try { List <Henkilo> ukkelit = new List <Henkilo>(); using (StreamReader sr = new StreamReader("input.txt")) { Henkilo temp; string s; string[] split; while ((s = sr.ReadLine()) != null) { temp = new Henkilo(); split = s.Split(' '); temp.Etunimi = split[0]; temp.Sukunimi = split[1]; ukkelit.Add(temp); } Dictionary <string, int> montaNimea = new Dictionary <string, int>(); for (int i = 0; i < ukkelit.Count; i++) { if (montaNimea.ContainsKey(ukkelit[i].Etunimi)) { montaNimea[ukkelit[i].Etunimi]++; } else { montaNimea.Add(ukkelit[i].Etunimi, 1); } } foreach (KeyValuePair <string, int> key in montaNimea) { Console.WriteLine(key.Key + " " + key.Value); } } } catch (Exception e) { throw e; } }
//Seuraavassa toteutetaan IComparable-liittymän metodi //CompareTo(), joka kutsutaan aina, kun oliot lajitellaan. public int CompareTo(Object obj) { //Tässä joudutaan muuntamaan obj-olio Henkilo- //tyyppiseksi. Tämä on mahdollista, koska obj on //tyyppiä Object, joka on kaikkien luokkien kantaluokka. Henkilo tempHenkilo = (Henkilo)obj; if (this.palkka < tempHenkilo.palkka) { return(-1); } else if (this.palkka > tempHenkilo.palkka) { return(1); } else { return(0); } }
private void btnPoistaHenkilo_Click(object sender, EventArgs e) { /* * * Poistetaan henki * */ DialogResult dr = MessageBox.Show("Haluatko poistaa tämän henkilön ?", "Henkilön poisto", MessageBoxButtons.YesNo); if (dr == DialogResult.Yes) { if (dgvHenkilot.SelectedRows.Count > 0) { Henkilo item = (Henkilo)dgvHenkilot.SelectedRows[0].DataBoundItem; int row = henkilot.FindIndex(x => x.henkilotunnus == item.henkilotunnus); henkilot.RemoveAt(row); paivita(); } } }
public int VertaileNimi(Object obj) { //Tässä joudutaan muuntamaan obj-olio Henkilo- //tyyppiseksi. Henkilo tempHenkilo = (Henkilo)obj; //Seuraavassa nimi-attribuutteja verrataan //keskenään metodin CompareTo() avulla. if (this.nimi.CompareTo(tempHenkilo.nimi) < 1) { return(-1); } else if (this.nimi.CompareTo(tempHenkilo.nimi) > 1) { return(1); } else { return(0); } }
static void Main(string[] args) { //Seuraavassa luodaan henkilo1-olio. Koska olio luodaan //new-operaattorilla ja oletusmuodostimella, kentät //alustetaan oletusarvoilla: numeerinen kentät //nolllla, bool kentät false-arvolla ja string kentät //null-arvolla. Henkilo henkilo1 = new Henkilo(); Console.WriteLine("Oletusmuodostimella ja new-operaattorilla luodun olion tiedot: "); //Seuraavassa kutsutaan henkilo1-olion VartalonMuoto()- //metodi. henkilo1.VartalonMuoto(); //Seuraavassa luodaan henkilo2 new-operaattorilla ja //muodostimella, jonka kautta kentät alustetaan. Henkilo henkilo2 = new Henkilo(53f, 1.60f, 35); Console.WriteLine("Muodostimella ja new-operaattorilla luodun olion tiedot: "); henkilo2.VartalonMuoto(); //Tässä luodaan henkilo3-olio ilman muodostinta. //Huomaa, että ennen kuin pystytään //kutsumaan olion metodeja, kaikki kentät tulee ensin //alustaa. Henkilo henkilo3; //Seuraavassa alustetaan henkilo3-olion attribuutit. henkilo3.kiloPaino = 200f; henkilo3.metriPituus = 2.10f; henkilo3.ika = 38; henkilo3.aikuinen = true; Console.WriteLine("Ilman new-operaattoria luodoun olion tiedot (attribuutit on alustettu erikseen):"); henkilo3.VartalonMuoto(); }
static void TestaaHenkiloRekisteri() { //luodaan muuttuja Henkilot poppoo = new Henkilot(); Henkilo hlo = new Henkilo { Etunimi = "Jack ", Sukunimi = "Sparrow ", HeTu = "987652-754Å " }; Henkilo hlo1 = new Henkilo { Etunimi = "James ", Sukunimi = "Bond ", HeTu = "007007-007A " }; Henkilo hlo2 = new Henkilo { Etunimi = "Ninjaspidar ", Sukunimi = "Kurwaspidar ", HeTu = "696969-6969 " }; //lisätään henkilöt poppooseen poppoo.LisaaHenkilo(hlo); poppoo.LisaaHenkilo(hlo1); poppoo.LisaaHenkilo(hlo2); foreach (Henkilo h in poppoo.HenkiloLista) { Console.WriteLine("{0}", h.ToString()); } //TODO kysy käyttäjältä hetu ja haetaan sitä vastaava henkilö näytölle Console.WriteLine("\n Syötä henkilötunnus: "); string hetu = Console.ReadLine(); Henkilo haettu = poppoo.HaeHenkiloHetulla(hetu); Console.WriteLine(); if (haettu != null) { Console.WriteLine(haettu.ToString()); } else { Console.WriteLine("Ei löytynyt. Better luck next time"); } }
private void btnPoistaToimisuhde_Click(object sender, EventArgs e) { /* * Poistetaan toimisuhde ja kysytään käyttäjältä varmistus * */ DialogResult dr = MessageBox.Show("Haluatko poistaa tämän toimisuhteen ?", "Toimisuhteen poisto", MessageBoxButtons.YesNo); if (dr == DialogResult.Yes) { if (dgvHenkilot.SelectedRows.Count > 0) { if (dgvToimisuhteet.SelectedRows.Count > 0) { Henkilo item = (Henkilo)dgvHenkilot.SelectedRows[0].DataBoundItem; int row = henkilot.FindIndex(x => x.henkilotunnus == item.henkilotunnus); Toimisuhde item_2 = (Toimisuhde)dgvToimisuhteet.SelectedRows[0].DataBoundItem; int row_2 = item.toimisuhteet.FindIndex(x => x.nimike == item_2.nimike); henkilot[row].toimisuhteet.RemoveAt(row_2); paivita(); } } } }
static void Main(string[] args) { //Tässä luodaan henkilot ArrayList ArrayList henkilot = new ArrayList(); //seuraavassa määritellään Henkilo olioita. Henkilo h1 = new Henkilo("Eesus", 100, 4234.50f); Henkilo h2 = new Henkilo("DonnaLiisa", 300, 1234.60f); Henkilo h3 = new Henkilo("Alluusia", 200, 5234.70f); Henkilo h4 = new Henkilo("Buusia", 500, 2234.70f); Henkilo h5 = new Henkilo("Cesna", 200, 3234.70f); //Seuraavassa lisätään dataa ArrayList-kokoelmaan henkilot.Add(h1); henkilot.Add(h2); henkilot.Add(h3); henkilot.Add(h4); henkilot.Add(h5); Console.WriteLine("Henkilötiedot alussa:"); //Tässä kutsutaan TulostaHenkilot staattinen metodi, //joka saa argumenttina ArrayList-kokoelman. Henkilo.TulostaHenkilot(henkilot); //Tässä lajitteluKriteeti attribuutin arvoksi laitetaan //"nimi", eli Henkilo oliot lajitellaan niiden nimi //attribuutin perusteella. Henkilo.lajitteluKriteeti = "nimi"; //Tässä ArrayList-kokoelman sisältö lajitellaan //nimen mukaan nousevaan järjestykseen. henkilot.Sort(); Console.WriteLine("Henkilötiedot järjestyksessä " + Henkilo.lajitteluKriteeti + "-attribuutin mukaan:"); //Tässä tulostetaan ArrayList-kokoelman henkilot sisältö. Henkilo.TulostaHenkilot(henkilot); //Tässä lajitteluKriteeti attribuutin arvoksi //laitetaan "id", eli Henkilo oliot lajitellaan niiden //id-attribuutin perusteella. Henkilo.lajitteluKriteeti = "id"; //Tässä ArrayList-kokoelman sisältö lajitellaan id //mukaan nousevaan järjestykseen. henkilot.Sort(); Console.WriteLine("Henkilötiedot järjestyksessä " + Henkilo.lajitteluKriteeti + "-attribuutin mukaan:"); //Tässä taas tulostetaan henkilot-ArrayList tauluko //sisältö. Henkilo.TulostaHenkilot(henkilot); //Tässä lajitteluKriteeti attribuutin arvoksi //laitetaan "id", eli Henkilo oliot lajitellaan niiden //id-attribuutin perusteella. Henkilo.lajitteluKriteeti = "palkka"; //Tässä ArrayList-kokoelman sisältö lajitellaan //palkan mukaan nousevaan järjestykseen. henkilot.Sort(); Console.WriteLine("Henkilötiedot järjestyksessä " + Henkilo.lajitteluKriteeti + "-attribuutin mukaan:"); //Tässä taas tulostetaan henkilot-ArrayList tauluko //sisältö. Henkilo.TulostaHenkilot(henkilot); }
static void Main(string[] args) { //Tässä luodaan ArrayList-kokoelma henkilot. ArrayList henkilot = new ArrayList(); //seuraavassa määritellään Henkilo-olioita. Henkilo h1 = new Henkilo("Pessi", 100, 4234.50f); Henkilo h2 = new Henkilo("AnnaLiisa", 200, 1234.60f); Henkilo h3 = new Henkilo("Illuusia", 300, 3234.70f); //Seuraavassa lisätään dataa ArrayList-kokoelmaan. henkilot.Add(h1); henkilot.Add(h2); henkilot.Add(h3); Console.WriteLine("Henkilötiedot alussa:"); //Seuraavassa ArrayList-kokoelman kaikki alkiot //tulostetaan näytölle käyttämällä liittymää //IEnumerator. IEnumerator enumarator = henkilot.GetEnumerator(); while (enumarator.MoveNext()) { Console.WriteLine(enumarator.Current); } Console.WriteLine("-----------------"); //Seuraavassa selvitetään sisältääkö //ArrayList-kokoelma henkilot oliota h2. Console.WriteLine("IndexOf() avulla selvitetaan index "); if (henkilot.Contains(h2)) { //Tässä selvitetään h2-olion indeksi. int h2Indeksi = henkilot.IndexOf(h2); Console.WriteLine("h2-olion indeksi on " + h2Indeksi); Console.WriteLine("h2: " + henkilot[h2Indeksi]); } Console.WriteLine("-----------------"); //Tässä haetaan h3-olio metodin BinarySearch() avulla. Console.WriteLine("BinarySearch() avulla selvitetaan index "); int h3Indeksi = henkilot.BinarySearch(h3); Console.WriteLine("h3-olion indeksi on " + h3Indeksi); Console.WriteLine("h3: " + henkilot[h3Indeksi]); Console.WriteLine("-----------------"); //Tässä ArrayList-kokoelman sisältö lajitellaan //palkan mukaan nousevaan järjestykseen. henkilot.Sort(); Console.WriteLine("Henkilötiedot nousevassa järjestyksessä palkan mukaan:"); //Tässä läpikäyntifunktio enumerator //alustetaan uudelleen. enumarator = henkilot.GetEnumerator(); //Seuraavassa käydään luettelo läpi ja kaikki //alkiot taas tulostetaan näytölle. while (enumarator.MoveNext()) { Console.WriteLine(enumarator.Current); } Console.WriteLine("-----------------"); //Tässä ArrayList-kokoelman henkilot sisältö //lajitellaan palkan mukaan laskevaan järjestykseen. henkilot.Reverse(); Console.WriteLine("Henkilötiedot laskevassa järjestyksessä palkan mukaan:"); //Tässä ArrayList-kokoelman henkilot kaikki alkiot //taas tulostetaan näytölle. Huomaa, että tässä //taulukon sisältö käydään indeksin avulla läpi. for (int i = 0; i < henkilot.Count; i++) { Console.WriteLine(henkilot[i]); } Console.WriteLine("-----------------"); //Tässä poistetaan kokoelman henkilot kaikki alkiot. henkilot.Clear(); Console.WriteLine("Henkilöiden lukumäärä Clear() metodin kutsun jälkeen:"); //Tässä taas tulostetaan taulukon alkioiden lukumäärä. Console.WriteLine("henkilot.Count=" + henkilot.Count); }
static void Main(string[] args) { //Tässä luodaan jono asiakkaat. Queue asiakkaat = new Queue(); Henkilo h1 = new Henkilo("Akseli", "040-123456", 1000); Henkilo h2 = new Henkilo("Majia", "040-234567", 2000); Henkilo h3 = new Henkilo("Niklas", "040-345678", 3000); //Tässä jonoon lisätään päivämäärä. asiakkaat.Enqueue(DateTime.Now); //Seuraavassa jonoon lisätään Henkilo-olioita. asiakkaat.Enqueue(h1); asiakkaat.Enqueue(h3); asiakkaat.Enqueue(h2); //Tässä jonon alkioiden lukumäärä otetaan talteen. //Huomaa, että joka kerta, kun kutsutaan metodi //Dequeue(), jonon koko pienenee! int jononKoko = asiakkaat.Count; Console.WriteLine("Alkioiden lukumäärä: " + jononKoko); //Seuraavassa jonon sisältö tulostetaan näytölle. IEnumerator enumerator = asiakkaat.GetEnumerator(); while (enumerator.MoveNext()) { Console.WriteLine(enumerator.Current); } //Seuraavassa olio h2 tulostetaan näytölle jos //se on jonossa. if (asiakkaat.Contains(h2)) { Console.WriteLine("h2=" + h2); } else { Console.WriteLine("h2 ei ole jonossa!"); } //Tässä jonon kaikki alkiot kopioidaan //taulukkoon jononAlkiot. object[] jononAlkiot = asiakkaat.ToArray(); Console.WriteLine("Alkiot tulostettuna taulukon kautta: "); //Seuraavassa taulukkon jononAlkiot sisältö //tulostetaan näytölle. foreach (object obj in jononAlkiot) { Console.WriteLine(obj); } Console.WriteLine("Ensimmäinen alkio tulostettuna Peek()-metodilla: "); Console.WriteLine(asiakkaat.Peek()); Console.WriteLine("Alkiot tulostettuna Dequeue()-metodilla:"); for (int i = 0; i < jononKoko; i++) { Console.WriteLine(asiakkaat.Dequeue()); } Console.WriteLine("Alkioiden lukumäärä: " + asiakkaat.Count); }