コード例 #1
0
        /// <summary>
        /// 删除一个学生
        /// </summary>
        /// <param name="depname">学生所在系的名称</param>
        /// <param name="classname">学生所在班级的名称</param>
        /// <param name="stu">学生对象</param>
        /// <returns>成功:true;失败:false</returns>
        internal bool DelStudent(string depname, string classname, Student stu)
        {
            Department depobj = FindDepartmentByName(depname);

            if (depobj == null)
            {
                return(false);                //没有找到系对象,返回
            }
            clsClass clsobj = depobj.FindClassByName(classname);

            if (clsobj == null)
            {
                return(false);          //没有找到班对象,返回
            }
            if (clsobj.DelStudent(stu)) //删除成功
            {
                EventArgsStudent e = new EventArgsStudent();
                e.depobj = depobj;
                e.clsobj = clsobj;
                e.stuobj = stu;
                e.number = StudentNumber;
                ActOnStudentDel(this, e);
                return(true);
            }
            return(false);
        }
コード例 #2
0
ファイル: MainFrm.cs プロジェクト: EslSuwen/Feat
        /// <summary>
        /// 修改完毕
        /// </summary>
        /// <param name="sender"></param>
        /// <param name="e"></param>
        private void treeView1_AfterLabelEdit(object sender, NodeLabelEditEventArgs e)
        {
            if (e.Node.Text == "全部")
            {
                MessageBox.Show("该节点不能修改");
                return;
            }
            Department depobj = pData.FindDepartmentByName(e.Node.Text);

            if (depobj != null) //修改系的名字
            {
                if (MessageBox.Show("确认修改?", "确认", MessageBoxButtons.YesNo, MessageBoxIcon.Question) == DialogResult.Yes)
                {
                    pData.ModifyDepartment(e.Node.Text, e.Label);
                    e.CancelEdit = false;
                }
            }
            else //修改班级的名字
            {
                clsClass clsobj = pData.FindClassByName(e.Node.Text, out depobj);
                if (MessageBox.Show("确认修改?", "确认", MessageBoxButtons.YesNo, MessageBoxIcon.Question) == DialogResult.Yes)
                {
                    clsobj.Name = e.Label;
                }
                else
                {
                    e.CancelEdit = true;
                }
            }
            //treeView1.LabelEdit = false;
        }
コード例 #3
0
ファイル: MainFrm.cs プロジェクト: EslSuwen/Feat
 /// <summary>
 /// 删除菜单
 /// </summary>
 /// <param name="sender"></param>
 /// <param name="e"></param>
 private void TreeViewMenuDel_Click(object sender, EventArgs e)
 {
     if (TN == null)
     {
         return;
     }
     if (TN.Text == "全部")
     {
         MessageBox.Show("该节点不可删除");
         return;
     }
     if (TN.Parent == null)//删除系节点
     {
         DialogResult result = MessageBox.Show("确认删除" + TN.Text + "?\n\r删除后该系所属的班级和学生会丢失!!",
                                               "警告", MessageBoxButtons.YesNo, MessageBoxIcon.Asterisk);
         if (result == DialogResult.Yes)//确认删除
         {
             treeView1.Nodes.Remove(TN);
             Department dep = pData.FindDepartmentByName(TN.Text);
             pData.DepList.Remove(dep);
         }
     }
     else//删除班级节点
     {
         DialogResult result = MessageBox.Show("确认删除?" + TN.Text + "\n\r删除后该班级的学生信息会丢失!!",
                                               "警告", MessageBoxButtons.YesNo, MessageBoxIcon.Asterisk);
         if (result == DialogResult.Yes)//确认删除
         {
             Department dep = pData.FindDepartmentByName(TN.Parent.Text);
             clsClass   cls = pData.FindClassByName(dep, TN.Text);
             treeView1.Nodes.Remove(TN);
             pData.DelClass(dep, cls);
         }
     }
 }
コード例 #4
0
        /// <summary>
        /// 增加一个学生
        /// </summary>
        /// <param name="depname">学生所在系的名称</param>
        /// <param name="classname">学生所在班级的名称</param>
        /// <param name="stu">学生对象</param>
        /// <returns></returns>
        internal bool AddStudent(string depname, string classname, Student stu)
        {
            Department depobj = FindDepartmentByName(depname);

            if (depobj == null)
            {
                return(false);
            }
            clsClass clsobj = FindClassByName(depobj, classname);

            if (clsobj == null)
            {
                return(false);
            }
            if (clsobj.AddStudent(stu)) //学生增加成功
            {
                EventArgsStudent e = new EventArgsStudent();
                e.clsobj = clsobj; e.depobj = depobj;
                e.stuobj = stu;
                e.number = StudentNumber;
                ActOnStudentAdd(this, e);
                return(true);
            }
            return(false);
        }
コード例 #5
0
        /// <summary>
        /// 在系dep中查找一个班级对象
        /// </summary>
        /// <param name="dep">系的名称</param>
        /// <param name="name">班级名称</param>
        /// <returns>成功:返回班级对象;失败:返回null</returns>
        internal clsClass FindClassByName(Department dep, string name)
        {
            clsClass cls = null;

            cls = dep.FindClassByName(name);
            return(cls);
        }
コード例 #6
0
ファイル: MainFrm.cs プロジェクト: EslSuwen/Feat
 /// <summary>
 /// 显示一个班级的所有学生的信息
 /// </summary>
 /// <param name="clsobj">班级对象</param>
 private void DisplayClassStudent(clsClass clsobj)
 {
     dataGridView1.Rows.Clear();
     foreach (Student pstu in clsobj.Students)
     {
         this.AddStudentInDataGridView(pstu);
     }
 }
コード例 #7
0
        /// <summary>
        /// 删除一个班级对象
        /// </summary>
        /// <param name="name">班级名称</param>
        /// <returns>成功:true;失败:false</returns>
        internal bool DelCalss(string name)
        {
            clsClass pobj = FindClassByName(name);

            if (pobj != null)
            {
                return(DelCalss(pobj));
            }
            return(false);
        }
コード例 #8
0
        /// <summary>
        /// 修改某个班级的名称
        /// </summary>
        /// <param name="OldName">班级旧名</param>
        /// <param name="NewName">班级新名</param>
        /// <returns>成功:true;失败:false</returns>
        internal bool ModifyClass(string OldName, string NewName)
        {
            Department dep    = null;
            clsClass   clsobj = FindClassByName(OldName, out dep);

            if (clsobj == null)
            {
                return(false);
            }
            return(ModifyClass(dep, OldName, NewName));
        }
コード例 #9
0
        /// <summary>
        /// 删除一个班级
        /// </summary>
        /// <param name="classname">班级名称</param>
        /// <param name="dep">输出参数,班级所在的系</param>
        /// <returns>成功:true;失败:false</returns>
        internal bool DelClass(string classname, out Department dep)
        {
            dep = null;
            clsClass cls = FindClassByName(classname, out dep);

            if (cls != null)//找到班级
            {
                return(DelClass(dep, cls));
            }
            return(false);
        }
コード例 #10
0
        /// <summary>
        /// 在某个系中增加一个班级
        /// </summary>
        /// <param name="depname">系的名称</param>
        /// <param name="classname">班级名称</param>
        /// <returns>成功:true;失败:false</returns>
        internal bool AddClass(string depname, string classname)
        {
            Department depobj = FindDepartmentByName(depname);

            if (depobj != null)//找到系对象
            {
                clsClass cls = new clsClass(classname);
                return(AddClass(depobj, cls));
            }
            return(false);
        }
コード例 #11
0
 /// <summary>
 /// 在系中增加一个班级对象
 /// </summary>
 /// <param name="p">班级对象</param>
 /// <return>成功:true;失败:false</return>
 internal bool AddClass(clsClass p)
 {
     if (FindClassByName(p.Name) == null)
     {
         Classes.Add(p);
         return(true);
     }
     else
     {
         return(false);
     }
 }
コード例 #12
0
 /// <summary>
 /// 在某个系中删除一个班级
 /// </summary>
 /// <param name="depobj">系对象</param>
 /// <param name="clsobj">班级对象</param>
 /// <returns>成功:true;失败:false</returns>
 internal bool DelClass(Department depobj, clsClass clsobj)
 {
     if (depobj.DelCalss(clsobj))//删除成功
     {
         EventArgsClass e = new EventArgsClass();
         e.depobj = depobj; e.number = ClassNumber;
         e.clsobj = clsobj;
         ActOnClassDel(this, e);
         return(true);
     }
     return(false);
 }
コード例 #13
0
        /// <summary>
        /// 修改学生信息
        /// </summary>
        /// <param name="OldDepName">修改前所在的系名称</param>
        /// <param name="NewDepName">修改后所在的系名称</param>
        /// <param name="OldClassName">修改前所在的班级名称</param>
        /// <param name="NewClassName">修改后所在的班级名称</param>
        /// <param name="StudentID">学生的ID</param>
        /// <param name="NewStudent">新的学生对象</param>
        /// <returns>成功:true;失败:false</returns>
        internal bool ModifyStudent(string OldDepName, string NewDepName,
                                    string OldClassName, string NewClassName,
                                    string StudentID, Student NewStudent)
        {
            Department olddep;
            clsClass   oldclass;
            Student    OldStudent = FindStudentByID(StudentID, out olddep, out oldclass);
            Department newdep     = FindDepartmentByName(NewDepName);
            clsClass   newclass   = FindClassByName(newdep, NewClassName);//原来的学生对象

            //找不到相应的对象,则返回ture;
            if (olddep == null || newdep == null || oldclass == null || newclass == null || OldStudent == null)
            {
                return(false);
            }
            if (olddep == newdep)
            {
                if (oldclass == newclass) //学生所在的系和班级没有改动
                {
                    ChangeStudentInfo(OldStudent, NewStudent);
                    EventArgsStudent e = new EventArgsStudent();
                    e.OldDepName = OldDepName; e.OldClassName = OldClassName;
                    e.NewDepName = NewDepName; e.NewClassName = NewClassName;
                    e.stuobj     = OldStudent; e.NewStuobj = NewStudent;
                    e.number     = StudentNumber;
                    ActOnStudentModify(this, e);
                }
                else //系没有改动,班级发生改动
                {
                    oldclass.DelStudent(StudentID); //在原来班级中删除学生对象
                    newclass.AddStudent(NewStudent); //在新班级中添加学生
                    EventArgsStudent e = new EventArgsStudent();
                    e.OldDepName = OldDepName; e.OldClassName = OldClassName;
                    e.NewDepName = NewDepName; e.NewClassName = NewClassName;
                    e.stuobj     = OldStudent; e.NewStuobj = NewStudent;
                    e.number     = StudentNumber;
                    ActOnStudentModify(this, e);
                }
            }
            else//系发生改变
            {
                DelStudent(OldDepName, OldClassName, StudentID);//在原来的系原来的班级中删除学生对象
                AddStudent(NewDepName, NewClassName, NewStudent);//在新的系新的班级中增加学生
                EventArgsStudent e = new EventArgsStudent();
                e.OldDepName = OldDepName; e.OldClassName = OldClassName;
                e.NewDepName = NewDepName; e.NewClassName = NewClassName;
                e.stuobj     = OldStudent; e.NewStuobj = NewStudent;
                e.number     = StudentNumber;
                ActOnStudentModify(this, e);
            }
            return(true);
        }
コード例 #14
0
 /// <summary>
 /// 在系中增加一个班级
 /// </summary>
 /// <param name="dep">系的对象</param>
 /// <param name="cls">班级对象</param>
 /// <returns>成功:true;失败:false</returns>
 internal bool AddClass(Department dep, clsClass cls)
 {
     if (dep.AddClass(cls))//成功
     {
         EventArgsClass e = new EventArgsClass();
         e.depobj = dep;
         e.clsobj = cls;
         e.number = this.ClassNumber;
         ActOnClassAdd(this, e);
         return(true);
     }
     return(false);
 }
コード例 #15
0
        /// <summary>
        /// 根据班级的名称查找班级对象
        /// </summary>
        /// <param name="name">班级的名称</param>
        /// <returns>找到的班级对象,若没有找到则为null</returns>
        internal clsClass FindClassByName(string name)
        {
            clsClass pobj = null;

            foreach (clsClass p in Classes)
            {
                if (p.Name == name)
                {
                    pobj = p;
                    break;
                }
            }
            return(pobj);
        }
コード例 #16
0
ファイル: MainFrm.cs プロジェクト: EslSuwen/Feat
        /// <summary>
        /// 修改学生信息,ID不能修改
        /// </summary>
        /// <param name="sender"></param>
        /// <param name="e"></param>
        private void DataGridViewMenuModify_Click(object sender, EventArgs e)
        {
            DataGridViewRow row    = dataGridView1.Rows[rowindex];
            string          ID     = row.Cells["stuID"].Value.ToString();
            Department      depobj = null;
            clsClass        clsobj = null;
            Student         stuobj = pData.FindStudentByID(ID, out depobj, out clsobj);

            if (stuobj != null)
            {
                frmModifyStudent frm = new frmModifyStudent(pData, depobj.Name, clsobj.Name, stuobj);
                frm.ShowDialog();
            }
        }
コード例 #17
0
        /// <summary>
        /// 在所有的系中查找班级
        /// </summary>
        /// <param name="name">班级名称</param>
        /// <param name="dep">班级所在的系对象,输出参数</param>
        /// <returns>成功:班级对象;不成功:false</returns>
        internal clsClass FindClassByName(string name, out Department dep)
        {
            clsClass cls = null;

            foreach (Department p in DepList)
            {
                cls = FindClassByName(p, name);
                if (cls != null)//找到
                {
                    dep = p;
                    return(cls);
                }
            }
            dep = null;
            return(cls);
        }
コード例 #18
0
        /// <summary>
        /// 根据学生的ID查找学生对象
        /// </summary>
        /// <param name="ID">学生的ID</param>
        /// <param name="depobj">学生所在的系,输出参数</param>
        /// <param name="clsobj">学生所在的班级,输出参数</param>
        /// <returns>成功:true;失败:false</returns>
        internal Student FindStudentByID(string ID, out Department depobj, out clsClass clsobj)
        {
            depobj = null; clsobj = null;
            Student pstu = null;

            foreach (Department pdep in DepList)
            {
                foreach (clsClass pcls in pdep.Classes)
                {
                    if ((pstu = pcls.FindStudentByID(ID)) != null)//找到
                    {
                        depobj = pdep; clsobj = pcls;
                        return(pstu);
                    }
                }
            }
            return(pstu);
        }
コード例 #19
0
        /// <summary>
        /// 修改系中某个班级的名称
        /// </summary>
        /// <param name="dep">班级所在的系</param>
        /// <param name="OldName">班级的旧名</param>
        /// <param name="NewName">班级的新名</param>
        /// <returns>成功:Ture;失败:false</returns>
        internal bool ModifyClass(Department dep, string OldName, string NewName)
        {
            clsClass clsobj = FindClassByName(dep, OldName);

            if (clsobj == null) //如果没有找到班级
            {
                return(false);
            }
            clsobj.Name = NewName;
            EventArgsClass e = new EventArgsClass();

            e.depobj       = dep;
            e.clsobj       = clsobj;
            e.OldClassName = OldName;
            e.NewClassName = NewName;
            e.number       = ClassNumber;
            ActOnClassModify(this, e);
            return(true);
        }
コード例 #20
0
        /// <summary>
        /// 删除一个学生
        /// </summary>
        /// <param name="studentname">学生ID</param>
        /// <param name="depobj">学生所在系,输出参数</param>
        /// <param name="clsobj">学生所在的班级,输出参数</param>
        /// <returns>成功:true;失败:false</returns>
        internal bool DelStudent(string studentID, out Department depobj, out clsClass clsobj)
        {
            depobj = null; clsobj = null;
            Student stu = null;

            foreach (Department pdep in DepList)
            {
                foreach (clsClass pcls in pdep.Classes)
                {
                    stu = pcls.FindStudentByID(studentID);
                    if (stu != null) //找到学生对象
                    {
                        depobj = pdep; clsobj = pcls;
                        return(DelStudent(depobj.Name, clsobj.Name, stu));
                    }
                }
            }
            return(false);
        }
コード例 #21
0
        /// <summary>
        /// 删除一个学生
        /// </summary>
        /// <param name="depname">学生所在系的名称</param>
        /// <param name="classname">学生所在班级的名称</param>
        /// <param name="studentname">学生的姓名</param>
        /// <returns>成功:true;失败:false</returns>
        internal bool DelStudent(string depname, string classname, string studentID)
        {
            Department depobj = FindDepartmentByName(depname);

            if (depobj == null)
            {
                return(false);                //没有找到系对象,返回
            }
            clsClass clsobj = depobj.FindClassByName(classname);

            if (clsobj == null)
            {
                return(false);                //没有找到班对象,返回
            }
            Student stuobj = clsobj.FindStudentByID(studentID);

            if (stuobj == null)
            {
                return(false);
            }
            return(DelStudent(depname, classname, stuobj));
        }
コード例 #22
0
ファイル: MainFrm.cs プロジェクト: EslSuwen/Feat
        /// <summary>
        /// 用户更改节点
        /// </summary>
        /// <param name="sender"></param>
        /// <param name="e"></param>
        private void treeView1_AfterSelect(object sender, TreeViewEventArgs e)
        {
            string strNodeText = e.Node.Text;

            if (strNodeText == "全部")
            {
                this.DisplayAllStudent();
            }
            else
            {
                Department depobj = pData.FindDepartmentByName(strNodeText);
                if (depobj != null)
                {
                    this.DisplayDepartmentStudent(depobj);
                    return;
                }
                else
                {
                    clsClass clsobj = pData.FindClassByName(strNodeText, out depobj);
                    this.DisplayClassStudent(clsobj);
                }
            }
        }
コード例 #23
0
 /// <summary>
 /// 删除一个班级对象
 /// </summary>
 /// <param name="pClass">班级对象</param>
 /// <returns>成功:true;失败:false</returns>
 internal bool DelCalss(clsClass pClass)
 {
     return(Classes.Remove(pClass));
 }
コード例 #24
0
        /// <summary>
        /// 增加一个班级
        /// </summary>
        /// <param name="name">班级的名称</param>
        /// <return>成功:true;失败:false</return>
        internal bool AddClass(string name)
        {
            clsClass p = new clsClass(name);

            return(AddClass(p));
        }
コード例 #25
0
 /// <summary>
 /// 根据学生的ID查找学生对象
 /// </summary>
 /// <param name="cls">学生所在的班级</param>
 /// <param name="ID">学生的ID</param>
 /// <returns>成功:学生对象;失败:null</returns>
 internal Student FindStudentByID(clsClass cls, string ID)
 {
     return(cls.FindStudentByID(ID));
 }