Grader on Windows with TC

จาก Theory Wiki
ไปยังการนำทาง ไปยังการค้นหา

ระบบมีสองส่วน คือส่วนที่เป็นระบบรับโปรแกรมบนเว็บ ซึ่งพัฒนาด้วยภาษา 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)  NOT NULL default ,
  prob_id  varchar(10)  NOT NULL default ,
  sub_num  int(11)      NOT NULL default '0',
  time     datetime     default '0000-00-00 00:00:00',
  code     mediumtext   NOT NULL,
PRIMARY KEY: (`user_id`,`prob_id`,`sub_num`)
TABLE: grd_queue
COLUMNS:
  q_id     int(10)      unsigned NOT NULL auto_increment,
  user_id  varchar(10)  NOT NULL default ,
  prob_id  varchar(10)  NOT NULL default ,
  sub_num  int(10)      unsigned NOT NULL default '0',
TABLE: grd_status
COLUMNS:
  user_id       varchar(10) NOT NULL default ,
  prob_id       varchar(10) NOT NULL default ,
  res_id        int(10) unsigned NOT NULL default '0',
  score         int(10) unsigned default '0',
  compiler_msg  text,
PRIMARY KEY: (`user_id`,`prob_id`)

ตารางประกอบ

TABLE: res_desc
COLUMNS:
  res_id     int(10) unsigned NOT NULL auto_increment,
  res_text   varchar(45) NOT NULL default ,
DATA: 
  (1,'in queue'),
  (2,'grading'),
  (3,'accepted'),
  (4,'rejected');