Kolega
Sestavi razred Kolega, ki ima tri komponente:
$ime$, $priimek$ in $telefonsko številko$
Vse tri komponente naj bodo tipa $String$ in javno dostopne. Napiši konstruktor:
ki vse tri komponente nastavi na ni podatkov.
Sestavi testni program, v katerem ustvariš dva objekta tipa Kolega. Oba objekta tudi zpiši na zaslon.
Uporaba razreda Kolega - Napiši program, ki sestavi tabelo 10ih objektov tipa Kolega, prebere telefonsko
številko in izpiše tiste objekte iz tabele,ki imajo tako telefonsko številko. Če takega objekta v tabeli ni,
naj se izpiše: "Noben moj kolega nima take telefonske številke."
Rešitev (Java)
public class Kolega {
public String ime;
public String priimek;
public String telefonska;
//konstruktorji
public Kolega() {
//kolega
this.ime = "NI PODATKOV";
this.priimek = "NI PODATKOV";
this.telefonska = "NI PODATKOV";
}
public Kolega(String i, String p, String tel_st) {
this.ime = i;
this.priimek = p;
this.telefonska = tel_st;
}
//toString - kako je objekt videti kot niz
public String toString() {
return "Kolegu je ime " + this.ime + ", piše se " + this.priimek + " in njegaova telefonska številka je " + this.telefonska;
}
}
Rešitev (C#)
public class Kolega
{
//osnovne lastnosti objektov
public string ime;
public string priimek;
public string telefStevilka;
//začetni konstruktor za objekte
public Kolega() {
this.ime = "NI PODATKOV";
this.priimek = "NI PODATKOV";
this.telefStevilka = "NI PODATKOV";
}
public Kolega(string i, string p, string ts) {
this.ime = i;
this.priimek = p;
this.telefStevilka = ts;
}
//metoda, preko katere spreminjamo telefonske številke za določen objekt
//metoda tudi pogojuje katere številke lahko vnesemo (če številka ne ustreza,
//ostane aktualna obstoječa številka)
public bool spremeniTelefonsko(string telSt) {
int[]tab = {1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20};
int i = 0;
while (i < 20) {
if (""+tab[i] == telSt) {
this.telefStevilka = telSt;
}
i++;
}
return true;
}
//metoda, preko katere lahko izpisujemo telefonsko številko za določen objekt
public string povejTelefonskoKolega() {
return this.telefStevilka;
}
//metoda ToString izpisuje podatke ki so navedeni za ta primer (za objekt, ki
//ga določimo v testnem programu
override public string ToString() {
return "podatki so "+this.ime+" "+this.priimek+" "+this.telefStevilka;
}
}
}
</csharp>
testni program
<csharp>
using System;
using Razred_Kolega;
namespace Objekti_Kolega {
class Program {
public static void Main(string[] args) {
//ustvarimo dva objekta (a in b-razreda Kolega), ter jima določimo lastnosti;
//ime, priimek in enomestno telefonsko številko. Telefonska številka je enomestna
//zato, da se v nadaljnem programu lažje demonstrira zastavljena naloga
Kolega a = new Kolega("Miha#1", " Novak#1", " 5");
Kolega b = new Kolega("Miha#2", " Novak#2", " 6");
//izpis lastnosti objektov (zaradi same kontrole na vaji)
Console.WriteLine(a.ime+" "+a.priimek+" "+a.telefStevilka);
Console.WriteLine(b.ime+" "+b.priimek+" "+b.telefStevilka+"\n");
//prikaz izpisa določenega objekta z ukazom ToString
Console.WriteLine("Izpis z ukazom ToString za kolega b... "+b.ToString());
//z ukazom preko metode v razredu lahko preberemo določen podatek nekega objekta
//(če smo metodo predhodno naredili)
Console.WriteLine("Telefonska številka kolega a je: "+
a.povejTelefonskoKolega()+"\n");
//spremenimo telefonsko številko objektu a
Console.WriteLine(a.spremeniTelefonsko("14"));
//izpis spremenjene telef. štev., če je v mejah, kot smo jih določili v razredu
Console.WriteLine("Spremenjena telefonska številka osebe a je: "+
a.povejTelefonskoKolega());
// generator za pomoč pri izdelavi tabele 10 objektov
Random gen = new Random();
//izdelava tabele 10-ih objektov razreda Kolega z naključnimi tel.številkami os 1 do 20
//takšna numeracija je izbrana zato, da se lahko prikaže stanje, če neka tel.št. obstaja
//ali ne obstaja. Izvedba zanke, ki tudi preverja, če je v tabeli katera tel.št.,
//ki je enaka referenčni
Kolega[]novi = new Kolega[10];
int i = 0;
int stevec = 0;
while (i < 10) {
int tel = gen.Next(1,20);
string niz = ""+tel;
novi[i] = new Kolega();
novi[i].ime = "Ana"+i;
novi[i].priimek = "Ban"+i;
novi[i].telefStevilka = niz;
if ("5".Equals (novi[i].telefStevilka)) {
//izpis rezultata, (če je več naključnih tel.številk v tabeli, ki ustrezajo,
//se to tudi izpiše
Console.WriteLine("Oseb iz tabele, ki imajo "+"enake tel.številke kot " +
"Kolega a: "+novi[i].ime+" "+novi[i].priimek+" ima "+
"telef. številko "+novi[i].telefStevilka);
}
//pogoj, ki preveri, koliko je "zgrešitev" s števcem
if ("5" != novi[i].telefStevilka) {
stevec ++;
}
i++;
}
// če se števec napolni (10 x zgrešitev), se izpiše spodnje obvestilo
if (stevec > 9) {
Console.WriteLine("Nobeden od kolegov iz tabele desetih "+
"oseb nima telefonske številke osebe a.");
}
Console.Write("Pritisni karkoli..........");
Console.ReadKey(true);
}
}
}