Beruflich Dokumente
Kultur Dokumente
Napravite GUI aplikaciju koja u svojoj glavnom formi sadrži jednu tipku. Pritiskom na tipku
prikazuje se nova instanca iste glavne forme. Pritiskom na tipku novo prikazane forme opet se
prikazuje nova instanca glavne forme, itd. U natpisu tipke (Text) neka piše broj instanci glavnih formi
koje su prikazane. (ovu vrijednost je potrebno ažurirati svaki puta kada korisnik klikne na tipku u bilo
kojoj od instanci glavne forme).
namespace WindowsFormsApplication340
{
class NovaForma
{
public NovaForma() { }
public void izracun() {
Form1 nova = new Form1();
nova.Show();
Form1.brojForme = Application.OpenForms.Count;
foreach (Form1 form in Application.OpenForms)
{
form.button1.Text = Form1.brojForme.ToString();
}
}
}
}
namespace WindowsFormsApplication340
{
public partial class Form1 : Form
{
public static int brojForme = 1;
public Form1()
{
InitializeComponent();
this.button1.Text = Form1.brojForme.ToString();
}
private void button1_Click(object sender, EventArgs e)
{
NovaForma nF = new NovaForma();
nF.izracun();
}
}
}
2. Napravite GUI aplikaciju koja služi kao brojač klikova (sadrži tipku, textbox i label), klikom na tipku
broji se broj klikova, nakon X klikova se vrijednost resetira. X vrijednost korisnik unosi preko textboxa.
Broj klikova se zapisuje u label.
namespace WindowsFormsApplication342
{
class ResetBroja
{
int brojac = 0;
int vrijednost;
public ResetBroja(int jedan, int dva) {
this.brojac = jedan;
this.vrijednost = dva;
}
public int racun() {
if (brojac > vrijednost) brojac = 0;
return brojac;
}
}
}
namespace WindowsFormsApplication342
{
public partial class Form1 : Form
{
public Form1()
{
InitializeComponent();
}
int brojac = 0;
private void button1_Click(object sender, EventArgs e)
{
++brojac;
int vrijednost = int.Parse(textBox1.Text);
ResetBroja reset = new ResetBroja(brojac,vrijednost);
label1.Text = reset.racun().ToString();
}
}
}
3. Napravite GUI aplikaciju koja se sastoji od forme i tipke, kada pređe mišem preko tipke (odnosno
na onMouseOver događaj) potrebno je premjesti tipku na neku drugu lokaciju (slučajnu) na formi.
namespace WindowsFormsApplication343
{
class PomicanjeGumba
{
public PomicanjeGumba() { }
public void nasumicnoPomicaje(Form1 forma) {
Random r = new Random();
int a = r.Next(0,250);
int b = r.Next(0, 250);
forma.button1.Location = new Point(a,b);
}
}
}
namespace WindowsFormsApplication343
{
public partial class Form1 : Form
{
public Form1()
{
InitializeComponent();
}
private void button1_MouseHover(object sender, EventArgs e)
{
PomicanjeGumba pG = new PomicanjeGumba();
pG.nasumicnoPomicaje(this);
}
}
}
4. Napravite GUI aplikaciju koja sadrži izbornik, s opcijama open i exit. Na exit se zatvara aplikacija, a
na open se otvara nova instanca prozora glavne forme kao MDI dijete postojeće glavne forme.
namespace MdiParent
{
public class Open
{
public Form1 newWindow { get; set; }
public Open CreateNewWindow()
{
this.newWindow = new Form1();
return this;
}
public Open OpenWindow()
{
this.newWindow.Show();
return this;
}
}
namespace MdiParent
{
public static class ExitClass
{
public static void CloseApplication()
{
Application.Exit();
}
}
}
namespace MdiParent
{
public partial class Form1 : Form
{
public Form1()
{
InitializeComponent();
}
private void CloseClick(object sender, EventArgs e)
{
ExitClass.CloseApplication();
}
private void OpenClick(object sender, EventArgs e)
{
Open window = new Open();
window.CreateNewWindow();
window.newWindow.MdiParent = this.MdiParent;
window.OpenWindow();
}
}
}
5. Napravite GUI aplikaciju koja čim ju korisnik pokrene, otvara prozor s pozdravnom porukom i
slikom, koju kad korisnik klikne zatvara aplikaciju.
namespace WindowsFormsApplication345
{
class exit
{
public exit() { }
public void pozdravi() {
MessageBox.Show("Pozdravna Poruka!");
}
public void zatvori() {
Application.Exit();
}
}
}
namespace WindowsFormsApplication345
{
public partial class Form1 : Form
{
public Form1()
{
InitializeComponent();
exit z = new exit();
z.pozdravi();
}
private void pictureBox1_Click(object sender, EventArgs e)
{
exit zatvori = new exit();
zatvori.zatvori();
}
}
}
8. Napravite GUI aplikaciju koja ima 3 texboxa. U prvom textboxu korisnik unosi tekst A. U drugi
textbox korisnik unosi tekst B. U treći textbox unosi bilo koji tekst, prilikom unosa teksta u treći
textbox svaka pojava teksta A se mora zamijeniti tekstom B. (npr. korisniku treći textbox piše tekst i
svaki puta kada napiše ZG automatski će mu se umjesto ZG napisati Zagreb).
namespace WindowsFormsApplication346
{
class Zamjena
{
string a, b, c;
public Zamjena(string jedan, string dva, string tri){
this.a = jedan;
this.b = dva;
this.c = tri;
}
public string zamjenaPozicija() {
c = c.Replace(a, b);
return c;
}
}
}
namespace WindowsFormsApplication346
{
public partial class Form1 : Form
{
public Form1()
{
InitializeComponent();
}
private void textBox3_TextChanged(object sender, EventArgs e)
{
string a = textBox1.Text;
string b = textBox2.Text;
string c = textBox3.Text;
Zamjena z = new Zamjena(a, b, c);
textBox3.Text = z.zamjenaPozicija();
}
}
}
9. Napravite GUI aplikaciju koja učitava web stranicu (Pomoć: webbrowser kontrola) temeljem URLa
kojeg korisnik zadaje upisom u textbox, stranica se učitava pritiskom na tipku u formi. Kada je
stranica uspješno učitana promijeniti boju pozadine forme u zeleno.
namespace WindowsFormsApplication347
{
class Ucitavanje
{
string a;
public Ucitavanje(string adresa) {
this.a = adresa;
}
public string ucitavanjeStranice(WebBrowser veb)
{
String link = a;
veb.Navigate(link);
return link;
}
}
}
namespace WindowsFormsApplication347
{
class Boja
{
public Boja() { }
public void uspjesnoUcitano(Form1 forma)
{
forma.BackColor = Color.Green;
}
}
}
namespace WindowsFormsApplication347
{
public partial class Form1 : Form
{
public Form1()
{
InitializeComponent();
}
private void button1_Click(object sender, EventArgs e)
{
string a = textBox1.Text;
Ucitavanje ucitaj = new Ucitavanje(a);
ucitaj.ucitavanjeStranice(webBrowser1);
}
private void webBrowser1_DocumentCompleted(object sender,
WebBrowserDocumentCompletedEventArgs e)
{
Boja boja = new Boja();
boja.uspjesnoUcitano(this);
}
}
}
10. Napraviti GUI aplikaciju koja ima samo jedan label u kojem se u realnom vremenu ispisuju
koordinate miša kada se kreće po površini glavne forme. Oblik zapisa neka bude "x=vrijednostX,
y=vrijednostY" gdje su vrijednostX i vrijednostY stvarne koordinate miša.
namespace WindowsFormsApplication348
{
class Lokacija
{
int a, b;
public Lokacija() { }
public void lokacijaMisa(Form1 forma, MouseEventArgs e) {
a = e.X;
b = e.Y;
forma.label1.Text = (a + ", " + b).ToString();
}
}
}
namespace WindowsFormsApplication348
{
public partial class Form1 : Form
{
public Form1()
{
InitializeComponent();
}
private void Form1_MouseMove(object sender, MouseEventArgs e)
{
Lokacija l = new Lokacija();
l.lokacijaMisa(this, e);
}
}
}
11. Napravite GUI aplikaciju koja ima 2 textboxa za unos lozinke (sadržaj neka vizualno bude
zamijenjen znakom @), Korisnik mora unesti dva puta lozinku, pritiskom na tipku aplikacija moram
provjeriti ispravnost lozinke. Lozinke moraju biti jednake u dva textboxa, moraju biti duže od 5
znakova, moraju sadržavati minimalno 3 velika slova, i minimalno jedan znak za svaki element iz
skupa: #, $, %
namespace WindowsFormsApplication349
{
class Lozinka
{
string a, b;
public Lozinka(string prvi, string drugi) {
this.a = prvi;
this.b = drugi;
}
public void provjeriLozinke() {
if (a.CompareTo(b) != 0)
{
MessageBox.Show("Lozinke nisu jednake!");
}
int brojac = 0;
for (int i = 0; i < a.Length; i++)
{
if (char.IsLetter(a[i]) && char.IsUpper(a[i]))
{
++brojac;
}
}
if (brojac < 3)
{
MessageBox.Show("Nema dovljno velikih slova!");
}
if (!a.Contains('#') || !a.Contains('$') || !a.Contains('%'))
{
MessageBox.Show("Niste koristili znakove iz liste!");
}
if (a == b)
{
MessageBox.Show("Lozinke su jednake!");
}
}
}
}
namespace WindowsFormsApplication349
{
public partial class Form1 : Form
{
public Form1()
{
InitializeComponent();
}
private void button1_Click(object sender, EventArgs e)
{
string a = textBox1.Text;
string b = textBox2.Text;
Lozinka l = new Lozinka(a,b);
l.provjeriLozinke();
}
}
}
12. Napravite konzolnu aplikaciju koja ispisuje sadržaj upisanog direktorija. Korisnik prilikom
pokretanja aplikacije mora upisati putanju nekog direktorija. Ako je unos neispravan treba ispisati
poruku da je direktorij neispravan inače treba ispisati nazive svih datoteka u direktoriju
namespace WindowsFormsApplication350
{
public partial class Form1 : Form
{
public Form1()
{
InitializeComponent();
}
private void button1_Click(object sender, EventArgs e)
{
string direkrotij = textBox1.Text;
if (Directory.Exists(direkrotij) == false)
{
MessageBox.Show("Direktorij ne postoji!");
}
else
{
string[] datoteke = Directory.GetFiles(direkrotij);
foreach (string data in datoteke)
{
textBox2.Text += data.ToString();
}
}
}
}
}
13. Napravite GUI aplikaciju koja ima textbox i tipku. U textbox korisnik unosi proizvoljan broj
elemenata(brojeva) odvojenih zarezom. npr. 2,6,1,2,5 Pritiskom na tipku u isti textbox aplikacija
mora ispisati iste brojeve ali sortirano uzlazno i odvojeno zarezom.
namespace WindowsFormsApplication351
{
class Brojevi
{
public Brojevi() { }
public void sortiranjeBrojeva(Form1 forma)
{
string[] brojevi = forma.textBox1.Text.Split(',');
ArrayList lista = new ArrayList();
forma.textBox1.Clear();
foreach (string broj in brojevi)
{
lista.Add(int.Parse(broj));
}
lista.Sort(null);
foreach (int broj in lista)
{
forma.textBox1.Text += broj.ToString() + ",";
}
}
}
}
namespace WindowsFormsApplication351
{
public partial class Form1 : Form
{
public Form1()
{
InitializeComponent();
}
private void button1_Click(object sender, EventArgs e)
{
//string[] brojevi = textBox1.Text.Split(',');
Brojevi b = new Brojevi();
b.sortiranjeBrojeva(this);
}
}
}
14. Napravite GUI aplikaciju koja ima jedan label u kojem je ispisan broj sekundi do početka utakmice
(20:45). Aplikacija u realnom vremenu (svake sekunde) osvježava stanje labela (broja sekundi do
početka).
namespace WindowsFormsApplication352
{
class Odbrojavanje
{
public Odbrojavanje() { }
public void sekundeDoUtakmice(Form1 forma) {
long a = 20 * 60 * 60 + 45 * 60;
long b = DateTime.Now.Hour * 60 * 60 + DateTime.Now.Minute * 60 +
DateTime.Now.Second;
forma.label1.Text = (a ‐ b).ToString();
}
}
}
namespace WindowsFormsApplication352
{
public partial class Form1 : Form
{
public Form1()
{
InitializeComponent();
timer1.Start();
}
private void timer1_Tick(object sender, EventArgs e)
{
Odbrojavanje broji = new Odbrojavanje();
broji.sekundeDoUtakmice(this);
}
}
}
15. Napravite GUI aplikaciju koja ima jedan textbox i jednu tipku, korisnik u textbox unosi godinu.
pritiskom na tipku aplikacija za zadanu godinu treba u isti textbox ispisati koliko petaka 13 se nalazi u
zadanoj godini.
namespace WindowsFormsApplication353
{
class Godina
{
public Godina() { }
public void racunanjePetka(Form1 forma) {
int brojac = 0;
DateTime a = new DateTime(int.Parse(forma.textBox1.Text), 1, 1);
int b = int.Parse(forma.textBox1.Text) + 1;
while (a.Year != b)
{
a = a.AddDays(1);
if (a.Day == 13 & a.DayOfWeek == DayOfWeek.Friday)
{
brojac++;
}
}
forma.textBox1.Text = brojac.ToString();
}
}
}
namespace WindowsFormsApplication353
{
public partial class Form1 : Form
{
public Form1()
{
InitializeComponent();
}
private void button1_Click(object sender, EventArgs e)
{
Godina godina = new Godina();
godina.racunanjePetka(this);
}
}
}
16. Napravite GUI aplikaciju koja prilikom pokretanja pokazuje (u label kontroli) koliko dana treba
proći do sljedećeg petka.
namespace WindowsFormsApplication354
{
class Brojac
{
public Brojac() { }
public void brojanjePetka(Form1 forma) {
DayOfWeek petak = new DayOfWeek();
DateTime sad = DateTime.Now;
int brojac = 0;
petak = sad.DayOfWeek;
while (petak != DayOfWeek.Friday)
{
sad = sad.AddDays(1);
petak = sad.DayOfWeek;
brojac++;
}
forma.label1.Text = brojac.ToString();
}
}
}
namespace WindowsFormsApplication354
{
public partial class Form1 : Form
{
public Form1()
{
InitializeComponent();
Brojac b = new Brojac();
b.brojanjePetka(this);
}
}
}
17. Kreirati klasu Artikl s atributima (int idArtikla, string nazivArtikla, float jedinicnaCijena). Kreirati
klasu StavkaRacuna s atributima (int idStavke, Artikl , float količina). Kreirati klasu Račun koja ima
atribute (int brojRacuna, datetime datumKreiranja, string prodavač, string nacinPlacanja,
List<StavkaRacuna> stavke). U klasi StavkaRacuna napišite metodu koja će računati ukupan iznos
stavke. U klasi Račun napišite metodu koja će računati ukupan iznos računa.
namespace Zadatak17
{
class Program
{
static void Main(string[] args)
{
}
}
}
namespace Zadatak17
{
class Artikli
{
int idArtikli;
string nazivArtikla;
public float jedinicnaCijena;
}
}
namespace Zadatak17
{
class Stavkaracuna
{
int idStavke;
Artikli Artikl;
float kolicina;
public float IznosStavke()
{
return Artikl.jedinicnaCijena * kolicina;
}
}
}
namespace Zadatak17
{
class Racun
{
int brojRacuna;
DateTime datumKreiranja;
string prodavac;
string nacinPlacanja;
List<Stavkaracuna> stavke;
public double IznosRacuna()
{
double suma = 0;
foreach (Stavkaracuna stavka in stavke)
{
suma += stavka.IznosStavke();
}
return suma;
}
}
}
18. Kreirajte klasu Mjesec (kalendarski mjesec) koja ima atribute (int redniBroj, string nazivMjeseca,
int brojDana). Kreirajte klasu Semestar koja ima atribute (Mjesec pocetakSemestra, Mjesec
zavrsetakSemestra) i ima metodu koja vraća listu mjeseca koji pripadaju tom semestru.
namespace Zadatak18
{
class Program
{
static void Main(string[] args)
{
}
}
}
namespace Zadatak18
{
class Mjesec
{
public int redniBroj;
string nazivMjeseca;
int BrojDana;
}
}
namespace Zadatak18
{
class semestar
{
Mjesec pocetakSemestra;
Mjesec zavrsetakSemestra;
List<Mjesec> izmedju;
public List<Mjesec> Izracunaj()
{
for (Mjesec i = pocetakSemestra; i.redniBroj <
zavrsetakSemestra.redniBroj; i.redniBroj++)
{
izmedju.Add(i);
}
return izmedju;
}
}
}
19. Napravite GUI aplikaciju u kojoj korisnik unosi dva broja (2 textboxa) i pritiskom na tipku korisniku
se u rezultatu ispisuje rezultat dijeljena ta dva broja. Napravite provjeru jesu li su uneseni brojevi a ne
slova te provjeru je li drugi broj različit od nule.
namespace WindowsFormsApplication355
{
class Izracun
{
public Izracun() { }
public void racunanje(Form1 forma) {
string a = forma.textBox1.Text;
string b = forma.textBox2.Text;
int n = 0;
int m = 0;
try
{
n = int.Parse(a);
m = int.Parse(b);
}
catch (Exception)
{
MessageBox.Show("Format nije dobar");
}
if (m == 0)
{
MessageBox.Show("Nula");
}
int rezultat = n / m;
MessageBox.Show(rezultat.ToString());
}
}
}
namespace WindowsFormsApplication355
{
public partial class Form1 : Form
{
public Form1()
{
InitializeComponent();
}
private void button1_Click(object sender, EventArgs e)
{
Izracun i = new Izracun();
i.racunanje(this);
}
}
}
namespace WindowsFormsApplication355
{
class Izracun
{
int n, m;
int rezultat;
public Izracun(int jedan, int dva) {
this.n = jedan;
this.m = dva;
}
public int racunanje() {
rezultat = n / m;
return rezultat;
}
}
}
namespace WindowsFormsApplication355
{
public partial class Form1 : Form
{
public Form1()
{
InitializeComponent();
}
private void button1_Click(object sender, EventArgs e)
{
string a = textBox1.Text;
string b = textBox2.Text;
int n = 0;
int m = 0;
try
{
n = int.Parse(a);
m = int.Parse(b);
}
catch (Exception)
{
MessageBox.Show("Format nije dobar!");
}
if (m==0)
{
MessageBox.Show("Nula");
}
Izracun i = new Izracun(n, m);
MessageBox.Show(i.racunanje().ToString());
}
}
}
20. Napravite GUI aplikaciju koja za zadani datum (koristeći DateTimePicker) u Label ispisuje u kojem
godišnjem dobu je zadani datum. Određivanje godišnjeg doba treba napraviti svaki puta prilikom
odabira datuma iz DTP.
namespace WindowsFormsApplication356
{
class GodisnjaDoba
{
public GodisnjaDoba() { }
public void izracunGodisnjegDoba(Form1 forma) {
DateTime d = forma.dateTimePicker1.Value;
if (d.Month<=3)
{
if (d.Day >= 22 && d.Month == 3)
{
forma.label1.Text = "Proljeće";
}
else forma.label1.Text = "Zima";
}
if (d.Month<=6)
{
if (d.Day >= 22 && d.Month == 6)
{
forma.label1.Text = "Ljeto";
}
else forma.label1.Text = "Proljeće";
}
if (d.Month <= 9)
{
if (d.Day >= 22 && d.Month == 9)
{
forma.label1.Text = "Jesen";
}
else forma.label1.Text = "Ljeto";
}
else forma.label1.Text = "Jesen";
}
}
}
namespace WindowsFormsApplication356
{
public partial class Form1 : Form
{
public Form1()
{
InitializeComponent();
}
private void dateTimePicker1_ValueChanged(object sender, EventArgs e)
{
GodisnjaDoba gD = new GodisnjaDoba();
gD.izracunGodisnjegDoba(this);
}
}
}
21. Napravite GUI aplikaciju koja ima jedan textbox, korisnik unosi proizvoljan tekst u textbox,
prilikom unosa svaka pojava slova "a" se zamjenjuje slovom "b"
namespace WindowsFormsApplication357
{
class Zamjena
{
public Zamjena() { }
public void zamjenaSlova(Form1 forma) {
forma.textBox1.Text = forma.textBox1.Text.Replace('a', 'b');
forma.textBox1.Text = forma.textBox1.Text.Replace('b', 'b');
forma.textBox1.Select(forma.textBox1.Text.Length, 0);
}
}
}
namespace WindowsFormsApplication357
{
public partial class Form1 : Form
{
public Form1()
{
InitializeComponent();
}
private void textBox1_TextChanged(object sender, EventArgs e)
{
Zamjena z = new Zamjena();
z.zamjenaSlova(this);
}
}
}
namespace WindowsFormsApplication357
{
class Zamjena
{
string a;
public Zamjena(string slovo) {
this.a = slovo;
}
public string zamjenaSlova() {
a = a.Replace('a', 'b');
a = a.Replace('b', 'b');
return a;
}
}
}
namespace WindowsFormsApplication357
{
public partial class Form1 : Form
{
public Form1()
{
InitializeComponent();
}
private void textBox1_TextChanged(object sender, EventArgs e)
{
string a = textBox1.Text;
Zamjena z = new Zamjena(a);
textBox1.Text = z.zamjenaSlova();
textBox1.Select(textBox1.Text.Length, 0);
}
}
}
22. Napravite GUI aplikaciju koja služi kako preglednik slika. Forma sadrži jedan pictureBox objekt u
kojem se učitava slika te jednu tipku, Tipka otvara dijalog za odabir datoteka (OpenFileDialog objekt)
nakon što je datoteka odabrana (FileOK event) treba ju prikazati u pictureBox kontroli (Load metoda).
namespace WindowsFormsApplication358
{
public partial class Form1 : Form
{
public Form1()
{
InitializeComponent();
}
private void button1_Click(object sender, EventArgs e)
{
Slika s = new Slika();
s.otvaranjeDialoga(this);
openFileDialog1.FileOk += openFileDialog1_FileOk;
}
void openFileDialog1_FileOk(object sender, CancelEventArgs e)
{
Slika s = new Slika();
s.ucitavanjeSlike(this);
}
}
}
namespace WindowsFormsApplication358
{
class Slika
{
public Slika() { }
public void otvaranjeDialoga(Form1 forma) {
forma.openFileDialog1.ShowDialog();
}
public void ucitavanjeSlike(Form1 forma) {
forma.pictureBox1.Load(forma.openFileDialog1.FileName);
}
}
}
23. Napravite GUI aplikaciju koja u sebi sadrži jednu tipku. Pozadina forme neka bude zelena. Tekst te
tipke jednak je broj klikova na tipku. Ako je broj klikova djeljiv s 10 tada pozadina forme treba biti
crvena, inače pozadina neka bude zelena.
namespace WindowsFormsApplication367
{
class Count
{
public int brojac { get; private set; }
public Color trenutnaBoja { get; private set; }
public Count()
{
this.brojac = 0;
this.trenutnaBoja = Color.Green;
}
public Count racunaj()
{
this.brojac += 1;
if (this.brojac % 10 == 0)
this.trenutnaBoja = Color.Red;
else
this.trenutnaBoja = Color.Green;
return this;
}
}
}
namespace WindowsFormsApplication367
{
public partial class Form1 : Form
{
private Count broj { get; set; }
public Form1()
{
InitializeComponent();
this.broj = new Count();
this.BackColor = broj.trenutnaBoja;
this.button1.Click += ClickHandler;
}
private void ClickHandler(object sender, EventArgs e)
{
this.broj.racunaj();
this.button1.Text = this.broj.brojac.ToString();
this.BackColor = this.broj.trenutnaBoja;
}
}
}
24. Napravite GUI aplikaciju koja ima tri textboxa i jednu tipku. Korisnik u prva dva textboxa unosi dva
skupa brojeva odvojenih zarezom. Pritiskom na tipku u treći textbox se trebaju ispisati samo
zajednički elementi dva skupa (iz dva textboxa) odvojeni zarezom.
namespace WindowsFormsApplication361
{
class Skup
{
public Skup() { }
public void skupBrojeva(Form1 forma) {
string[] a = forma.textBox1.Text.Split(',');
string[] b = forma.textBox2.Text.Split(',');
foreach (string broj in a)
{
if (b.Contains(broj))
{
forma.textBox3.Text += broj + (',');
}
}
}
}
}
namespace WindowsFormsApplication361
{
public partial class Form1 : Form
{
public Form1()
{
InitializeComponent();
}
private void button1_Click(object sender, EventArgs e)
{
Skup zajednickiElementi = new Skup();
zajednickiElementi.skupBrojeva(this);
}
}
}
25. Napravite GUI aplikaciju koja ima 3 textboxa (R,G i B) i jednu tipku. Korisnik u svaki textbox unosi
jedan broj od 0‐255 (napravite provjeru unosa). Pritiskom na tipku potrebno je promijeniti pozadinu
forme u boju temeljem vrijednosti iz textboxa (R,G,B). Pomoć:Color.FromArgb(R,G,B);
namespace WindowsFormsApplication362
{
class Boja
{
int r, g, b;
public Boja(int jedna, int dva, int tri) {
this.r = jedna;
this.g = dva;
this.b = tri;
}
public void izracunBoje(Form1 forma) {
if (r<=255 && g<=255 && b<=255)
{
forma.BackColor = Color.FromArgb(r, g, b);
}
}
}
}
namespace WindowsFormsApplication362
{
public partial class Form1 : Form
{
public Form1()
{
InitializeComponent();
}
private void button1_Click(object sender, EventArgs e)
{
int r = int.Parse(textBox1.Text);
int g = int.Parse(textBox2.Text);
int b = int.Parse(textBox3.Text);
Boja boja = new Boja(r,g,b);
boja.izracunBoje(this);
}
}
}
26. Napravite GUI aplikaciju koja sadrži jednu tipku i textbox. Korisnik u textbox unosi broj. Nakon
pritiska na tipku aplikacija se mora ugasiti za uneseni broj sekundi. Broj preostalih sekundi do gašenja
aplikacije treba ispisivati u sadržaju tipke. (u realnom vremenu, svake sekunde).
namespace WindowsFormsApplication408
{
class brojac
{
double sekunde;
public brojac(double s) {
this.sekunde = s;
}
public double brojSekunda(Form1 forma) {
double brojS = double.Parse(forma.textBox1.Text);
double broji = brojS + sekunde;
return broji;
}
}
}
namespace WindowsFormsApplication408
{
public partial class Form1 : Form
{
public Form1()
{
InitializeComponent();
}
private void button1_Click(object sender, EventArgs e)
{
timer1.Start();
}
double sekunde = 0;
private void timer1_Tick(object sender, EventArgs e)
{
sekunde ‐= 1;
brojac b = new brojac(sekunde);
this.button1.Text = b.brojSekunda(this).ToString();
if (b.brojSekunda(this) == 0)
{
this.Close();
}
}
}
}
27. Napravite GUI aplikaciju koja sadrži labelu i tipku. Klikom na tipku, labela broji broj klikova,
odnosno ispisuje koliko puta je korisnik kliknuo. Ako je broj klikova paran tada je tekst crveni, inače je
crni. Kada je broj klikova veći od 10, veličina prozora forme se maximizira. (Pomoć: Modulo,
FormWindowState)
namespace WindowsFormsApplication368
{
class Count
{
public int brojac { get; private set; }
public Count()
{
this.brojac = 0;
}
public Count racunaj(Form1 forma)
{
this.brojac += 1;
if (this.brojac % 2 == 0)
forma.label1.ForeColor = Color.Red;
else
forma.label1.ForeColor = Color.Black;
if (this.brojac > 10)
{
forma.WindowState = FormWindowState.Maximized;
}
return this;
}
}
}
namespace WindowsFormsApplication368
{
public partial class Form1 : Form
{
private Count broj { get; set; }
public Form1()
{
InitializeComponent();
this.broj = new Count();
this.button1.Click += ClickHandler;
}
private void ClickHandler(object sender, EventArgs e)
{
this.broj.racunaj(this);
this.label1.Text = this.broj.brojac.ToString();
}
}
}
28. Napravi novu GUI aplikaciju koja sadrži jednu tipku, veličina forme je 500x500. Kada korisnik dođe
mišem iznad tipke, lokacija (svojstvo) se postavlja na slučajne vrijednosti X i Y. (Pomoć: Random r =
new Random();
namespace WindowsFormsApplication364
{
class Lokacija
{
public Lokacija() { }
public void novaLokacija(Form1 forma) {
Random r = new Random();
int x = r.Next(0, forma.Width);
int y = r.Next(0, forma.Height);
forma.button1.Location = new Point(x, y);
}
}
}
namespace WindowsFormsApplication364
{
public partial class Form1 : Form
{
public Form1()
{
InitializeComponent();
}
private void button1_MouseHover(object sender, EventArgs e)
{
Lokacija l = new Lokacija();
l.novaLokacija(this);
}
}
}
29. Napravite GUI aplikaciju koja slučajnim odabirom izbacuje loto brojeve za 7/39 slučajnim
odabirom. Brojeve treba prikazati u 7 label kontrola. Brojevi se odabiru pritiskom na tipku. Ako je
broj između manji od 20 boja teksta neka bude zelena inače neka bude crvena. Napomena: brojevi se
ne smiju ponavljati, npr. ne mogu biti dva ista odabrana broja. Pomoć (Random klasa).
namespace WindowsFormsApplication365
{
class Loto
{
public Loto() { }
public void biranjeBrojeva(Form1 forma) {
Random r = new Random();
int noviBroj;
int[] polje = new int[7];
for (int i = 0; i < 7; i++)
{
noviBroj = r.Next(1, 39);
if (polje.Contains(noviBroj))
{
i‐‐;
}
else polje[i] = noviBroj;
}
forma.label1.Text = polje[0].ToString();
forma.label2.Text = polje[1].ToString();
forma.label3.Text = polje[2].ToString();
forma.label4.Text = polje[3].ToString();
forma.label5.Text = polje[4].ToString();
forma.label6.Text = polje[5].ToString();
forma.label7.Text = polje[6].ToString();
foreach (Control label in forma.Controls)
{
if (label.GetType()==typeof(Label))
{
if (int.Parse(label.Text) < 20)
{
label.ForeColor = Color.Green;
}
else label.ForeColor = Color.Red;
}
}
}
}
}
namespace WindowsFormsApplication365
{
public partial class Form1 : Form
{
public Form1()
{
InitializeComponent();
}
private void button1_Click(object sender, EventArgs e)
{
Loto l = new Loto();
l.biranjeBrojeva(this);
}
}
}
30. Napravite GUI aplikaciju koja ima jedan ComboBox i jedan MonthCalendar objekt. ComboBox
objekt je potrebno napuniti brojevima od 1 do 12 (programski). Odabirom nekog broja iz ComboBoxa
potrebno je promijeniti trenutno prikazani mjesec u MonthCalendar objektu temeljem odabira iz
ComboBoxa.
namespace WindowsFormsApplication369
{
class Mjeseci
{
public Mjeseci() { }
public void pregledMjeseca(Form1 forma) {
int lista = (int)forma.comboBox1.SelectedItem;
forma.monthCalendar1.SetDate(new DateTime(DateTime.Now.Year, lista,
DateTime.Now.Day));
}
}
}
namespace WindowsFormsApplication369
{
public partial class Form1 : Form
{
public Form1()
{
InitializeComponent();
for (int i = 1; i <=12; i++)
{
this.comboBox1.Items.Add(i);
}
}
private void comboBox1_SelectedIndexChanged(object sender, EventArgs e)
{
Mjeseci m = new Mjeseci();
m.pregledMjeseca(this);
}
}
}
31. Napravite aplikaciju kojoj se svaku sekundu promjeni pozicija.
namespace WindowsFormsApplication370
{
class Pozicija
{
public Pozicija() { }
public void novaPozicija(Form1 forma) {
Random r = new Random();
int x = r.Next(0, 1000);
int y = r.Next(0, 1000);
forma.Location = new Point(x, y);
}
}
}
namespace WindowsFormsApplication370
{
public partial class Form1 : Form
{
public Form1()
{
InitializeComponent();
}
private void Form1_Load(object sender, EventArgs e)
{
timer1.Start();
}
private void timer1_Tick(object sender, EventArgs e)
{
Pozicija p = new Pozicija();
p.novaPozicija(this);
}
}
}
32. Napravite GUI aplikaciju koja ima 3 TrackBar kontrole. Prilikom svakog pomicanja track bara treba
promijeniti boju pozadine forme sukladno vrijednostima svakih od trackbar kontrola. Napomena:
format zapisa boje je R,G,B vrijednost od 0 do 255. Color.FromArgb(...)
namespace WindowsFormsApplication371
{
class Boja
{
public Boja() { }
public void nadiBoju(Form1 forma) {
forma.BackColor = Color.FromArgb(forma.trackBar1.Value,
forma.trackBar2.Value, forma.trackBar3.Value);
}
}
}
namespace WindowsFormsApplication371
{
public partial class Form1 : Form
{
public Form1()
{
InitializeComponent();
trackBar1.Minimum = 0;
trackBar1.Maximum = 255;
trackBar2.Minimum = 0;
trackBar2.Maximum = 255;
trackBar3.Minimum = 0;
trackBar3.Maximum = 255;
}
private void trackBar1_Scroll(object sender, EventArgs e)
{
Boja b = new Boja();
b.nadiBoju(this);
}
private void trackBar2_Scroll(object sender, EventArgs e)
{
Boja b = new Boja();
b.nadiBoju(this);
}
private void trackBar3_Scroll(object sender, EventArgs e)
{
Boja b = new Boja();
b.nadiBoju(this);
}
}
}
33. Napravite GUI aplikaciju koja ima tri textboxa (A,B,C) i jednu tipku. Pritiskom na tipku se korisniku
računa suma brojeva od A do B. Prilikom računanja sume treba preskočiti brojeve djeljive s C.
Rezultat treba ispisati umjesto teksta tipke.
namespace WindowsFormsApplication372
{
class Brojevi
{
int a, b, c;
int suma = 0;
public Brojevi(int jedan, int dva, int tri) {
this.a = jedan;
this.b = dva;
this.c = tri;
}
public int izracun() {
for (int i = a; i <=b; i++)
{
if (i%c!=0)
{
suma += i;
}
}
return suma;
}
}
}
namespace WindowsFormsApplication372
{
public partial class Form1 : Form
{
public Form1()
{
InitializeComponent();
}
private void button1_Click(object sender, EventArgs e)
{
int a = int.Parse(textBox1.Text);
int b = int.Parse(textBox2.Text);
int c = int.Parse(textBox3.Text);
Brojevi broj = new Brojevi(a,b,c);
MessageBox.Show(broj.izracun().ToString());
}
}
}
34. Napravite GUI aplikaciju koja je virtualno podijeljena na 4 kvadranta. Ovisno o tome u koji
kvadrant se klikne, korisniku se u label (u sredini forme) ispisuje u koji kvadrant je kliknuto(SZ,SI,JZ,JI).
Forma ne smije biti fiksne veličine. Neka se promjeni pozadine forme ovisno u koji kvadrant je
kliknuto: SZ=Zelena, SI =Plava, JZ = Crvena, JI = Žuta.
namespace WindowsFormsApplication373
{
class Strane
{
public Strane() { }
public void straneSvijeta(Form1 forma, MouseEventArgs e)
{
forma.label1.Text = "";
int xSredina = (forma.Width/2)‐10;
int ySredina = (forma.Height / 2) ‐ 25;
if (e.Y <= ySredina) forma.label1.Text += "S";
else forma.label1.Text += "J";
if (e.X <= xSredina) forma.label1.Text += "Z";
else forma.label1.Text += "I";
switch (forma.label1.Text)
{
case "SZ": forma.BackColor = Color.Green;
break;
case "SI": forma.BackColor = Color.Blue;
break;
case "JZ": forma.BackColor = Color.Red;
break;
case "JI": forma.BackColor = Color.Yellow;
break;
default:
break;
}
}
}
}
namespace WindowsFormsApplication373
{
public partial class Form1 : Form
{
public Form1()
{
InitializeComponent();
this.setLabelLocation();
}
private void setLabelLocation() {
int x = (this.Width/2)‐(this.label1.Width/2)‐10;
int y = (this.Height/2)‐(this.label1.Height/2)‐25;
this.label1.Location = new Point(x, y);
}
private void Form1_MouseClick(object sender, MouseEventArgs e)
{
Strane s = new Strane();
s.straneSvijeta(this,e);
}
}
}
35. Napravite GUI aplikaciju koja ima 2 ProgressBar. ProgressBar kontrole će grafički prikazivati
koordinate miša na glavnoj formi u obliku popunjenosti progressbarova. Prvi progressbar je za X
vrijednost, drugi je za Y vrijednost. Ako je miš u gornjem lijevom kutu ProgressBar kontrole imaju
vrijednost 0%, ukoliko je miš u donjem desnom kutu ProgressBar kontrole imaju vijednost 100% itd.
namespace WindowsFormsApplication374
{
class Lokacija
{
public Lokacija() { }
public void pokaziLokaciju(Form1 forma, MouseEventArgs e) {
forma.progressBar1.Value = e.X;
forma.progressBar2.Value = e.Y;
}
}
}
namespace WindowsFormsApplication374
{
public partial class Form1 : Form
{
public Form1()
{
InitializeComponent();
this.progressBar1.Minimum = 0;
this.progressBar1.Maximum = this.Width;
this.progressBar2.Minimum = 0;
this.progressBar2.Maximum = this.Height;
}
private void Form1_MouseMove(object sender, MouseEventArgs e)
{
Lokacija l = new Lokacija();
l.pokaziLokaciju(this, e);
}
}
}
36. Napravite GUI aplikaciju koja sadrži dvije NumericUpDown kontrole, jedan label i jednu tipku.
Korisnik u NUD kontrolama odabire mjesece u godini, pritiskom na tipku korisniku se u label treba
ispisati popis mjeseca između dvije NUD vrijednosti. Mjeseci (brojevi) trebaju biti odvojeni zarezom.
namespace WindowsFormsApplication375
{
class Mjeseci
{
int val1, val2;
string s = "";
public Mjeseci(int a, int b) {
this.val1 = a;
this.val2 = b;
}
public string popisMjeseci() {
for (int i=(val1)+1; i<=(val2)‐1; i++)
{
s += i.ToString()+',';
}
return s;
}
}
}
namespace WindowsFormsApplication375
{
public partial class Form1 : Form
{
public Form1()
{
InitializeComponent();
this.numericUpDown1.Minimum = 1;
this.numericUpDown1.Maximum = 12;
this.numericUpDown2.Minimum = 1;
this.numericUpDown2.Maximum = 12;
}
private void button1_Click(object sender, EventArgs e)
{
int val1 = Convert.ToInt32(numericUpDown1.Value);
int val2 = Convert.ToInt32(numericUpDown2.Value);
Mjeseci m = new Mjeseci(val1, val2);
this.label1.Text = m.popisMjeseci().ToString();
}
}
}
37. Napravite GUI aplikaciju koja prilikom klika na svaki puta kada netko upiše slovo T u textbox,
promjeni lokaciju textboxa slučajnim odabirom.
namespace WindowsFormsApplication376
{
class PromjenaTeksta
{
public PromjenaTeksta() { }
public void promjena(Form1 forma) {
if (forma.textBox1.Text[forma.textBox1.Text.Length‐1]=='T')
{
Random r = new Random();
int x = r.Next(0, forma.Width);
int y = r.Next(0, forma.Height);
forma.textBox1.Location = new Point(x, y);
}
}
}
}
namespace WindowsFormsApplication376
{
public partial class Form1 : Form
{
public Form1()
{
InitializeComponent();
}
private void textBox1_TextChanged(object sender, EventArgs e)
{
PromjenaTeksta pt = new PromjenaTeksta();
pt.promjena(this);
}
}
}
38. Napravite GUI aplikaciju koja sadrži 5 labela i tipku. Svake sekunde labele prikazuju slučajne
brojeve i nalaze se na slučajnim pozicijama unutar okvira glavne forme. Pritiskom na tipku se
pokreće/zaustavlja slučajni razmještaj (i slučajni sadržaj labela).
namespace WindowsFormsApplication377
{
class Lokacija
{
Random random = new Random();
public Lokacija() { }
public void lociranje(Form1 forma) {
forma.setLabel(forma.label1, random);
forma.setLabel(forma.label2, random);
forma.setLabel(forma.label3, random);
forma.setLabel(forma.label4, random);
forma.setLabel(forma.label5, random);
}
}
}
namespace WindowsFormsApplication377
{
public partial class Form1 : Form
{
public Form1()
{
InitializeComponent();
}
private void button1_Click(object sender, EventArgs e)
{
if (timer1.Enabled==false)
{
timer1.Start();
}
else if (timer1.Enabled==true)
{
timer1.Stop();
}
}
public void setLabel(Label label, Random random)
{
label.Text = random.Next().ToString();
int x = random.Next(0, this.Width);
int y = random.Next(0, this.Height);
label.Location = new Point(x, y);
}
private void timer1_Tick(object sender, EventArgs e)
{
Lokacija l = new Lokacija();
l.lociranje(this);
}
}
}
39. Napravite GUI aplikaciju koja korisniku omogućuje provjeru vida, klikom na tipke povećaj ili
smanji, povećava se ili smanjuje font centralne labele, čiji se sadržaj mijenja slučajnim odabirom
nakon klika na labelu.
namespace WindowsFormsApplication378
{
class Tekst
{
public Tekst() { }
public void promjenaTeksta(Form1 forma) {
Random r = new Random();
string tekst = (r.Next(0, 100).ToString());
forma.label1.Text = tekst.ToString();
}
}
}
namespace WindowsFormsApplication378
{
class Plus
{
public Plus() { }
public void povecaj(Form1 forma) {
forma.label1.Font = new Font(forma.label1.Font.FontFamily,
forma.label1.Font.Size + 1);
}
}
}
namespace WindowsFormsApplication378
{
class Minus
{
public Minus() { }
public void smanji(Form1 forma) {
forma.label1.Font = new Font(forma.label1.Font.FontFamily,
forma.label1.Font.Size ‐ 1);
}
}
}
namespace WindowsFormsApplication378
{
public partial class Form1 : Form
{
public Form1()
{
InitializeComponent();
}
private void label1_Click(object sender, EventArgs e)
{
Tekst t = new Tekst();
t.promjenaTeksta(this);
}
private void button1_Click(object sender, EventArgs e)
{
Plus p = new Plus();
p.povecaj(this);
}
private void button2_Click(object sender, EventArgs e)
{
Minus m = new Minus();
m.smanji(this);
}
}
}
40. Napravite GUI aplikaciju koja dinamički na zaslonu generira 10 progress barova, kojima će se
svaku sekundu vrijednosti postaviti na slučajan broj.
namespace WindowsFormsApplication380
{
class Vrijednost
{
public Vrijednost() { }
public void pokaziVrijednost(Form1 forma) {
Random r = new Random();
for (int i = 0; i < 10; i++)
{
int vrijednost = r.Next(0, 100);
forma.pb[i].Value = vrijednost;
}
}
}
}
namespace WindowsFormsApplication380
{
public partial class Form1 : Form
{
public ProgressBar[] pb = new ProgressBar[10];
public Form1()
{
InitializeComponent();
for (int i = 0; i < 10; i++)
{
pb[i] = new ProgressBar();
pb[i].Maximum = 100;
pb[i].Minimum = 0;
pb[i].Location = new Point(0, i*25);
this.Controls.Add(pb[i]);
}
timer1.Start();
}
private void timer1_Tick(object sender, EventArgs e)
{
Vrijednost v = new Vrijednost();
v.pokaziVrijednost(this);
}
}
}
41. Napravite aplikaciju koja će ispisivati fibbonacijev niz do proizvoljnog reda.
namespace WindowsFormsApplication381
{
class Niz
{
public Niz() { }
public void napraviNiz(Form1 forma) {
forma.label1.Text = "";
int a = 0;
int b = 1;
int suma = 1;
for (int i = 0; i < int.Parse(forma.textBox1.Text); i++)
{
forma.label1.Text += suma.ToString() + ',';
suma = a + b;
a = b;
b = suma;
}
}
}
}
namespace WindowsFormsApplication381
{
public partial class Form1 : Form
{
public Form1()
{
InitializeComponent();
}
private void button1_Click(object sender, EventArgs e)
{
Niz n = new Niz();
n.napraviNiz(this);
}
}
}
42. Napravite aplikaciju koja dijeli 2 broja i omogućuje dijeljenje s 0 (x/= inf).
namespace WindowsFormsApplication382
{
class Racun
{
double a, b;
public Racun(double jedan, double dva) {
this.a = jedan;
this.b = dva;
}
public double izrcun() {
double c = a / b;
return c;
}
}
}
namespace WindowsFormsApplication382
{
public partial class Form1 : Form
{
public Form1()
{
InitializeComponent();
}
private void button1_Click(object sender, EventArgs e)
{
int a = int.Parse(textBox1.Text);
int b = int.Parse(textBox2.Text);
Racun rac = new Racun(a, b);
MessageBox.Show(rac.izrcun().ToString());
}
}
}
43. Napravite GUI aplikaciju koja implementira kalkulator s 2 broja (textbox) i 2 operacije ( tipke + i ‐)
koji ispisuje rezultat u messagebox.
namespace WindowsFormsApplication384
{
class Racun
{
int a, b;
int c = 0;
public Racun(int jedan, int dva) {
this.a = jedan;
this.b = dva;
}
public int zbroj() {
c = a + b;
return c;
}
public int oduzmi(){
c = a ‐ b;
return c;
}
}
}
namespace WindowsFormsApplication384
{
public partial class Form1 : Form
{
public Form1()
{
InitializeComponent();
}
private void button1_Click(object sender, EventArgs e)
{
int a = int.Parse(textBox1.Text);
int b = int.Parse(textBox2.Text);
Racun r = new Racun(a,b);
MessageBox.Show(r.zbroj().ToString());
}
private void button2_Click(object sender, EventArgs e)
{
int a = int.Parse(textBox1.Text);
int b = int.Parse(textBox2.Text);
Racun r = new Racun(a, b);
MessageBox.Show(r.oduzmi().ToString());
}
}
}
44. Napravite GUI aplikaciju koja ima textbox i tipku. Korisnik kroz textbox unosi broj X, pritiskom na
tipku potrebno je generirati X label objekata te ih smjestiti u glavnu formu (controls kolekcija).
pozicija svakog labela neka bude slučajna unutar dimenzija glavne forme. Sadržaj labela je slučajan
broj.
namespace WindowsFormsApplication385
{
class NoveLabele
{
public NoveLabele() { }
public void generiraj(Form1 forma) {
int broj = int.Parse(forma.textBox1.Text);
Label labela;
Random r = new Random();
for (int i = 0; i < broj; i++)
{
labela = new Label();
int a = r.Next(0, forma.Width);
int b = r.Next(0, forma.Height);
labela.Location = new Point(a, b);
labela.Text = r.Next().ToString();
forma.Controls.Add(labela);
}
}
}
}
namespace WindowsFormsApplication385
{
public partial class Form1 : Form
{
public Form1()
{
InitializeComponent();
}
private void button1_Click(object sender, EventArgs e)
{
NoveLabele lab = new NoveLabele();
lab.generiraj(this);
}
}
}
45. Napravite GUI aplikaciju koja ima 2 ListBox kontrole. Prvu kontrolu programski popunite s rednim
brojevima mjeseca (od 1 do 12). Kada korisnik odabere neki mjesec, druga ListBox kontrola se popuni
s rednim brojevima dana tog mjeseca. Napomena: Koristiti DateTime.DaysInMonth metodu za
dohvaćanje broja dana u mjesecu.
namespace WindowsFormsApplication386
{
class Lista
{
public Lista(){}
public void lista(Form1 forma) {
forma.listBox2.Items.Clear();
for (int i = 1; i <= DateTime.DaysInMonth(DateTime.Now.Year,
forma.listBox1.SelectedIndex+1); i++)
{
forma.listBox2.Items.Add(i);
}
}
}
}
namespace WindowsFormsApplication386
{
public partial class Form1 : Form
{
public Form1()
{
InitializeComponent();
for (int i = 1; i <= 12; i++)
{
listBox1.Items.Add(i);
}
}
private void listBox1_SelectedIndexChanged(object sender, EventArgs e)
{
Lista list = new Lista();
list.lista(this);
}
}
}
46. Napravite GUI aplikaciju s jednom formom i jednom klasom Pravokutnik. Na formi se nalazi 5
texboxova i jedna tipka. U prva 2 textboxa korisnik unosi visinu i širinu pravokutnika, a zatim klikne na
tipku Izračunaj. U ostala 3 textboxa se tada prikažu vrijednosti površine pravokutnika, opsega
pravokutnika i dijagonale pravokutnika. Sva funkcionalnost koja se odnosi na pravokutnik se nalazi u
klasi Pravokutnik. Klasa pravokutnik ima privatne atribute: širina, visina; konstruktor koji prima
parametre: širina, visina; javne metode: IzracunajPovrsinu, IzracunajOpseg, IzracunajDijagonalu.
namespace Zadatak46
{
class Pravokutnik
{
private float visina, sirina;
public Pravokutnik (float a, float b)
{
this.visina = a;
this.sirina = b;
}
public float IzracunajPovrsinu()
{
return visina*sirina;
}
public float IzracunajOpseg()
{
return visina*2+ sirina*2;
}
public float IzracunajDijagonalu()
{
return (float)Math.Sqrt(visina * visina + sirina * sirina);
}
}
}
47. Napravite GUI aplikaciju koja sadrži samo jednu tipku. Pritiskom na tipku, na formi se generira
100 labela na sljedeći način. Svaka labela u sebi sadrži slučajan broj od 1 do 1000. U gornjoj polovici
forme ispisuju se brojevi veći od 500, a u donjoj manji od 500. U lijevoj polovici forme ispisuju se
neparni brojevi, a u desnoj polovici forme se ispisuju parni brojevi.
namespace WindowsFormsApplication387
{
class GeneriranjeLabele
{
public GeneriranjeLabele() { }
public void generiraj(Form1 forma) {
Random brojevi = new Random();
int provjera;
for (int i = 0; i < 100; i++)
{
Label labela = new Label();
provjera = brojevi.Next(0,1000);
if (provjera < 500 && provjera %2==0 )
{
labela.Location = new
Point(brojevi.Next(forma.Width/2,forma.Width),brojevi.Next(forma.Height/2,forma.Height
));
labela.Text = provjera.ToString();
}
if (provjera > 500 && provjera % 2 ==0)
{
labela.Location = new Point(brojevi.Next(forma.Width/2,
forma.Width),brojevi.Next(0, forma.Height/2));
labela.Text = provjera.ToString();
}
if (provjera < 500 && provjera % 2 !=0)
{
labela.Location = new
Point(brojevi.Next(0,forma.Width/2),brojevi.Next(forma.Height/2,forma.Height));
labela.Text = provjera.ToString();
}
if (provjera > 500 && provjera %2!=0)
{
labela.Location = new
Point(brojevi.Next(0,forma.Width/2),brojevi.Next(0,forma.Height/2));
labela.Text = provjera.ToString();
}
forma.Controls.Add(labela);
}
}
}
}
namespace WindowsFormsApplication387
{
public partial class Form1 : Form
{
public Form1()
{
InitializeComponent();
}
private void button1_Click(object sender, EventArgs e)
{
GeneriranjeLabele generiranje = new GeneriranjeLabele();
generiranje.generiraj(this);
}
}
}
48. Napravite GUI aplikaciju koja sadrži jedan textbox i jednu tipku. Korisnik u textbox unosi riječ.
Pritiskom na tipku aplikacija provjerava da li je unesena riječ palindrom ili ne. Rezultat provjere se
ispisuje u messageboxu (DA ili NE).
namespace WindowsFormsApplication388
{
class Palindrom
{
public Palindrom() { }
public void palindrom(Form1 forma) {
bool pali = true;
for (int i = 0; i < forma.textBox1.Text.Length; i++)
{
if (forma.textBox1.Text[i] !=
forma.textBox1.Text[forma.textBox1.Text.Length‐1‐i])
{
pali = false;
}
}
if (pali == false)
{
MessageBox.Show("NE");
}
else if (pali == true) MessageBox.Show("DA");
}
}
}
namespace WindowsFormsApplication388
{
public partial class Form1 : Form
{
public Form1()
{
InitializeComponent();
}
private void button1_Click(object sender, EventArgs e)
{
Palindrom p = new Palindrom();
p.palindrom(this);
}
}
}
49. Napravite GUI aplikaciju koja sadrži jedan textbox i jednu tipku. Korisnik u
textbox unosi tekst. Pritiskom na tipku aplikaciju ispisuje statistiku (broj
ponavljanja) za svako slovo u tekstu. Rezultat se ispisuje u messageboxu.
namespace WindowsFormsApplication339
{
class Znak
{
public char Slovo { get; set; }
public int BrojPonavljanja { get; set; }
public Znak(char slovo)
{
this.Slovo = slovo;
this.BrojPonavljanja = 1;
}
}
}
namespace WindowsFormsApplication339
{
class BrojacSlova
{
public BrojacSlova() { }
public List<Znak> PobrojiSlova(string recenica)
{
List<Znak> slova = new List<Znak>();
List<char> slovaRecenice = recenica.ToList<char>();
slovaRecenice.Sort();
for (int i = 0; i < slovaRecenice.Count; i++)
{
Znak trenutno = new Znak(slovaRecenice[i]);
bool ima = false;
foreach (Znak slovo in slova)
{
if (slovo.Slovo == trenutno.Slovo)
{
slovo.BrojPonavljanja++;
ima = true;
break;
}
}
if (!ima)
{
slova.Add(trenutno);
}
}
return slova;
}
}
}
namespace WindowsFormsApplication339
{
public partial class Form1 : Form
{
public Form1()
{
InitializeComponent();
}
private void button1_Click(object sender, EventArgs e)
{
BrojacSlova bc = new BrojacSlova();
List<Znak> slova = bc.PobrojiSlova(textBox1.Text);
string poruka = "";
foreach (Znak slovo in slova)
{
poruka += slovo.Slovo + " = " + slovo.BrojPonavljanja.ToString() +
Environment.NewLine;
}
MessageBox.Show(poruka);
}
}
}
50. Napravite GUI aplikaciju koja ima textbox i tipku. Korisnik u textbox unosi broj
X, pritiskom na tipku potrebno je generirati X button objekata te ih smjestiti u
glavnu formu (controls kolekcija). pozicija svakog buttona neka bude slučajna unutar
dimenzija glavne forme. Tekstualni sadržaj buttona je slučajan broj. Pritiskom na bilo
koji od X buttona korisniku se prikazuje messagebox s informacijom o lokaciji buttona.
namespace WindowsFormsApplication390
{
class Gumbi
{
public Gumbi() { }
public void napraviGumbe(Form1 forma) {
int broj = int.Parse(forma.textBox1.Text);
Random r = new Random();
for (int i = 0; i < broj; i++)
{
Button gumb = new Button();
int x = r.Next(0, forma.Width);
int y = r.Next(0, forma.Height);
gumb.Location = new Point(x,y);
gumb.Text = r.Next(0, 100).ToString();
gumb.Click += gumb_Click;
forma.Controls.Add(gumb);
}
}
void gumb_Click(object sender, EventArgs e)
{
Button drugiGumb = (Button)sender;
MessageBox.Show("Lokacija :" + drugiGumb.Location.X + ", " +
drugiGumb.Location.Y);
}
}
}
namespace WindowsFormsApplication390
{
public partial class Form1 : Form
{
public Form1()
{
InitializeComponent();
}
private void button1_Click(object sender, EventArgs e)
{
Gumbi g = new Gumbi();
g.napraviGumbe(this);
}
}
}
51. Napravite windows forma aplikaciju koja sadrži 4 textboxa (T1,T2,T3,T4) u koje
korisnik unosi brojeve (potrebna je provjera unosa broja). pritiskom na tipku
korisniku se ispisuje presjek dva intervala ( [T1, T2] i [T3, T4]) u obliku
messageboxa, ispisuju se vrijednosti odvojene zarezom.
namespace WindowsFormsApplication391
{
class Skupovi
{
int a = 0, b = 0, c = 0, d = 0;
public Skupovi(int jedan, int dva, int tri, int cetiri) {
this.a = jedan;
this.b = dva;
this.c = tri;
this.d = cetiri;
}
public string presjekskupova() {
List<int> prviDio = new List<int>();
List<int> drugiDio = new List<int>();
for (int i = a; i <=b; i++)
{
prviDio.Add(i);
}
for (int i = c; i <= d; i++)
{
drugiDio.Add(i);
}
List<int> presjek = new List<int>();
foreach (int x in prviDio)
{
if (drugiDio.Contains(x))
{
presjek.Add(x);
}
}
string ispis = "";
foreach (int x in presjek)
{
ispis += x.ToString()+',';
}
return ispis;
}
}
}
namespace WindowsFormsApplication391
{
public partial class Form1 : Form
{
public Form1()
{
InitializeComponent();
}
private void button1_Click(object sender, EventArgs e)
{
int a = 0, b = 0, c = 0, d = 0;
try
{
int.TryParse(textBox1.Text, out a);
int.TryParse(textBox2.Text, out b);
int.TryParse(textBox3.Text, out c);
int.TryParse(textBox4.Text, out d);
}
catch
{
MessageBox.Show("Nisu unešeni brojevi!");
}
Skupovi s = new Skupovi(a,b,c,d);
MessageBox.Show(s.presjekskupova().ToString());
}
}
}
52. Napravite GUI aplikaciju koja sluzi kao brojač klikova (sadrži tipku, textbox),
klikom na tipku broji se broj klikova, nakon X klikova se vrijednost resetira. X
vrijednost korisnik unosi preko textboxa. Prilikom pritiska na tipku potrebno je
promijeniti boju pozadine tipke, u početku (i nakon resetiranja) boja pozadine je
siva, što se broj klikova približava vrijednosti X boja pozadine tipke postaje sve
crvenija. u Text tipke treba ispisati trenutno stanje klikova u obliku:
broj_klikova/X.
namespace WindowsFormsApplication392
{
class Gumb
{
int brojac, maxKlikova;
public Gumb(int a, int b) {
this.brojac = a;
this.maxKlikova = b;
}
public void bojaGumba(Form1 forma) {
if (brojac > maxKlikova)
{
brojac = 0;
forma.button1.BackColor = Color.FromArgb(100, 100, 100);
}
else
{
int ikrement = 155 / maxKlikova;
Color trenutnaBoja = forma.button1.BackColor;
forma.button1.BackColor = Color.FromArgb(trenutnaBoja.R + ikrement,
100, 100);
}
forma.button1.Text = brojac.ToString();
}
}
}
namespace WindowsFormsApplication392
{
public partial class Form1 : Form
{
public Form1()
{
InitializeComponent();
this.button1.BackColor = Color.FromArgb(100, 100, 100);
}
int brojac = 0;
private void button1_Click(object sender, EventArgs e)
{
++brojac;
int maxKlikova = int.Parse(textBox1.Text);
Gumb g = new Gumb(brojac,maxKlikova);
g.bojaGumba(this);
}
}
}
53. Napravite konzolnu aplikaciju. U njoj kreirajte novu klasu "Mjesec", koja predstavlja kalendarski
mjesec i sadrži sljedeće elemente: privatne atribute (int _id, string _naziv, int _brojDana),
odgovarajuća javna svojstva za navedene atribute te konstruktor koji prima ova tri parametra i
dodjeljuje ih atributima klase. U Main metodi kreirajte 12 instanci klase Mjesec (jedna instanca za
svaki kalendarski mjesec), popunite odgovarajuće podatke, i dodajte ih u listu (List<Mjesec>). Nakon
toga napravite statičku metodu IzracunSemestra, koja vraća listu mjeseca koji ulaze u semestar, a
prima kao parametre listu svih 12 mjeseca, početni mjesec, i završni mjesec semestra (na primjeru
metode IzracunSemestra pokažite princip preopterećivanja metoda ‐ overloading, na način da prva
metoda IzracunSemestra početni i završni mjesec prima kao id‐ove mjeseca, a druga kao cijele
objekte klase Mjesec). Na kraju u metodi Main uz pomoć metode IzracunSemestra ispišite posebno
mjesece zimskog semestra a posebno mjesece ljetnog semestra. Također ispišite ukupan broj dana
pojedinog semestra.
namespace Zadatak53
{
class Mjesec
{
private int _id;
private string _naziv;
private int _brojDana;
public Mjesec (int id, string naziv, int brojDana)
{
_id = id;
_naziv = naziv;
_brojDana = brojDana;
}
public void ispis()
{
Console.WriteLine(_naziv);
}
public int get_brojDana()
{
return _brojDana;
}
public static List<Mjesec> izracunSemestra(List<Mjesec> popis_mjeseca, Mjesec
pocetni, Mjesec zavrsni)
{
List<Mjesec> mjeseci_u_rasponu = new List<Mjesec>();
int indeksPocetni = 0;
int indeksZavrsni = 0;
for (int i = 0; i < 12; i++)
{
if (pocetni._naziv == popis_mjeseca[i]._naziv) indeksPocetni = i;
if (zavrsni._naziv == popis_mjeseca[i]._naziv) indeksZavrsni = i;
}
for (int i = indeksPocetni; i <= indeksZavrsni; i++)
{
mjeseci_u_rasponu.Add(popis_mjeseca[i]);
}
return mjeseci_u_rasponu;
}
}
}
namespace Zadatak53
{
class Program
{
static void Main(string[] args)
{
List<Mjesec> popisMjeseca = new List<Mjesec>();
Mjesec ve = new Mjesec(2, "Veljača", 29);
Mjesec oz = new Mjesec(3, "Ožujak", 31);
Mjesec tr = new Mjesec(4, "Travanj", 30);
Mjesec sv = new Mjesec(5, "Svibanj", 31);
Mjesec li = new Mjesec(6, "Lipanj", 30);
Mjesec sr = new Mjesec(7, "Spranj", 31);
Mjesec ko = new Mjesec(8, "Kolovoz", 30);
Mjesec ru = new Mjesec(9, "Rujan", 31);
Mjesec ls = new Mjesec(10, "Listopad", 30);
Mjesec st = new Mjesec(11, "Studeni", 31);
Mjesec pr = new Mjesec(12, "Prosinac", 30);
Mjesec sj = new Mjesec(1, "Sijecanj", 31);
popisMjeseca.Add(ve);
popisMjeseca.Add(oz);
popisMjeseca.Add(tr);
popisMjeseca.Add(sv);
popisMjeseca.Add(li);
popisMjeseca.Add(sr);
popisMjeseca.Add(ko);
popisMjeseca.Add(ru);
popisMjeseca.Add(ls);
popisMjeseca.Add(st);
popisMjeseca.Add(pr);
popisMjeseca.Add(sj);
List<Mjesec> raspon = new List<Mjesec>();
raspon = Mjesec.izracunSemestra(popisMjeseca, ve, ls);
Console.WriteLine("Mjeseci ljetnog semestra:");
int zbrojDana = 0;
foreach (Mjesec mjesec in raspon)
{
mjesec.ispis();
zbrojDana += mjesec.get_brojDana();
}
Console.WriteLine("Broj dana semestra: " + zbrojDana.ToString());
int zbrojDana2 = 31;
List<Mjesec> raspon2 = new List<Mjesec>();
raspon2 = Mjesec.izracunSemestra(popisMjeseca, ru, sj);
Console.WriteLine("Mjeseci zimskog semestra:");
foreach (Mjesec mjesec2 in raspon2)
{
mjesec2.ispis();
zbrojDana2 += mjesec2.get_brojDana();
}
Console.WriteLine("Broj dana semestra: " + zbrojDana2.ToString());
Console.ReadLine();
}
}
}
54. Napravite konzolnu aplikaciju. U njoj kreirajte novu klasu Zaposlenik koja predstavlja zaposlenika
u nekom poduzeću. Klasa zaposlenik sadrži sljedeće elemente: javne atribute (int _id, string
_imePrezime, float[] _mjesecnePlace), konstruktor koji prima parametre (id, imePrezime), te javne
metode IzracunGodisnjeZarade, IzracunProsjecneZarade, koje vraćaju odgovarajuće vrijednosti. U
izračun prosječe zarade ulaze samo plaće veće od nule. U Main metodi dodajte jednog zaposlenika,
ispunite podatke o plaći, te ispišite njegove podatke, zajedno sa mjesečnim zaradama,te ukupnom i
prosječnom zaradom.
namespace Zadatak54
{
class Zaposlenik
{
private int _id;
private string _imePrezime;
private float[] _mjesecnePlace;
public int id { get; set; }
public string imePrezime { get; set; }
public float[] mjesecnePlace { get; set; }
public float godisnjaZarada(float[] _mjesecnePlace)
{
float zbroj = 0;
for (int i = 0; i < 12; i++)
{
zbroj += _mjesecnePlace[i];
}
return zbroj;
}
public float prosjek(float[] _mjesecnePlace)
{
float zbroj = 0;
for (int i = 0; i < 12; i++)
{
zbroj += _mjesecnePlace[i];
}
return zbroj/12;
}
}
}
namespace Zadatak54
{
class Program
{
static void Main(string[] args)
{
float[] d = new float[12];
string a;
Zaposlenik z = new Zaposlenik();
Console.WriteLine("Unos podataka o zaposleniku");
Console.WriteLine("Ime i prezime: ");
z.imePrezime = Console.ReadLine();
Console.WriteLine("Id: ");
z.id = int.Parse(Console.ReadLine());
for (int i = 0; i < 12; i++)
{
Console.WriteLine("Unesi mjesečnu plaću: ");
a = Console.ReadLine().ToString();
float t = float.Parse(a);
if (t > 0)
{
d[i] = t;
}
else
{
i‐‐;
}
}
Console.WriteLine(z.id.ToString() + " " + z.imePrezime);
for (int i = 0; i < 12; i++)
{
Console.WriteLine(d[i].ToString() + " ");
}
Console.WriteLine("Ukupno: " + z.godisnjaZarada(d).ToString());
Console.WriteLine("Prosjek: " + z.prosjek(d).ToString());
Console.ReadLine();
}
}
}
55. Napravite GUI aplikaciju koja implementira operacije unije, presjeka i razlike dvaju skupova cijelih
brojeva. Na formi se nalaze 2 Textbox‐a (txtUnos1, txtUnos2), 3 Listbox‐a (lstUnos1, lstUnos2,
lstRezultat), i 3 tipke (btnUnija, btnPresjek, btnRazlika). Korisnik unosi brojeve u listu brojeva na
sljedeći način. Za unos prve liste brojeva korisnik unosi broj u txtUnos1 pritisne ENTER na tipkovnici,
uneseni broj se doda u Listbox lstUnos1 i obriše iz txtUnos1. Zatim u txtUnos1 unosi drugi broj +
ENTER itd. Na isti način se dodaju brojevi i u drugu listu lstUnos2 s razlikom da za unos ovaj put
koristimo txtUnos2. S obzirom na to da se radi o skupovima, u listi brojeva se ne smiju pojaviti dvije
iste vrijednosti. Također, potrebno je validirati korisnički unos, tako da budu dozvoljeni samo cijeli
brojevi. Nakon što korisnik unese brojeve u obje liste, klikom na odgovarajuću tipku u lstRezultat se
prikažu brojevi dobiveni unijom, presjekom ili razlikom prve dvije liste.
namespace WindowsFormsApplication394
{
class PrviUnos
{
public PrviUnos() { }
public void unesi(Form1 forma, KeyEventArgs e)
{
if (e.KeyCode == Keys.Enter)
{
try
{
int a = int.Parse(forma.txtUnos1.Text);
if (forma.lstUnos1.Items.Contains(a))
{
forma.txtUnos1.Clear();
}
else
{
forma.lstUnos1.Items.Add(a);
forma.txtUnos1.Clear();
}
}
catch (Exception)
{
MessageBox.Show("Nije broj!");
forma.txtUnos1.Clear();
}
}
}
public void drugiUnos(Form1 forma, KeyEventArgs e) {
if (e.KeyCode == Keys.Enter)
{
try
{
int b = int.Parse(forma.txtUnos2.Text);
if (forma.lstUnos2.Items.Contains(b))
{
forma.txtUnos2.Clear();
}
else
{
forma.lstUnos2.Items.Add(b);
forma.txtUnos2.Clear();
}
}
catch (Exception)
{
MessageBox.Show("Nije broj!");
forma.txtUnos2.Clear();
}
}
}
public void unija(Form1 forma) {
forma.lstRezultat.Items.Clear();
foreach (int x in forma.lstUnos1.Items)
{
forma.lstRezultat.Items.Add(x);
}
foreach (int y in forma.lstUnos2.Items)
{
if (forma.lstUnos1.Items.Contains(y))
{
}
else
{
forma.lstRezultat.Items.Add(y);
}
}
}
public void presjek(Form1 forma) {
forma.lstRezultat.Items.Clear();
foreach (int z in forma.lstUnos1.Items)
{
if (forma.lstUnos2.Items.Contains(z))
{
forma.lstRezultat.Items.Add(z);
}
}
}
public void razlika(Form1 forma) {
forma.lstRezultat.Items.Clear();
foreach (int w in forma.lstUnos1.Items)
{
if (forma.lstUnos2.Items.Contains(w))
{
}
else
{
forma.lstRezultat.Items.Add(w);
}
}
}
}
}
namespace WindowsFormsApplication394
{
public partial class Form1 : Form
{
public Form1()
{
InitializeComponent();
}
private void txtUnos1_KeyDown(object sender, KeyEventArgs e)
{
PrviUnos p = new PrviUnos();
p.unesi(this, e);
}
private void txtUnos2_KeyDown(object sender, KeyEventArgs e)
{
PrviUnos p = new PrviUnos();
p.drugiUnos(this, e);
}
private void btnUnija_Click(object sender, EventArgs e)
{
PrviUnos p = new PrviUnos();
p.unija(this);
}
private void btnPresjek_Click(object sender, EventArgs e)
{
PrviUnos p = new PrviUnos();
p.presjek(this);
}
private void btnRazlika_Click(object sender, EventArgs e)
{
PrviUnos p = new PrviUnos();
p.razlika(this);
}
}
}
56. Napravite GUI aplikaciju koja će množiti brojeve od N do M(koje unosi korisnik kroz textbox
odvojeno zarezom Pomoć string.Split(...). Pritiskom na tipku započinje računanje. U drugi textbox
treba zapisati vrijeme početka izračuna i vrijeme kraja izračuna kao i rezultat izračuna. (Pomoć:
DateTime.Now).
namespace WindowsFormsApplication395
{
class Racun
{
int rezultat = 1;
private int n, m;
public Racun(int jedan, int dva) {
this.n = jedan;
this.m = dva;
}
public int izracun() {
for (int i = n; i <= m; i++)
{
rezultat = rezultat * i;
}
return rezultat;
}
}
}
namespace WindowsFormsApplication395
{
public partial class Form1 : Form
{
public Form1()
{
InitializeComponent();
}
private void button1_Click(object sender, EventArgs e)
{
string[] brojevi = textBox1.Text.Split(',');
int a = int.Parse(brojevi[0]);
int b = int.Parse(brojevi[1]);
Racun r = new Racun(a, b);
textBox2.Text = r.izracun().ToString();
}
}
}
57. Napravite GUI aplikaciju s jednom formom i jednom klasom Trokut. Na formi se nalazi 5
texboxova i jedna tipka. U prva 3 textboxa korisnik unosi stranice a b i c, a zatim klikne na tipku
Izračunaj. U ostala 2 textboxa se tada prikažu vrijednosti opsega trokuta. Sva funkcionalnost koja se
odnosi na trokut se nalazi u klasi Trokut. Klasa trokut ima privatne atribute: strA, strB, strC;
konstruktor koji prima parametre: a, b, c; javne metode: IzracunajOpseg.
namespace Zadatak57
{
class Trokut
{
private float strA;
private float strB;
private float strC;
public Trokut(float a, float b, float c)
{
this.strA = a;
this.strB = b;
this.strC = c;
}
public float IzracunajOpseg()
{
return strA + strB +strC;
}
public float IzracunajPovrsinu()
{
float s = IzracunajOpseg()/2;
return (float)Math.Sqrt(s * (s ‐ strA) * (s ‐ strB) * (s ‐strC));
}
}
}
namespace Zadatak57
{
public partial class Form1 : Form
{
public Form1()
{
InitializeComponent();
}
private void button1_Click(object sender, EventArgs e)
{
float strA = int.Parse(textBox1.Text);
float strB = int.Parse(textBox2.Text);
float strC = int.Parse(textBox3.Text)
Trokut trokut = new Trokut(strA, strB, strC);
textBox4.Text = trokut.IzracunajOpseg().ToString();
textBox5.Text = trokut.IzracunajPovrsinu().ToString();
}
}
}
58. Napravite GUI aplikaciju s jednom formom i jednom klasom Krug. Na formi se nalazi 3 texboxova i
jedna tipka. U prvi textbox korisnik unosi polumjer kruga, a zatim klikne na tipku Izračunaj. U ostala 2
textboxa se tada prikažu vrijednosti površine kruga i opsega kruga. Sva funkcionalnost koja se odnosi
na krug se nalazi u klasi krug. Klasa krug ima privatne atribute: polumjer; konstruktor koji prima
parametre: UlazPolumjer; javne metode: IzracunajPovrsinu, IzracunajOpseg.
namespace Zadatak58
{
class Krug
{
private double polumjer;
public Krug(double r)
{
this.polumjer = r;
}
public double IzracunajOpseg()
{
return 2 * polumjer * Math.PI;
}
public double IzracunajPovrsinu()
{
return Math.Pow(polumjer, 2) * Math.PI;
}
}
}
namespace Zadatak58
{
public partial class Form1 : Form
{
public Form1()
{
InitializeComponent();
}
private void button1_Click(object sender, EventArgs e)
{
Krug krug = new Krug(int.Parse(textBox1.Text));
textBox2.Text = krug.IzracunajOpseg().ToString();
textBox3.Text = krug.IzracunajPovrsinu().ToString();
}
}
}
59. Napravite GUI aplikaciju koja će zbrajati dva broja 0‐9. Korisnik unosi u textbox izraz tipa 2+3
pritiskom na tipku izračunaj u isti textbox se zapisuje rezultat (nalijepljeno na postojeći tekst i između
stoji znak=) npr. 2+3=5. (Pomoć S: string.Split(...), ili Substring(...))
namespace WindowsFormsApplication396
{
class Racun
{
int suma = 0;
private int a, b;
public Racun(int m, int n) {
this.a = m;
this.b = n;
}
public int izracunaj() {
return suma = a + b;
}
}
}
namespace WindowsFormsApplication396
{
public partial class Form1 : Form
{
public Form1()
{
InitializeComponent();
}
private void button1_Click(object sender, EventArgs e)
{
string[] brojevi = textBox1.Text.Split('+');
int a = int.Parse(brojevi[0]);
int b = int.Parse(brojevi[1]);
string rezultat = textBox1.Text;
textBox1.Clear();
Racun r = new Racun(a,b);
textBox1.Text = rezultat + "=" + r.izracunaj().ToString();
}
}
}
60. Napravite GUI aplikaciju koja će sadržavati jednu tipku. Pritiskom na tipku korisnik pokreće dretvu
koja će samo spavati (Pomoć: Thread.Sleep(...)) slučajan broj sekundi do max 10 sekundi. Dretva će u
messagebox ispisati vrijeme početka zatim će spavati i na kraju u message box ispisati vrijeme kraja
spavanja (Pomoć: DateTime.Now)
namespace WindowsFormsApplication397
{
class Dretve
{
public Dretve() { }
public void pocetak() {
MessageBox.Show(DateTime.Now.ToString(), "Pocetak");
}
public void kraj() {
MessageBox.Show(DateTime.Now.ToString(), "Kraj");
}
}
}
namespace WindowsFormsApplication397
{
public partial class Form1 : Form
{
public Form1()
{
InitializeComponent();
}
public static Thread dretva;
private void button1_Click(object sender, EventArgs e)
{
Dretve d = new Dretve();
dretva = new Thread(new ThreadStart(d.pocetak));
dretva.Start();
Random r = new Random();
int sekunde = r.Next(0, 10000);
Thread.Sleep(sekunde);
dretva = new Thread(new ThreadStart(d.kraj));
dretva.Start();
}
}
}
61. Napravite konzolnu aplikaciju koja pokreće dvije dretve (A i B). Dretva A u konzolu svake 2
sekunde ispisuje slovo "A". Dretva B u konzolu svake 3 sekunde ispisuje slovo "B". Pomoć:
Console.WriteLine(...);
namespace Zadatak61
{
class dretve
{
public void dretvaA()
{
while (true)
{
Console.WriteLine("Ovo je dretva A");
Thread.Sleep(2000);
}
}
public void dretvaB()
{
while (true)
{
Console.WriteLine("Ovo je dretva B");
Thread.Sleep(3000);
}
}
}
}
namespace Zadatak61
{
class Program
{
static void Main(string[] args)
{
dretve instancaA = new dretve();
dretve instancaB = new dretve();
Thread A = new Thread(new ThreadStart(instancaA.dretvaA));
A.Start();
Thread B = new Thread(new ThreadStart(instancaB.dretvaB));
B.Start();
}
}
}
62. Napravite GUI aplikaciju koja ima jedan textbox (Multiline = true), u textbox korisnik upisuje tekst.
u slučaju da je korisnik 4 puta za redom stisnuo tipku Home tada se na postojeći tekst zalijepi izraz
"Home run!"
namespace WindowsFormsApplication398
{
class Home
{
int brojac;
public Home(int n) {
this.brojac = n;
}
public void homeRun(Form1 forma, KeyEventArgs e) {
if (e.KeyCode.ToString() == "Home")
{
brojac++;
}
if (brojac == 5)
{
forma.textBox1.Text += "Home Run";
brojac = 0;
}
}
}
}
namespace WindowsFormsApplication398
{
public partial class Form1 : Form
{
public Form1()
{
InitializeComponent();
}
int brojac;
private void textBox1_KeyDown(object sender, KeyEventArgs e)
{
brojac++;
Home h = new Home(brojac);
h.homeRun(this,e);
}
}
}
63. Napravite GUI aplikaciju koja ima jedan textbox i jednu tipku. U text box se upisuje naziv
tekstualne datoteke (npr. "test.txt", datoteka se treba nalaziti na C: disku), klikom na tipku započinje
pisanje u navedenu datoteku. Kad se započne pisanje u datoteku svake 4 sekunde u novi red u
datoteci se zapisuje trenutni datum i vrijeme.
Pomoć: za pisanje datoteke možete instancirati objekt klase StreamWriter (System.IO namespace),
odnosno metodu Write. Za mjerenje sekundi postavite interval Timer‐a na 4 sekunde.
namespace WindowsFormsApplication399
{
class Zapis
{
public Zapis() { }
public void zapisi(Form1 forma) {
StreamWriter zapisi = File.AppendText("D:\\"+forma.textBox1.Text+".txt");
zapisi.WriteLine(DateTime.Now.ToString());
zapisi.Close();
}
}
}
namespace WindowsFormsApplication399
{
public partial class Form1 : Form
{
public Form1()
{
InitializeComponent();
}
private void button1_Click(object sender, EventArgs e)
{
timer1.Start();
}
private void timer1_Tick(object sender, EventArgs e)
{
Zapis z = new Zapis();
z.zapisi(this);
}
}
}
64. Napravite GUI aplikaciju koja sadrži samo jedan Label objekt (Text = Programsko inženjerstvo).
Prilikom pokretanja aplikacije od korisnika treba tražiti da odabere boju (ColorDialog) i da odabere
font (FontDialog). Odabrana boja neka bude pozadina forme. Odabrani font neka bude font Labele.
namespace WindowsFormsApplication400
{
class Izmjena
{
public Izmjena() { }
public void izmjeni(Form1 forma) {
forma.fontDialog1.ShowDialog();
forma.colorDialog1.ShowDialog();
forma.label1.Font = forma.fontDialog1.Font;
forma.BackColor = forma.colorDialog1.Color;
}
}
}
namespace WindowsFormsApplication400
{
public partial class Form1 : Form
{
public Form1()
{
InitializeComponent();
}
private void Form1_Load(object sender, EventArgs e)
{
Izmjena iz = new Izmjena();
iz.izmjeni(this);
}
}
}
65. Napravite GUI aplikaciju koja temeljem parametara: Traženi iznos kredita, broj mjeseci otplate i
kamate računa otplatni plan kredita. Način unosa nije bitan. Izgled jednog reda otplatne tablice: rbr.
mjeseca, mj. rata, preostalo duga. Način prikaza otplatne tablice nije bitan (npr. jedan red u ListBox,
TextBox, DataGridView,...)
namespace WindowsFormsApplication410
{
class Izracuni
{
double iznos, rok;
public Izracuni(double a, double b) {
this.iznos = a;
this.rok = b;
}
public void iznosZaOtplatu(Form1 forma) {
double iznosZaOtplatu = iznos + (double)(1 + (forma.numKamta.Value /
100));
double mjesecnaRata = iznosZaOtplatu / rok;
double preostaloDuga = iznosZaOtplatu;
for (int i = 0; i < rok; i++)
{
preostaloDuga = preostaloDuga ‐ mjesecnaRata;
forma.listOtplata.Items.Add(new ListViewItem(new string[] { (i +
1).ToString(), mjesecnaRata.ToString("F2"), preostaloDuga.ToString("F2") }));
}
}
}
}
namespace WindowsFormsApplication410
{
public partial class Form1 : Form
{
public Form1()
{
InitializeComponent();
}
private void btnCalculate_Click(object sender, EventArgs e)
{
if (!CheckInput())
{
return;
}
listOtplata.Items.Clear();
double iznos = 0;
double rok = 0;
if (!double.TryParse(txtIznos.Text, out iznos))
{
MessageBox.Show("Neispravni iznos kredita");
return;
}
if (!double.TryParse(txtRok.Text, out rok))
{
MessageBox.Show("neispravan format za broj mj");
return;
}
Izracuni iz = new Izracuni(iznos,rok);
iz.iznosZaOtplatu(this);
}
private bool CheckInput()
{
if (string.IsNullOrEmpty(txtIznos.Text))
{
MessageBox.Show("polje za iznos kredita en smoje biti prazno");
return false;
}
if (string.IsNullOrEmpty(txtRok.Text))
{
MessageBox.Show("Polje za unos broja mj otplate ne smije biti
prazno");
return false;
}
return true;
}
private void Form1_Load(object sender, EventArgs e)
{
listOtplata.View = View.Details;
listOtplata.GridLines = true;
listOtplata.FullRowSelect = true;
listOtplata.Columns.Add("Rb");
listOtplata.Columns.Add("Mjrata");
listOtplata.Columns.Add("Preostalo");
}
}
}
66. Napravite GUI aplikaciju koja ima jednu tipku (width:50px, height: 50px, lokacija:negdje u sredini
forme), prelaskom miša preko te tipke ona nestaje te umjesto nje nastaju dvije nove (koje imaju isto
ponašanje). Lokacija nove dvije tipke je relativno blizu: u radijusu od max 100px od lokacije početne
tipke.
namespace WindowsFormsApplication337
{
class Micanje
{
private Form1 GlavnaForma { get; set; }
public Micanje(Form1 glavnaForma)
{
this.GlavnaForma = glavnaForma;
}
public List<Button> buttonList { get; private set; }
public void izvrsi(Button button)
{
Random gumb = new Random();
for (int i = 0; i < 2; i++)
{
Button gumb1 = new Button();
this.buttonList = new List<Button>();
// this.buttonList.Add(gumb1);
gumb1.Width = 50;
gumb1.Height = 50;
gumb1.Location = new Point((button.Location.X + gumb.Next(100)),
(button.Location.Y + gumb.Next(100)));
gumb1.Text = button.Text;
Button gumb2 = new Button();
gumb2.Width = 50;
gumb2.Height = 50;
gumb2.Location = new Point((button.Location.X + gumb.Next(100)),
(button.Location.Y + gumb.Next(100)));
gumb2.Text = gumb1.Text;
// gumb2.Visible = false;
this.buttonList.Add(gumb1);
this.buttonList.Add(gumb2);
}
}
}
}
amespace WindowsFormsApplication401
{
public partial class Form1 : Form
{
public Form1()
{
InitializeComponent();
}
private void button1_MouseHover(object sender, EventArgs e)
{
Micanje k = new Micanje(this);
k.izvrsi(button1);
k.izvrsi(sender as Button);
foreach (Button item in k.buttonList)
{
this.Controls.Add(item);
}
this.Controls.Remove(sender as Button);
foreach (Button item in k.buttonList)
{
item.MouseHover += button1_MouseHover;
this.Controls.Add(item);
}
}
}
}
67. Napravite GUI aplikaciju koja ima jedan textbox. Korisnik u njega unosi izraz
tipa: "jedan+tri". Moguća operacija je samo zbrajanje. Aplikacija pritiskom na tipku
"Izračunaj" u nastavku teksta kojeg je korisnik upisao ispisuje rezultat. npr.
"jedan+tri=četiri". Mogući je unos samo brojeva od nula do pet.
namespace WindowsFormsApplication403
{
class Zbroj
{
int n;
int m;
int suma = 0;
public Zbroj(int jedan, int dva) {
this.n = jedan;
this.m = dva;
}
public int zbrajanje() {
return suma = n + m;
}
}
}
namespace WindowsFormsApplication403
{
public partial class Form1 : Form
{
public Form1()
{
InitializeComponent();
}
private void button1_Click(object sender, EventArgs e)
{
string[] brojevi = this.textBox1.Text.Split('+');
int n = 0;
int m = 0;
if (brojevi[0] == "jedan") n = 1;
else if (brojevi[0] == "dva") n = 2;
else if (brojevi[0] == "tri") n = 3;
else if (brojevi[0] == "četiri") n = 4;
else if (brojevi[0] == "pet") n = 5;
if (brojevi[1] == "jedan") m = 1;
else if (brojevi[1] == "dva") m = 2;
else if (brojevi[1] == "tri") m = 3;
else if (brojevi[1] == "četiri") m = 4;
else if (brojevi[1] == "pet") m = 5;
Zbroj z = new Zbroj(n, m);
if (z.zbrajanje() == 2) textBox1.Text += " = dva";
if (z.zbrajanje() == 3) textBox1.Text += " = tri";
if (z.zbrajanje() == 4) textBox1.Text += " = četiri";
if (z.zbrajanje() == 5) textBox1.Text += " = pet";
if (z.zbrajanje() == 6) textBox1.Text += " = šest";
if (z.zbrajanje() == 7) textBox1.Text += " = sedam";
if (z.zbrajanje() == 8) textBox1.Text += " = osam";
if (z.zbrajanje() == 9) textBox1.Text += " = devet";
if (z.zbrajanje() == 10) textBox1.Text += " = deset";
}
}
}
68. Napravite GUI aplikaciju koja služi kao preglednik tekstualnih datoteka. Pritiskom
na tipku "Otvori" otvara se dijalog (FileOpenDialog) za odabir datoteke, po uspješnom
odabiru (FileOK) treba sadržaj datoteke ispisati u textboxu.
Pomoć: statična klasa File.
namespace WindowsFormsApplication404
{
class Datoteke
{
public Datoteke() { }
public void otvori(Form1 forma) {
OpenFileDialog dialog = new OpenFileDialog();
if (dialog.ShowDialog() == DialogResult.OK)
{
using(StreamReader strim = new StreamReader(dialog.FileName)){
forma.textBox1.Text = strim.ReadToEnd();
}
}
}
}
}
namespace WindowsFormsApplication404
{
public partial class Form1 : Form
{
public Form1()
{
InitializeComponent();
}
private void button1_Click(object sender, EventArgs e)
{
Datoteke dat = new Datoteke();
dat.otvori(this);
}
}
}
69. Napravite GUI aplikaciju koja na google maps karti prikazuje putanju između dva
grada. Popis gradova je: Zagreb, Varazdin, Split, Rijeka, Dubrovnik, Vinkovci,
Bjelovar. Korisnik odabire gradove iz dvije combobox liste (Polazište i Odredište),
nakon odabira odredišta na google karti se prikazuje putanja. Sintaksa URL putanje je:
http://maps.google.com/maps?saddr=polaziste&daddr=odrediste
Potrebno je korisnika upozoriti ako je odabran isti grad za polazište i odredište
namespace WindowsFormsApplication405
{
class Put
{
string polaziste, odrediste;
public Put(string p, string o) {
this.polaziste = p;
this.odrediste = o;
}
public void putanja(Form1 forma) {
if (polaziste == odrediste)
{
MessageBox.Show("Isto je polazište i odredište!");
}
else
{
Uri link = new
Uri("http://maps.google.com/maps?saddr=polaziste&daddr=odrediste");
forma.webBrowser1.Url = link;
}
}
}
}
namespace WindowsFormsApplication405
{
public partial class Form1 : Form
{
public Form1()
{
InitializeComponent();
string[] gradovi = { "Zagreb", "Varazdin", "Spit", "Rijeka", "Dubrovnik",
"Vinkovci", "Bjelovar" };
foreach (string grad in gradovi)
{
this.comboBox1.Items.Add(grad);
this.comboBox2.Items.Add(grad);
}
}
private void comboBox2_SelectedIndexChanged(object sender, EventArgs e)
{
string polaziste = this.comboBox1.SelectedItem.ToString();
string odrediste = this.comboBox2.SelectedItem.ToString();
Put p = new Put(polaziste,odrediste);
p.putanja(this);
}
}
}
70. Napravite GUI aplikaciju koja prikazuje trenutno vrijeme u tekstualnom obliku
(Label objekt) s preciznošću od 15 min.
primjeri:
14:34 = dva i pola sata
15:21 = tri i četvrt sata
15:47 = tri i tri četvrt sata
16:05 = četiri sata
Nije potrebno obraćati pozornost na padeže.
namespace WindowsFormsApplication406
{
class Vrijeme
{
int sat, minuta;
string a, b;
public Vrijeme(int n, int m) {
this.sat = n;
this.minuta = m;
}
public string racunajVrijeme() {
if (minuta > 0 && minuta <= 15) b = "i jedna četvrt sata";
if (minuta > 15 && minuta <= 30) b = "i dvije četvrti sata";
if (minuta > 30 && minuta <= 45) b = "i tri četvrti sata";
if (minuta > 45 && minuta <= 60) b = "i četiri četvrti sata";
if (sat == 12 || sat == 24) a = "dvanaest ";
if (sat == 11 || sat == 23) a = "jedanaest ";
if (sat == 10 || sat == 22) a = "deset ";
if (sat == 9 || sat == 21) a = "devet ";
if (sat == 8 || sat == 20) a = "osam ";
if (sat == 7 || sat == 19) a = "sedam ";
if (sat == 6 || sat == 18) a = "šest ";
if (sat == 5 || sat == 17) a = "pet ";
if (sat == 4 || sat == 16) a = "četiri ";
if (sat == 3 || sat == 15) a = "tri ";
if (sat == 2 || sat == 14) a = "dva ";
if (sat == 1 || sat == 13) a = "jedan ";
return (a + b).ToString(); ;
}
}
}
namespace WindowsFormsApplication406
{
public partial class Form1 : Form
{
public Form1()
{
InitializeComponent();
var vrijeme = DateTime.Now;
var sat = vrijeme.Hour;
var minute = vrijeme.Minute;
string a = "";
string b = "";
Vrijeme v = new Vrijeme(sat, minute);
label1.Text = DateTime.Now +"=" + v.racunajVrijeme();
}
}
}
71. Napravite GUI aplikaciju koja služi kao preglednik slika. Korisnik u početku
odabire direktorij te se iz direktorija prikazuju samo .jpg slike i to tako da je
uvijek prikazana samo jedna slika. Desnim klikom miša na sliku se prikazuje sljedeća
slika iz odabranog direktorija. Lijevim klikom miša na sliku se prikazuje prethodna
slika iz odabranog direktorija.
namespace WindowsFormsApplication407
{
class Slike
{
private int selectedPictureIndex;
private List<string> files = null;
public void otvori(Form1 forma)
{
this.files = new List<string>();
forma.folderBrowserDialog1.ShowDialog();
this.files.AddRange(Directory.GetFiles(forma.folderBrowserDialog1.SelectedPath));
this.files = this.files.Where(path => path.EndsWith(".jpg")).ToList();
forma.pictureBox1.ImageLocation =
this.files.ElementAt(this.selectedPictureIndex);
}
public void listaj(Form1 forma, MouseEventArgs e)
{
if (e.Button == MouseButtons.Right)
{
if (this.selectedPictureIndex != this.files.Count‐1)
{
forma.pictureBox1.ImageLocation =
this.files.ElementAt(++this.selectedPictureIndex);
}
else
{
this.selectedPictureIndex = 0;
forma.pictureBox1.ImageLocation =
this.files.ElementAt(this.selectedPictureIndex);
}
}
else
{
if (this.selectedPictureIndex != 0 )
{
forma.pictureBox1.ImageLocation = this.files.ElementAt(‐‐
this.selectedPictureIndex);
}
else
{
this.selectedPictureIndex = this.files.Count ‐ 1;
forma.pictureBox1.ImageLocation =
this.files.ElementAt(this.selectedPictureIndex);
}
}
}
}
}
namespace WindowsFormsApplication407
{
public partial class Form1 : Form
{
private Slike s { get; set; }
public Form1()
{
InitializeComponent();
this.s = new Slike();
s.otvori(this);
}
private void pictureBox1_MouseClick(object sender, MouseEventArgs e)
{
this.s.listaj(this, e);
}
}
}