C#學生管理系統原始碼
阿新 • • 發佈:2019-01-22
C#學生管理系統公開原始碼:
整個專案所有的方法名如下圖:
專案核心邏輯圖如下:
**1 首先,鍵立實體類
private int _id; private string _name; private string _sex; private int _age; private int _score; public int Id { get { return _id; } set { _id = value; } } public string Name { get { return _name; } set { _name = value; } } public string Sex { get { return _sex; } set { _sex = value; } } public int Age { get { return _age; } set { _age = value; } } public int Score { get { return _score; } set { _score = value; } } public Entity(int id, string name, string sex, int age, int score) { this._id = id; this._name = name; this._sex = sex; this._age = age; this._score = score; } public Entity() { } public override String ToString() { return "\t\t\t\t\t\t學號:" + Id + "\t姓名:" + Name + "\t性別:" + Sex + "\t年齡" + Age + "\t分數:" + Score; }
**2工具類 **`
List<Entity> ls = new List<Entity>(); private Studao sd = new Studao(); Entity e = new Entity(); #region //遍歷五條資料 public void Init() { for (int i = 0; i < 5; i++) { Entity e = new Entity(); e.Id = i; e.Name = "學生" + i; if (i % 2 == 0) { e.Sex = "男"; } else { e.Sex = "女"; } e.Age = i; if ((60 + i) > 100) { e.Score = 100; } else { e.Score = 80 + i; } ls.Add(e); } foreach (Entity item in ls) { Console.WriteLine(item.ToString()); } showMain(); } #endregion #region //主選單 public void showMain() { Console.WriteLine(); Console.WriteLine("\t\t\t\t********** **********"); Console.WriteLine("\t\t\t\t 歡迎使用學生管理系統 "); Console.WriteLine("\t\t\t\t********** **********"); Console.ForegroundColor = ConsoleColor.Red; Console.WriteLine("\t\t\t\t1.檢視學員資訊 2.增加學員資訊 3.修改學員資訊 4.刪除學員資訊 5.退出學生管理系統"); Console.ForegroundColor = ConsoleColor.White; Console.WriteLine(); Console.WriteLine("鍵盤輸入你的選項:"); int i = int.Parse(Console.ReadLine()); switch (i) { case 1: FindStudent(); break; case 2: AddStudent(); break; case 3: EditStudent(); break; case 4: RemoveStudent(); break; case 5: Exit(); break; default: break; } Console.ReadKey(); } #endregion #region //檢視學員資訊 public void FindStudent() { Console.WriteLine(); Console.WriteLine("\t\t\t\t********** **********"); Console.ForegroundColor = ConsoleColor.Red; Console.WriteLine("\t\t\t\t 1.檢視單個學員資訊 2.檢視所有學員資訊 3.返回上級選單"); Console.ForegroundColor = ConsoleColor.White; Console.WriteLine("\t\t\t\t********** **********"); Console.WriteLine(); Console.WriteLine("鍵盤輸入你的選項:"); try { int i1 = int.Parse(Console.ReadLine()); switch (i1) { case 1://檢視單個 FindSingleStudent(); break; case 2://檢視所有 FindStudentAll(); break; case 3: //返回上級選單 showMain(); break; default: Console.WriteLine("超出選擇範圍,請重新輸入!!!"); FindStudent(); break; } } catch (Exception e) { Console.WriteLine(e.Message); FindStudent(); throw; } } #endregion #region //檢視單個學員資訊 public void FindSingleStudent() { Console.WriteLine(); Console.WriteLine("\t\t\t\t********** **********"); Console.ForegroundColor = ConsoleColor.Red; Console.WriteLine("\t\t\t\t 1.根據學號檢視 2.檢視最高分學員 3.檢視最低分學員 4.返回上級選單"); Console.ForegroundColor = ConsoleColor.White; Console.WriteLine("\t\t\t\t********** **********"); try { int i2 = int.Parse(Console.ReadLine()); switch (i2) { case 1://根據學號檢視 sd.findEntityByID(ls); FindSingleStudent(); break; case 2://檢視最高分 sd.FindMaxScoreStudent(ls); FindSingleStudent(); break; case 3://檢視最低分 sd.FindMinScoreStudent(ls); FindSingleStudent(); break; case 4://返回上級選單 FindStudent(); break; default: Console.WriteLine("超出選擇範圍,請重新輸入!!!"); FindSingleStudent(); break; } } catch (Exception e) { Console.WriteLine(e.Message); FindSingleStudent(); throw; } } #endregion #region //檢視所有學員資訊 public void FindStudentAll() { Console.WriteLine(); Console.WriteLine("\t\t\t\t********** **********"); Console.ForegroundColor = ConsoleColor.Red; Console.WriteLine("\t\t\t\t1.根據年齡排序 2.根據分數排序 3.根據學號排序 4.檢視總分與平均分 5.返回上級選單"); Console.ForegroundColor = ConsoleColor.White; Console.WriteLine("\t\t\t\t********** **********"); try { int i3 = int.Parse(Console.ReadLine()); switch (i3) { case 1://根據年齡排序 sd.FindStudentOrderAge(ls); FindStudentAll(); break; case 2://根據分數排序 sd.FindStudentOrderScore(ls); FindStudentAll(); break; case 3://根據學號排序 sd.FindStudentOrderNo(ls); FindStudentAll(); break; case 4://檢視總分與平均分 sd.FindStudentAvgScoreAndSumScore(ls); FindStudentAll(); break; case 5://返回上級選單 FindSingleStudent(); break; default: Console.WriteLine("超出選擇範圍,請重新輸入!!!"); FindStudentAll(); break; } } catch (Exception e) { Console.WriteLine(e.Message); FindStudentAll(); throw; } } #endregion #region //增加學員資訊 public void AddStudent() { Console.WriteLine(); Console.WriteLine("\t\t\t\t********** **********"); Console.ForegroundColor = ConsoleColor.Red; Console.WriteLine("\t\t\t\t 1.錄入學員資訊 2.返回上級選單"); Console.ForegroundColor = ConsoleColor.White; Console.WriteLine("\t\t\t\t********** **********"); try { int i4 = int.Parse(Console.ReadLine()); switch (i4) { case 1://錄入學員資訊 Console.WriteLine("請輸入你要增加的學號:"); int id = int.Parse(Console.ReadLine()); e.Id = id; Console.WriteLine("請輸入你要增加的姓名:"); string name = Console.ReadLine(); e.Name = name; Console.WriteLine("請輸入你要增加的性別:"); string sex = Console.ReadLine(); e.Sex = sex; Console.WriteLine("請輸入你要增加的年齡:"); int age = int.Parse(Console.ReadLine()); e.Age = age; Console.WriteLine("請輸入你要增加的分數:"); int score = int.Parse(Console.ReadLine()); e.Score = score; Console.WriteLine(); Console.WriteLine("資訊已成功錄入!"); Console.WriteLine(); ls.Add(e); sd.add(e, ls); // Console.WriteLine("123"); AddStudent(); break; case 2://返回上級選單 showMain(); break; default: Console.WriteLine("超出選擇範圍,請重新輸入!"); AddStudent(); break; } } catch (Exception e) { Console.WriteLine(e.Message); AddStudent(); throw; } } #endregion #region //修改學員資訊 public void EditStudent() { Console.WriteLine(); Console.WriteLine("\t\t\t\t********** **********"); Console.ForegroundColor = ConsoleColor.Red; Console.WriteLine("\t\t\t\t 1.輸入要修改的學號 2.返回上級選單 "); Console.ForegroundColor = ConsoleColor.White; Console.WriteLine("\t\t\t\t********** **********"); try { int i5 = int.Parse(Console.ReadLine()); switch (i5) { case 1://輸入要修改的學號 Console.WriteLine("請輸入要修改學生的學號:"); int id = int.Parse(Console.ReadLine()); //Console.WriteLine("請輸入修改後學生的學號:"); //int id1 = int.Parse(Console.ReadLine()); Console.WriteLine("請輸入修改後學生的姓名:"); string name = Console.ReadLine(); Console.WriteLine("請輸入修改後學生的性別:"); string sex = Console.ReadLine(); Console.WriteLine("請輸入修改後學生的年齡:"); int age = int.Parse(Console.ReadLine()); Console.WriteLine("請輸入修改後學生的分數:"); int score = int.Parse(Console.ReadLine()); //刪除了id1 sd.EditStudentByID(id, name, sex, age, score, ls); EditStudent(); break; case 2://返回上級選單 showMain(); break; default: Console.WriteLine("超出選擇範圍,請重新輸入!!!"); EditStudent(); break; } } catch (Exception e) { Console.WriteLine(e.Message); EditStudent(); throw; } } #endregion #region //刪除學員資訊 public void RemoveStudent() { Console.WriteLine(); Console.WriteLine("\t\t\t\t********** **********"); Console.ForegroundColor = ConsoleColor.Red; Console.WriteLine("\t\t\t\t 1.輸入要刪除的學號 2.返回上級選單"); Console.ForegroundColor = ConsoleColor.White; Console.WriteLine("\t\t\t\t********** **********"); try { int i6 = int.Parse(Console.ReadLine()); switch (i6) { case 1://輸入要刪除的學號 Console.WriteLine("請輸入要刪除的學號:"); int it = int.Parse(Console.ReadLine()); sd.RemoveStudent(it, ls); RemoveStudent(); break; case 2: //返回 showMain(); break; default: Console.WriteLine("超出選擇範圍,請重新輸入!"); RemoveStudent(); break; } } catch (Exception e) { Console.WriteLine(e.Message); RemoveStudent(); throw; } } #endregion #region //退出學生管理系統 public void Exit() { Console.WriteLine(); Console.ForegroundColor = ConsoleColor.Red; Console.WriteLine("\t\t\t\t********** **********"); Console.WriteLine("\t\t\t\t------—————————————感謝使用此產品!————————---------------------"); Console.WriteLine("\t\t\t\t********** **********"); Console.ForegroundColor = ConsoleColor.Red; } #endregion
程式類(program)
Manage bd = new Manage();
//初始化五條資料
bd.Init();
dao類寫增刪改查的
//快速連續產生相同隨機數的解決方案 Random r = new Random(); #region //根據ID查詢單個學生 public void findEntityByID(List<Entity> ls) { Console.WriteLine("請輸入學號:"); int id = int.Parse(Console.ReadLine()); foreach (Entity s in ls) { if (s.Id == id) { Console.WriteLine("學生資訊:" + ls[id].ToString()); break; } } } #endregion #region //檢視最高分 public void FindMaxScoreStudent(List<Entity> ls) { double max = 0; max = ls[0].Score; for (int i = 0; i < ls.Count; i++) { if (max <= ls[i].Score) { max = ls[i].Score; } } for (int i = 0; i < ls.Count; i++) { if (ls[i] != null) { if (ls[i].Score == max) { Console.WriteLine("最高分數是:" + ls[i].ToString()); } } } } #endregion #region //檢視最低分 public void FindMinScoreStudent(List<Entity> ls) { double min = 0; min = ls[0].Score; for (int i = 0; i < ls.Count; i++) { if (min > ls[i].Score) { min = ls[i].Score; } } for (int i = 0; i < ls.Count; i++) { if (ls[i].Score == min) { Console.WriteLine("最低分數是:" + ls[i].ToString()); } } } #endregion #region //根據年齡排序 public void FindStudentOrderAge(List<Entity> ls) { ls = ls.OrderByDescending(x => x.Age).ToList();//ToList()會新開闢一個記憶體空間 foreach (Entity item in ls) { Console.WriteLine(item); } } #endregion #region //根據分數排序 public void FindStudentOrderScore(List<Entity> ls) { ls = ls.OrderByDescending(x => x.Score).ToList(); foreach (Entity item in ls) { Console.WriteLine(item); } } #endregion #region //根據學號排序 public void FindStudentOrderNo(List<Entity> ls) { ls = ls.OrderByDescending(x => x.Id).ToList(); foreach (Entity item in ls) { Console.WriteLine(item); } } #endregion #region //總分和平均分 public void FindStudentAvgScoreAndSumScore(List<Entity> ls) { int count = 0; double sum = 0; for (int i = 0; i < ls.Count; i++) { if (ls[i] == null) { break; } else if (ls[i] != null) { sum += ls[i].Score; count++; } } double avg = sum / count; Console.WriteLine("總分:" + sum); Console.WriteLine("平均分:" + avg); } #endregion #region //增加學員資訊 public void add(Entity et, List<Entity> ls) { for (int i = 0; i <ls.Count; i++) { if (ls[i]!=null) { ls[i] = et; break; } } foreach (Entity item in ls) { Console.WriteLine(item.ToString()); } } #endregion #region //修改學員的資訊 //刪除了int id public void EditStudentByID(int sId, string name, string sex, int age, int score, List<Entity> ls) { bool falg = false; for (int i = 0; i < ls.Count; i++) { if (ls[i] != null) { if (ls[i].Id == sId) { falg = false; ls[i].Name = name; ls[i].Sex = sex; ls[i].Age = age; ls[i].Score = score; break; } else { falg = true; } } } if (falg) { Console.WriteLine("系統無法修改此學號!"); } foreach (Entity item in ls) { Console.WriteLine(); Console.WriteLine("修改後的為:" + item.ToString()); } } #endregion #region //刪除 public void RemoveStudent(int sid, List<Entity> ls) { for (int i = 0; i < ls.Count; i++) { if (ls[i] == null) { continue; } if (ls[i] != null) { if (ls[i].Id == sid) { ls[i] = ls[i + 1]; ls[i + 1] = null; Console.WriteLine(); Console.WriteLine("成功刪除!"); Console.WriteLine(); } } } foreach (Entity item in ls) { if (item != null) { Console.WriteLine(item.ToString()); } } } #endregion