public bool UpdateAsync(CourseSystem model) { using (var conn = DapperFactory.GetConnection()) { List <string> removeFields = new List <string> { "Id", "CreateTime", "Status" }; var fields = model.ToFields(removeFields: removeFields); if (fields == null || fields.Count == 0) { return(false); } var fieldList = new List <string>(); foreach (var field in fields) { fieldList.Add(string.Format("{0}=@{0}", field)); } model.ModifyTime = DateTime.Now; string sql = string.Format("update [CourseSystem] set {0} where Id=@Id;", string.Join(",", fieldList)); return(conn.Execute(sql, model) > 0); } }
public ActionResult CourseSystem(int id = 0) { if (id == 0) { throw new Exception("课程体系不存在"); } CourseSystem model = _courseSystemService.GetByIdAsync(id) ?? new CourseSystem(); IEnumerable <Course> courseList = _courseService.GetListBySystemId(id) ?? new List <Course>(); //一行3个课程,两行 List <List <Course> > courseMap = new List <List <Course> >(); int courseIndex = 1; List <Course> clist = new List <Course>(); foreach (Course course in courseList) { clist.Add(course); if (courseIndex % 6 == 0) { courseMap.Add(new List <Course>(clist.ToArray())); clist.Clear(); } courseIndex++; } if (clist.Count > 0) { courseMap.Add(clist); } ViewBag.CourseList = courseMap; IEnumerable <Student> studentList = _studentService.GetAllAsync() ?? new List <Instart.Models.Student>(); //成功学员 //一行4个学员 List <List <Student> > studentMap = new List <List <Student> >(); int studentIndex = 1; List <Student> slist = new List <Student>(); foreach (Student item in studentList) { slist.Add(item); if (studentIndex % 8 == 0) { studentMap.Add(new List <Student>(slist.ToArray())); slist.Clear(); } studentIndex++; } if (slist.Count > 0) { studentMap.Add(slist); } ViewBag.StudentMap = studentMap; return(View(model)); }
public ActionResult Edit(int id = 0) { CourseSystem model = new CourseSystem(); string action = "添加课程体系"; if (id > 0) { model = _courseSystemService.GetByIdAsync(id); action = "修改课程课程体系"; } ViewBag.Action = action; return(View(model)); }
public bool InsertAsync(CourseSystem model) { if (model == null) { throw new ArgumentNullException("model不能为null"); } if (string.IsNullOrEmpty(model.Name)) { throw new ArgumentNullException("Name不能为null"); } return(_courseSystemRepository.InsertAsync(model)); }
public JsonResult Set(CourseSystem model) { if (model == null) { return(Error("参数错误。")); } if (string.IsNullOrEmpty(model.Name)) { return(Error("课程名称不能为空。")); } var fileAvatar = Request.Files["fileAvatar"]; if (fileAvatar != null) { string uploadResult = UploadHelper.Process(fileAvatar.FileName, fileAvatar.InputStream); if (!string.IsNullOrEmpty(uploadResult)) { model.Picture = uploadResult; } } var fileBanner = Request.Files["fileBanner"]; if (fileBanner != null) { string uploadResult = UploadHelper.Process(fileBanner.FileName, fileBanner.InputStream); if (!string.IsNullOrEmpty(uploadResult)) { model.BannerImg = uploadResult; } } var result = new ResultBase(); if (model.Id > 0) { result.success = _courseSystemService.UpdateAsync(model); } else { result.success = _courseSystemService.InsertAsync(model); } return(Json(result)); }
public bool InsertAsync(CourseSystem model) { using (var conn = DapperFactory.GetConnection()) { var fields = model.ToFields(removeFields: new List <string> { "Id" }); if (fields == null || fields.Count == 0) { return(false); } model.CreateTime = DateTime.Now; model.ModifyTime = DateTime.Now; model.Status = 1; string sql = string.Format("insert into [CourseSystem] ({0}) values ({1});", string.Join(",", fields), string.Join(",", fields.Select(n => "@" + n))); return(conn.Execute(sql, model) > 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); } }
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 Scan() { Console.Clear(); Console.WriteLine("当前位置:"); Console.WriteLine(" 按配置信息刷课"); Console.WriteLine(" 读取配置文件"); Console.WriteLine(); string id; string password; string semester; var courseList = new List<Course>(); try { using (var file = File.OpenRead("userdata.dat")) { using (var gz = new GZipStream(file, CompressionMode.Decompress)) { var reader = new StreamReader(gz, Encoding.UTF8); id = reader.ReadLine(); password = reader.ReadLine(); semester = reader.ReadLine(); int count = int.Parse(reader.ReadLine()); for (int i = 0; i < count; i++) { var line = reader.ReadLine() .Split(' '); courseList.Add(new Course(line[0], line[1])); } } } } catch (Exception e) { Console.WriteLine("读取配置文件错误,按任意键返回主菜单..."); return; } int time; while (true) { Console.Clear(); Console.WriteLine("当前位置:"); Console.WriteLine(" 按配置信息刷课"); Console.WriteLine(" 设置刷课频率"); Console.WriteLine(); Console.Write("请输入每次刷课间隔秒数:"); var input = Console.ReadLine(); if (int.TryParse(input, out time)) { if (time < 5) { Console.WriteLine(); Console.WriteLine(); Console.Write("时间必须大于等于5秒,按任意键重新输入..."); Console.ReadKey(); } else { time *= 1000; break; } } else { Console.WriteLine(); Console.WriteLine(); Console.Write("请输入整数,按任意键重新输入..."); Console.ReadKey(); } } Console.Clear(); Console.WriteLine("当前位置:"); Console.WriteLine(" 按配置信息刷课"); Console.WriteLine(" 正在登录"); Console.WriteLine(); courseSystem = new CourseSystem(id, password, str => Console.Write(str), str => { }); courseSystem.Login(); var courseHelper = courseSystem.GetCourseHelper(semester); courseHelper.GetMyCourseList(); foreach (var course in courseList) { courseHelper.FillCourseInfo(course); } var courseScanner = courseHelper.GetCourseScanner(courseList); var rand = new Random(5); int scanCount = 0; while (true) { courseScanner.ScanAll(); scanCount++; Console.Clear(); Console.WriteLine("当前位置:"); Console.WriteLine(" 按配置信息刷课"); Console.WriteLine(" 正在刷课"); Console.WriteLine(); Console.WriteLine(); Console.WriteLine("已完成 {0} 轮检测", scanCount); Console.WriteLine(); Console.WriteLine("已选上课程:", scanCount); Console.WriteLine(); foreach (var state in courseScanner.CourseStateList) { if(state.State == CoureseStateEnum.Got) Console.WriteLine("{0} {1} {2} {3}", state.Course.课程号, state.Course.课序号, state.Course.课程名, state.Course.主讲教师); } Console.WriteLine(); Console.WriteLine("未选上课程:", scanCount); Console.WriteLine(); foreach (var state in courseScanner.CourseStateList) { if (state.State == CoureseStateEnum.Wait) Console.WriteLine("{0} {1} {2} {3}", state.Course.课程号, state.Course.课序号, state.Course.课程名, state.Course.主讲教师); } Console.WriteLine(); Console.WriteLine("按任意键在当前扫描完成后暂停..."); if (Console.KeyAvailable) { while (Console.KeyAvailable) Console.ReadKey(); Console.WriteLine(); Console.WriteLine(); Console.Write("按 Q 键返回主菜单,按其他任意键继续..."); var key = Console.ReadKey(); if (key.KeyChar == 'q' || key.KeyChar == 'Q') return; } System.Threading.Thread.Sleep(time + rand.Next(1000 + time / 10)); if (Console.KeyAvailable) { while (Console.KeyAvailable) Console.ReadKey(); Console.WriteLine(); Console.WriteLine(); Console.Write("按 Q 键返回主菜单,按其他任意键继续..."); var key = Console.ReadKey(); if (key.KeyChar == 'q' || key.KeyChar == 'Q') return; } } }
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 Scan() { Console.Clear(); Console.WriteLine("当前位置:"); Console.WriteLine(" 按配置信息刷课"); Console.WriteLine(" 读取配置文件"); Console.WriteLine(); string id; string password; string semester; var courseList = new List <Course>(); try { using (var file = File.OpenRead("userdata.dat")) { using (var gz = new GZipStream(file, CompressionMode.Decompress)) { var reader = new StreamReader(gz, Encoding.UTF8); id = reader.ReadLine(); password = reader.ReadLine(); semester = reader.ReadLine(); int count = int.Parse(reader.ReadLine()); for (int i = 0; i < count; i++) { var line = reader.ReadLine() .Split(' '); courseList.Add(new Course(line[0], line[1])); } } } } catch (Exception e) { Console.WriteLine("读取配置文件错误,按任意键返回主菜单..."); return; } int time; while (true) { Console.Clear(); Console.WriteLine("当前位置:"); Console.WriteLine(" 按配置信息刷课"); Console.WriteLine(" 设置刷课频率"); Console.WriteLine(); Console.Write("请输入每次刷课间隔秒数:"); var input = Console.ReadLine(); if (int.TryParse(input, out time)) { if (time < 5) { Console.WriteLine(); Console.WriteLine(); Console.Write("时间必须大于等于5秒,按任意键重新输入..."); Console.ReadKey(); } else { time *= 1000; break; } } else { Console.WriteLine(); Console.WriteLine(); Console.Write("请输入整数,按任意键重新输入..."); Console.ReadKey(); } } Console.Clear(); Console.WriteLine("当前位置:"); Console.WriteLine(" 按配置信息刷课"); Console.WriteLine(" 正在登录"); Console.WriteLine(); courseSystem = new CourseSystem(id, password, str => Console.Write(str), str => { }); courseSystem.Login(); var courseHelper = courseSystem.GetCourseHelper(semester); courseHelper.GetMyCourseList(); foreach (var course in courseList) { courseHelper.FillCourseInfo(course); } var courseScanner = courseHelper.GetCourseScanner(courseList); var rand = new Random(5); int scanCount = 0; while (true) { courseScanner.ScanAll(); scanCount++; Console.Clear(); Console.WriteLine("当前位置:"); Console.WriteLine(" 按配置信息刷课"); Console.WriteLine(" 正在刷课"); Console.WriteLine(); Console.WriteLine(); Console.WriteLine("已完成 {0} 轮检测", scanCount); Console.WriteLine(); Console.WriteLine("已选上课程:", scanCount); Console.WriteLine(); foreach (var state in courseScanner.CourseStateList) { if (state.State == CoureseStateEnum.Got) { Console.WriteLine("{0} {1} {2} {3}", state.Course.课程号, state.Course.课序号, state.Course.课程名, state.Course.主讲教师); } } Console.WriteLine(); Console.WriteLine("未选上课程:", scanCount); Console.WriteLine(); foreach (var state in courseScanner.CourseStateList) { if (state.State == CoureseStateEnum.Wait) { Console.WriteLine("{0} {1} {2} {3}", state.Course.课程号, state.Course.课序号, state.Course.课程名, state.Course.主讲教师); } } Console.WriteLine(); Console.WriteLine("按任意键在当前扫描完成后暂停..."); if (Console.KeyAvailable) { while (Console.KeyAvailable) { Console.ReadKey(); } Console.WriteLine(); Console.WriteLine(); Console.Write("按 Q 键返回主菜单,按其他任意键继续..."); var key = Console.ReadKey(); if (key.KeyChar == 'q' || key.KeyChar == 'Q') { return; } } System.Threading.Thread.Sleep(time + rand.Next(1000 + time / 10)); if (Console.KeyAvailable) { while (Console.KeyAvailable) { Console.ReadKey(); } Console.WriteLine(); Console.WriteLine(); Console.Write("按 Q 键返回主菜单,按其他任意键继续..."); var key = Console.ReadKey(); if (key.KeyChar == 'q' || key.KeyChar == 'Q') { return; } } } }