Skip to content

Instantly share code, notes, and snippets.

@voquanghoa voquanghoa/Thi.md
Last active Nov 27, 2017

Embed
What would you like to do?

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
You can’t perform that action at this time.