diff --git a/.vs/Notenprogramm/v16/.suo b/.vs/Notenprogramm/v16/.suo index 6d25aef..324fc23 100644 Binary files a/.vs/Notenprogramm/v16/.suo and b/.vs/Notenprogramm/v16/.suo differ diff --git a/.vs/Notenprogramm/v16/Server/sqlite3/storage.ide b/.vs/Notenprogramm/v16/Server/sqlite3/storage.ide index 500363c..7136ef6 100644 Binary files a/.vs/Notenprogramm/v16/Server/sqlite3/storage.ide and b/.vs/Notenprogramm/v16/Server/sqlite3/storage.ide differ diff --git a/.vs/Notenprogramm/v16/Server/sqlite3/storage.ide-shm b/.vs/Notenprogramm/v16/Server/sqlite3/storage.ide-shm new file mode 100644 index 0000000..fe9ac28 Binary files /dev/null and b/.vs/Notenprogramm/v16/Server/sqlite3/storage.ide-shm differ diff --git a/.vs/Notenprogramm/v16/Server/sqlite3/storage.ide-wal b/.vs/Notenprogramm/v16/Server/sqlite3/storage.ide-wal new file mode 100644 index 0000000..e69de29 diff --git a/Notenprogramm/ChangeGradeHandler.cs b/Notenprogramm/ChangeGradeHandler.cs new file mode 100644 index 0000000..7aebd5e --- /dev/null +++ b/Notenprogramm/ChangeGradeHandler.cs @@ -0,0 +1,33 @@ +using System; +using System.Collections.Generic; +using System.Linq; +using System.Text; +using System.Threading.Tasks; +using System.Windows; +using System.Windows.Controls; + +namespace Notenprogramm +{ + public class ChangeGradeHandler + { + private Grade Grade; + + public ChangeGradeHandler(Grade grade) + { + Grade = grade; + } + + public void HandleGradeChange(object sender, TextChangedEventArgs args) + { + try + { + Grade.SetCalculatedGrade(Double.Parse(((TextBox)sender).Text)); + } + catch + { + MessageBox.Show("Bitte geben Sie eine rationale Zahl ein."); + } + + } + } +} diff --git a/Notenprogramm/Grade.cs b/Notenprogramm/Grade.cs index 9327e93..e7a400d 100644 --- a/Notenprogramm/Grade.cs +++ b/Notenprogramm/Grade.cs @@ -10,54 +10,59 @@ namespace Notenprogramm public class Grade : Rating { - private List grades; - private List bias; - private double calculatedGrade; + private List Grades; + private List Bias; + private double CalculatedGrade; private StackPanel stackPanel; public Grade(GradeType type, double ratio, double average, DateTime time, string name, string description, List grades) : base(type, ratio, average, time, name, description) { - this.grades = grades; + this.Grades = grades; } - public void addGrade(Grade grade) + public void AddGrade(Grade grade) { - grades.Add(grade); - calculateGrade(); - updateStackpanel(); + Grades.Add(grade); + CalculatedGrade = CalculateGrade(); + UpdateStackpanel(); } - public List getGrade() + public void SetCalculatedGrade(double grade) { - return grades; + CalculatedGrade = grade; } - public double getAverage() + public double GetAverage() { - calculateGrade(); - return calculatedGrade; + CalculatedGrade = CalculateGrade(); + return CalculatedGrade; } - public double calculateGrade() + public List GetGrades() + { + return Grades; + } + + public double CalculateGrade() { double average = 0; double biasSum = 0; - for (int i = 0; i < grades.Count; i++) + for (int i = 0; i < Grades.Count; i++) { - average += grades[i].calculateGrade() * bias[i]; - biasSum += bias[i]; + average += Grades[i].CalculateGrade() * Bias[i]; + biasSum += Bias[i]; } - calculatedGrade = average / biasSum; + CalculatedGrade = average / biasSum; - return calculatedGrade; + return CalculatedGrade; } - private void updateStackpanel() + private void UpdateStackpanel() { - + stackPanel = StackpanelBuilder.BuildStackPanelGrades(Grades); } } } diff --git a/Notenprogramm/MainWindow.xaml b/Notenprogramm/MainWindow.xaml index 03e04a5..71e15d2 100644 --- a/Notenprogramm/MainWindow.xaml +++ b/Notenprogramm/MainWindow.xaml @@ -8,7 +8,7 @@ Title="Notenprogramm" WindowState="Maximized" Closed="Window_Closed"> - + diff --git a/Notenprogramm/Notenprogramm.csproj b/Notenprogramm/Notenprogramm.csproj index 2741cd7..620b805 100644 --- a/Notenprogramm/Notenprogramm.csproj +++ b/Notenprogramm/Notenprogramm.csproj @@ -54,6 +54,7 @@ MSBuild:Compile Designer + diff --git a/Notenprogramm/StackpanelBuilder.cs b/Notenprogramm/StackpanelBuilder.cs index 26414fa..62e9ca1 100644 --- a/Notenprogramm/StackpanelBuilder.cs +++ b/Notenprogramm/StackpanelBuilder.cs @@ -9,13 +9,36 @@ namespace Notenprogramm { public class StackpanelBuilder { - private const int width = 80; + private const int WIDTH = 80; - public static StackPanel buildStackpanelGrades(Grade grade) + public static StackPanel BuildStackPanelGrades(List grades) { - StackPanel builtStackpanel = new StackPanel(); + StackPanel stackPanel = new StackPanel(); + + foreach (Grade grade in grades) + { + stackPanel.Children.Add(BuildStackpanelGrade(grade)); + } + + return stackPanel; + } + private static StackPanel BuildStackpanelGrade(Grade grade) + { + StackPanel builtStackpanel = new StackPanel(); + if (grade.GetGrades().Count == 0) + { + TextBox textBox = new TextBox(); + textBox.Text = grade.GetAverage().ToString(); + textBox.Width = WIDTH; + textBox.TextChanged += new TextChangedEventHandler(new ChangeGradeHandler(grade).HandleGradeChange); + builtStackpanel.Children.Add(textBox); + } + else + { + builtStackpanel.Children.Add(BuildStackPanelGrades(grade.GetGrades())); + } return builtStackpanel; } diff --git a/Notenprogramm/Student.cs b/Notenprogramm/Student.cs index ada9d4e..e69645a 100644 --- a/Notenprogramm/Student.cs +++ b/Notenprogramm/Student.cs @@ -45,15 +45,15 @@ public void addGrade(Grade grade) if (grade.getType().Equals(GradeType.exam)) { - examGrade.addGrade(grade); + examGrade.AddGrade(grade); } if (grade.getType().Equals(GradeType.oral)) { - oralGrade.addGrade(grade); + oralGrade.AddGrade(grade); } if (grade.getType().Equals(GradeType.extra)) { - extraGrade.addGrade(grade); + extraGrade.AddGrade(grade); } diff --git a/Notenprogramm/obj/Debug/DesignTimeResolveAssemblyReferences.cache b/Notenprogramm/obj/Debug/DesignTimeResolveAssemblyReferences.cache index c4b5b2c..b71665d 100644 Binary files a/Notenprogramm/obj/Debug/DesignTimeResolveAssemblyReferences.cache and b/Notenprogramm/obj/Debug/DesignTimeResolveAssemblyReferences.cache differ diff --git a/Notenprogramm/obj/Debug/DesignTimeResolveAssemblyReferencesInput.cache b/Notenprogramm/obj/Debug/DesignTimeResolveAssemblyReferencesInput.cache index 4bd7799..76e9a5d 100644 Binary files a/Notenprogramm/obj/Debug/DesignTimeResolveAssemblyReferencesInput.cache and b/Notenprogramm/obj/Debug/DesignTimeResolveAssemblyReferencesInput.cache differ diff --git a/Notenprogramm/obj/Debug/Notenprogramm.csproj.CoreCompileInputs.cache b/Notenprogramm/obj/Debug/Notenprogramm.csproj.CoreCompileInputs.cache index 2a76a2b..772cd2a 100644 --- a/Notenprogramm/obj/Debug/Notenprogramm.csproj.CoreCompileInputs.cache +++ b/Notenprogramm/obj/Debug/Notenprogramm.csproj.CoreCompileInputs.cache @@ -1 +1 @@ -1bb7eed1574186e0a6a96716ae38dd7e97c39a17 +a0d920abe4c4fcbf157e94de8160956e6e613aa8 diff --git a/Notenprogramm/obj/Debug/Notenprogramm.csprojAssemblyReference.cache b/Notenprogramm/obj/Debug/Notenprogramm.csprojAssemblyReference.cache index 4572f40..aa8051d 100644 Binary files a/Notenprogramm/obj/Debug/Notenprogramm.csprojAssemblyReference.cache and b/Notenprogramm/obj/Debug/Notenprogramm.csprojAssemblyReference.cache differ diff --git a/Notenprogramm/obj/Debug/Notenprogramm_MarkupCompile.cache b/Notenprogramm/obj/Debug/Notenprogramm_MarkupCompile.cache index 70ea8b9..505f3b5 100644 --- a/Notenprogramm/obj/Debug/Notenprogramm_MarkupCompile.cache +++ b/Notenprogramm/obj/Debug/Notenprogramm_MarkupCompile.cache @@ -12,7 +12,7 @@ DEBUG;TRACE C:\Users\Johannes\Documents\Projekte\NotenFirma\Notenprogramm\Notenprogramm\App.xaml 11151548125 -121011487976 +11-611517221 131569487696 MainWindow.xaml; diff --git a/Notenprogramm/obj/Debug/Notenprogramm_MarkupCompile.i.cache b/Notenprogramm/obj/Debug/Notenprogramm_MarkupCompile.i.cache index 41db414..dd345b3 100644 --- a/Notenprogramm/obj/Debug/Notenprogramm_MarkupCompile.i.cache +++ b/Notenprogramm/obj/Debug/Notenprogramm_MarkupCompile.i.cache @@ -12,7 +12,7 @@ DEBUG;TRACE C:\Users\Johannes\Documents\Projekte\NotenFirma\Notenprogramm\Notenprogramm\App.xaml 11151548125 -15860170298 +13-1082832458 131569487696 MainWindow.xaml; diff --git a/Notenprogramm/obj/Debug/TempPE/Properties.Resources.Designer.cs.dll b/Notenprogramm/obj/Debug/TempPE/Properties.Resources.Designer.cs.dll new file mode 100644 index 0000000..492bd82 Binary files /dev/null and b/Notenprogramm/obj/Debug/TempPE/Properties.Resources.Designer.cs.dll differ