Пример #1
0
        /// <summary>
        /// 根据枚举类型把相关的枚举分解为特定类型
        /// </summary>
        /// <typeparam name="T">返回集合的元素类型</typeparam>
        /// <typeparam name="N">枚举值类型</typeparam>
        /// <param name="type">枚举类型</param>
        /// <param name="convert">转换器</param>
        /// <param name="where">全等筛选条件</param>
        /// <returns>返回枚举的键值对</returns>
        public static List <T> EnumToList <T, N>(Type type, Conver <T, N> convert, Where <N> where = null)
        {
            List <T> ret = new List <T>();

            if (where == null)
            {
                foreach (var item in Enum.GetValues(type))
                {
                    KeyValuePair <string, N> keyVal = new KeyValuePair <string, N>(Enum.GetName(type, item), (N)item);
                    ret.Add(convert(keyVal));
                }
            }
            else
            {
                foreach (var item in Enum.GetValues(type))
                {
                    KeyValuePair <string, N> keyVal = new KeyValuePair <string, N>(Enum.GetName(type, item), (N)item);
                    if (where (keyVal))
                    {
                        ret.Add(convert(keyVal));
                    }
                }
            }
            return(ret);
        }
Пример #2
0
        static void Main(string[] args)
        {
            string[] inputs    = Console.ReadLine().Split();
            string   firstName = inputs[0];
            string   lastName  = inputs[1];
            int      id        = Convert.ToInt32(Console.ReadLine());
            int      numScores = Convert.ToInt32(Console.ReadLine());

            inputs = Console.ReadLine().Split();
            int[] scores = new int[numScores];
            for (int i = 0; i < numScores; i++)
            {
                scores[i] = Conver.ToInt32(inputs[i]);
            }

            Student s = new Student(firstName, lastName, id, scores);

            s.printPerson();
            Console.WriteLine("Grade: " + s.Calculate() + "\n");
        }
Пример #3
0
        public void fresh()
        {
            if (Flag)
            {
                Flag = false;
                flowLayoutPanel1.Controls.Clear();

                if (File.Exists(Application.StartupPath + "\\chartset.txt"))
                {
                    string[][] aa = Save.ReadMultiTxt(Application.StartupPath + "\\chartset.txt");
                    visible[0]   = Convert.ToBoolean(aa[0][0]); visible[1] = Convert.ToBoolean(aa[1][0]); visible[2] = Convert.ToBoolean(aa[2][0]); visible[3] = Convert.ToBoolean(aa[3][0]);
                    visible[4]   = Convert.ToBoolean(aa[4][0]); visible[5] = Convert.ToBoolean(aa[5][0]); visible[6] = Convert.ToBoolean(aa[6][0]); visible[7] = Convert.ToBoolean(aa[7][0]);
                    DownLineShow = Convert.ToBoolean(aa[8][0]); UpLineShow = Convert.ToBoolean(aa[9][0]); MidLineShow = Convert.ToBoolean(aa[10][0]);
                    c_color1     = Color.FromArgb(int.Parse(aa[0][1])); c_color2 = Color.FromArgb(int.Parse(aa[1][1])); c_color3 = Color.FromArgb(int.Parse(aa[2][1])); c_color4 = Color.FromArgb(int.Parse(aa[3][1]));
                    c_color5     = Color.FromArgb(int.Parse(aa[4][1])); c_color6 = Color.FromArgb(int.Parse(aa[5][1])); c_color7 = Color.FromArgb(int.Parse(aa[6][1])); c_color8 = Color.FromArgb(int.Parse(aa[7][1]));
                    C_colorLow   = Color.FromArgb(int.Parse(aa[8][1])); C_colorHigh = Color.FromArgb(int.Parse(aa[9][1])); C_colorMid = Color.FromArgb(int.Parse(aa[10][1]));
                }
                else
                {
                    MessageBox.Show("文件chartset.txt丢失!");
                    return;
                }

                if (visible[0])
                {
                    chart1.Series["Series1"].Enabled = true;
                    TableLayoutPanel tp = new TableLayoutPanel();
                    tp.AutoSize = true;
                    Label lab1 = new Label();
                    lab1.AutoSize  = true;
                    lab1.Text      = "    ";
                    lab1.BackColor = c_color1;
                    Label lab2 = new Label();
                    lab2.AutoSize = true;
                    lab2.Text     = "    ";
                    lab2.Text     = lineName[0];
                    tp.Controls.Add(lab1, 0, 0);
                    tp.Controls.Add(lab2, 1, 0);
                    flowLayoutPanel1.Controls.Add(tp);
                }
                else
                {
                    chart1.Series["Series1"].Enabled = false;
                }

                if (visible[1])
                {
                    chart1.Series["Series2"].Enabled = true;
                    TableLayoutPanel tp = new TableLayoutPanel();
                    tp.AutoSize = true;
                    Label lab1 = new Label();
                    lab1.AutoSize  = true;
                    lab1.Text      = "    ";
                    lab1.BackColor = c_color2;
                    Label lab2 = new Label();
                    lab2.AutoSize = true;
                    lab2.Text     = "    ";
                    lab2.Text     = lineName[1];
                    tp.Controls.Add(lab1, 0, 0);
                    tp.Controls.Add(lab2, 1, 0);
                    flowLayoutPanel1.Controls.Add(tp);
                }
                else
                {
                    chart1.Series["Series2"].Enabled = false;
                }

                if (visible[2])
                {
                    chart1.Series["Series3"].Enabled = true;

                    TableLayoutPanel tp = new TableLayoutPanel();
                    tp.AutoSize = true;
                    Label lab1 = new Label();
                    lab1.AutoSize = true;
                    lab1.Text     = "    ";

                    lab1.BackColor = c_color3;
                    Label lab2 = new Label();
                    lab2.AutoSize = true;
                    lab2.Text     = "    ";

                    lab2.Text = lineName[2];
                    tp.Controls.Add(lab1, 0, 0);
                    tp.Controls.Add(lab2, 1, 0);
                    flowLayoutPanel1.Controls.Add(tp);
                }
                else
                {
                    chart1.Series["Series3"].Enabled = false;
                }
                if (visible[3])
                {
                    chart1.Series["Series4"].Enabled = true;

                    TableLayoutPanel tp = new TableLayoutPanel();
                    tp.AutoSize = true;
                    Label lab1 = new Label();
                    lab1.AutoSize = true;
                    lab1.Text     = "    ";

                    lab1.BackColor = c_color4;
                    Label lab2 = new Label();
                    lab2.AutoSize = true;
                    lab2.Text     = "    ";

                    lab2.Text = lineName[3];
                    tp.Controls.Add(lab1, 0, 0);
                    tp.Controls.Add(lab2, 1, 0);
                    flowLayoutPanel1.Controls.Add(tp);
                }
                else
                {
                    chart1.Series["Series4"].Enabled = false;
                }
                if (visible[4])
                {
                    chart1.Series["Series5"].Enabled = true;
                    TableLayoutPanel tp = new TableLayoutPanel();
                    tp.AutoSize = true;
                    Label lab1 = new Label();
                    lab1.AutoSize = true;
                    lab1.Text     = "    ";

                    lab1.BackColor = c_color5;
                    Label lab2 = new Label();
                    lab2.AutoSize = true;
                    lab2.Text     = "    ";

                    lab2.Text = lineName[4];
                    tp.Controls.Add(lab1, 0, 0);
                    tp.Controls.Add(lab2, 1, 0);
                    flowLayoutPanel1.Controls.Add(tp);
                }
                else
                {
                    chart1.Series["Series5"].Enabled = false;
                }
                if (visible[5])
                {
                    chart1.Series["Series6"].Enabled = true;
                    TableLayoutPanel tp = new TableLayoutPanel();
                    tp.AutoSize = true;
                    Label lab1 = new Label();
                    lab1.AutoSize = true;
                    lab1.Text     = "    ";

                    lab1.BackColor = c_color6;
                    Label lab2 = new Label();
                    lab2.AutoSize = true;
                    lab2.Text     = "    ";

                    lab2.Text = lineName[5];
                    tp.Controls.Add(lab1, 0, 0);
                    tp.Controls.Add(lab2, 1, 0);
                    flowLayoutPanel1.Controls.Add(tp);
                }
                else
                {
                    chart1.Series["Series6"].Enabled = false;
                }
                if (visible[6])
                {
                    chart1.Series["Series7"].Enabled = true;
                    TableLayoutPanel tp = new TableLayoutPanel();
                    tp.AutoSize = true;
                    Label lab1 = new Label();
                    lab1.AutoSize = true;
                    lab1.Text     = "    ";

                    lab1.BackColor = c_color7;
                    Label lab2 = new Label();
                    lab2.AutoSize = true;
                    lab2.Text     = "    ";

                    lab2.Text = lineName[6];
                    tp.Controls.Add(lab1, 0, 0);
                    tp.Controls.Add(lab2, 1, 0);
                    flowLayoutPanel1.Controls.Add(tp);
                }
                else
                {
                    chart1.Series["Series7"].Enabled = false;
                }

                if (visible[7])
                {
                    chart1.Series["Series8"].Enabled = true;
                    TableLayoutPanel tp = new TableLayoutPanel();
                    tp.AutoSize = true;
                    Label lab1 = new Label();
                    lab1.AutoSize = true;
                    lab1.Text     = "    ";

                    lab1.BackColor = c_color8;
                    Label lab2 = new Label();
                    lab2.AutoSize = true;
                    lab2.Text     = "    ";

                    lab2.Text = lineName[7];
                    tp.Controls.Add(lab1, 0, 0);
                    tp.Controls.Add(lab2, 1, 0);
                    flowLayoutPanel1.Controls.Add(tp);
                }
                else
                {
                    chart1.Series["Series8"].Enabled = false;
                }
            }

            if (listdatabinPath[0] != "")
            {
                if (Save.ReadMultiTxt(listdatabinPath[0]) == null)
                {
                    return;
                }
                string[][] _d0 = Save.ReadMultiTxt(listdatabinPath[0]);
                string[][] d0  = Conver.TransPosition(_d0);
                listX[0] = Array.ConvertAll(d0[0].ToArray(), Convert.ToSingle).ToList();
                listY[0] = Array.ConvertAll(d0[1].ToArray(), Convert.ToSingle).ToList();
                chart1.Series["Series1"].Points.DataBindXY(listX[0], listY[0]);
                chart1.Series["Series1"].Color = c_color1;
            }

            if (listdatabinPath[1] != "")
            {
                if (Save.ReadMultiTxt(listdatabinPath[1]) == null)
                {
                    return;
                }
                string[][] _d1 = Save.ReadMultiTxt(listdatabinPath[1]);
                string[][] d1  = Conver.TransPosition(_d1);
                listX[1] = Array.ConvertAll(d1[0].ToArray(), Convert.ToSingle).ToList();
                listY[1] = Array.ConvertAll(d1[1].ToArray(), Convert.ToSingle).ToList();
                chart1.Series["Series2"].Points.DataBindXY(listX[1], listY[1]);
                chart1.Series["Series2"].Color = c_color2;
            }

            if (listdatabinPath[2] != "")
            {
                if (Save.ReadMultiTxt(listdatabinPath[2]) == null)
                {
                    return;
                }

                string[][] _d2 = Save.ReadMultiTxt(listdatabinPath[2]);
                string[][] d2  = Conver.TransPosition(_d2);
                listX[2] = Array.ConvertAll(d2[0].ToArray(), Convert.ToSingle).ToList();
                listY[2] = Array.ConvertAll(d2[1].ToArray(), Convert.ToSingle).ToList();

                chart1.Series["Series3"].Points.DataBindXY(listX[2], listY[2]);
                chart1.Series["Series3"].Color = c_color3;
            }

            if (listdatabinPath[3] != "")
            {
                if (Save.ReadMultiTxt(listdatabinPath[3]) == null)
                {
                    return;
                }
                string[][] _d3 = Save.ReadMultiTxt(listdatabinPath[3]);
                string[][] d3  = Conver.TransPosition(_d3);
                listX[3] = Array.ConvertAll(d3[0].ToArray(), Convert.ToSingle).ToList();
                listY[3] = Array.ConvertAll(d3[1].ToArray(), Convert.ToSingle).ToList();

                chart1.Series["Series4"].Points.DataBindXY(listX[3], listY[3]);
                chart1.Series["Series4"].Color = c_color4;
            }

            if (listdatabinPath[4] != "")
            {
                if (Save.ReadMultiTxt(listdatabinPath[4]) == null)
                {
                    return;
                }
                string[][] _d4 = Save.ReadMultiTxt(listdatabinPath[4]);
                string[][] d4  = Conver.TransPosition(_d4);
                listX[4] = Array.ConvertAll(d4[0].ToArray(), Convert.ToSingle).ToList();
                listY[4] = Array.ConvertAll(d4[1].ToArray(), Convert.ToSingle).ToList();

                chart1.Series["Series5"].Points.DataBindXY(listX[4], listY[4]);
                chart1.Series["Series5"].Color = c_color5;
            }

            if (listdatabinPath[5] != "")
            {
                if (Save.ReadMultiTxt(listdatabinPath[5]) == null)
                {
                    return;
                }
                string[][] _d5 = Save.ReadMultiTxt(listdatabinPath[5]);
                string[][] d5  = Conver.TransPosition(_d5);
                listX[5] = Array.ConvertAll(d5[0].ToArray(), Convert.ToSingle).ToList();
                listY[5] = Array.ConvertAll(d5[1].ToArray(), Convert.ToSingle).ToList();

                chart1.Series["Series6"].Points.DataBindXY(listX[5], listY[5]);
                chart1.Series["Series6"].Color = c_color6;
            }

            if (listdatabinPath[6] != "")
            {
                if (Save.ReadMultiTxt(listdatabinPath[6]) == null)
                {
                    return;
                }
                string[][] _d6 = Save.ReadMultiTxt(listdatabinPath[6]);
                string[][] d6  = Conver.TransPosition(_d6);
                listX[6] = Array.ConvertAll(d6[0].ToArray(), Convert.ToSingle).ToList();
                listY[6] = Array.ConvertAll(d6[1].ToArray(), Convert.ToSingle).ToList();

                chart1.Series["Series7"].Points.DataBindXY(listX[6], listY[6]);
                chart1.Series["Series7"].Color = c_color7;
            }

            if (listdatabinPath[7] != "")
            {
                if (Save.ReadMultiTxt(listdatabinPath[7]) == null)
                {
                    return;
                }
                string[][] _d7 = Save.ReadMultiTxt(listdatabinPath[7]);
                string[][] d7  = Conver.TransPosition(_d7);
                listX[7] = Array.ConvertAll(d7[0].ToArray(), Convert.ToSingle).ToList();
                listY[7] = Array.ConvertAll(d7[1].ToArray(), Convert.ToSingle).ToList();

                chart1.Series["Series8"].Points.DataBindXY(listX[7], listY[7]);
                chart1.Series["Series8"].Color = c_color8;
            }


            float[] Xc = new float[8];
            for (int i = 0; i < 8; i++)
            {
                if (listX[i] != null)
                {
                    if (listX[i].Count > 0)
                    {
                        Xc[i] = listX[i][listX[i].Count - 1];
                    }
                }
            }
            X = Xc.Max();
            //X = listX[0].Count - 1;
            if (follow == true)
            {
                if (X > showCount)
                {
                    if (X > chartCount)
                    {
                        chart1.ChartAreas[0].AxisX.Minimum = X - chartCount;
                    }
                    chart1.ChartAreas[0].AxisX.Maximum = X;
                    chart1.ChartAreas[0].AxisX.ScaleView.Zoom(X - showCount + 1, X);
                }
                else
                {
                    chart1.ChartAreas[0].AxisX.Minimum = 0;
                    chart1.ChartAreas[0].AxisX.Maximum = showCount;
                    ZoomReset();
                    //chart1.ChartAreas[0].AxisX.ScaleView.Zoom(0, totalCount-1);
                }
            }
            else
            {
                if (X <= showCount)
                {
                    chart1.ChartAreas[0].AxisX.Maximum = showCount;
                    ZoomReset();
                    //chart1.ChartAreas[0].AxisX.ScaleView.Zoom(0, 50);
                }
                else
                {
                    chart1.ChartAreas[0].AxisX.Maximum = X;
                }
            }
        }