Wednesday, April 23, 2014
Two Lists Working In Parrallel
namespace Two_Lists_Working_In_Parallel
{
public partial class Form1 : Form
{
//a list to hold the names of students
List<string> names = new List<string>();
//a list to hold their corresponding grades
List<int> grades = new List<int>();
public Form1()
{
InitializeComponent();
}
public void PreloadLists()
{
//Preloads both lists with some data
string[] stunames = { "John", "David", "Heather", "Sheryl", "Robert", "Mike", "Karen", "Linda", "Sam" };
int[] stugrades = { 88, 93, 91, 77, 81, 95, 75, 81, 96 };
//load both list
names.AddRange(stunames);
grades.AddRange(stugrades);
}
private void Form1_Load(object sender, EventArgs e)
{
//preload both list at the start of this application
PreloadLists();
//populate listbox (1stnames) with the content of the list names.
lstNames.Items.AddRange(names.ToArray());
}
private void btnAddNameGrade_Click(object sender, EventArgs e)
{
//get name and grade
string name = txtName.Text;
int grade = int.Parse(txtGrades.Text);
//add name and grade to the lists
names.Add(name);
grades.Add(grade);
//display lists
DisplayNames();
}
private void DisplayNames()
{
lstNames.Items.Clear();// clear display
foreach (string name in names)
{
lstNames.Items.Add(name);
}
}
private void btnGetGradeOfSelectedName_Click(object sender, EventArgs e)
{
//get the index of selected name
if (lstNames.SelectedIndex != -1)
{
int sindex = lstNames.SelectedIndex;
//use the index to extract the grade
//from the grades list
int grade = grades[sindex];
//display it
txtGrade2.Text = grade.ToString();
}
else
MessageBox.Show("You must first select a name");
}
private void btnGetNamesWithGradesAboveAvg_Click(object sender, EventArgs e)
{
//Compute the average
double average = grades.Average();
lstNames.Items.Add("====Avg: " + average.ToString("f1") +"========");
for (int i = 0; i < grades.Count; i++)
{
if (grades[i] > average)
lstNames.Items.Add(names[i]);
}
}
private void btnGetNameWithGradeLessThan65_Click(object sender, EventArgs e)
{ bool b1 = false;
for (int i = 0; i < grades.Count; i++)
{
if (grades[i] < 65)
lst65Down.Items.Add(names[i]);
else
b1 = true;
}
if (b1)
MessageBox.Show("There is no student whose grade are less than 65");
}
private void btnChangeStuGrade_Click(object sender, EventArgs e)
{
try
{
//make sure that a name is selected
if (lstNames.SelectedIndex != -1)
{
int grade = int.Parse(txtNewGrade.Text);
int sindex = lstNames.SelectedIndex;
if (grade >= 0 && grade <= 100)
{
grades[sindex] = grade;
MessageBox.Show("Grade has been updated");
}
else
{
MessageBox.Show("Please type numeric value");
}
}
}
catch (FormatException fe)
{
MessageBox.Show(fe.Message);
//MessageBox.Show(
}
catch (IndexOutOfRangeException ie)
{
MessageBox.Show(ie.Message);
}
}
private void btnRemoveSelectedStudentNGrade_Click(object sender, EventArgs e)
{
if (lstNames.SelectedIndex != -1)
{
int sindex = lstNames.SelectedIndex;
names.RemoveAt(sindex);
grades.RemoveAt(sindex);
DisplayNames();
//int index = lstNames.SelectedIndex;
//lstNames.Items.Remove(lstNames.SelectedItem);
//names.RemoveAt(index);
//grades.RemoveAt(index);
}
//or (for multiple selection)
//for (int i = lstNames.SelectedIndices.Count - 1; i >= 0; i--)
//{
// lstNames.Items.RemoveAt(lstNames.SelectedIndices[i]);
// names.RemoveAt(i);
// grades.RemoveAt(i);
//}
}
}
}
//Add button to list the students whose grades are below 65
//Include GUI to change a grade of the selected student
//Add button to remove the selected student
//(hint: you must remove his/her grade as well)
Labels:
C#
Subscribe to:
Post Comments (Atom)

No comments:
Post a Comment