ผลต่างระหว่างรุ่นของ "Grader on Windows with TC"

จาก Theory Wiki
ไปยังการนำทาง ไปยังการค้นหา
แถว 8: แถว 8:
  
 
==โครงสร้างฐานข้อมูล==
 
==โครงสร้างฐานข้อมูล==
 +
ตารางและคอลัมน์ต่าง ๆ มีดังนี้
 +
 +
'''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');

รุ่นแก้ไขเมื่อ 16:02, 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)  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');