/// <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); }
/// <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; }
/// <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); } } }
/// <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); }
/// <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); }
/// <summary> /// 显示一个班级的所有学生的信息 /// </summary> /// <param name="clsobj">班级对象</param> private void DisplayClassStudent(clsClass clsobj) { dataGridView1.Rows.Clear(); foreach (Student pstu in clsobj.Students) { this.AddStudentInDataGridView(pstu); } }
/// <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); }
/// <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)); }
/// <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); }
/// <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); }
/// <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); } }
/// <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); }
/// <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); }
/// <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); }
/// <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); }
/// <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(); } }
/// <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); }
/// <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); }
/// <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); }
/// <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); }
/// <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)); }
/// <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); } } }
/// <summary> /// 删除一个班级对象 /// </summary> /// <param name="pClass">班级对象</param> /// <returns>成功:true;失败:false</returns> internal bool DelCalss(clsClass pClass) { return(Classes.Remove(pClass)); }
/// <summary> /// 增加一个班级 /// </summary> /// <param name="name">班级的名称</param> /// <return>成功:true;失败:false</return> internal bool AddClass(string name) { clsClass p = new clsClass(name); return(AddClass(p)); }
/// <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)); }