📄 mapuserinterface.cs
字号:
using System;
using System.Collections.Generic;
using System.Text;
namespace 课程安排
{
public class MapUserInterface
{
private static CourseTableControl courseTableControl = null; //始终保存当前课程表的引用(程序中有可能在多个窗体中使用了多个控件,该值始终指向当前窗体中的课程表控件)
private static CourseTableBodyControl courseTableBodyControl = null;
#region 课程表转换
public static void SetCourseTable(string gradeName, string clsName)
{
courseTableControl.GradeName = gradeName;
courseTableControl.ClsName = clsName;
Grade grade = null;
for (int i = 0; i < School.Grades.Count; i++)
{
if (School.Grades[i].GradeName.ToLower() == gradeName.ToLower())
{
grade = School.Grades[i];
}
}
// 设置侯选课程及教师
List<CourseTableBodyControl.BodySubjectItem> subjects = new List<CourseTableBodyControl.BodySubjectItem>();
for (int i = 0; i < grade.Subjects.Count; i++)
{
Subject subject = grade.Subjects[i];
CourseTableBodyControl.BodySubjectItem bsi = new CourseTableBodyControl.BodySubjectItem();
bsi.SubjectName = subject.SubjectName;
for (int j = 0; j < subject.Teachers.Count; j++)
{
bsi.Teachers.Add(subject.Teachers[j].TeacherName);
}
subjects.Add(bsi);
}
courseTableBodyControl.Subjects = subjects;
// 设置课程时间及侯选教师
List<CourseTableBodyControl.BodyTimeItem> courseTimes = new List<CourseTableBodyControl.BodyTimeItem>();
for (int week = 1; week <= 6; week++)
{
for (int courseOrder = 1; courseOrder <= 7; courseOrder++)
{
CourseTableBodyControl.BodyTimeItem bti = new CourseTableBodyControl.BodyTimeItem();
bti.Week = week;
bti.CourseOrder = courseOrder;
for (int i = 0; i < grade.Teachers.Count; i++)
{
Teacher teacher = grade.Teachers[i];
bool hasTime = false;
for (int j = 0; j < teacher.CourseTable.Courses.Count; j++)
{
Course course = teacher.CourseTable.Courses[j];
if (week.ToString().ToLower() == Utility.WeekToString(course.CourseTime.Week).ToLower() && courseOrder.ToString().ToLower() == course.CourseTime.CourseNum.ToString().ToLower())
{
// 该老师在该时间已经安排了课程
hasTime = true;
}
}
if (!hasTime)
{
bti.Teachers.Add(teacher.TeacherName);
}
}
courseTimes.Add(bti);
}
}
courseTableBodyControl.Times = courseTimes;
Class cls = null;
for (int i = 0; i < School.Classes.Count; i++)
{
if (School.Classes[i].ClassName.ToLower() == clsName.ToLower())
{
cls = School.Classes[i];
}
}
// 载入已经编排的课程
List<CourseTableBodyControl.BodyCourseItem> courses = new List<CourseTableBodyControl.BodyCourseItem>();
for (int i = 0; i < cls.CourseTable.Courses.Count; i++)
{
CourseTableBodyControl.BodyCourseItem bci = new CourseTableBodyControl.BodyCourseItem();
Course course = cls.CourseTable.Courses[i];
bci.Teacher = course.Teacher.TeacherName;
bci.Subject = course.Subject.SubjectName;
bci.Week = Utility.WeekToInt(course.CourseTime.Week);
bci.CourseOrder = course.CourseTime.CourseNum;
courses.Add(bci);
}
courseTableBodyControl.Courses = courses;
}
public static void GetCourseTable()
{
string clsName = courseTableControl.ClsName;
Class cls = null;
for (int i = 0; i < School.Classes.Count; i++)
{
if (School.Classes[i].ClassName.ToLower() == clsName.ToLower())
{
cls = School.Classes[i];
break;
}
}
if (cls != null)
{
// 获取年级对象
Grade grade = null;
for (int i=0; i < School.Grades.Count; i ++)
{
if (School.Grades[i].GradeName.ToLower() == courseTableControl.GradeName.ToLower())
{
grade = School.Grades[i];
break;
}
}
for (int i = 0; i < courseTableBodyControl.Courses.Count; i++)
{
Course course = cls.CourseTable.GetCourse(Utility.IntToWeek(courseTableBodyControl.Courses[i].Week), courseTableBodyControl.Courses[i].CourseOrder);
// 没有编排课程
if (course == null)
{
course = new Course();
for (int j = 0; j < grade.Classes.Count; i++)
{
if (grade.Classes[j].ClassName == courseTableControl.ClsName)
{
course.Class = grade.Classes[j];
break;
}
}
CourseTime ct = new CourseTime(courseTableBodyControl.Courses[i].Week, courseTableBodyControl.Courses[i].CourseOrder);
course.CourseTime = ct;
School.AddCourse(course);
}
for (int j = 0; j < grade.Subjects.Count; j++)
{
if (grade.Subjects[j].SubjectName == courseTableBodyControl.Courses[i].Subject)
{
course.Subject = grade.Subjects[j];
break;
}
}
for (int j = 0; j < grade.Teachers.Count; i++)
{
if (grade.Teachers[j].TeacherName == courseTableBodyControl.Courses[i].Teacher)
{
course.Teacher = grade.Teachers[j];
}
}
}
}
}
#endregion
}
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -