ผลต่างระหว่างรุ่นของ "Grader on Windows with TC"
ไปยังการนำทาง
ไปยังการค้นหา
Jittat (คุย | มีส่วนร่วม) |
Jittat (คุย | มีส่วนร่วม) |
||
แถว 3: | แถว 3: | ||
==การติดตั้งโปรแกรม== | ==การติดตั้งโปรแกรม== | ||
===ระบบฐานข้อมูลและเว็บเซิร์ฟเวอร์=== | ===ระบบฐานข้อมูลและเว็บเซิร์ฟเวอร์=== | ||
− | + | ระบบตรวจที่พัฒนาขึ้นใช้ระบบฐานข้อมูล [http://www.mysql.com/ MySQL] และพัฒนาด้วยภาษา [http://www.php.net/ php] | |
+ | |||
====ใช้ AppServ==== | ====ใช้ AppServ==== | ||
: ''ยังไม่มีข้อมูล'' | : ''ยังไม่มีข้อมูล'' | ||
+ | |||
+ | |||
+ | ====ติดตั้งตรง==== | ||
+ | ''1. ติดตั้ง MySQL'' | ||
+ | |||
+ | ติดตั้ง [http://dev.mysql.com/downloads/mysql/5.0.html MySQL Community Server 5.0] โดยเลือกติดตั้งหัวข้อ [http://dev.mysql.com/downloads/mysql/5.0.html Windows Essentials] | ||
+ | |||
+ | ''2. ติดตั้ง Apache Webserver'' | ||
+ | |||
+ | ติดตั้ง [http://httpd.apache.org/ Apache Http Server] โดยเลือกติดตั้ง [http://apache.thaiweb.net/httpd/binaries/win32/apache_2.2.8-win32-x86-openssl-0.9.8g.msi แฟ้มติดตั้งนี้] | ||
===ระบบรับโปรแกรมผ่านทางเว็บ=== | ===ระบบรับโปรแกรมผ่านทางเว็บ=== |
รุ่นแก้ไขเมื่อ 09:14, 4 เมษายน 2551
ระบบมีสองส่วน คือส่วนที่เป็นระบบรับโปรแกรมบนเว็บ ซึ่งพัฒนาด้วยภาษา php บนระบบฐานข้อมูล MySQL และส่วนที่เป็นโปรแกรมทำงานที่เซิร์ฟเวอร์สำหรับตรวจโปรแกรม โดยจะเรียก Turbo C หรือ Borland C มาคอมไพล์และตรวจผลลัพธ์โปรแกรม
เนื้อหา
การติดตั้งโปรแกรม
ระบบฐานข้อมูลและเว็บเซิร์ฟเวอร์
ระบบตรวจที่พัฒนาขึ้นใช้ระบบฐานข้อมูล MySQL และพัฒนาด้วยภาษา php
ใช้ AppServ
- ยังไม่มีข้อมูล
ติดตั้งตรง
1. ติดตั้ง MySQL
ติดตั้ง MySQL Community Server 5.0 โดยเลือกติดตั้งหัวข้อ Windows Essentials
2. ติดตั้ง Apache Webserver
ติดตั้ง Apache Http Server โดยเลือกติดตั้ง แฟ้มติดตั้งนี้
ระบบรับโปรแกรมผ่านทางเว็บ
โปรแกรมตรวจ
การคอมไพล์โปรแกรมตรวจ
ลง Dev C++ (4.9.9.2), ตั้ง include paths, แก้ compiler options เพิ่ม -D ON_WINDOWS, ลง libmysql DevPak (เลือก Tools -> Check for Updates/Packages)
การตั้งค่าเริ่มต้น
การสร้างบัญชีผู้ใช้
การเพิ่มโจทย์
การใช้งาน
รายละเอียดเพิ่มเติม
โครงสร้างฐานข้อมูล
ตารางและคอลัมน์ต่าง ๆ มีดังนี้
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');