PDA

View Full Version : help me



congnhanit
15-03-2008, 15:53
mình đang cần làm 1 bài toàn sắp xếp lịch thi của 1 trường đại học.Yêu cầu của bài toán như sau:
Đầu vào:
Dữ liệu đầu vào được cho trong file XepLichThi.IN có cấu trúc như sau:
TổngSốGiờThi n
PhươngPhápTìmKiếm [p|f|i|a]
SinhVien
MonThi
PhongThi

• n: tổng số giờ cho cả kỳ thi
• Phương pháp tìm kiếm:
o p: Dùng phương pháp tìm kiếm thỏa mãn thông thường bằng cách gán giá trị cho các biến theo thứ tự sau: gán cho môn thi có mã số nhỏ nhất trước. Các giá trị được dùng theo thứ tự: thời gian sớm hơn trước, và phòng thi có số nhỏ hơn trước (Mã số môn thi, phòng thi và sinh viên được cho theo thứ tự tăng dần trong các file đầu vào tương ứng).
o f: như trên nhưng dùng kiểm tra trước (forward checking)
o i: như f nhưng dùng thêm “biến bị ràng buộc nhiều nhất”
o a: như i nhưng dùng thêm “giá trị ít ràng buộc nhất”.
o Lưu ý là khi chọn biến và giá trị để gán, ngoài các yêu cầu của phương pháp tìm kiếm sẽ ưu tiên theo thứ tự sau:
• Môn thi có mã số nhỏ nhất.
• Gán thời gian trước phòng thi.
• Đối với thời gian và phòng thi, ưu tiên mã số nhỏ hơn trước.

SinhVien: Danh sách mã số các sinh viên với dòng đầu tiên là số lượng sinh viên, tiếp theo là các dòng chứa mã số sinh viên và các môn mà sinh viên phải thi.
MonThi: Danh sách mã số môn thi với dòng đầu tiên là số lượng môn thi, tiếp theo là các dòng chứa mã số các môn thi và thời gian thi.
PhongThi: Danh sách mã số các phòng thi với dòng đầu tiên là số lượng phòng thi, tiếp theo là các dòng chứa mã số phòng thi và số lượng tối đa số sinh viên có thể ngồi trong phòng.

Mã số sinh viên, mã số môn thi và mã số phòng thi là các số tự nhiên có không quá 4 chữ số.

Trong tất cả các phần danh sách mã số, mỗi dòng bắt đầu bởi mã số sinh viên, môn học hoặc phòng thi, tiếp theo là dấu “:”. Sau đó là 1 ký tự trống, tiếp theo là 1 dãy các số tự nhiên phân cách nhau bởi dấu “,”.

Chương trình phải xử lý được bài toán có tối đa 1000 sinh viên, mỗi sinh viên học nhiều nhất 6 môn, có nhiều nhất 100 môn và 100 phòng thi.


Đầu ra:
Đầu ra được ghi vào file XepLichThi.OUT bao gồm lịch thi cho từng môn (môn_thi phòng_thi ngày_thi giờ_thi ) theo thứ tự tăng dần của môn thi và tổng số lần thử gán gán giá trị cho biến.
Mong các bạn giúp đỡ mình với.Thanks

NguyenTuanSinh
26-06-2008, 15:18
Em thấy pác giải thích loàng ngoàng quá.
Trước hết pác hãy sắp xếp CSDL của pác theo trình tự (cái nào được ưu tiên trước).
Em không hiểu vấn đề của pác lắm nhưng theo em pác dùng câu lệnh truy vấn SubQuerry xem có thay đổi được tình hình không.
Cuối mỗi câu truy vấn pác cho thêm câu lệnh ORDER BY vao VD: ORDER BY SinhVien.Ma thì chương trình sẽ ưu tiên mã nhỏ đứng trước mã lớn đứng sau.