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

จาก Theory Wiki
ไปยังการนำทาง ไปยังการค้นหา
แถว 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)  NOT NULL default '',
+
   user_id  varchar(10)   
   prob_id  varchar(10)  NOT NULL default '',
+
   prob_id  varchar(10)   
   sub_num  int(11)      NOT NULL default '0',
+
   sub_num  int(11)      หมายเลขของการส่ง (ส่งครั้งที่) นับสำหรับผู้ใช้และปัญหานี้ เริ่มจาก 1
   time    datetime    default '0000-00-00 00:00:00',
+
   time    datetime     
   code    mediumtext  NOT NULL,
+
   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)      unsigned NOT NULL auto_increment,
+
   q_id    int(10)       
   user_id  varchar(10)  NOT NULL default '',
+
   user_id  varchar(10)   
   prob_id  varchar(10)  NOT NULL default '',
+
   prob_id  varchar(10)   
   sub_num  int(10)      unsigned NOT NULL default '0',
+
   sub_num  int(10)       
  
  '''TABLE:''' grd_status
+
  '''TABLE:''' grd_status สถานะของการตรวจ
 
  '''COLUMNS:'''
 
  '''COLUMNS:'''
   user_id      varchar(10) NOT NULL default '',
+
   user_id      varchar(10)  
   prob_id      varchar(10) NOT NULL default '',
+
   prob_id      varchar(10)
   res_id        int(10) unsigned NOT NULL default '0',
+
   res_id        int(10)     รหัสสถานะ ดูตาราง res_desc
   score        int(10) unsigned default '0',
+
   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) unsigned NOT NULL auto_increment,
+
   res_id    int(10)    
   res_text  varchar(45) NOT NULL default '',
+
   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');