Example #1
0
        static void Main(string[] args)
        {
            courseSystem = new CourseSystem("2011211212", "hamannsun250", str => Console.Write(str), str => { });

            while (true)
            {
                try
                {
                    courseSystem.Login();
                    if (courseSystem.IsLoginIn())
                        break;

                    Thread.Sleep(300);
                }
                catch
                {

                }
            }

            Semester semester;
            while (true)
            {
                try
                {
                    var semesters = courseSystem.GetSemesterList();
                    if (semesters.Length == 0)
                        continue;

                    semester = semesters[0];
                }
                catch
                {
                    continue;
                }
               
                break;
            }

            var helper = courseSystem.GetCourseHelper(semester.id);

            var courseList = File.ReadAllLines("course.txt")
                .Select(s => s.Trim())
                .Where(s => s.Length > 0)
                .Select(l => (l.Split(new[] {' '}, StringSplitOptions.RemoveEmptyEntries)))
                .Select(a => new Course(a[0], a[1]))
                .ToList();

            if (courseList.Count == 0)
            {
                Console.WriteLine("没有需要选的课程");
                return;
            }

            while (true)
            {
                foreach (var course in courseList)
                {
                    Console.WriteLine("正在选课:{0}", course.课程号);
                    try
                    {
                        var result = helper.TryGetCourse(course);
                        if (result)
                        {
                            courseList.Remove(course);
                            Console.WriteLine("选课成功:{0}", course.课程号);

                            if (courseList.Count == 0)
                            {
                                Console.WriteLine("选课结束");
                                return;
                            }
                            continue;
                        }
                    }
                    catch
                    {

                    }
                   
                }


                Thread.Sleep(1000);
            }
        }
Example #2
0
        static void Main(string[] args)
        {
            courseSystem = new CourseSystem("2011211212", "hamannsun250", str => Console.Write(str), str => { });

            while (true)
            {
                try
                {
                    courseSystem.Login();
                    if (courseSystem.IsLoginIn())
                    {
                        break;
                    }

                    Thread.Sleep(300);
                }
                catch
                {
                }
            }

            Semester semester;

            while (true)
            {
                try
                {
                    var semesters = courseSystem.GetSemesterList();
                    if (semesters.Length == 0)
                    {
                        continue;
                    }

                    semester = semesters[0];
                }
                catch
                {
                    continue;
                }

                break;
            }

            var helper = courseSystem.GetCourseHelper(semester.id);

            var courseList = File.ReadAllLines("course.txt")
                             .Select(s => s.Trim())
                             .Where(s => s.Length > 0)
                             .Select(l => (l.Split(new[] { ' ' }, StringSplitOptions.RemoveEmptyEntries)))
                             .Select(a => new Course(a[0], a[1]))
                             .ToList();

            if (courseList.Count == 0)
            {
                Console.WriteLine("没有需要选的课程");
                return;
            }

            while (true)
            {
                foreach (var course in courseList)
                {
                    Console.WriteLine("正在选课:{0}", course.课程号);
                    try
                    {
                        var result = helper.TryGetCourse(course);
                        if (result)
                        {
                            courseList.Remove(course);
                            Console.WriteLine("选课成功:{0}", course.课程号);

                            if (courseList.Count == 0)
                            {
                                Console.WriteLine("选课结束");
                                return;
                            }
                            continue;
                        }
                    }
                    catch
                    {
                    }
                }


                Thread.Sleep(1000);
            }
        }
Example #3
0
        static void Configure()
        {
            string id;
            string password;
            while (true)
            {
                Console.Clear();
                Console.WriteLine("当前位置:");
                Console.WriteLine("  配置刷课信息");
                Console.WriteLine("    设置账户");
                Console.WriteLine();

                Console.WriteLine("请输入用户名:");
                id = Console.ReadLine();

                Console.WriteLine("请输入密码:");
                password = Console.ReadLine();

                Console.Clear();
                Console.WriteLine("当前位置:");
                Console.WriteLine("  配置刷课信息");
                Console.WriteLine();

                courseSystem = new CourseSystem(id, password, str => Console.Write(str), str => { });
                try
                {
                    courseSystem.Login();
                    break;
                }
                catch (Exception e)
                {
                    Console.WriteLine("发生错误:" + e.Message);
                    Console.Write("按任意键重新设置账户...");
                    Console.Read();
                }
            }

            var semesterList = courseSystem.GetSemesterList();

            Semester semester;

            while (true)
            {
                Console.Clear();
                Console.WriteLine("当前位置:");
                Console.WriteLine("  配置刷课信息");
                Console.WriteLine("    选择学期");
                Console.WriteLine();

                Console.WriteLine("请选择学期:");
                for (int i = 0; i < semesterList.Length; i++)
                {
                    Console.WriteLine("{0} {1}", i, semesterList[i].name);
                }
                Console.WriteLine();
                Console.Write("请选择:");
                string input = Console.ReadLine();
                int index;
                if (int.TryParse(input, out index))
                {
                    if (index >= 0 && index < semesterList.Length)
                    {
                        semester = semesterList[index];
                        break;
                    }
                }
            }

            Console.Clear();
            Console.WriteLine("当前位置:");
            Console.WriteLine("  配置刷课信息");
            Console.WriteLine("    选择学期");
            Console.WriteLine();

            var courseHelper = courseSystem.GetCourseHelper(semester.id);
            var courseArray = courseHelper.GetMyCourseList();

            Console.Clear();
            Console.WriteLine("当前位置:");
            Console.WriteLine("  配置刷课信息");
            Console.WriteLine("    选择学期");
            Console.WriteLine();

            Console.WriteLine("该学期已选上如下课程:");
            Console.WriteLine("{0}\t{1}\t{2}\t{3}", "课程号  ", "课序号", "主讲教师", "课程名");
            foreach (var course in courseArray)
            {
                Console.WriteLine("{0}\t{1}\t{2}\t{3}", course.课程号, course.课序号, course.主讲教师 + "  ", course.课程名);
            }
            Console.WriteLine("共计 {0} 门。", courseArray.Length);
            Console.WriteLine();
            Console.Write("按任意键继续...");
            Console.Read();

            var courseList = new List<Course>();

            while (true)
            {
                Console.Clear();
                Console.WriteLine("当前位置:");
                Console.WriteLine("  配置刷课信息");
                Console.WriteLine("    选择带刷课程列表文件");
                Console.WriteLine();

                Console.WriteLine("请按如下格式把待选课程保存在文件中");
                Console.WriteLine();
                Console.WriteLine("课程号1 课序号1");
                Console.WriteLine("课程号2 课序号2");
                Console.WriteLine("....");
                Console.WriteLine();
                Console.Write("请输入文件名:");
                var filename = Console.ReadLine();

                if (!File.Exists(filename))
                {
                    Console.Write("文件 {0} 不存在,按任意键重新输入....");
                    continue;
                }

                var filelines = File.ReadAllLines(filename);
                var regex = new Regex("^([^ ]+) ([^ ]+)");
                foreach (string line in filelines)
                {
                    var match = regex.Match(line);
                    if (match.Success)
                    {
                        courseList.Add(new Course(match.Groups[1].ToString(), match.Groups[2].ToString()));
                    }
                }

                Console.WriteLine();
                Console.WriteLine("在文件中识别出如下课程信息:");
                foreach (var course in courseList)
                {
                    Console.WriteLine("{0} {1}", course.课程号, course.课序号);
                }
                Console.WriteLine();
                Console.Write("按 R 重新选择文件,按其他键继续...");
                var key = Console.ReadKey();
                if (key.KeyChar == 'r' || key.KeyChar == 'R')
                    continue;

                Console.Clear();
                Console.WriteLine("当前位置:");
                Console.WriteLine("  配置刷课信息");
                Console.WriteLine("    获取课程信息");
                Console.WriteLine();

                Console.WriteLine("正在获取课程信息...");
                foreach (var course in courseList)
                {
                    courseHelper.FillCourseInfo(course);
                }

                for (int i = courseList.Count - 1; i >= 0; i--)
                {
                    if (courseList[i].课程名 == null)
                    {
                        Console.WriteLine("课程 {0} {1} 不存在。", courseList[i].课程号, courseList[i].课序号);
                        courseList.RemoveAt(i);
                    }
                }

                Console.WriteLine();
                Console.WriteLine("您选择了如下课程:");
                Console.WriteLine("{0}\t{1}\t{2}\t{3}", "课程号  ", "课序号", "主讲教师", "课程名");
                foreach (var course in courseList)
                {
                    Console.WriteLine("{0}\t{1}\t{2}\t{3}", course.课程号, course.课序号, course.主讲教师 + "  ", course.课程名);
                }
                Console.WriteLine("共计 {0} 门。", courseList.Count);
                Console.WriteLine();
                Console.Write("按 R 重新选择文件,按其他键继续...");
                key = Console.ReadKey();
                if (key.KeyChar == 'r' || key.KeyChar == 'R')
                    continue;

                break;
            }

            var strBuilder = new StringBuilder();
            strBuilder.AppendLine(id);
            strBuilder.AppendLine(password);
            strBuilder.AppendLine(semester.id);
            strBuilder.AppendLine(courseList.Count.ToString());
            foreach (var course in courseList)
                strBuilder.AppendLine(course.课程号 + " " + course.课序号);
            byte[] buffer = System.Text.Encoding.UTF8.GetBytes(strBuilder.ToString());

            using (var file = File.Create("userdata.dat"))
            {
                var gz = new GZipStream(file, CompressionMode.Compress);
                gz.Write(buffer, 0, buffer.Length);
                gz.Close();
            }

            Console.WriteLine();
            Console.WriteLine();
            Console.WriteLine("成功写入配置信息到 userdata.dat");
            Console.WriteLine("按任意键返回主菜单...");
            Console.Read();
        }
Example #4
0
        static void Configure()
        {
            string id;
            string password;

            while (true)
            {
                Console.Clear();
                Console.WriteLine("当前位置:");
                Console.WriteLine("  配置刷课信息");
                Console.WriteLine("    设置账户");
                Console.WriteLine();

                Console.WriteLine("请输入用户名:");
                id = Console.ReadLine();

                Console.WriteLine("请输入密码:");
                password = Console.ReadLine();

                Console.Clear();
                Console.WriteLine("当前位置:");
                Console.WriteLine("  配置刷课信息");
                Console.WriteLine();

                courseSystem = new CourseSystem(id, password, str => Console.Write(str), str => { });
                try
                {
                    courseSystem.Login();
                    break;
                }
                catch (Exception e)
                {
                    Console.WriteLine("发生错误:" + e.Message);
                    Console.Write("按任意键重新设置账户...");
                    Console.Read();
                }
            }

            var semesterList = courseSystem.GetSemesterList();

            Semester semester;

            while (true)
            {
                Console.Clear();
                Console.WriteLine("当前位置:");
                Console.WriteLine("  配置刷课信息");
                Console.WriteLine("    选择学期");
                Console.WriteLine();

                Console.WriteLine("请选择学期:");
                for (int i = 0; i < semesterList.Length; i++)
                {
                    Console.WriteLine("{0} {1}", i, semesterList[i].name);
                }
                Console.WriteLine();
                Console.Write("请选择:");
                string input = Console.ReadLine();
                int    index;
                if (int.TryParse(input, out index))
                {
                    if (index >= 0 && index < semesterList.Length)
                    {
                        semester = semesterList[index];
                        break;
                    }
                }
            }

            Console.Clear();
            Console.WriteLine("当前位置:");
            Console.WriteLine("  配置刷课信息");
            Console.WriteLine("    选择学期");
            Console.WriteLine();

            var courseHelper = courseSystem.GetCourseHelper(semester.id);
            var courseArray  = courseHelper.GetMyCourseList();

            Console.Clear();
            Console.WriteLine("当前位置:");
            Console.WriteLine("  配置刷课信息");
            Console.WriteLine("    选择学期");
            Console.WriteLine();

            Console.WriteLine("该学期已选上如下课程:");
            Console.WriteLine("{0}\t{1}\t{2}\t{3}", "课程号  ", "课序号", "主讲教师", "课程名");
            foreach (var course in courseArray)
            {
                Console.WriteLine("{0}\t{1}\t{2}\t{3}", course.课程号, course.课序号, course.主讲教师 + "  ", course.课程名);
            }
            Console.WriteLine("共计 {0} 门。", courseArray.Length);
            Console.WriteLine();
            Console.Write("按任意键继续...");
            Console.Read();

            var courseList = new List <Course>();

            while (true)
            {
                Console.Clear();
                Console.WriteLine("当前位置:");
                Console.WriteLine("  配置刷课信息");
                Console.WriteLine("    选择带刷课程列表文件");
                Console.WriteLine();

                Console.WriteLine("请按如下格式把待选课程保存在文件中");
                Console.WriteLine();
                Console.WriteLine("课程号1 课序号1");
                Console.WriteLine("课程号2 课序号2");
                Console.WriteLine("....");
                Console.WriteLine();
                Console.Write("请输入文件名:");
                var filename = Console.ReadLine();

                if (!File.Exists(filename))
                {
                    Console.Write("文件 {0} 不存在,按任意键重新输入....");
                    continue;
                }

                var filelines = File.ReadAllLines(filename);
                var regex     = new Regex("^([^ ]+) ([^ ]+)");
                foreach (string line in filelines)
                {
                    var match = regex.Match(line);
                    if (match.Success)
                    {
                        courseList.Add(new Course(match.Groups[1].ToString(), match.Groups[2].ToString()));
                    }
                }

                Console.WriteLine();
                Console.WriteLine("在文件中识别出如下课程信息:");
                foreach (var course in courseList)
                {
                    Console.WriteLine("{0} {1}", course.课程号, course.课序号);
                }
                Console.WriteLine();
                Console.Write("按 R 重新选择文件,按其他键继续...");
                var key = Console.ReadKey();
                if (key.KeyChar == 'r' || key.KeyChar == 'R')
                {
                    continue;
                }

                Console.Clear();
                Console.WriteLine("当前位置:");
                Console.WriteLine("  配置刷课信息");
                Console.WriteLine("    获取课程信息");
                Console.WriteLine();

                Console.WriteLine("正在获取课程信息...");
                foreach (var course in courseList)
                {
                    courseHelper.FillCourseInfo(course);
                }

                for (int i = courseList.Count - 1; i >= 0; i--)
                {
                    if (courseList[i].课程名 == null)
                    {
                        Console.WriteLine("课程 {0} {1} 不存在。", courseList[i].课程号, courseList[i].课序号);
                        courseList.RemoveAt(i);
                    }
                }

                Console.WriteLine();
                Console.WriteLine("您选择了如下课程:");
                Console.WriteLine("{0}\t{1}\t{2}\t{3}", "课程号  ", "课序号", "主讲教师", "课程名");
                foreach (var course in courseList)
                {
                    Console.WriteLine("{0}\t{1}\t{2}\t{3}", course.课程号, course.课序号, course.主讲教师 + "  ", course.课程名);
                }
                Console.WriteLine("共计 {0} 门。", courseList.Count);
                Console.WriteLine();
                Console.Write("按 R 重新选择文件,按其他键继续...");
                key = Console.ReadKey();
                if (key.KeyChar == 'r' || key.KeyChar == 'R')
                {
                    continue;
                }

                break;
            }

            var strBuilder = new StringBuilder();

            strBuilder.AppendLine(id);
            strBuilder.AppendLine(password);
            strBuilder.AppendLine(semester.id);
            strBuilder.AppendLine(courseList.Count.ToString());
            foreach (var course in courseList)
            {
                strBuilder.AppendLine(course.课程号 + " " + course.课序号);
            }
            byte[] buffer = System.Text.Encoding.UTF8.GetBytes(strBuilder.ToString());

            using (var file = File.Create("userdata.dat"))
            {
                var gz = new GZipStream(file, CompressionMode.Compress);
                gz.Write(buffer, 0, buffer.Length);
                gz.Close();
            }

            Console.WriteLine();
            Console.WriteLine();
            Console.WriteLine("成功写入配置信息到 userdata.dat");
            Console.WriteLine("按任意键返回主菜单...");
            Console.Read();
        }