Click to See Complete Forum and Search --> : [RESOLVED] passing array value via class


max2040uk
June 17th, 2009, 02:06 PM
here is the code for my program for an assignment. i created it before but am under time constraints and cant seem to get it to work this time. an error is produced and the piece of code and error message it reffers to will be put in the next post for ease of reading.

public Form1()
{
InitializeComponent();
}
Employee[] employee = new Employee[10];
private void button2_Click(object sender, EventArgs e)
{

}

private void button4_Click(object sender, EventArgs e)
{
Application.Exit();
}

private void button3_Click(object sender, EventArgs e)
{
empIDTxt.Text = "";
fnTxt.Text = "";
lnTxt.Text = "";
janTxt.Text = "";
febTxt.Text = "";
marTxt.Text = "";
aprTxt.Text = "";
mayTxt.Text = "";
junTxt.Text = "";
julTxt.Text = "";
augTxt.Text = "";
sepTxt.Text = "";
octTxt.Text = "";
novTxt.Text = "";
decTxt.Text = "";
}

private void errorChecking()
{

}

private void button1_Click(object sender, EventArgs e)
{
double avSal;
string fName;
string lName;
int empID;

double[] wages = new double[12];
wages[0] = Convert.ToDouble(janTxt.Text);
wages[1] = Convert.ToDouble(febTxt.Text);
wages[2] = Convert.ToDouble(marTxt.Text);
wages[3] = Convert.ToDouble(aprTxt.Text);
wages[4] = Convert.ToDouble(mayTxt.Text);
wages[5] = Convert.ToDouble(junTxt.Text);
wages[6] = Convert.ToDouble(julTxt.Text);
wages[7] = Convert.ToDouble(augTxt.Text);
wages[8] = Convert.ToDouble(sepTxt.Text);
wages[9] = Convert.ToDouble(octTxt.Text);
wages[10] = Convert.ToDouble(novTxt.Text);
wages[11] = Convert.ToDouble(decTxt.Text);

avSal = averageSalary(wages);

if (empID < 10)
{

}
else
{
Employee[empID] = new Employee(Convert.ToInt32(empIDTxt.Text), fnTxt.Text, lnTxt.Text, avSal);
empID++;
}
}

private double averageSalary(double[] avsal)
{
double average = 0;
double sum = 0;
for (int index = 0; index < avsal.Length; index++)
{
sum = sum + avsal[index];
}
average = sum / avsal.Length;
return average;
}

public class Employee
{
private int employeeID;
private double averageWage;
private string firstName, lastName;

public Employee(int employeeID)
{

}

public Employee(int empID, string fName, string lName, double avWage)
{
employeeID = empID;
averageWage = avWage;
firstName = fName;
lastName = lName;
}

BigEd781
June 17th, 2009, 02:08 PM
Please use code tags so that your code is more readable.

max2040uk
June 17th, 2009, 02:09 PM
The piece of code below is where i am sent for the error "employee is a type but used like a variable"
{
Employee[empID] = new Employee(Convert.ToInt32(empIDTxt.Text), fnTxt.Text, lnTxt.Text, avSal);
empID++;
}

BigEd781
June 17th, 2009, 02:13 PM
The piece of code below is where i am sent for the error "employee is a type but used like a variable"
{
Employee[empID] = new Employee(Convert.ToInt32(empIDTxt.Text), fnTxt.Text, lnTxt.Text, avSal);
empID++;
}

Well, the message seems pretty clear. You have your casing mixed up. The code should be

employee[empID] = new Employee(...)

Lowercase 'e' to match your variable name.

max2040uk
June 17th, 2009, 02:15 PM
sorry i didnt know i could keep the code format

public Form1()
{
InitializeComponent();
}
Employee[] employee = new Employee[10];
private void button2_Click(object sender, EventArgs e)
{

}

private void button4_Click(object sender, EventArgs e)
{
Application.Exit();
}

private void button3_Click(object sender, EventArgs e)
{
empIDTxt.Text = "";
fnTxt.Text = "";
lnTxt.Text = "";
janTxt.Text = "";
febTxt.Text = "";
marTxt.Text = "";
aprTxt.Text = "";
mayTxt.Text = "";
junTxt.Text = "";
julTxt.Text = "";
augTxt.Text = "";
sepTxt.Text = "";
octTxt.Text = "";
novTxt.Text = "";
decTxt.Text = "";
}

private void errorChecking()
{

}

private void button1_Click(object sender, EventArgs e)
{
double avSal;
string fName;
string lName;
int empID;

double[] wages = new double[12];
wages[0] = Convert.ToDouble(janTxt.Text);
wages[1] = Convert.ToDouble(febTxt.Text);
wages[2] = Convert.ToDouble(marTxt.Text);
wages[3] = Convert.ToDouble(aprTxt.Text);
wages[4] = Convert.ToDouble(mayTxt.Text);
wages[5] = Convert.ToDouble(junTxt.Text);
wages[6] = Convert.ToDouble(julTxt.Text);
wages[7] = Convert.ToDouble(augTxt.Text);
wages[8] = Convert.ToDouble(sepTxt.Text);
wages[9] = Convert.ToDouble(octTxt.Text);
wages[10] = Convert.ToDouble(novTxt.Text);
wages[11] = Convert.ToDouble(decTxt.Text);

avSal = averageSalary(wages);

if (empID < 10)
{

}
else
{
Employee[empID] = new Employee(Convert.ToInt32(empIDTxt.Text), fnTxt.Text, lnTxt.Text, avSal);
empID++;
}
}

private double averageSalary(double[] avsal)
{
double average = 0;
double sum = 0;
for (int index = 0; index < avsal.Length; index++)
{
sum = sum + avsal[index];
}
average = sum / avsal.Length;
return average;
}

public class Employee
{
private int employeeID;
private double averageWage;
private string firstName, lastName;

public Employee(int employeeID)
{

}

public Employee(int empID, string fName, string lName, double avWage)
{
employeeID = empID;
averageWage = avWage;
firstName = fName;
lastName = lName;
}

public void AverageWage()
{

}

max2040uk
June 17th, 2009, 02:37 PM
Thank you all working now :D i didnt even notice that and ive been looking at it for hours!!!