ผลต่างระหว่างรุ่นของ "418342 ภาคปลาย 2553/คะแนนและการส่งการบ้าน"
ไปยังการนำทาง
ไปยังการค้นหา
-10 การทดสอบระบบเป็นไปได้ด้วยยาก
Cardcaptor (คุย | มีส่วนร่วม) |
Ckw (คุย | มีส่วนร่วม) |
||
แถว 326: | แถว 326: | ||
* F: Search ฟีลด์ 2 (10) | * F: Search ฟีลด์ 2 (10) | ||
* G: Search ฟีลด์ 3 (10) | * G: Search ฟีลด์ 3 (10) | ||
+ | |||
<br/> | <br/> | ||
+ | == คะแนนการบ้าน 2 == | ||
+ | <table border="1"> | ||
+ | <tr> | ||
+ | <td width="10%">รหัสนิสิต</td> | ||
+ | <td width="5%">A(10)</td> | ||
+ | <td width="5%">B(15)</td> | ||
+ | <td width="5%">C(15)</td> | ||
+ | <td width="5%">D(15)</td> | ||
+ | <td width="5%">E(30)</td> | ||
+ | <td width="5%">F(15)</td> | ||
+ | <td width="5%">รวม</td> | ||
+ | <td width="55%">หมายเหตุ</td> | ||
+ | </tr> | ||
+ | |||
+ | <tr> | ||
+ | <td>50040229</td> | ||
+ | <td>10</td> | ||
+ | <td>0</td> | ||
+ | <td>15</td> | ||
+ | <td>0</td> | ||
+ | <td>20</td> | ||
+ | <td>0</td> | ||
+ | <td>45</td> | ||
+ | <td> | ||
+ | * -15 ไม่มี Authentication | ||
+ | * -15 ไม่มี Field Validations | ||
+ | * -15 ไม่มีรายงานรายรับรายจ่าย | ||
+ | </td> | ||
+ | </tr> | ||
+ | |||
+ | <tr> | ||
+ | <td>50042993</td> | ||
+ | <td></td> | ||
+ | <td></td> | ||
+ | <td></td> | ||
+ | <td></td> | ||
+ | <td></td> | ||
+ | <td></td> | ||
+ | <td></td> | ||
+ | <td></td> | ||
+ | </tr> | ||
+ | |||
+ | <tr> | ||
+ | <td>50043058</td> | ||
+ | <td>10</td> | ||
+ | <td>15</td> | ||
+ | <td>15</td> | ||
+ | <td>15</td> | ||
+ | <td>30</td> | ||
+ | <td>15</td> | ||
+ | <td>100</td> | ||
+ | <td> | ||
+ | </td> | ||
+ | </tr> | ||
+ | |||
+ | <tr> | ||
+ | <td>50043082</td> | ||
+ | <td>10</td> | ||
+ | <td>15</td> | ||
+ | <td>15</td> | ||
+ | <td>15</td> | ||
+ | <td>30</td> | ||
+ | <td>15</td> | ||
+ | <td>100</td> | ||
+ | <td> | ||
+ | </td> | ||
+ | </tr> | ||
+ | |||
+ | <tr> | ||
+ | <td>50043140</td> | ||
+ | <td>10</td> | ||
+ | <td>10</td> | ||
+ | <td>15</td> | ||
+ | <td>15</td> | ||
+ | <td>25</td> | ||
+ | <td>0</td> | ||
+ | <td>75</td> | ||
+ | <td> | ||
+ | * -5 สามารถเพิ่มรายการได้แม้ว่ายังไม่ผ่านการล็อกอิน | ||
+ | * -15 เรียกดูรายงานแล้วเกิด error ว่า undefined method 'datetimedo' for nil:NilClass | ||
+ | </td> | ||
+ | </tr> | ||
+ | |||
+ | <tr> | ||
+ | <td>50043173</td> | ||
+ | <td>10</td> | ||
+ | <td>10</td> | ||
+ | <td>15</td> | ||
+ | <td>15</td> | ||
+ | <td>20</td> | ||
+ | <td>5</td> | ||
+ | <td>75</td> | ||
+ | <td> | ||
+ | * -5 แม้ว่าล็อกเอ้าท์แล้วก็ยังสามารถกลับไปทำรายการได้ | ||
+ | * -10 ขาดการจำแนกประเภทรายการรายรับและรายจ่าย | ||
+ | * -10 รายงานขาดความสมบูรณ์ | ||
+ | </td> | ||
+ | </tr> | ||
+ | |||
+ | <tr> | ||
+ | <td>50043215</td> | ||
+ | <td>10</td> | ||
+ | <td>15</td> | ||
+ | <td>15</td> | ||
+ | <td>15</td> | ||
+ | <td>20</td> | ||
+ | <td>5</td> | ||
+ | <td>80</td> | ||
+ | <td> | ||
+ | * -10 ขาดการจำแนกประเภทรายการรายรับและรายจ่าย | ||
+ | * -10 รายงานขาดความสมบูรณ์ | ||
+ | </td> | ||
+ | </tr> | ||
+ | |||
+ | <tr> | ||
+ | <td>50043231</td> | ||
+ | <td>10</td> | ||
+ | <td>15</td> | ||
+ | <td>15</td> | ||
+ | <td>15</td> | ||
+ | <td>20</td> | ||
+ | <td>5</td> | ||
+ | <td>80</td> | ||
+ | <td> | ||
+ | * -10 ขาดการจำแนกประเภทรายการรายรับและรายจ่าย | ||
+ | * -10 รายงานขาดความสมบูรณ์ | ||
+ | </td> | ||
+ | </tr> | ||
+ | |||
+ | <tr> | ||
+ | <td>50043306</td> | ||
+ | <td>10</td> | ||
+ | <td>15</td> | ||
+ | <td>15</td> | ||
+ | <td>15</td> | ||
+ | <td>20</td> | ||
+ | <td>5</td> | ||
+ | <td>80</td> | ||
+ | <td> | ||
+ | * -10 ขาดการจำแนกประเภทรายการรายรับและรายจ่าย | ||
+ | * -10 รายงานยังจำแนกได้ไม่ละเอียด | ||
+ | </td> | ||
+ | </tr> | ||
+ | |||
+ | <tr> | ||
+ | <td>51043214</td> | ||
+ | <td></td> | ||
+ | <td></td> | ||
+ | <td></td> | ||
+ | <td></td> | ||
+ | <td></td> | ||
+ | <td></td> | ||
+ | <td></td> | ||
+ | <td></td> | ||
+ | </tr> | ||
+ | |||
+ | <tr> | ||
+ | <td>50180249</td> | ||
+ | <td></td> | ||
+ | <td></td> | ||
+ | <td></td> | ||
+ | <td></td> | ||
+ | <td></td> | ||
+ | <td></td> | ||
+ | <td></td> | ||
+ | <td></td> | ||
+ | </tr> | ||
+ | |||
+ | <tr> | ||
+ | <td>51180198</td> | ||
+ | <td>0</td> | ||
+ | <td>0</td> | ||
+ | <td>10</td> | ||
+ | <td>10</td> | ||
+ | <td>15</td> | ||
+ | <td>0</td> | ||
+ | <td>35</td> | ||
+ | <td> | ||
+ | * -10 ช่วงเตรียมข้อมูลแล้วมี error </td> | ||
+ | * -10 การทดสอบระบบเป็นไปได้ด้วยยาก | ||
+ | </tr> | ||
+ | |||
+ | <tr> | ||
+ | <td>51180503</td> | ||
+ | <td>0</td> | ||
+ | <td>15</td> | ||
+ | <td>10</td> | ||
+ | <td>15</td> | ||
+ | <td>15</td> | ||
+ | <td>5</td> | ||
+ | <td>60</td> | ||
+ | <td> | ||
+ | * -10 โปรแกรมเกิด routing error | ||
+ | * -10 รายงานไม่เหมาะสมในการใช้งาน</td> | ||
+ | </tr> | ||
+ | </table> | ||
+ | |||
+ | === เกณฑ์การให้คะแนน === | ||
+ | * A: เตรียมข้อมูลเบื้องต้น migration และ seed (10) | ||
+ | * B: Authentication แต่ละผู้ใช้ (15) | ||
+ | * C: CSS และ form layout ที่เหมาะสม (15) | ||
+ | * D: Field Validations (15) | ||
+ | * E: ความสมบูรณ์ในการทำงานของโปรแกรม (30) | ||
+ | * F: รายงานรายรับรายจ่าย (15) | ||
+ | |||
+ | <br/> | ||
== คะแนนการบ้าน 3 == | == คะแนนการบ้าน 3 == | ||
รุ่นแก้ไขเมื่อ 00:39, 22 มีนาคม 2554
การส่งงาน
รหัสประจำตัว | การบ้าน 1 | การบ้าน 2 | การบ้าน 3 |
50040229 | ส่งแล้ว | ส่งแล้ว | ส่งแล้ว |
50042993 | ส่งแล้ว | ส่งแล้ว | ส่งแล้ว |
50043058 | ส่งแล้ว | ส่งแล้ว | ส่งแล้ว |
50043082 | ส่งแล้ว | ส่งแล้ว | ส่งแล้ว |
50043140 | ส่งแล้ว | ส่งแล้ว | ส่งแล้ว |
50043173 | ส่งแล้ว | ส่งแล้ว | ส่งแล้ว |
50043215 | ส่งแล้ว | ส่งแล้ว | ส่งแล้ว |
50043231 | ส่งแล้ว | ส่งแล้ว | ส่งแล้ว |
50043306 | ส่งแล้ว | ส่งแล้ว | ส่งแล้ว |
51043214 | ส่งแล้ว | ||
50180249 | |||
51180198 | ส่งแล้ว | ส่งแล้ว | ส่งแล้ว |
51180503 | ส่งแล้ว | ส่งแล้ว | ส่งแล้ว |
คะแนนการบ้าน 1
รหัสประจำตัว | A (30) | B (10) | C (10) | D (20) | E (10) | F (10) | G (10) | รวม | หมายเหตุ |
50040229 | 30 | 10 | 10 | 10 | 10 | 0 | 0 | 70 |
|
50042993 | 30 | 10 | 2 | 10 | 0 | 0 | 0 | 52 |
|
50043058 | 30 | 10 | 10 | 10 | 0 | 0 | 0 | 60 |
|
50043082 | 30 | 10 | 10 | 20 | 10 | 10 | 10 | 100 | |
50043140 | 30 | 10 | 10 | 10 | 10 | 10 | 10 | 90 |
|
50043173 | 30 | 10 | 10 | 20 | 10 | 0 | 0 | 80 |
|
50043215 | 30 | 10 | 10 | 10 | 10 | 0 | 0 | 70 |
|
50043231 | 30 | 8 | 2 | 10 | 10 | 10 | 10 | 80 |
|
50043306 | 30 | 10 | 10 | 10 | 10 | 10 | 10 | 90 |
|
51043214 | |||||||||
50180249 | |||||||||
51180198 | 30 | 10 | 10 | 10 | 0 | 0 | 0 | 60 |
|
51180503 | 30 | 10 | 10 | 10 | 10 | 10 | 10 | 90 |
|
เกณฑ์การให้คะแนน
- A: migration รันผ่าน (30)
- B: จำนวนฟีลด์ (10)
- C: จำนวน record (10)
- D: หน้า search สามารถแสดงข้อมูลได้เมื่อไม่ใส่ข้อมูล search อะไรเลย (20)
- E: Search ฟีลด์ 1 (10)
- F: Search ฟีลด์ 2 (10)
- G: Search ฟีลด์ 3 (10)
คะแนนการบ้าน 2
รหัสนิสิต | A(10) | B(15) | C(15) | D(15) | E(30) | F(15) | รวม | หมายเหตุ |
50040229 | 10 | 0 | 15 | 0 | 20 | 0 | 45 |
|
50042993 | ||||||||
50043058 | 10 | 15 | 15 | 15 | 30 | 15 | 100 | |
50043082 | 10 | 15 | 15 | 15 | 30 | 15 | 100 | |
50043140 | 10 | 10 | 15 | 15 | 25 | 0 | 75 |
|
50043173 | 10 | 10 | 15 | 15 | 20 | 5 | 75 |
|
50043215 | 10 | 15 | 15 | 15 | 20 | 5 | 80 |
|
50043231 | 10 | 15 | 15 | 15 | 20 | 5 | 80 |
|
50043306 | 10 | 15 | 15 | 15 | 20 | 5 | 80 |
|
51043214 | ||||||||
50180249 | ||||||||
51180198 | 0 | 0 | 10 | 10 | 15 | 0 | 35 |
|
51180503 | 0 | 15 | 10 | 15 | 15 | 5 | 60 |
|
เกณฑ์การให้คะแนน
- A: เตรียมข้อมูลเบื้องต้น migration และ seed (10)
- B: Authentication แต่ละผู้ใช้ (15)
- C: CSS และ form layout ที่เหมาะสม (15)
- D: Field Validations (15)
- E: ความสมบูรณ์ในการทำงานของโปรแกรม (30)
- F: รายงานรายรับรายจ่าย (15)
คะแนนการบ้าน 3
คนที่ได้คะแนน
- 50043058 ได้ 70 คะแนน
- (-4) posts/show: wrong formatting
- (-2) posts/show: wrong comment form redirect
- (-4) posts/index: wrong formatting
- (-2) posts/index: wrong comment link redirect
- (-4) comments/index: wrong formatting
- (-10) tag/show: doesn't follow instruction
- 50043173 ได้ 78 คะแนน
- (-4) posts/show: wrong formatting
- (-4) posts/index: wrong formatting
- (-2) posts/index: wrong comment link redirect
- (-2) comments/index: wrong formatting
- (-4) tag/show: AJAX doesn’t work
- (-2) tag/show: wrong formatting
- (-4) tag/show: display not correct
- 51043214 ได้ 40 คะแนน
- (-60) doesn't do other problem besides 1 and 2
- 51180198 ได้ 70 คะแนน
- (-4) posts/show: wrong formatting
- (-2) posts/index: wrong formatting
- (-2) posts/index: wrong comment link redirect
- (-4) posts/admin: no unpublish
- (-10) posts/edit: doesn't work
- (-2) comments/index: wrong formatting
- (-4) tag/show: AJAX doesn't work
- (-2) tag/show: wrong formatting
- 51180503 ได้ 78 คะแนน
- (-2) posts/show: wrong formatting
- (-2) posts/index: wrong comment link redirect
- (-4) posts/edit: no tag input
- (-6) posts/edit: all redirects are wrong
- (-2) comments/index: wrong formatting
- (-6) tags/show: cannot edit tag, so cannot show if it's correct
คนที่ไม่ได้คะแนนเนื่องจากลอกกัน
- 50042993
- 50040229
- 50043082
- 50043140
- 50043215
- 50043231
- 50043360
ฟังก์ชัน update ใน app/controllers/posts_controller.rb (Pattern 1)
50042993 | 50043082 | 50043215 | 50043231 | 50043360 |
<geshi lang="ruby"> def update @post = Post.find(params[:id]) type = params['post']['buttonType'] params['post'].delete('buttonType') tags = params['post']['tags'] arrayTag = [] tags.split(',').each do |tag| t = Tag.new t.name = Tag.normalize_name(tag) arrayTag << t end params['post']['tags'] = arrayTag if type == '1' redirect_action = 'admin' elsif type == '2' redirect_action = 'edit' elsif type == '3' params['post']['published_at'] = Time.now.getutc redirect_action = 'index' end </geshi> |
<geshi lang="ruby"> def update @post = Post.find(params[:id]) buttontype = params['post']['buttontype'] params['post'].delete('buttontype') tag_array = [] params['post']['tags'].split(',').each do |t| tag = Tag.new tag.name = Tag.normalize_name(t) tag_array << tag end if buttontype == '1' redirect_action = 'admin' elsif buttontype == '2' redirect_action = 'edit' elsif buttontype == '3' params['post']['published_at'] = Time.now.getutc redirect_action = 'index' end params['post']['tags'] = tag_array </geshi> |
<geshi lang="ruby"> def update @post = Post.find(params[:id]) type = params['post']['buttonType'] params['post'].delete('buttonType') tags = params['post']['tags'] arrayTag = [] tags.split(',').each do |tag| t = Tag.new t.name = Tag.normalize_name(tag) arrayTag << t end params['post']['tags'] = arrayTag if type == '1' redirect_action = 'admin' elsif type == '2' redirect_action = 'edit' elsif type == '3' params['post']['published_at'] = Time.now.getutc redirect_action = 'index' end </geshi> |
<geshi lang="ruby"> def update @post = Post.find(params[:id]) type = params['post']['buttontype'] params['post'].delete('buttontype') tag_array = [] params['post']['tags'].split(',').each do |t| tag = Tag.new tag.name = Tag.normalize_name(t) tag_array << tag end if type == '1' redirect_action = 'admin' elsif type == '2' redirect_action = 'edit' elsif type == '3' params['post']['published_at'] = Time.now.getutc redirect_action = 'index' end params['post']['tags'] = tag_array </geshi> |
<geshi lang="ruby"> def update @post = Post.find(params[:id]) buttontype = params['post']['buttontype'] params['post'].delete('buttontype') tag_array = [] params['post']['tags'].split(',').each do |t| tag = Tag.new tag.name = Tag.normalize_name(t) tag_array << tag end if buttontype == '1' redirect_action = 'admin' elsif buttontype == '2' redirect_action = 'edit' elsif buttontype == '3' params['post']['published_at'] = Time.now.getutc redirect_action = 'index' end params['post']['tags'] = tag_array </geshi> |
ฟังก์ชัน update ใน app/controllers/posts_controller.rb (Pattern 2)
50040229 | 50043140 |
<geshi lang="ruby"> def update @post = Post.find(params[:id]) buttontype = params['post']['buttontype'] params['post'].delete('buttontype') tag_array = [] for t in params['post']['tags'].split(',') tag = Tag.new tag.name = Tag.normalize_name(t) tag_array << tag end if buttontype == '2' redirect_action = 'edit' elsif buttontype == '3' params['post']['published_at'] = Time.now.getutc redirect_action = 'index' end params['post']['tags'] = tag_array respond_to do |format| if @post.update_attributes(params[:post]) flash[:notice] = 'Post was successfully updated.' if buttontype == '1' format.html { redirect_to :action=> "admin",:id => 0 } else format.html { redirect_to :action=> redirect_action } end format.xml { head :ok } else format.html { render :action => "edit" } format.xml { render :xml => @post.errors, :status => :unprocessable_entity } end end end </geshi> |
<geshi lang="ruby"> def update @post = Post.find(params[:id]) submitmode = params['post']['submitmode'] params['post'].delete('submitmode') tag_array = [] for t in params['post']['tags'].split(',') tag = Tag.new tag.name = Tag.normalize_name(t) tag_array << tag end if submitmode == 'sc' redirect_action = 'edit' elsif submitmode == 'p' params['post']['published_at'] = Time.now.getutc redirect_action = 'index' end params['post']['tags'] = tag_array respond_to do |format| if @post.update_attributes(params[:post]) flash[:notice] = 'Post was successfully updated.' if submitmode == 's' format.html { redirect_to :action=> "admin",:id => 0 } else format.html { redirect_to :action=> redirect_action } end format.xml { head :ok } else format.html { render :action => "edit" } format.xml { render :xml => @post.errors, :status => :unprocessable_entity } end end end </geshi> |