⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 mainmodule.cs

📁 实现课程表编排和打印功能,通过在候选列表中选择课程和教师(没有被排课且该教师教授所选择的课程)来完成排课,代码约8000行
💻 CS
📖 第 1 页 / 共 5 页
字号:
using System;
using System.Collections.Generic;
using System.Text;
using System.Data;

namespace 课程安排
{
    // 每一节课的时间
    public class CourseTime
    {
        public override bool Equals(object obj)
        {
            //return base.Equals(obj);
            bool b = false;
            if (obj is CourseTime)
            {
                if (this.courseNum == (obj as CourseTime).courseNum && this.week == (obj as CourseTime).week)
                    b = true;
            }
            return b;
        }

        // 每周上课天数
        private static int weekNum = 6;

        public static int WeekNum
        {
            get { return CourseTime.weekNum; }
            set 
            { 
                CourseTime.weekNum = value; 
            }
        }
        // 每天上课节数
        private static int dateCourseNum = 7;

        public static int DateCourseNum
        {
            get { return CourseTime.dateCourseNum; }
            set { CourseTime.dateCourseNum = value; }
        }
        // 记录是星期几
        private Week week;

        public Week Week
        {
            get { return week; }
            set { week = value; }
        }

        // 记录的第几节课程
        private int courseNum;

        public int CourseNum
        {
            get { return courseNum; }
            set { courseNum = value; }
        }

        public CourseTime()
        {

        }

        public CourseTime(int Week, int CourseNum)
        {
            this.week = Utility.IntToWeek(Week);
            this.courseNum = CourseNum;
        }

        ~CourseTime()
        {
            
        }

        //public bool IsEmpty(Week week, int courseNum)
        //{
        //    return false;
        //}

        public void Dispose()
        {
            
        }
    }

    // 每一节课程
    public class Course
    {
        public override bool Equals(object obj)
        {
            //return base.Equals(obj);
            bool b = false;
            if (obj is Course)
            {
                bool temp = true;
                if (!this.cls.Equals((obj as Course).cls))
                    temp = false;
                if (!this.subject.Equals((obj as Course).subject))
                    temp = false;
                if (!this.teacher.Equals((obj as Course).teacher))
                    temp = false;
                if (!this.courseTime.Equals((obj as Course).courseTime))
                    temp = false;
                b = temp;
            }
            return b;
        }

        //  该课程所属于的科目
        private Subject subject;

        public Subject Subject
        {
            get { return subject; }
            set { subject = value; }
        }
        //  每节课的上课时间
        private CourseTime courseTime;

        public CourseTime CourseTime
        {
            get { return courseTime; }
            set { courseTime = value; }
        }
        //  每节课的上课教师
        private Teacher teacher;

        public Teacher Teacher
        {
            get { return teacher; }
            set { teacher = value; }
        }
        //  每节课的学习班级
        private Class cls;

        public Class Class
        {
            get { return cls; }
            set { cls = value; }
        }

        public void Dispose()
        {
            
        }

        public Course()
        {
            
        }

        ~Course()
        {
            
        }
    }

    // 课程表
    public class CourseTable
    {
        // 课程集合
        private IList<Course> courses = null;

        public IList<Course> Courses
        {
            get { return courses; }
            set { courses = value; }
        }

        private Class cls = null;

        public Class Class
        {
            get { return cls; }
            set { cls = value; }
        }

        private Teacher teacher = null;

        public Teacher Teacher
        {
            get { return teacher; }
            set { teacher = value; }
        }

        public CourseTable()
        {
            
        }

        ~CourseTable()
        {
            
        }

        public void AddCourse(Course Course)
        {
            if (this.courses == null)
                this.courses = new List<Course>();
            if (!this.courses.Contains(Course)) 
                this.courses.Add(Course);
        }

        public void RemoveCourse(Course Course)
        {
            if (this.courses != null)
            {
                this.courses.Remove(Course);
            }   
        }

        public void RemoveAllCourse()
        {
            if (this.courses != null)
                this.courses.Clear();
        }

        public bool HasCourse(Course Course)
        {
            bool b = false;
            if (this.courses != null)
            {
                b = this.courses.Contains(Course);
            }
            return b;
        }

        public Course GetCourse(CourseTime CourseTime)
        {
            Course course = null;
            if (this.courses != null)
            {
                for (int i = 0; i < this.courses.Count; i++)
                {
                    if (this.courses[i].CourseTime.Week == CourseTime.Week && this.courses[i].CourseTime.CourseNum == CourseTime.CourseNum)
                    {
                        course = this.courses[i];
                        break;
                    }
                }
            }
            return course;
        }

        public Course GetCourse(Week week, int courseOrder)
        {
            Course course = null;
            if (this.courses != null)
            {
                for (int i = 0; i < this.courses.Count; i++)
                {
                    if (this.courses[i].CourseTime.Week == week && this.courses[i].CourseTime.CourseNum == courseOrder)
                    {
                        course = this.courses[i];
                        break;
                    }
                }
            }
            return course;
        }

        public void Dispose()
        {
            
        }
    }


    public class Class
    {
        public override bool Equals(object obj)
        {
            //return base.Equals(obj);
            bool b = false;
            if (obj is Class)
            {
                if (this.className == (obj as Class).className && this.classStartTime == (obj as Class).classStartTime)
                    b = true;
            }
            return b;
        }

        private string className;

        public string ClassName
        {
            get { return className; }
            set { className = value; }
        }
        private CourseTable courseTable;

        public CourseTable CourseTable
        {
            get { return courseTable; }
            set { courseTable = value; }
        }
        private Grade grade;

        public Grade Grade
        {
            get { return grade; }
            set { grade = value; }
        }

        // 获取教授该班级的所有老师
        public IList<Teacher> GetTeachers()
        {
            List<Teacher> teachers = new List<Teacher>();
            if (this.courseTable != null)
            {
                if (this.courseTable.Courses != null)
                {
                    for (int i = 0; i < this.courseTable.Courses.Count; i++)
                    {
                        Teacher teacher = this.courseTable.Courses[i].Teacher;
                        if (!teachers.Contains(teacher))
                            teachers.Add(teacher);
                    }
                }
            }
            return teachers;
        }

        public IList<Subject> GetSubjects()
        {
            List<Subject> subjects = new List<Subject>();
            if (this.courseTable != null)
            {
                if (this.courseTable.Courses != null)
                {
                    for (int i = 0; i < this.courseTable.Courses.Count; i++)
                    {
                        Subject subject = this.courseTable.Courses[i].Subject;
                        if (!subjects.Contains(subject))
                            subjects.Add(subject);
                    }
                }
            }
            return subjects;
        }

        public IList<Course> GetCoursesBySubject(string SubjectName)
        {
            List<Course> courses = new List<Course>();
            if (this.courseTable != null)
            {
                if (this.courseTable.Courses != null)
                {
                    for (int i = 0; i < this.courseTable.Courses.Count; i++)
                    {
                        if (this.courseTable.Courses[i].Subject.SubjectName == SubjectName)
                        {
                            courses.Add(this.courseTable.Courses[i]);
                        }
                    }
                }
            }
            return courses;
        }

        public IList<Course> GetCoursesByTeacher(string TeacherName)
        {
            List<Course> courses = new List<Course>();
            if (this.courseTable != null)
            {
                if (this.courseTable.Courses != null)
                {
                    for (int i = 0; i < this.courseTable.Courses.Count; i++)
                    {
                        if (this.courseTable.Courses[i].Teacher.TeacherName == TeacherName)
                        {
                            courses.Add(this.courseTable.Courses[i]);
                        }
                    }
                }
            }
            return courses;
        }

        public IList<Course> GetCourses(Subject Subject)
        {
            List<Course> courses = new List<Course>();
            if (this.courseTable != null)
            {
                if (this.courseTable.Courses != null)
                {
                    for (int i = 0; i < this.courseTable.Courses.Count; i++)
                    {
                        if (this.courseTable.Courses[i].Subject.SubjectName == Subject.SubjectName)
                        {
                            courses.Add(this.courseTable.Courses[i]);
                        }
                    }
                }
            }
            return courses;
        }

        public IList<Course> GetCourses(Teacher Teacher)
        {
            List<Course> courses = new List<Course>();
            if (this.courseTable != null)
            {
                if (this.courseTable.Courses != null)

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -