Skip to content

Instantly share code, notes, and snippets.

@voquanghoa
Last active November 27, 2017 04:58
Show Gist options
  • Star 0 You must be signed in to star a gist
  • Fork 0 You must be signed in to fork a gist
  • Save voquanghoa/c989696c56b9abf5534c81b909dcbb0d to your computer and use it in GitHub Desktop.
Save voquanghoa/c989696c56b9abf5534c81b909dcbb0d to your computer and use it in GitHub Desktop.

Bài tập C# cơ bản

Viết một chương trình quản lý sinh viên sử dụng giao diện console (hoặc Window form), có những chức năng sau:

  • Hiển thị menu chọn
  • Nhập dữ liệu từ giao diện
    • Nhập danh sách môn học (Id, Tên môn học, trọng số khi tính điểm trung bình)
    • Nhập danh sách giáo viên (Id, Tên, Quê Quán, Ngày sinh, 1 môn học sẽ dạy ID) --> Nhập Tên, Quê quán, ngày sinh --> chọn môn học --> save
    • Nhập danh sách lớp học(Id, Tên Lớp, Id giáo viên chủ nhiệm) --> Nhập tên lớp --> chọn giáo viên từ danh sách --> save
    • Nhập danh sách sinh viên (Id, Tên, Lớp, Quê Quán, Ngày sinh) --> nhập tên, quê quán, ngày sinh --> chọn lớp từ danh sách --> save
    • Nhập danh sách khóa học (Id, LớpId, MônHọcId, GiáoViênId) --> chọn lớp học --> chọn môn học --> chọn giáo viên ==> lưu
    • Nhập danh sách điểm(Id, Khóa họcId, HocSinhId, Điểm) --> nếu nhập từ giao diện thì sẽ làm menu chọn lớp --> chọn khóa học --> chọn học sinh ==> nhập điểm, điểm chỉ hợp lệ là 0~10 (có thể có 1 số sau dấu .)
  • Hiển thị dữ liệu
    • Hiển thị danh sách môn học
    • Hiển thị danh sách giáo viên (Id, Tên, Quê quán, ngày sinh, Chủ nhiệm lớp, môn dạy, số lượng học sinh theo khóa học) --> Chọn 1 giáo viên --> in danh sách khóa học --> chọn 1 khóa học --> in bảng điểm khóa học được chọn
    • Hiển thị danh sách lớp học (Id, Tên lớp, giáo viên chủ nhiệm, số lượng học sinh) --> Chọn 1 lớp, hiển thị danh sách khóa học -> Chọn 1 khóa học, hiển thị bảng điểm
    • Hiển thị danh sách sinh viên theo từng lớp --> Chọn 1 học sinh, hiển thị bảng điểm của học sinh đó
  • Tìm kiếm dữ liệu:
    • Tìm tên học sinh --> Danh sách học sinh được tìm thấy --> chọn 1 kết quả --> in bảng điểm
    • Tìm tên 1 lớp --> Danh sách lớp --> danh sách khóa học --> bảng điểm của khóa học
  • Báo cáo:
    • Danh sách học sinh giỏi (sắp xếp theo lớp, tên học sinh, điểm) : có điểm trung bình 8 trở lên
    • Điểm trung bình theo lớp : Chọn lớp --> in bảng điểm trung bình
    • Top 100 học sinh: Sắp xếp theo điểm, lớp, tên
    • Top 3 lớp có số lượng học sinh giỏi nhiều nhất
    • Top 3 lớp có điểm trung bình cao nhất
    • Top 3 giáo viên có
      • Số lượng khóa học nhiều nhất
      • Số lượng học sinh nhiều nhất
      • Điểm trung bình (theo môn dạy) cao nhất

Ghi chú: Điểm trung bình = SumAll(điểm * trọng số môn) / SumAll(trọng số môn)

Yêu cầu lúc tạo pull request:

  • Chương trình đã xong về cơ bản
  • Dữ liệu được lưu vào thư mục Data/<tên class>.json (hoặc xml)
  • Khi chương trình chạy thì dữ liệu được load lên từ file ở trên
  • Tạo dữ liệu sẵn (đẹp đẹp chút, tên là Ho Va Ten thay vi xxxx, yzjahs)

Đề nghị

  • Viết code theo chuẩn
  • Tạo class hợp lý
  • Phân tích những thao tác thường dùng nhất và cố gắng viết code 1 lần và tái sử dụng
  • Trên 1 danh sách chọn phải có ID (nếu hiển thị dữ liệu) hoặc số thứ tự (nếu hiển thị menu), nhập số để chọn
  • Tham khảo các hàm xử lý console để làm chương trình thân thiện với người dùng
  • Dùng linq để xử lý dữ liệu
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment