ผลต่างระหว่างรุ่นของ "Grader on Windows with TC"
ไปยังการนำทาง
ไปยังการค้นหา
Jittat (คุย | มีส่วนร่วม) |
Jittat (คุย | มีส่วนร่วม) |
||
แถว 10: | แถว 10: | ||
ตารางและคอลัมน์ต่าง ๆ มีดังนี้ | ตารางและคอลัมน์ต่าง ๆ มีดังนี้ | ||
− | '''TABLE:''' user_info | + | '''TABLE:''' user_info ตารางผู้ใช้ |
'''COLUMNS:''' | '''COLUMNS:''' | ||
user_id varchar(10) รหัสประจำตัวผู้ใช้ | user_id varchar(10) รหัสประจำตัวผู้ใช้ | ||
แถว 21: | แถว 21: | ||
'A' คือผู้ดูแลระบบ | 'A' คือผู้ดูแลระบบ | ||
− | '''TABLE:''' prob_info | + | '''TABLE:''' prob_info ตารางปัญหา |
'''COLUMNS:''' | '''COLUMNS:''' | ||
prob_id varchar(10) รหัสปัญหา | prob_id varchar(10) รหัสปัญหา | ||
แถว 28: | แถว 28: | ||
prob_order int(10) ลำดับในการแสดงผล ปัญหาจะแสดงตาม prob_order จากน้อยไปมาก | prob_order int(10) ลำดับในการแสดงผล ปัญหาจะแสดงตาม prob_order จากน้อยไปมาก | ||
− | '''TABLE:''' submission | + | '''TABLE:''' submission ตารางเก็บโปรแกรมที่ส่ง |
'''COLUMNS:''' | '''COLUMNS:''' | ||
− | user_id varchar(10) | + | user_id varchar(10) |
− | prob_id varchar(10) | + | prob_id varchar(10) |
− | sub_num int(11) | + | sub_num int(11) หมายเลขของการส่ง (ส่งครั้งที่) นับสำหรับผู้ใช้และปัญหานี้ เริ่มจาก 1 |
− | time datetime | + | time datetime |
− | code mediumtext | + | code mediumtext ซอร์สโปรแกรมที่ส่ง |
'''PRIMARY KEY:''' (`user_id`,`prob_id`,`sub_num`) | '''PRIMARY KEY:''' (`user_id`,`prob_id`,`sub_num`) | ||
− | '''TABLE:''' grd_queue | + | '''TABLE:''' grd_queue คิวรอการตรวจ |
'''COLUMNS:''' | '''COLUMNS:''' | ||
− | q_id int(10) | + | q_id int(10) |
− | user_id varchar(10) | + | user_id varchar(10) |
− | prob_id varchar(10) | + | prob_id varchar(10) |
− | sub_num int(10) | + | sub_num int(10) |
− | '''TABLE:''' grd_status | + | '''TABLE:''' grd_status สถานะของการตรวจ |
'''COLUMNS:''' | '''COLUMNS:''' | ||
− | user_id varchar(10) | + | user_id varchar(10) |
− | prob_id varchar(10) | + | prob_id varchar(10) |
− | res_id int(10) | + | res_id int(10) รหัสสถานะ ดูตาราง res_desc |
− | score int(10) | + | score int(10) |
− | compiler_msg text | + | grading_msg varchar(50) ข้อความจากการตรวจ (แสดงเป็นสตริงของอักษร P, -, x, และ T) |
+ | compiler_msg text ข้อความจาก compiler | ||
'''PRIMARY KEY:''' (`user_id`,`prob_id`) | '''PRIMARY KEY:''' (`user_id`,`prob_id`) | ||
แถว 56: | แถว 57: | ||
'''TABLE:''' res_desc | '''TABLE:''' res_desc | ||
'''COLUMNS:''' | '''COLUMNS:''' | ||
− | res_id int(10) | + | res_id int(10) |
− | res_text varchar(45) | + | res_text varchar(45) |
'''DATA:''' | '''DATA:''' | ||
(1,'in queue'), | (1,'in queue'), |
รุ่นแก้ไขเมื่อ 16:39, 2 เมษายน 2551
ระบบมีสองส่วน คือส่วนที่เป็นระบบรับโปรแกรมบนเว็บ ซึ่งพัฒนาด้วยภาษา php บนระบบฐานข้อมูล MySQL และส่วนที่เป็นโปรแกรมทำงานที่เซิร์ฟเวอร์สำหรับตรวจโปรแกรม โดยจะเรียก Turbo C หรือ Borland C มาคอมไพล์และตรวจผลลัพธ์โปรแกรม
การติดตั้ง
ระบบรับโปรแกรมผ่านทางเว็บ
โปรแกรมตรวจ
การใช้งาน
โครงสร้างฐานข้อมูล
ตารางและคอลัมน์ต่าง ๆ มีดังนี้
TABLE: user_info ตารางผู้ใช้ COLUMNS: user_id varchar(10) รหัสประจำตัวผู้ใช้ name varchar(100) ชื่อ passwd varchar(10) รหัสผ่าน grp varchar(10) รหัสกลุ่ม (หรือศูนย์) type char(1) ประเภทผู้ใช้: 'C' คือผู้เข้าแข่งขัน (contestant) 'S' คืออาจารย์ผู้ดูแลกลุ่ม (supervisor) และ 'A' คือผู้ดูแลระบบ
TABLE: prob_info ตารางปัญหา COLUMNS: prob_id varchar(10) รหัสปัญหา name varchar(100) ชื่อปัญหา avail char(1) เปิดให้ส่ง ('Y' หรือ 'N') prob_order int(10) ลำดับในการแสดงผล ปัญหาจะแสดงตาม prob_order จากน้อยไปมาก
TABLE: submission ตารางเก็บโปรแกรมที่ส่ง COLUMNS: user_id varchar(10) prob_id varchar(10) sub_num int(11) หมายเลขของการส่ง (ส่งครั้งที่) นับสำหรับผู้ใช้และปัญหานี้ เริ่มจาก 1 time datetime code mediumtext ซอร์สโปรแกรมที่ส่ง PRIMARY KEY: (`user_id`,`prob_id`,`sub_num`)
TABLE: grd_queue คิวรอการตรวจ COLUMNS: q_id int(10) user_id varchar(10) prob_id varchar(10) sub_num int(10)
TABLE: grd_status สถานะของการตรวจ COLUMNS: user_id varchar(10) prob_id varchar(10) res_id int(10) รหัสสถานะ ดูตาราง res_desc score int(10) grading_msg varchar(50) ข้อความจากการตรวจ (แสดงเป็นสตริงของอักษร P, -, x, และ T) compiler_msg text ข้อความจาก compiler PRIMARY KEY: (`user_id`,`prob_id`)
ตารางประกอบ
TABLE: res_desc COLUMNS: res_id int(10) res_text varchar(45) DATA: (1,'in queue'), (2,'grading'), (3,'accepted'), (4,'rejected');