问题描述
你好,我把你的排课系统改成连接数据库并且符合现在我们学校课表的,但是Paike.cs里还有些看不明白的,Assign(ClassList[cc].XuLie,next);其中的next怎么和班级号cc对应上的呢,程序里没看出来,还有next只看到赋了初始值,后面都没有再赋值了,怎么会自己就有值了呢,请指教
解决方案
解决方案二:
usingSystem;usingSystem.Data;namespaceSchoolOA{///<summary>///排课类///Author:松鼠///Email:416840981@qq.com///</summary>publicclassCPaike{DataTableCourseTable;publicCPaike(){}#region获取排课结果///<summary>///获取排课结果///</summary>///<returns></returns>DataTableGetData(){this.InitCourseTable();this.InitCourseClass(8);for(inti=0;i<8;++i){this.SortWeeksCourses(i);}returnthis.CourseTable;}#endregion#region排星期的课///<summary>///排星期的课///</summary>///<paramname="ci">班级索引</param>voidSortWeeksCourses(intci){//所有星期for(inti=0;i<5;++i){this.SortDayCourses(ci,i);}}#endregion#region排当前天的课///<summary>///排当前天的课///</summary>///<paramname="ci">班级索引</param>///<paramname="wi">星期</param>voidSortDayCourses(intci,intwi){//所有节数for(inti=0;i<8;++i){this.SortFestivalCourses(wi,ci,i);}}#endregion#region排每一节课///<summary>///排每一节课///说明:共有八节课///</summary>///<paramname="wi">星期</param>///<paramname="ci">班级索引</param>///<paramname="fi">节数</param>voidSortFestivalCourses(intwi,intci,intfi){boolinsert=false;while(!insert){stringcn=this.GetCoursesName();//同一天同一班级课程未超过范围if(!this.MoreThanDayClassCourseScope(wi,ci,cn)){//同一天所有教师的课程未超过范围if(!this.MoreThanDayCourseScope(fi,wi,cn)){this.CourseTable.Rows[ci][fi+wi*8]=cn;insert=true;}}}}#endregion#region课程名称///<summary>///课程名称///</summary>string[]CourseName=newstring[]{"语文","数学","英语","音乐","美术","品德","体育"};#endregion#region获取课程名///<summary>///获取课程名///</summary>stringGetCoursesName(){Randomrm=newRandom();returnCourseName[rm.Next(CourseName.Length)];}#endregion#region是否超过同一天课程范围///<summary>///是否超过同一天课程范围///</summary>///<paramname="fi">节数</param>///<paramname="wi">星期</param>///<paramname="cn">课程名称</param>///<returns></returns>boolMoreThanDayCourseScope(intfi,intwi,stringcn){intc1=this.GetClassCount(cn);//课程总数intc2=this.GetSameDayCourseCount(fi,wi,cn);//相同课程总数returnc2<c1?false:true;}#endregion#region获取同一天相同总数课程///<summary>///获取同一天相同总数课程///</summary>///<paramname="fi">节数</param>///<paramname="wi">星期</param>///<paramname="cn">课程名称</param>///<returns></returns>intGetSameDayCourseCount(intfi,intwi,stringcn){inti=0;intl=this.CourseTable.Rows.Count;intcount=0;while(i<l){if(this.CourseTable.Rows[i++][wi*8+fi].ToString().Equals(cn)){count++;}}returncount;}#endregion#region获取每门课程总数///<summary>///获取每门课程总数///</summary>///<paramname="cn">课程名称</param>///<returns></returns>intGetClassCount(stringcn){return3;}#endregion#region是否超过同一天同一班级课程范围///<summary>///是否超过同一天同一班级课程范围///</summary>///<paramname="wi">星期</param>///<paramname="ci">班级索引</param>///<paramname="cn">课程名称</param>///<returns></returns>boolMoreThanDayClassCourseScope(intwi,intci,stringcn){intc1=this.GetSameDayClassCoursesCount(wi,ci,cn);intc2=this.GetClassCourseCount(cn);returnc1<c2?false:true;}#endregion#region获取同一天,同一班级相同课程总数///<summary>///获取同一天,同一班级相同课程总数///</summary>///<paramname="wi">星期</param>///<paramname="ci">班级索引</param>///<paramname="cn">课程名称</param>intGetSameDayClassCoursesCount(intwi,intci,stringcn){intcount=0;//共有八节课for(inti=0;i<8;++i){if(this.CourseTable.Rows[ci][wi*8+i].ToString().Equals(cn)){count++;}}returncount;}#endregion#region获取班级课程总数///<summary>///获取班级课程总数///</summary>///<returns></returns>intGetClassCourseCount(stringcn){return2;}#endregion#region初始化课程表///<summary>///初始化课程表///</summary>voidInitCourseTable(){this.CourseTable=newDataTable();//五天for(inti=0;i<5;i++){this.InitTableColumn(i);}this.InitCourseClass(8);}#endregion#region初始化课表节数///<summary>///初始化课表节数///</summary>///<paramname="wi">星期</param>voidInitTableColumn(intwi){this.CourseTable.Columns.Add(string.Format("{0}一",wi));this.CourseTable.Columns.Add(string.Format("{0}二",wi));this.CourseTable.Columns.Add(string.Format("{0}三",wi));this.CourseTable.Columns.Add(string.Format("{0}四",wi));this.CourseTable.Columns.Add(string.Format("{0}五",wi));this.CourseTable.Columns.Add(string.Format("{0}六",wi));this.CourseTable.Columns.Add(string.Format("{0}七",wi));this.CourseTable.Columns.Add(string.Format("{0}八",wi));}#endregion#region初始化班级数///<summary>///初始化班级数///</summary>///<paramname="tb"></param>///<paramname="l"></param>voidInitCourseClass(intl){inti=0;while(i<l){this.CourseTable.Rows.Add(this.CourseTable.NewRow());i++;}}#endregion}}
解决方案三:
请问一下songsu,你这个代码好像没结束呢,而且主程序是怎么样调用那些来实现的呢,我下了一个排课系统,进行了修改,但是他paike.cs里的next没看懂呢
解决方案四:
过几天再发调试实例给你。