By GokiSoft.com| 15:22 28/10/2021|
C Sharp

[Video] Quản lý điểm thi Aptech bằng C# - Lập trình C Sharp BT2503


Link Video Bài Giảng

Bài tập - Quản lý điểm thi Aptech bằng C# - Lập trình C Sharp


#Program.cs


using System;
using System.Collections.Generic;

namespace BT2499
{
    delegate void SwitchCase();

    class Manager
    {
        static void Main(string[] args)
        {
            SwitchCase[] options = {InputStudent, InputMark, SortStudent, Find, ExitProgram};
            int choose;

            do
            {
                ShowMenu();
                choose = int.Parse(Console.ReadLine());

                if(choose > 0 && choose <= options.Length)
                {
                    options[choose - 1]();
                } else
                {
                    Console.WriteLine("Nhap sai!!!");
                }
            } while (choose != 5);
        }

        private static void InputStudent()
        {
            Console.WriteLine("Nhap so sinh vien can them N = ");
            int N = int.Parse(Console.ReadLine());

            for(int i=0;i<N;i++)
            {
                StudentAptech student = new StudentAptech();
                student.Input();

                DataMgr.GetInstance().StudentList.Add(student);
            }
        }

        private static void InputMark()
        {
            Console.WriteLine("Nhap so diem thi can them N = ");
            int N = int.Parse(Console.ReadLine());

            for (int i = 0; i < N; i++)
            {
                StudentMark mark = new StudentMark();
                mark.Input();

                DataMgr.GetInstance().MarkList.Add(mark);
            }
        }

        private static void SortStudent()
        {
            List<StudentAptech> studentList = DataMgr.GetInstance().StudentList;
            studentList.Sort((s1, s2) => {
                return s1.StuName.CompareTo(s2.StuName);
            });

            foreach(StudentAptech student in studentList)
            {
                student.Display();
            }
        }

        private static void Find()
        {
            Console.WriteLine("Nhap msv can xem thong tin: ");
            string msv = Console.ReadLine();

            StudentAptech studentFind = DataMgr.GetInstance().FindStudentByID(msv);

            if(studentFind != null)
            {
                StudentMarkTotal studentMarkTotal = new StudentMarkTotal(msv);
                studentMarkTotal.CalculateEverageMark(DataMgr.GetInstance().MarkList);

                studentMarkTotal.Display();
            } else
            {
                Console.WriteLine("Khong tim thay sinh vien phu hop");
            }
        }

        private static void ExitProgram()
        {
            Console.WriteLine("Thoat chuong trinh!!!");
        }

        static void ShowMenu()
        {
            Console.WriteLine("1. Nhap N sinh vien");
            Console.WriteLine("2. Nhap N diem");
            Console.WriteLine("3. Sap xep sinh vien & hien thi");
            Console.WriteLine("4. Hien thi ket qua hoc sinh vien theo id");
            Console.WriteLine("5. Thoat");
            Console.WriteLine("Chon: ");
        }
    }
}


#IMark.cs


using System;
namespace BT2499
{
    public interface IMark
    {
        void Input();
        void Display();
    }
}


#StudentAptech.cs


using System;
namespace BT2499
{
    public class StudentAptech : IMark
    {
        public string StuId { get; set; }

        public string StuName { get; set; }

        public string Gender { get; set; }

        public string Birthday { get; set; }

        public string NativePlace { get; set; }

        public StudentAptech()
        {
        }

        public StudentAptech(string stuId, string stuName, string gender, string birthday, string nativePlace)
        {
            StuId = stuId;
            StuName = stuName;
            Gender = gender;
            Birthday = birthday;
            NativePlace = nativePlace;
        }

        public void Display()
        {
            Console.WriteLine("MSV: {0}, ten: {1}, gioi tinh: {2}, ngay sinh: {3}, " +
                "dia chi: {4}", StuId, StuName, Gender, Birthday, NativePlace);
        }

        public void Input()
        {
            Console.WriteLine("1. Nhap msv: ");
            StuId = Console.ReadLine();

            Console.WriteLine("2. Nhap ten: ");
            StuName = Console.ReadLine();

            Console.WriteLine("3. Nhap gioi tinh: ");
            Gender = Console.ReadLine();

            Console.WriteLine("4. Nhap ngay sinh: ");
            Birthday = Console.ReadLine();

            Console.WriteLine("5. Nhap dia chi: ");
            NativePlace = Console.ReadLine();
        }
    }
}


#StudentMark.cs


using System;
namespace BT2499
{
    public class StudentMark : IMark
    {
        public string StuId { get; set; }

        public string ClassName { get; set; }

        public string SubjectName { get; set; }

        public int Semester { get; set; }

        public float Mark { get; set; }

        public StudentMark()
        {
        }

        public StudentMark(string stuId, string className, string subjectName, int semester, float mark)
        {
            StuId = stuId;
            ClassName = className;
            SubjectName = subjectName;
            Semester = semester;
            Mark = mark;
        }

        public void Display()
        {
            Console.WriteLine("MSV: {0}, ten lop: {1}, mon hoc: {2}, ky hoc: {3}, " +
                "diem: {4}", StuId, ClassName, SubjectName, Semester, Mark);
        }

        public void Input()
        {
            if(DataMgr.GetInstance().StudentList.Count == 0)
            {
                return;
            }

            Console.WriteLine("Nhap msv: ");
            while(true)
            {
                StuId = Console.ReadLine();
                StudentAptech student = DataMgr.GetInstance().FindStudentByID(StuId);
                if(student != null)
                {
                    break;
                }
                Console.WriteLine("Nhap sai!!!");
            }

            Console.WriteLine("Nhap ten lop: ");
            ClassName = Console.ReadLine();

            Console.WriteLine("Nhap mon hoc: ");
            SubjectName = Console.ReadLine();

            Console.WriteLine("Nhap ky hoc: ");
            Semester = int.Parse(Console.ReadLine());

            Console.WriteLine("Nhap diem: ");
            Mark = float.Parse(Console.ReadLine());
        }
    }
}


#StudentMarkTotal.cs


using System;
using System.Collections.Generic;

namespace BT2499
{
    public class StudentMarkTotal : IMark
    {
        public string StuId { get; set; }

        public int TotalExamSubject { get; set; }

        public float EverageMark { get; set; }

        public StudentMarkTotal()
        {
        }

        public StudentMarkTotal(string stuId)
        {
            StuId = stuId;
        }

        public void Display()
        {
            Console.WriteLine("msv: {0}, tong mon: {1}, diem trung binh: {2}",
                StuId, TotalExamSubject, EverageMark);
        }

        public void Input()
        {
            Console.WriteLine("Nhap ma sinh vien: ");
            StuId = Console.ReadLine();
        }

        private void GetTotalExamSubject(List<StudentMark> list)
        {
            TotalExamSubject = 0;
            foreach(StudentMark mark in list)
            {
                if(mark.StuId == StuId)
                {
                    TotalExamSubject++;
                }
            }
        }

        public void CalculateEverageMark(List<StudentMark> list)
        {
            GetTotalExamSubject(list);

            float totalMark = 0;

            foreach (StudentMark mark in list)
            {
                if (mark.StuId == StuId)
                {
                    totalMark += mark.Mark;
                }
            }

            EverageMark = totalMark / TotalExamSubject;
        }
    }
}


#DataMgr.cs


using System;
using System.Collections.Generic;

namespace BT2499
{
    public class DataMgr
    {
        public List<StudentAptech> StudentList { get; set; }
        public List<StudentMark> MarkList { get; set; }

        private static DataMgr _instance = null;

        private DataMgr()
        {
            StudentList = new List<StudentAptech>();
            MarkList = new List<StudentMark>();
        }

        public static DataMgr GetInstance()
        {
            if(_instance == null)
            {
                _instance = new DataMgr();
            }
            return _instance;
        }

        public StudentAptech FindStudentByID(string studId)
        {
            foreach(StudentAptech student in StudentList)
            {
                if(student.StuId == studId)
                {
                    return student;
                }
            }
            return null;
        }
    }
}


Liên kết rút gọn:

https://gokisoft.com/2503

Bình luận