Created
October 8, 2016 05:17
-
-
Save jwickster/b8f59a595c1d393935c89bdd946bbe2e to your computer and use it in GitHub Desktop.
Revisions
-
jwickster created this gist
Oct 8, 2016 .There are no files selected for viewing
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters. Learn more about bidirectional Unicode charactersOriginal file line number Diff line number Diff line change @@ -0,0 +1,250 @@ using System; using System.Collections.Generic; using System.Data; using System.Linq; using System.Text; using System.Threading.Tasks; using System.Windows; using System.Windows.Controls; using System.Windows.Data; using System.Windows.Documents; using System.Windows.Input; using System.Windows.Media; using System.Windows.Media.Imaging; using System.Windows.Navigation; using System.Windows.Shapes; namespace CS_3280_Assignment_3_GradeBook_WPF { public partial class MainWindow : Window { #region Attributes private int SelectedStudentIndex { get { return _selectedStudentIndex; } set { _selectedStudentIndex = value; UpdateSelectedUserDisplay(); } } private int iNumberOfAssignments = 0; private int iNumberOfStudents = 0; private int[,] iaScores = new int[0,0]; private string[] saStudents = new string[0]; private int _selectedStudentIndex; #endregion #region Methods public MainWindow() { InitializeComponent(); } private void save_counts_button_Click(object sender, RoutedEventArgs e) { bool numberofAssignmentsValid = int.TryParse(input_Number_Assignments_COUNTS_TB.Text, out iNumberOfAssignments) && iNumberOfAssignments >= 1 && iNumberOfAssignments <= 99; bool numberOfStudentsValid = int.TryParse(input_Number_Students__COUNTS_TB.Text, out iNumberOfStudents) && iNumberOfStudents >= 1 && iNumberOfStudents <= 10; if (!numberofAssignmentsValid) { MessageBox.Show("Number of assignments must be between 1 and 99"); } else if (!numberOfStudentsValid) { MessageBox.Show("Number of students must be between 1 and 10"); } else { saStudents = new string[iNumberOfStudents]; for (int i = 0; i < iNumberOfStudents; i++) { saStudents[i] = "Student #" + (i + 1); } iaScores = new int[iNumberOfStudents, iNumberOfAssignments]; Display_Everything_Button.IsEnabled = true; save_counts_button.IsEnabled = false; SelectedStudentIndex = 0; } } public void Save_Scores_Button_Click(object sender, RoutedEventArgs e) { // make sure we're in a good state if (iNumberOfAssignments > 0 && iNumberOfStudents > 0) { int assignmentNumber = 0; bool assignmentNumberValid = int.TryParse(Input_NumberAssignments_SCORES_TB.Text, out assignmentNumber) && assignmentNumber >= 1 && assignmentNumber <= iNumberOfAssignments; if (!assignmentNumberValid) { MessageBox.Show("Assignment number must be between 1 and " + iNumberOfAssignments); return; } int assignmentScore = 0; bool assignmentScoreValid = int.TryParse(input_score_SCORES_TB.Text, out assignmentScore) && assignmentScore >= 0 && assignmentScore <= 100; if (!assignmentScoreValid) { MessageBox.Show("Assignment score must be between 0 and 100"); return; } iaScores[SelectedStudentIndex, assignmentNumber-1] = assignmentScore; MessageBox.Show("You have saved score: " + assignmentScore + " to assignment number " + assignmentNumber); } } /// <summary> /// The user inputs a name less than 20 characters and pushed save to save. /// </summary> /// <param name="sender"></param> /// <param name="e"></param> public void save_name_button_Click(object sender, RoutedEventArgs e) { //validate if (iNumberOfStudents > 0) { string newName = input_Student_Name_TB.Text.Trim(); if (string.IsNullOrWhiteSpace(newName)) { MessageBox.Show("No name entered "); return; } MessageBox.Show("You have saved " + newName + " to the list."); saStudents[SelectedStudentIndex] = newName; } } /// <summary> /// The Navigation Buttons /// </summary> /// <param name="sender"></param> /// <param name="e"></param> public void First_Student_Button_Click(object sender, RoutedEventArgs e) { SelectedStudentIndex = 0; } public void Next_Student_button_Click(object sender, RoutedEventArgs e) { if(SelectedStudentIndex < iNumberOfStudents-1) { SelectedStudentIndex++; } } public void Previous_Student_Button_Click(object sender, RoutedEventArgs e) { if (SelectedStudentIndex > 0) { SelectedStudentIndex--; } } public void Last_Student_Button_Click(object sender, RoutedEventArgs e) { if(iNumberOfStudents > 0) { SelectedStudentIndex = iNumberOfStudents - 1; } } public void Display_Everything_Button_Click(object sender, RoutedEventArgs e) { string sDisplayText = ""; for (int i = 0; i < saStudents.Length; i++) { sDisplayText += saStudents[i] + "\t\t"; int runningTotalGrade = 0; for (int j = 0; j < iNumberOfAssignments; j++) { runningTotalGrade += iaScores[i, j]; sDisplayText += iaScores[i, j] + "\t"; } int averageGrade = runningTotalGrade / iNumberOfAssignments; sDisplayText += averageGrade + "\t"; sDisplayText += GetLetterGrade(averageGrade); sDisplayText += "\n"; } Main_Output_Window.Text = sDisplayText; } private string GetLetterGrade(int averageGrade) { string letterGrade; if (averageGrade >= 90) { letterGrade = "A"; } else if (averageGrade <= 89 && averageGrade >= 80) { letterGrade = "B"; } else if (averageGrade <= 79 && averageGrade >= 70) { letterGrade = "C"; } else if (averageGrade <= 69 && averageGrade >= 60) { letterGrade = "D"; } else { letterGrade = "F"; } return letterGrade; } private void Reset_Application_Button_Click(object sender, RoutedEventArgs e) { iNumberOfAssignments = 0; iNumberOfStudents = 0; SelectedStudentIndex = 0; iaScores = new int[0,0]; saStudents = new string[0]; input_Number_Assignments_COUNTS_TB.Text = string.Empty; input_Number_Students__COUNTS_TB.Text = string.Empty; Main_Output_Window.Text = string.Empty; input_Student_Name_TB.Text = string.Empty; Display_Everything_Button.IsEnabled = false; save_counts_button.IsEnabled = true; } private void UpdateSelectedUserDisplay() { if (saStudents != null && saStudents.Length > SelectedStudentIndex) { input_Student_Name_TB.Text = saStudents[SelectedStudentIndex]; } } #endregion } }