Knowledge 知識問答伺服器

2021-08-25 10:45:39 字數 2913 閱讀 4276

知識問答伺服器

功能需求:

1. 實現使用者登陸驗證(按照使用者許可權進行劃分,主要分為管理員和普通訪問者兩種許可權)

2. 實現普通使用者的註冊(需要輸入使用者名稱和密碼)

3. 實現知識問答題庫的錄入(許可權為管理員)

4. 實現知識問答題目的隨機選題(從題庫中隨機選出10題)

5. 普通使用者成功登陸後,伺服器將傳送題目給使用者,每回只發一題,使用者答完後,伺服器立即驗證使用者的答案是否正確,並將結果發給使用者,然後傳送下一題的題目。

6. 使用者完成所有的題目後伺服器將會把使用者的最終的得分以及答題的正確率發給使用者。

7. 實現伺服器日誌用於儲存使用者訪問的時間,離開的時間和使用者的答題結果。(伺服器日誌檔案由3個檔案組成,每個檔案有固定大小1m,寫滿後自動切換寫入下乙個檔案,同時將寫滿的檔案進行歸檔儲存,即儲存到壓縮檔案)

8. 知識問答伺服器能夠實現多人同時訪問。

9. 以上所述的檔案均為屬性檔案(包括題庫,使用者驗證)

10. 

日誌檔案為*.log檔案

專案時間:3個工作日

知識考察點:

io流,多執行緒,socket通訊,properties,map,set,list,hashmap,hashset,arraylist,陣列,staitc初始化塊 ,final修飾符,date類,file類,遞迴,getset器,構造器,方法的過載與覆蓋.

啟動伺服器類:/**

* 知識問答伺服器

*/public class knowledgeserver

} catch (ioexception e) }

public static void main(string args) }

核心類:

public class knowledgesession extends thread  catch (filenotfoundexception e)  catch (ioexception e) 

} private socket s;

private bufferedreader br;

private printstream ps;

private string intime; //使用者登入時間

private string outtime; //使用者退出時間

private string result; //使用者得分結果

private string username; //使用者名稱名

public knowledgesession(socket s) catch (ioexception e) }

@override

public void run()

/**

* 給客戶端傳送 選擇服務 主介面

*/private void sendmainui() else

} catch (ioexception e)

}

/**

* 退出方法

*/private void doquit() catch (ioexception e)

} }

/**

* 管理員登入方法,登入成功則錄入題目

*/private void doadminlogin() while("y".equalsignorecase(br.readline()));

}else

ps.println();

sendmainui(); //重新傳送主介面

} catch (ioexception e)

}

/**

* 使用者登入方法,登入成功即可答題

*/private void dologin() catch (interruptedexception e)

}ps.println();

sendquizs();

}else

} catch (ioexception e)

}

/**

* @throws ioexception

* 隨機出題方法

*/private void sendquizs() throws ioexception

ps.println("***************************");

ps.println("請認真做好答題準備,遵守考場紀律!");

ps.println("***************************");

int count = 0; //題數

int right = 0; //答題正確數

iteratorit = set.iterator();

while(it.hasnext())

string rightanswer = quizs.getproperty(key);

if(answer.equalsignorecase(rightanswer))else

ps.println();

} result = right*100/count+"分";

ps.println("答題完畢!本次答題總共【"+count+"】道,您答對【"+right+"】道,正確率為:【"+right*100/count+"%】,得分為【"+right*100/count+"】分!");

sendmainui();

}

/**

* 使用者註冊方法

*/private void doregister() else

}else

} catch (ioexception e)

}}

問答基礎知識

傳統搜尋引擎的缺點 1,相關資訊太多,目前傳統的搜尋引擎返回了太多相關網頁,使用者不容易快速定位到真正想要的資訊上。對傳統搜尋引擎的改進 2,探索將搜尋引擎從字串層面推進到實體層面,幵發出真正理解使用者搜尋意圖,能夠直接回答人們所提問題的系統,這樣的系統稱之為自動問答系統qa question an...

python知識點智慧型問答 智慧型問答

自從 一行python 實現夸夸聊天機械人 發布後,有不少同學期待著夸夸聊天機械人的公升級。但是巧婦難為無公尺之炊,所以我準備了夸夸語料庫 為了夸夸聊天機械人,爬了乙份夸夸語料庫 有了夸夸問答語料之後,針對聊天機械人或者智慧型問答就有很多方法可以操作,最直接的乙個想法就是計算問題與夸夸語料庫中的標題...

WF基礎知識問答

shivprasad koirala在codeproject上發表了一篇文章windows workflow foundation faq,介紹了wf的基礎知識。這對於理清wf的整個脈絡有一定幫助,摘譯如下。什麼是windows工作流基礎?wwf 張逸注 微軟的官方簡稱為wf 是一種程式設計模型,用...