Hogyan készíthetek C#-ban egy olyan programot, amely 2 textbox szöveg tartalma alapján végez számításokat?
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;
}
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)
{
}
}
}
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)
{
}
}
}
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"?
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
Ha kifogással szeretne élni valamely tartalommal kapcsolatban, kérjük jelezze e-mailes elérhetőségünkön!