C# 在ASP.net中使用图形着色创建时间表

C# 在ASP.net中使用图形着色创建时间表,c#,asp.net,graph-coloring,C#,Asp.net,Graph Coloring,我正在开发一个ASP应用程序,它是关于为我的最后一个学期项目创建课程时间表的。我使用了图形着色的基本控制台应用程序中的逻辑,并将其整合到我的项目中。虽然控制台应用程序的逻辑可以按要求工作,但我无法对我的asp项目执行同样的操作 try { int n = 10, i, j, max = 0, col, ct = 0, rt = 0, m, count = 2, g = 0; int[][] a = new int[20][];

我正在开发一个ASP应用程序,它是关于为我的最后一个学期项目创建课程时间表的。我使用了图形着色的基本控制台应用程序中的逻辑,并将其整合到我的项目中。虽然控制台应用程序的逻辑可以按要求工作,但我无法对我的asp项目执行同样的操作

try
        {
            int n = 10, i, j, max = 0, col, ct = 0, rt = 0, m, count = 2, g = 0;
            int[][] a = new int[20][];
            int[] c = new int[20];
            int[] arr = new int[20];
            for (int k = 0; k < 20; k++)
            {
                c[k] = 0;
                arr[k] = 0;
                a[k] = new int[20];
                for (int l = 0; l < 20; l++)
                {
                    a[k][l] = 0;
                }
            }

            string num = null, num1 = "";
            string display = "SELECT * FROM tbl_Subjects WHERE USN IN(SELECT USN FROM tbl_Student WHERE Semester='" + DropDownList1.Text + "')";
            con.Open();
            SqlCommand cmdSql = new SqlCommand(display, con);
            SqlDataReader rs;
            rs = cmdSql.ExecuteReader();


            while (rs.Read())
            {
                //count1++;

                for (int k = 1; k <= n; k++)
                {
                    g = k - 1;
                    num = rs[k].ToString();
                    arr[g] = Convert.ToInt32(num);
                    num1 += arr[g] + " ";
                }
                num1 += "\n";

                for (int k = 0; k < n; k++)
                {
                    for (int l = (k + 1); l < n; l++)
                    {
                        if (arr[k] == 1 && arr[l] == 1)
                        {
                            a[k][l] = 1;
                            //a[l][k] = 1;

                        }
                    }
                }
            }
            rs.Close();
            TextBox3.Text = num1;
            num1 = "";
            for (int k = 0; k < n; k++)
            {
                for (int l = 0; l < n; l++)
                {
                    num1 += a[k][l] + " ";
                }
                num1 += "\n";
            }
            for (i = 0; i < n; i++)
            {
                c[i] = 0;
                //for(j=0;j<n;j++)
                //scanf("%d",&a[i][j]);
            }
            c[0] = 1; c[1] = 2;
            for (i = 2; i < n; i++)
            {
                for (j = 0; j < n; j++)
                    if (a[i][j] > 0)
                    {
                        m = 0;
                        for (col = 0; col < n; col++)
                        { if (a[i][col] > 0)rt++; if (a[col][i] > 0)ct++; }
                        m = rt; if (ct > rt) m = ct;
                        if (m < 2) { if (a[0][i] > 0)c[i] = 2; else c[i] = 1; } else { c[i] = count; if (m > max) { max = m; count++; } }
                        rt = 0; ct = 0;
                    } if (c[i] < 1) if (c[i - 1] > 1) c[i] = 1; else c[i] = 2;
            }

            string result = "";
            for (i = 0; i < n; i++)
            {
                result += "Subject[" + (i + 1) + "] = " + c[i] + "\n";
                if (c[i]==1)
                {
                    TextBox4.Text += "Subject 1 = 8:15 to 9:15 \n";
                }
                if (c[i] == 2)
                {
                    TextBox4.Text += "Subject 2 = 9:15 to 10:15 \n";
                }
                if (c[i] == 3)
                {
                    TextBox4.Text += "Subject 3 = 10:45 to 11:45 \n";

                }
                if (c[i] == 4)
                {
                    TextBox4.Text += "Subject 4 = 11:45 to 12:45 \n";
                }
                if (c[i] == 5)
                {
                    TextBox4.Text += "Subject 5 = 1:30 to 2:30 \n";
                }
                if (c[i] == 6)
                {
                    TextBox4.Text += "Subject 6 = 2:30 to 3:30 \n";
                }
                if (c[i] == 7)
                {
                    TextBox4.Text += "Lab 1 = 8-15 to 10:15 \n";
                }
                if (c[i] == 8)
                {
                    TextBox4.Text += "Lab 2 = 10:45 to 12:45 \n";
                }
                if (c[i] == 9)
                {
                    TextBox4.Text += "Lab 3 = 1:30 to 3:30 \n";
                }
                if (c[i] == 10)
                {
                    TextBox4.Text += "Lab 4 = 8-15 to 9:15 \n";
                }
            }
            con.Close();
           TextBox2.Text = result;
        }
        catch (Exception ex)
        {
             Label2.Text = ex.Message;
        } 
在上面的代码中,我正在从应用图形着色算法的数据库中读取邻接矩阵的数据,即0和1。着色完成后,结果将暂时打印在文本框上


我面临的问题是,没有指定颜色,也无法生成时间表。

使用RichTextbox而不是TextBox。文本框不支持颜色。那一堆if子句。。。使用一个开关,更干净,如果你的案例是10,你就不需要检查9个ifs。您好,先生,我使用文本框只是为了显示变量信息,稍后我将使用网格视图来显示主题。关于开关箱,谢谢你的建议。但是,我不会显示任何颜色,我只会显示着色完成后的最终结果,所以一个文本框就足够了?