1. 程式人生 > >C#學生管理系統原始碼

C#學生管理系統原始碼

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