?? form1.cs
字號:
private void menuItem21_Click(object sender, System.EventArgs e)
{
this.panel2.Controls.Clear();
picture c = new picture();
this.panel2.Controls.Add(c);
this.panel1.Controls.Clear();
f = new fStudyClass();
f.SCallMessage += new EventHandler(f_SCallMessage);
f.SCallMessageB +=new EventHandler(f_SCallMessageB);
this.panel1.Controls.Add(f);
}
private void f_SCallMessageB(object sender,System.EventArgs e)
{
this.panel2.Controls.Clear();
displayTable dis = new displayTable(f.getStudyClassNo,"studyClass");
this.panel2.Controls.Add(dis);
}
private void f_SCallMessage(object sender,System.EventArgs e)
{
this.panel2.Controls.Clear();
picture c = new picture();
this.panel2.Controls.Add(c);
this.panel1.Controls.Clear();
if (st == null)
st = new fStart();
st.startCallMessageB += new EventHandler(st_startCallMessageB);
this.panel1.Controls.Add(st);
}
private void menuItem20_Click(object sender, System.EventArgs e)
{
this.panel2.Controls.Clear();
picture c = new picture();
this.panel2.Controls.Add(c);
this.panel1.Controls.Clear();
d = new fTeacher();
d.TCallMessage +=new EventHandler(d_TCallMessage);
d.TCallMessageL +=new EventHandler(d_TCallMessageL);
d.NoDisplayL += new EventHandler(NoDisplay);
this.panel1.Controls.Add(d);
}
private void NoDisplay(object sender, System.EventArgs e)
{
this.panel2.Controls.Clear();
picture c = new picture();
this.panel2.Controls.Add(c);
}
private void d_TCallMessageL(object sender,System.EventArgs e)
{
this.panel2.Controls.Clear();
displayTable dis = new displayTable(d.getTeacherNo,"teacher");
this.panel2.Controls.Add(dis);
}
private void d_TCallMessage(object sender,System.EventArgs e)
{
this.panel2.Controls.Clear();
picture c = new picture();
this.panel2.Controls.Add(c);
this.panel1.Controls.Clear();
//st = null;//change
if (st == null)
st = new fStart();
st.startCallMessageL +=new EventHandler(st_startCallMessageL);
this.panel1.Controls.Add(st);
}
private void menuItem14_Click(object sender, System.EventArgs e)
{
this.Dispose();
}
private void menuItem9_Click(object sender, System.EventArgs e)
{
this.panel2.Controls.Clear();
deleteInfo del = new deleteInfo();
this.panel2.Controls.Add(del);
}
private void menuItem17_Click(object sender, System.EventArgs e)
{
staticClass.clearPk();
Connection c1 = new Connection();
//staticClass Static = new staticClass();
SqlConnection conn = new SqlConnection(c1.getConnectionString);
conn.Open();
course c = null;
bool isHaveCourse = false;
//int countCourse = 0;//不同課程數
int countC = 0;//下午為空閑的天數
ArrayList Course = new ArrayList();
checkClass ch = new checkClass();
string strsql1 = "select * from course";
SqlCommand cmd1 = new SqlCommand(strsql1,conn);
SqlDataReader dr1 = cmd1.ExecuteReader();
while (dr1.Read())
{
c = new course();
c.CourseNo = Convert.ToString(dr1["CourseNo"]);
c.TeacherNo = Convert.ToString(dr1["TeacherNo"]);
c.WeekCent = Convert.ToInt32(dr1["weekCent"]);
c.StudentNum = Convert.ToInt32(dr1["studentNum"]);
c.StudyClassNo = Convert.ToString(dr1["studyClassNo"]);
c.CourseName = Convert.ToString(dr1["courseName"]);
Course.Add(c);
isHaveCourse = true;
c = null;
}
dr1.Close();
if (!isHaveCourse)
{
MessageBox.Show("不存在要排課的課程,請錄入課程!");
this.panel2.Controls.Clear();
addCourse ac = new addCourse();
this.panel2.Controls.Add(ac);
return;
}
ch.addClass();
//countCourse = staticClass.countCourse();
ArrayList[,] time = new ArrayList[3,5];
//ch.addClass();
//int countC = 0;
for (int i = 0; i < 3;i++)
{
for (int j = 0;j < 5;j++)
{
time[i,j] = null;
}
}
foreach (course co in Course)
{
int cent = co.WeekCent;
bool Check;
int t = 0;//記錄是否是第一次上課
int dayj = 0;//第一次上課是星期幾
string temp = "";
int circle = 0;
while (cent != 0)
{
if (circle > 1)
{
MessageBox.Show("需重新安排教學計劃!");
return;
}
if (circle==1&&co.ClassTime==null)
{
MessageBox.Show("需重新安排教學計劃!");
return;
}
circle++;
Check = true;
countC = 0;
if (cent == 2||cent == 4|| cent ==5)
{
for (int i = 0;i < 2 && Check;i++)
for (int j = 0;j <5;j++)
{
if (t == 0)
{
if (time[i,j] == null)
{
time[i,j] = new ArrayList();
co.ClassTime = j.ToString() + i.ToString();
time[i,j].Add(co);
while (ch.chooseClass(co) == 0)
{
MessageBox.Show("課程號為"+ co.CourseNo + "沒有適合的教室,請提供合理的教室");
this.panel2.Controls.Clear();
addClass ad = new addClass();
this.panel2.Controls.Add(ad);
return;
}
t ++;//change
dayj = j;
cent = cent - 2;
Check = false;
break;
}
if (!staticClass.isAllNull(time,2,5,0)&&time[i,j] != null)
{
if (staticClass.isOk(co,time[i,j]))
{
temp= j.ToString() + i.ToString();
if (ch.chooseClass(co,Course,temp) == 0)
{
continue;
}
time[i,j].Add(co);
temp = "";
t ++;//change
dayj = j;
cent = cent - 2;
Check = false;
break;
}
}
if (!staticClass.isAllNull(time,2,5,0)&&time[i,j] != null)
{
if (staticClass.isOk(co,time[i,j]))
{
temp = j.ToString() + i.ToString();
if (ch.chooseClass(co,Course,temp) == 0)
{
continue;
}
temp = "";
time[i,j].Add(co);
t ++;//change
dayj = j;
cent = cent - 2;
Check = false;
break;
}
}
}//if t== 0
if (t == 1&&Check)
{
if (System.Math.Abs(j-dayj) >= 2)
{
if (time[i,j] == null)
{
time[i,j] = new ArrayList();
co.ClassTime += j.ToString() + i.ToString();
time[i,j].Add(co);
while (ch.chooseClass(co) == 0)
{
MessageBox.Show("課程號為{0}沒有適合的教室,請提供合理的教室",co.CourseNo);
this.panel2.Controls.Clear();
addClass ad = new addClass();
this.panel2.Controls.Add(ad);
return;
}
t++;//change
dayj = j;
cent = cent - 2;
Check = false;
break;
}
if (!staticClass.isAllNull(time,2,5,0)&&time[i,j] != null)
{
if (staticClass.isOk(co,time[i,j]))
{
temp = j.ToString() + i.ToString();
if (ch.chooseClass(co,Course,temp) == 0)
{
continue;
}
temp = "";
time[i,j].Add(co);
cent = cent - 2;
Check = false;
break;
}
}
}
}//t==1
}//for1
}//ifcent == 2....
if (Check&¢ == 3||cent == 6)
{
//bool isEmpty = false;//判斷是否有一下午是空閑的
for (int m = 0;m < 5;m++)
{
if (time[2,m] == null)
countC++;
}
for (int i = 1;i < 3&&Check;i++)
for (int j = 0;j < 5;j++)
{
if (t == 0)
{
if (i == 1||countC >=2)
{
if (time[i,j] == null)
{
time[i,j] = new ArrayList();
time[i,j].Add(co);
co.ClassTime = j.ToString() + i.ToString();
while (ch.chooseClass(co) == 0)
{
MessageBox.Show("課程號為{0}沒有適合的教室,請提供合理的教室",co.CourseNo);
this.panel2.Controls.Clear();
addClass ad = new addClass();
this.panel2.Controls.Add(ad);
return;
}
t++;//change
dayj = j;
cent = cent - 3;
Check = false;
if (i == 2)
countC--;
break;
}
if (!staticClass.isAllNull(time,3,5,1)&&time[i,j] != null)
{
if (staticClass.isOk(co,time[i,j]))
{
temp = j.ToString() + i.ToString();
if (ch.chooseClass(co,Course,temp) == 0)
{
continue;
}
time[i,j].Add(co);
temp = "";
cent = cent - 3;
if (i == 2)
countC--;
t++;//change
Check = false;
continue;
}
}
}
}
if (t == 1&&Check)
{
if (System.Math.Abs(j-dayj) >= 2&&(i == 1 || countC >= 2))
{
if (time[i,j] == null)
{
time[i,j] = new ArrayList();
co.ClassTime += j.ToString() + i.ToString();
time[i,j].Add(co);
if (i == 2)
countC--;
while (ch.chooseClass(co) == 0)
{
MessageBox.Show("課程號為{0}沒有適合的教室,請提供合理的教室",co.CourseNo);
this.panel2.Controls.Clear();
addClass ad = new addClass();
this.panel2.Controls.Add(ad);
return;
}
//t = 1;
dayj = j;
cent = cent - 3;
Check = false;
break;
}
if (!staticClass.isAllNull(time,3,5,1)&&time[i,j] != null)
{
if (staticClass.isOk(co,time[i,j]))
{
//time[i,j].Add(co);
//co.ClassTime += j.ToString() + i.ToString();
temp = j.ToString() + i.ToString();
if (ch.chooseClass(co,Course,temp) == 0)
{
//co.ClassTime = null;
//time[i,j].Remove(co);
continue;
}
time[i,j].Add(co);
temp = "";
if (i == 2)
countC--;
cent = cent - 3;
Check = false;
break;
}
}
}
}//t==1
}//for
}//cent ==6
}//while
// if (t == 1)
// {
// if (co.WeekCent == 4||co.WeekCent == 6||co.WeekCent ==5)
// {
// if (co.ClassTime==null||co.ClassTime.Length == 2)
// {
// MessageBox.Show("需重新安排教學計劃!");
// return;
// }
// }
// }
// if (t == 0)
// {
// MessageBox.Show("需重新安排教學計劃!");
// return;
// }
}//foreach
if (!staticClass.isFinished(Course))
{
MessageBox.Show("需重新安排教學計劃!");
return;
}
else
{
dealCourse dc = new dealCourse();
dc.Open();
string ClassNo = null;
string ClassTime = null;
bool isSet;
string str2 = "select * from course";
SqlCommand cmd3 = new SqlCommand(str2,conn);
SqlDataReader dr2 = cmd3.ExecuteReader();
foreach (course co in Course)
{
while (dr2.Read())
{
ClassNo = Convert.ToString(dr2["classNo"]);
ClassTime = Convert.ToString(dr2["classTime"]);
if (ClassNo == ""&&ClassTime ==""&&co.CourseNo ==Convert.ToString(dr2["courseNo"])&&co.TeacherNo ==Convert.ToString(dr2["teacherNo"])&&co.StudyClassNo == Convert.ToString(dr2["studyClassNo"]))
{
isSet = dc.InsertCourseInfo(co.ClassNo,co.ClassTime,co.CourseNo,co.StudyClassNo);
if (!isSet)
{
MessageBox.Show("數據庫修改失敗!");
return;
}
break;
}
}
}
dr2.Close();
dc.Close();
conn.Close();
this.menuItem17.Enabled = false;
this.menuItem3.Enabled = true;
this.menuItem18.Enabled = true;
MessageBox.Show("排課成功!");
}
}
private void menuItem18_Click(object sender, System.EventArgs e)
{
staticClass.clearPk();
this.menuItem17.Enabled = true;
this.menuItem18.Enabled = false;
this.menuItem3.Enabled = false;
MessageBox.Show("排課結果已清楚");
}
}//class
}//namespace
?? 快捷鍵說明
復制代碼
Ctrl + C
搜索代碼
Ctrl + F
全屏模式
F11
切換主題
Ctrl + Shift + D
顯示快捷鍵
?
增大字號
Ctrl + =
減小字號
Ctrl + -