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); } }
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); } }
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(); }
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(); }