Kezdőoldal » Számítástechnika » Programozás » Hogyan készíthetek C#-ban egy...

Hogyan készíthetek C#-ban egy olyan programot, amely 2 textbox szöveg tartalma alapján végez számításokat?

Figyelt kérdés
A textbox-ok értéke 1980-től 2015-ig lehetnek. Minden évhez kell rendelni egy adott összeget, pl 1980=20 euró. A feladat, hogy pl az első textboxba beírom h 1990, a másodikba, h 2005. A button lenyomásával adja össze a 1999-től 2005-ig az értékeket melyeket hozzárendeltem az évekhez. Használjak adatbázist? Kérnék szépen részletes leírást, mert elég kezdő vagyok.
2015. jan. 15. 10:32
1 2
 1/13 A kérdező kommentje:
Elnézést, elírtam 1999 helyett 1990
2015. jan. 15. 10:33
 2/13 anonim ***** válasza:
Ha nem szükséges adatbázis a feladathoz akkor elég tömbbe is elmenteni, aztán for ciklussal végig mész rajta, a beviteli mezők alapján. pl for(i=1980;i<=2005;i++) print i+"="+tomb[i]['euro_ertek']+" euró";
2015. jan. 15. 10:49
Hasznos számodra ez a válasz?
 3/13 anonim ***** válasza:

egy list, ami 35 elemű, alapból legenerálod:

List<int> valami = new List<int>(){ 1980,1981,1982 .. , 2015 };


egy list, ami 35 elemű és ezeknek a hozzárendelt értékeit tartalmazza:

List<int> valamiErtek = new List<int>();


egy metódus, ami visszaadja az adott évhez tartozó értéket:

private int GetValueForYear(int year)

{

for(int i = 0; i < valami.Count; i++){

if(valami[i] == year){

return valamiErtek[i];

}

}

return null; //nem talált hozzá értéket

}


egy metódus, ami beállítja az adott év értékét:

private void SetYearValue(int year, int ertek)

{

for(int i = 0; i < valami.Count; i++){

if(valami[i] = year){

valamiErtek[i] = ertek;

}

}


egy ami összeadja két év közötti értékeket:

private int ValueOfYears(int start, int end){

int osszeg = 0;

int indexStart = 0;

int indexEnd = 0;

for(int i = 0; i < valami.Count; i++){

if(valami[i] = start){

indexStart = i;

}

if(valami[i] = end){

indexEnd = i;

break;

}

}


//összeadás

for(int i = indexStart; i <= indexEnd; i++){

osszeg += valamiErtek[i];

}

return osszeg;

}

2015. jan. 15. 14:54
Hasznos számodra ez a válasz?
 4/13 A kérdező kommentje:

Köszönöm a segítséget. A második módszert választottam. Dobott néhány hibaüzenetet.


namespace fentartoi

{

public partial class hartalek : Form

{


List<int> ev = new List<int>() { 1980,1981,1982,1983,1984,1985,1986,1987,1988,1989,1990,1991,1992,

1993,1994,1995,1996,1997,1998,1999,2000,2001,2002,2003,2004,2005,2006,2007,2008,2009,2010,2011,2012,2013,2014,2015};


List<int> evErtek = new List<int> {1,1,1,1,1,1,2,2,2,2,2,4,4,4,4,4,8,8,8,8,8,17,17,17,17,17,35,35,35,35,35,

70,70,70,80,80};


private int GetValueForYear(int year)

{

for (int i = 0; i < ev.Count; i++)

{

if (ev[i] == year)

{

return evErtek[i];

}

}

return null; ELSŐ HIBA A NULL

}


private void SetYearValue(int year, int ertek)

{

for(int i = 0; i < ev.Count; i++)

{

if (ev[i] == year)

{

evErtek[i] = ertek;


}

}

}



public hartalek()

{

InitializeComponent();

}


private void txtev1_TextChanged(object sender, EventArgs e)

{



}


private void button1_Click(object sender, EventArgs e)

{

int osszeg = 0;

int indexStart = 0;

int indexEnd = 0;



for (int i = 0; i < ev.Count; i++)

{

if (ev[i] = start) MÁSODIK HIBA A START SZÓ

{

indexStart = i;

}

if (ev[i] = end) HARMADIK HIBA AZ END SZÓ

{

indexEnd = i;

break;

}

}

for (int i = indexStart; i <= indexEnd; i++)

{

osszeg += evErtek[i];

}

return osszeg; NEGYEDIK HIBA A RETURN SZÓ


}


private void hartalek_Load(object sender, EventArgs e)

{


}

}

}

2015. jan. 16. 08:54
 5/13 A kérdező kommentje:

Végeztem egy módosítást nagy nehezen, most nincs hibaüzenet, de nem is működik.


namespace fentartoi

{


public partial class hartalek : Form

{


List<int> ev = new List<int>() { 1980,1981,1982,1983,1984,1985,1986,1987,1988,1989,1990,1991,1992,

1993,1994,1995,1996,1997,1998,1999,2000,2001,2002,2003,2004,2005,2006,2007,2008,2009,2010,2011,2012,2013,2014,2015};


List<int> evErtek = new List<int> {1,1,1,1,1,1,2,2,2,2,2,4,4,4,4,4,8,8,8,8,8,17,17,17,17,17,35,35,35,35,35,

70,70,70,80,80};


private int GetValueForYear(int year)

{

for (int i = 0; i < ev.Count; i++)

{

if (ev[i] == year)

{

return evErtek[i];

}

}

return 0;

}


private void SetYearValue(int year, int ertek)

{


for(int i = 0; i < ev.Count; i++)

{

if (ev[i] == year)

{

evErtek[i] = ertek;

}

}

int osszeg = 0;

int indexStart = 0;

int indexEnd = 0;

int start = Int32.Parse(txtev1.Text);

int end = Int32.Parse(txtev2.Text);


for (int i = 0; i < ev.Count; i++)

{


if (ev[i] == start)

{

indexStart = i;

}

if (ev[i] == end)

{

indexEnd = i;

break;

}

}

for (int i = indexStart; i <= indexEnd; i++)

{

osszeg += evErtek[i];


}


}


public hartalek()

{

InitializeComponent();

}


private void txtev1_TextChanged(object sender, EventArgs e)

{



}


private void button1_Click(object sender, EventArgs e)

{


}


private void hartalek_Load(object sender, EventArgs e)

{


}


private void splitter1_SplitterMoved(object sender, SplitterEventArgs e)

{


}

}

}

2015. jan. 16. 11:10
 6/13 SimkoL ***** válasza:
Nem a kedvencem a C#, de írtam egy rövid szösszenetet neked: [link] A letöltésnél megkapod az egészet.
2015. jan. 16. 15:30
Hasznos számodra ez a válasz?
 7/13 anonim ***** válasza:
Azért nem ment mert a button1_Click eventben meg kell hívni a kezdőfüggvényt, először mondjuk ellenőrizd hogy a textboxok nem üresek-e, mert ha igen akkor hibát fog adni, (if(textBox1.Text.Trim()="" || textBox2.Text.Trim() = ""), aztán ha ez hamis akkor mehet a függvények hívása
2015. jan. 16. 20:19
Hasznos számodra ez a válasz?
 8/13 A kérdező kommentje:
Hát nem jutok szóhoz, nagyon szépen köszön a kész programot. Átrágom az egészet sorról sorra, hogy megértsem. És aztán megpróbálom egyedül megcsinálni
2015. jan. 16. 21:11
 9/13 A kérdező kommentje:

Kedves SimkoL!

Ha ezt ilyen szépen megcsináltad nekem s kész van, csak annyival szeretném bővíteni a programot, hogy a végösszeget tudjam szorozni 2,3 vagy 4-el. A mostani eredmény 1 személyre vonatkozik, szeretnék tenni 4 radioButtont (gondolom egy GroupBoxba-kell őket) , ahol kiválaszthatom, h 1,2,3 vagy 4 személyre számolja ki. Folytatom az általad irt kódot, és egy sima if-else-vel megoldhatom? Tudnál ebben is "segíteni"?

2015. jan. 16. 21:19
 10/13 SimkoL ***** válasza:
Hát én inkább egy NumericUpDown-t tennék, sőt mind a három helyre így megsprórolható a hibakezelés :) De ha gondolod legyen RadioButton.
2015. jan. 16. 21:31
Hasznos számodra ez a válasz?
1 2

Kapcsolódó kérdések:




Minden jog fenntartva © 2024, www.gyakorikerdesek.hu
GYIK | Szabályzat | Jogi nyilatkozat | Adatvédelem | Cookie beállítások | WebMinute Kft. | Facebook | Kapcsolat: info(kukac)gyakorikerdesek.hu

A weboldalon megjelenő anyagok nem minősülnek szerkesztői tartalomnak, előzetes ellenőrzésen nem esnek át, az üzemeltető véleményét nem tükrözik.
Ha kifogással szeretne élni valamely tartalommal kapcsolatban, kérjük jelezze e-mailes elérhetőségünkön!