A.HTML編碼規範
1.縮進php
縮進4個空格,不使用tab或者混合tab和空格鍵。css
2.大小寫問題html
全部的代碼都應是小寫的,包括元素名稱、屬性,屬性值(除非text或CDATA的內容)、選擇器、css屬性、屬性值(字符串除外),如:
1) bgColor 改成 bgcolor
2) http-equiv="Content-Type" 改成http-equiv="content-type"
可是<!DOCTYPE
要按規定大寫。sql
3.標籤數據庫
1)html編碼中原先就有關閉標記的,如:
<html><body><div><table><tr><td></td></tr></table></div></body></html>,
則必須按規定關閉。數組2)原先屬於獨立的不帶關閉標記的標籤,則須要在結束前的「>」前加「/」,如
<meta><img><br><link>
等,要寫成<meta xxxxxxxxxxxxx /><img xxxxxxxxxxx /><br />,<link xxxxxxxxxxx />
框架3)
<style>
標籤要寫到head內,不能寫到body中。<script></script>
標籤要寫在head 或 body 內,若是不是必須立刻加載的,建議寫在</body>
以前。數據庫設計
4.註釋函數
1)註釋放置的位置:對於比較短的註釋(如變量的解釋),不用另起一行註釋,對於比較長的註釋,要另起一行註釋。ui
2)對於每一個變量名,每一個函數,都要註釋,對於一些較複雜的循環,要註釋該循環是爲了作什麼。
3)一個工程應有一個統一的頭文件註釋,以說明整個工程的信息、建立日期、版本等等。
4)不要在註釋內容中使用中橫線 –。註釋方法:
<!--註釋的內容-->
5.屬性
各屬性的值必須加英文雙引號,如:
1)<table width=800 border=1>
必須寫爲<table width=」 800」 border=」 1」>
2)
<link href=css.css type=text/css rel=stylesheet />
寫爲<link href=」 css.css」 type=」 text/css」 rel=」 stylesheet」 />
3)給全部的屬性賦一個值
這一點,特別須要注意的是,對於type=checkbox的input標籤,其checked屬性,須要按以下方式書寫:
<input type=」checkbox」 id=」mck」 value=」1″ checked=」1″ />
6項目命名規範
用項目對應的英文單詞命名。
B.PHP編碼規範
1.文件格式
1) 對於只含有 php 代碼的文件,咱們將在文件結尾處忽略掉 "?>" 。這是爲了防止多餘的空格或者其它字符影響到代碼。
2)縮進應該可以反映出代碼的邏輯結果,儘可能使用四個空格,禁止使用製表符TAB。
3) 變量賦值必須保持相等間距和排列。
4) 每行代碼長度應控制在80個字符之內,最長不超過120個字符。
5)每行結尾不容許有多餘的空格。
2.命名約定
1)類文件都是以「.class.php「爲後綴,且類文件名只容許字母,使用駝峯法命名,而且首字母大寫,例如:DbMysql.class.php 。
2) 配置和函數等其餘類庫文件以外的文件通常是分別以「.inc.php「和」.php「爲後綴,且文件名命名使用小寫字母和下劃線的方式,多個單詞之間如下 劃線分隔,例如config.inc.php , common.php,install_function.php 。
3) 類名和文件名一致,且類名只容許字母,例如 UserAction類的文件命名是UserAction.class.php, InfoModel類的文件名是InfoModel.class.php 。
4) 控制器類以Action爲後綴,例如 UserAction、InfoAction ,模型類以Model爲後綴,例如UserModel、InfoModel ,其餘類也分別以相應分類爲後綴,例如Service 、Widget。
5) 函數的命名使用小寫字母和下劃線的方式,且越詳細越好,應該可以描述清楚該函數的功能,例如 get_client_ip 。
6)類中的常量 constant 和全局範圍內常量define,只能由大寫字母和下劃線組成,各個單詞之間如下劃線分割。
7)局部變量的字母都使用小寫,使用
「_」
做爲每一個詞的分界。如:$php_var;
8)類屬性,使用駱駝命名法命名,與函數、方法的參數命名方法相同;
9) 全局變量,字母都使用大寫,使用
「_」
做爲每一個詞的分界,公共庫中無特殊需求不使用全局變量。
10)命名必須具備描述性,但務求簡練。不要在變量名中使用長句。一般在變量名中使用一對詞語(使用下劃線間隔)對變量進行簡要描述這種方式更好。
C.編碼風格
php 代碼必須以完整的形式來定界(<?php … ?>)
,即不要使用php 短標籤(<? … ?>)
,且保證在關閉標籤後不要有任何空格。
當一個字符串是純文本組成的時候(即不含有變量),則必須老是以單引號(')做爲定界符。例如:
$a = 'Example String';
當用 array 類型符號來構造數組的時候,必須在每一個逗號以後加上一個空格來加強可讀性。例如:$sampleArray = array(1, 2, 3, 'Think', 'SNS');
當使用 array 類型符聲明關聯數組的時候,咱們鼓勵把它分紅多個行,只是咱們必須同時保證每行的鍵與值的對齊,以保持美觀。例如:
$sampleArray = array( 'firstKey' => 'firstValue', 'secondKey' => 'secondValue' );
大括號的開始必須在類名的下一行頂格。例如:
lass Think { // ... }
每一個 php 文件只容許聲明一個類。在類文件裏面寫其它代碼是容許的,但並不鼓勵這樣作。假如真要附加代碼的話,必須用空行來分隔。
不容許用 var 符號來聲明變量,類成員變量必須以 private,protected 和 public 來聲明。其次,把類成員聲明爲 public 而直接引用雖然是容許的,但一般更好的方法是使用 get 和 set 方法來訪問類成員。
靜態 static 方法應該聲明其做用域,且不該該再被聲明爲 private 私有,而應該爲 protected 或者public ,若是隻是不想被子類繼承,則應該用 final 聲明它們。
函數或方法的初始大括號應該在函數聲明的下一行頂格。例如:
function get_client_ip() { // … }
在函數或方法名與參數括號之間不容許出現多餘的空格。例如:
function get_client_ip(){}
函數和方法參數必須用逗號+空格來分隔。
基於"if", "else"和"else if"的條件控制裏,咱們必須用空格間隔開語句和括號,大括號的開始 "{" 必須與條件控制語句位於同一行,結束 "}" 必須老是獨佔一行且頂格,控制流程內容必須用四個空格進行縮進,且不使用"elseif"。
if ($condition) { // ... } else if ($_condition) { // ... } else { // ... }
在條件控制語句的條件括號內,必須用空格將操做符與其它元素隔開。若是遇到很長的邏輯判斷,則鼓勵用內嵌括號來分割各個邏輯。例如:
if (($a != 2) and ($b == 1)) { $a = $b; }
1.學生表及各字段做用
Student_id:學生的學號,是該表的主鍵,是非負整型數,長度爲10位
Student_name:學生的姓名,類型是長度爲20的字符型變量
Student_password:學生生通過加密後的密文,之因此用定長爲41的字符,是因通過函數加密後的密碼,長度爲40位,防止數據溢出
Student_sex:學生的性別,類型是長度爲10的字符型變量
Student_school:學生的學校,類型是長度爲40的字符型變量
Student_major:學生的專業,類型是長度爲40的字符型變量
Student_class:學生的班級,類型是長度爲20的字符型變量
2.教師表及各字段做用
Teacher_id:教師的工號,是該表的主鍵,是非負整型數,長度爲10位
Teacher_name:教師的姓名,類型是長度爲20的字符型變量
Teacher_password:教師生通過加密後的密文,之因此用定長爲41的字符,是因通過函數加密後的密碼,長度爲40位,防止數據溢出
Teacher_course:教師所教的科目,類型是長度爲40的字符型變量
Teacher_school:教師的學校,類型是長度爲40的字符型變量
Teacher_major:教師的專業,類型是長度爲40的字符型變量
3.管理員表及各字段做用
Admin_id:管理員的ID號,是該表的主鍵,是非負整型數,長度爲10位
Admin_name:管理員的姓名,類型是長度爲20的字符型變量
Admin_password:管理員通過加密後的密文,之因此用定長爲41的的字符,是由於通過函數加密後的密碼,長度爲40位,防止數據溢出。
4.試題表及各字段做用
Q_id:一每道試題的惟一標記
Opt1, Opt2, Opt3, Opt4分別爲該題目的選項內容
Q_answer:該題目的正確答案,類型爲整型,當題目爲判斷題時,用1和2表示對與錯;當題目類型爲單選題時,用1,2,4,8分別表明A,B,C,D選項當題目類型爲多選題時,用1,2,4,8或這四個數字之間的兩兩組合的值(3,5,6,9,10,12),或者三三組合的值(7,11,13,14)表示答案。之因此用1,2,4,8做爲基數,是由於他們的值相加後都無重複值出現,並且作循環時也方便,能夠分別寫20,21,22,23
Subject:用於表示該題目所屬的科目
Chapter:用於表示該題目所屬章節
Difficulty:用於表示該題目的難度係數。
5. 考試表及各字段做用
E_id:用於表示考試的ID號,是考試表的惟一標式符
E_name:用於表示考試的名稱
E_nums:用於記錄該考試所包含的試題總數
E_score:用於記錄該考試的卷面總分
E_open_close:該字段是考試開放與否的標誌位,默認爲0,0爲開放,1爲關閉該考試,只有被開放的考試,才能夠供學生參加考試,被關閉的考試,在學生選擇考試時,將不會出如今選擇考試的考試列表當中
Subject:用於記錄該考試所表明的科目。
6.exam_paper表及各字段做用
E_id:與exam表的的E_id相對應,用於表示該試卷所對應的考試
Q_id:與question表的Q_id相對應,表示該試卷上的題目對應試題庫的哪一題
E_id:與Q_id共同做爲exam_paper表的共同主鍵
7. answer表及各字段做用
E_id字段:用於記錄考試的ID號,與exam表的ID號相對應
Q_id字段:用於記錄試題對應的試題庫中的ID號,與qusetion表的ID號相對應
Student_id字段:用於記錄學生的學號,與student表的學號相對應
Eq_id字段:用於記錄該題目在學生作試卷時的順序
Student_answer字段:用於記錄學生的答案
本表用E_id,Q_id以及Student_id三個字段做爲該表的主鍵。
8. score表及各字段做用
Student_id:用於表示學生的學號,與student表的Student_id相對應
E_id:用於表示考試的編號,與exam表的E_id相對應
Student_score:用於表示在某考試上得到的分數
Rank:用於表示考試所得分數對應的分數等級,等級分爲A+,A,B+,B等等。
該表用E_id和Student_id共同做爲主鍵
截圖以下:
截圖以下:
1.系統的總體框架
2.主要功能流程圖
學生模塊
管理員模塊
6、得分(總分40分)
張潔:10分 陳玉紅:10分 袁湘華 :10分 楊美玉 :10分