new struct of system

This commit is contained in:
wangxiner55 2024-09-11 18:51:52 +08:00
parent 1e914941de
commit 82960a6ebe
13 changed files with 394 additions and 8 deletions

View File

@ -0,0 +1,86 @@
using StudentManager.Data;
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
namespace StudentManager.Common
{
public class ErrorInfo
{
public int ID { get; set; } = 0;
public bool Status { get; set; } = false;
}
public class ErrorSet
{
public int TotalCount { get; set; } = 0;
public int CorrectCount { get; set; } = 0;
public Dictionary<int, ErrorInfo> Errores { get; set; } = new Dictionary<int, ErrorInfo>();
public List<int> ErrorArray { get; set; } = new List<int>();
public List<int> CorrectArray { get; set; } = new List<int>();
public void InitErrorSetData()
{
foreach (var item in Errores)
{
if(item.Value.Status == true) CorrectArray.Add(item.Value.ID);
else ErrorArray.Add(item.Value.ID);
}
}
public void AddErrorQuestion(int id)
{
if (Errores.ContainsKey(id))
{
TotalCount++;
ErrorArray.Add(id);
}
else
{
Errores.Add(id, new ErrorInfo { ID = id });
}
}
public void AddCorrectQuestion(int id)
{
if (Errores.ContainsKey(id))
{
TotalCount++;
CorrectCount++;
Errores[id].Status = true;
ErrorArray.Remove(id);
CorrectArray.Add(id);
}
}
public void AddErrorQuestion(QuestionData question)
{
if (Errores.ContainsKey(question.Id))
{
TotalCount++;
ErrorArray.Add(question.Id);
}
else
{
Errores.Add(question.Id, new ErrorInfo { ID = question.Id });
}
}
public void AddCorrectQuestion(QuestionData question)
{
if (Errores.ContainsKey(question.Id))
{
TotalCount++;
CorrectCount++;
Errores[question.Id].Status = true;
ErrorArray.Remove(question.Id);
CorrectArray.Add(question.Id);
}
}
}
}

View File

@ -0,0 +1,37 @@
using DryIoc.ImTools;
using StudentManager.Data;
using System;
using System.Collections.Generic;
using System.Linq;
using System.Security.Cryptography.X509Certificates;
using System.Text;
using System.Threading.Tasks;
namespace StudentManager.Common
{
public static class HomeWorkManager
{
public static HomeWork CommonHomeWork { get; set; } = new HomeWork();
public static void Create(StudentInfo student,int lesson, int workNum = 10)
{
HomeWork work = new HomeWork { Lesson = lesson};
foreach(var item in student.ErrorSet.ErrorArray)
{
work.AddHomeWork(item);
}
if (CommonHomeWork.QuestionInfo.Count > 0)
{
work.Append(CommonHomeWork);
}
}
public static void Public()
{
}
}
}

View File

@ -0,0 +1,80 @@
using DryIoc.ImTools;
using System;
using System.Collections.Generic;
using System.Collections.ObjectModel;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
namespace StudentManager.Common
{
public class HomeWork
{
public int Lesson { get; set; } = 0;
public bool Status { get; set; } = false;
public HashSet<ErrorInfo> QuestionInfo { get; set; } = new HashSet<ErrorInfo>();
public void AddHomeWork(ErrorInfo workInfo)
{
QuestionInfo.Add(workInfo);
}
public void AddHomeWork(int id)
{
QuestionInfo.Add(new ErrorInfo { ID = id });
}
public void RemoveHomeWork(ErrorInfo workInfo)
{
QuestionInfo.Remove(workInfo);
}
public void Append(HomeWork homeWork)
{
foreach (var item in homeWork.QuestionInfo)
{
QuestionInfo.Add(item);
}
}
}
public class HomeWorkSet
{
private Dictionary<int, HomeWork> HomeWorks { get; set; } = new Dictionary<int, HomeWork>();
public void AddHomeWork(HomeWork homeWork)
{
HomeWorks.Add(homeWork.Lesson, homeWork);
}
public void RemoveHomeWork(HomeWork homeWork)
{
HomeWorks.Remove(homeWork.Lesson);
}
public HomeWork Get(int cursonId)
{
return HomeWorks[cursonId];
}
public List<HomeWork> GetAll()
{
return HomeWorks.Values.ToList();
}
public ObservableCollection<HomeWork> GetAllByColl()
{
ObservableCollection <HomeWork> works = new ObservableCollection<HomeWork >();
foreach (var item in HomeWorks)
{
works.Add(item.Value);
}
return works;
}
}
}

View File

@ -18,6 +18,6 @@ namespace StudentManager.Data
public int Status { get; set; } = 0; public int Status { get; set; } = 0;
public string TableName { get => "users"; set => throw new NotImplementedException(); } //public string TableName { get => "users"; set => throw new NotImplementedException(); }
} }
} }

View File

@ -8,6 +8,6 @@ namespace StudentManager.Data
{ {
public interface IDataCommon public interface IDataCommon
{ {
public string TableName { get; set; } //public string TableName { get; set; }
} }
} }

View File

@ -34,6 +34,6 @@ namespace StudentManager.Data
public QStatus Status { get; set; } = QStatus.published; public QStatus Status { get; set; } = QStatus.published;
public string TableName { get => "questions"; set => throw new NotImplementedException(); } //public string TableName { get => "questions"; set => throw new NotImplementedException(); }
} }
} }

View File

@ -0,0 +1,63 @@
using Microsoft.VisualBasic;
using System;
using System.Collections.Generic;
using System.Diagnostics;
using System.IO;
using System.Linq;
using System.Text;
using System.Text.Json;
using System.Threading.Tasks;
namespace StudentManager.Data
{
public static class QuestionLib
{
public static string LibPath = "C:\\Users\\zc\\Desktop\\FileLib\\";
public static string FileName = "questionLib.dbqi";
public static Dictionary<int, QuestionData> QuestionDic { get; set; } = new Dictionary<int, QuestionData>();
public static void Load()
{
QuestionDic.Clear();
Debug.Assert(Path.Exists(LibPath));
string file = File.ReadAllText(LibPath + FileName);
QuestionDic = JsonSerializer.Deserialize<Dictionary<int, QuestionData>>(file);
}
public static void Save()
{
File.WriteAllText((LibPath + FileName), JsonSerializer.Serialize(QuestionDic));
}
public static void Test()
{
QuestionDic.Add(1, new QuestionData
{
Id = 1,
Type = "test"
});
}
public static QuestionData Get(int id)
{
if (!QuestionDic.ContainsKey(id)) return null;
return QuestionDic[id];
}
public static void Add(QuestionData question)
{
QuestionDic.Add(question.Id, question);
}
public static void Remove(QuestionData question)
{
QuestionDic.Remove(question.Id);
}
public static void Remove(int id)
{
QuestionDic.Remove(id);
}
}
}

View File

@ -24,6 +24,6 @@ namespace StudentManager.Data
public string TableName { get => "users"; set => throw new NotImplementedException(); } //public string TableName { get => "users"; set => throw new NotImplementedException(); }
} }
} }

View File

@ -0,0 +1,79 @@
using StudentManager.Common;
using System;
using System.Collections.Generic;
using System.Diagnostics;
using System.IO;
using System.Linq;
using System.Text;
using System.Text.Json;
using System.Threading.Tasks;
namespace StudentManager.Data
{
public static class StudentLib
{
public static string LibPath = "C:\\Users\\zc\\Desktop\\FileLib\\";
public static string FileName = "studentLib.dbsi";
public static Dictionary<int, StudentInfo> StudentDic { get; set; } = new Dictionary<int, StudentInfo>();
public static void Add(StudentInfo studentInfo)
{
StudentDic.Add(studentInfo.UID, studentInfo);
}
public static void Load()
{
StudentDic.Clear();
Debug.Assert(Path.Exists(LibPath));
string file = File.ReadAllText(LibPath + FileName);
StudentDic = JsonSerializer.Deserialize<Dictionary<int, StudentInfo>>(file);
}
public static void Save()
{
File.WriteAllText((LibPath + FileName), JsonSerializer.Serialize(StudentDic));
}
public static void Test()
{
StudentDic.Add(1, new StudentInfo
{
UID = 123,
Name = "John Doe",
Gender = "Male",
Contact = "123-456-7890",
Address = "123 Main St",
Grade = 10,
});
}
public static void Remove(StudentInfo studentInfo)
{
StudentDic.Remove(studentInfo.UID);
}
public static void Remove(int id)
{
StudentDic.Remove(id);
}
}
public class StudentInfo
{
public int UID { get; set; } = 1;
public string Name { get; set; } = "Name";
public string Gender { get; set; } = "Gender";
public string Contact { get; set; } = "Contact";
public string Address { get; set; } = "Address";
public int Grade { get; set; } = 1;
public ErrorSet ErrorSet { get; set; } = new ErrorSet();
public HomeWorkSet HomeWorkSet { get; set; } = new HomeWorkSet();
public HomeWork CurentHomeWork { get; set; } = new HomeWork();
}
}

View File

@ -31,7 +31,17 @@
<Grid Grid.Column="1"> <Grid Grid.Column="1">
<StackPanel> <StackPanel>
<TextBlock Text="{Binding SelectedStudent.Name}"/> <TextBlock Text="{Binding SelectedStudent.Name}"/>
<ListBox ItemsSource="{Binding CQDatas}"> <ListBox ItemsSource="{Binding CQDatas}"
SelectionChanged="ListBox_SelectionChanged">
<i:Interaction.Triggers>
<i:EventTrigger EventName="MouseDoubleClick">
<i:InvokeCommandAction
CommandParameter="DetailCheckView"
Command="{Binding DataContext.RegionTo ,RelativeSource={RelativeSource Mode=FindAncestor, AncestorType=ItemsControl}}"/>
</i:EventTrigger>
</i:Interaction.Triggers>
<ListBox.ItemTemplate> <ListBox.ItemTemplate>
<DataTemplate> <DataTemplate>
<StackPanel Orientation="Horizontal"> <StackPanel Orientation="Horizontal">

View File

@ -1,4 +1,5 @@
using System; using StudentManager.Model;
using System;
using System.Collections.Generic; using System.Collections.Generic;
using System.Linq; using System.Linq;
using System.Text; using System.Text;
@ -24,5 +25,14 @@ namespace StudentManager.Editor
{ {
InitializeComponent(); InitializeComponent();
} }
private void ListBox_SelectionChanged(object sender, SelectionChangedEventArgs e)
{
var c = DataContext as Students;
if (c != null)
{
c.SelectedCQData = (Data.CursonQuestionsData)(sender as ListBox).SelectedItem;
}
}
} }
} }

View File

@ -10,6 +10,21 @@
<Grid> <Grid>
<DockPanel LastChildFill="False"> <DockPanel LastChildFill="False">
<ListBox ItemsSource="{Binding CQDatas}"
SelectedItem="{Binding SelectedStudent}">
<i:Interaction.Triggers>
<i:EventTrigger EventName="SelectionChanged">
<i:InvokeCommandAction
Command="{Binding DataContext.SelectedCommand ,RelativeSource={RelativeSource Mode=FindAncestor, AncestorType=ItemsControl}}"/>
</i:EventTrigger>
</i:Interaction.Triggers>
<ListBox.ItemTemplate>
<DataTemplate>
<TextBlock Text="{Binding Lesson}"/>
</DataTemplate>
</ListBox.ItemTemplate>
</ListBox>
<ListBox DockPanel.Dock="Top" ItemsSource="{Binding StudentCQDatas}"> <ListBox DockPanel.Dock="Top" ItemsSource="{Binding StudentCQDatas}">
<ListBox.ItemTemplate> <ListBox.ItemTemplate>
<DataTemplate> <DataTemplate>
@ -20,7 +35,6 @@
</DockPanel> </DockPanel>
</DataTemplate> </DataTemplate>
</ListBox.ItemTemplate> </ListBox.ItemTemplate>
</ListBox> </ListBox>
<Button DockPanel.Dock="Bottom" Content="提交"/> <Button DockPanel.Dock="Bottom" Content="提交"/>
</DockPanel> </DockPanel>

View File

@ -137,6 +137,13 @@ namespace StudentManager.Model
QueryAll(); QueryAll();
StudentLib.Test();
StudentLib.Save();
QuestionLib.Test();
QuestionLib.Save();
} }
private void RegionToDCV() private void RegionToDCV()