国产日韩欧美一区二区三区三州_亚洲少妇熟女av_久久久久亚洲av国产精品_波多野结衣网站一区二区_亚洲欧美色片在线91_国产亚洲精品精品国产优播av_日本一区二区三区波多野结衣 _久久国产av不卡

?

基于WPF心理檢測(cè)系統(tǒng)的設(shè)計(jì)與實(shí)現(xiàn)

2020-04-15 02:50張利利李仁義惠鐸鐸
關(guān)鍵詞:測(cè)試人員數(shù)據(jù)管理密鑰

張利利,李仁義,惠鐸鐸,馬 進(jìn)

(1.空軍軍醫(yī)大學(xué) 航空航天醫(yī)學(xué)教育部重點(diǎn)實(shí)驗(yàn)室,陜西 西安 710032;2.西安熱工研究院有限公司,陜西 西安 710054)

0 引 言

健康是人力資源的重要組成部分,是人類(lèi)社會(huì)發(fā)展的永恒追求[1]。然而,目前中國(guó)公民的心理健康狀況卻不容樂(lè)觀。據(jù)世界衛(wèi)生組織統(tǒng)計(jì),中國(guó)目前擁有重癥精神疾患病人高達(dá)1 600萬(wàn)人;70%左右的人處于精神“亞健康”狀態(tài),有1.9億人需要在一生之中接受專業(yè)的心理咨詢或心理治療;在年滿20歲的成年人中,有心理障礙的患者每年遞增11.3%;大約有3 000萬(wàn)左右的17歲以下未成年人有各類(lèi)學(xué)習(xí)、情緒和行為障礙,在大學(xué)生中16%~25.4%的人有心理障礙[2-3]。因此,國(guó)家明確提出了“要注重人文關(guān)懷和心理疏導(dǎo)”,即心理健康研究與教育要以提高國(guó)民心理健康水平,使人們過(guò)上幸福而有尊嚴(yán)的生活,提高中華民族的人口素質(zhì)為根本目標(biāo)。

1 WPF簡(jiǎn)介

WPF是微軟提供的一款基于.NET Framework 3.0的圖形化桌面應(yīng)用設(shè)計(jì)軟件[4-6]。與之前出現(xiàn)的其他技術(shù)相比,WPF發(fā)生了根本性的變化,WPF是基于DirectX引擎的,它支持GPU硬件的加速。高級(jí)別的線程進(jìn)行繪制,提高使用者的體驗(yàn)。另外,它還對(duì)矢量圖有超強(qiáng)的支持,兼容支持2D和3D繪圖。微軟還提供了專門(mén)的可擴(kuò)展應(yīng)用程序標(biāo)記語(yǔ)言XAML,對(duì)整個(gè)界面布局進(jìn)行合理的調(diào)整,而且簡(jiǎn)化了用戶界面的開(kāi)發(fā)過(guò)程,使用XAML來(lái)實(shí)現(xiàn)WPF有以下優(yōu)點(diǎn)[7-9]:

(1)代碼編寫(xiě)相對(duì)簡(jiǎn)單、易讀性較高;

(2)可以使用拖放工具的方式生成XAML文件;

(3)提供了一種語(yǔ)言用來(lái)定義與程序邏輯代碼分離的用戶界面[10],XAML使得界面開(kāi)發(fā)和功能開(kāi)發(fā)代碼分離,有利于開(kāi)發(fā)團(tuán)隊(duì)的合理分工,提高開(kāi)發(fā)效率。

2 系統(tǒng)設(shè)計(jì)

2.1 數(shù)據(jù)庫(kù)設(shè)計(jì)

本系統(tǒng)有兩個(gè)數(shù)據(jù)庫(kù),后臺(tái)數(shù)據(jù)管理端采用MySql作為數(shù)據(jù)庫(kù)管理工具。MySql數(shù)據(jù)庫(kù)是當(dāng)今使用比較多的WEB數(shù)據(jù)庫(kù)系統(tǒng),它支持絕大多數(shù)較流行的操作系統(tǒng)平臺(tái),其次由于它的體積小、多用戶、多線程,可以處理大量的數(shù)據(jù)并且處理速度要比一些商業(yè)數(shù)據(jù)庫(kù)快2~3倍[11]。SQL Server 2008因其具有系統(tǒng)集成方便、可靠性和安全性以及性能比高等優(yōu)點(diǎn)[12]而被選為心理檢測(cè)服務(wù)端數(shù)據(jù)庫(kù)管理工具。

兩種數(shù)據(jù)庫(kù)的結(jié)構(gòu)基本相同,分別建有主試人員信息表、測(cè)試人員信息表、測(cè)試計(jì)劃表、測(cè)試項(xiàng)目表、能力和人格得分表以及原始數(shù)據(jù)表。

2.2 XAML與數(shù)據(jù)綁定

XAML的引用使得WPF下用戶界面設(shè)計(jì)代碼與程序邏輯代碼的分離得以實(shí)現(xiàn)[13]。對(duì)于結(jié)構(gòu)化、規(guī)范化的心理測(cè)試數(shù)據(jù),采用XAML綁定可以顯著提高存儲(chǔ)及管理效率。數(shù)據(jù)綁定實(shí)質(zhì)上是綁定目標(biāo)與綁定源之間的橋梁,它實(shí)現(xiàn)了數(shù)據(jù)源及綁定目標(biāo)的雙向綁定,數(shù)據(jù)源變化時(shí)綁定目標(biāo)也自動(dòng)跟隨數(shù)據(jù)源一起發(fā)生變化;反之,綁定目標(biāo)的變化同樣也會(huì)使得綁定源發(fā)生相應(yīng)的變化。其綁定模型如圖1所示。

每個(gè)綁定都必須具備4個(gè)組件:綁定源、綁定目標(biāo)對(duì)象、目標(biāo)屬性和綁定源中值的路徑。目標(biāo)屬性必須為依賴項(xiàng)屬性,綁定源對(duì)象并不限于自定義的CLR對(duì)象,WPF數(shù)據(jù)綁定支持CLR對(duì)象和XML形式的數(shù)據(jù)。具體實(shí)現(xiàn)代碼片段如下:

圖1 數(shù)據(jù)綁定模型

……

……

Public Class PeopleInfo:INotifyPropertyChanged:

{

Private string strName;

Public string StrName

{

get{return strName;}

set{

strName=value;

OnPropertyChanged(new PropertyChangedEventArgs(“StrName”));

}

}

}

頁(yè)面初始化時(shí)需要添加的代碼如下:

pinfo.DataContext=((App) Application.Current).peopleinfo;

2.3 系統(tǒng)功能設(shè)計(jì)

該系統(tǒng)包括3部分內(nèi)容:后臺(tái)數(shù)據(jù)管理端、心理檢測(cè)服務(wù)端和客戶端。

(1)后臺(tái)數(shù)據(jù)管理端是對(duì)各個(gè)測(cè)試站點(diǎn)的數(shù)據(jù)進(jìn)行匯總,供高級(jí)管理員使用,具有新建主試人員、新建和修改測(cè)試計(jì)劃、修訂常模文件并對(duì)上傳的數(shù)據(jù)進(jìn)行查詢、分析和打印等功能。

(2)心理檢測(cè)服務(wù)端供主試人員使用,完成與后臺(tái)數(shù)據(jù)管理端的數(shù)據(jù)同步、測(cè)試任務(wù)管理和統(tǒng)計(jì)查詢。

數(shù)據(jù)同步是指將本機(jī)數(shù)據(jù)與后臺(tái)數(shù)據(jù)管理端數(shù)據(jù)保持同步的功能,它包含數(shù)據(jù)的上傳和下載。其中下載分為常模文件的下載、主試人員信息的下載、測(cè)試計(jì)劃的下載和測(cè)試人員的下載;上傳是將本站點(diǎn)當(dāng)天做完的所有測(cè)試數(shù)據(jù)上傳至后臺(tái)數(shù)據(jù)管理端。此功能必須在互聯(lián)網(wǎng)連接正常的情況下進(jìn)行。

測(cè)試任務(wù)管理是對(duì)測(cè)試任務(wù)進(jìn)行管理,包括設(shè)定測(cè)試人員,數(shù)據(jù)處理和結(jié)果打印。設(shè)定測(cè)試人員是將數(shù)據(jù)同步模塊下載的測(cè)試計(jì)劃分配給需要進(jìn)行測(cè)試的人員;數(shù)據(jù)處理是對(duì)已完成測(cè)試的項(xiàng)目進(jìn)行數(shù)據(jù)處理并給出相應(yīng)的報(bào)表;結(jié)果打印有單個(gè)打印和批量打印。

統(tǒng)計(jì)查詢是對(duì)數(shù)據(jù)庫(kù)中存取的數(shù)據(jù)進(jìn)行查詢、分析,并給出總體報(bào)告。它包括原始數(shù)據(jù)的查詢、Excel導(dǎo)出和總體報(bào)告的生成。原始數(shù)據(jù)的查詢是查詢某個(gè)人某項(xiàng)測(cè)試項(xiàng)目的數(shù)據(jù),如答案和反應(yīng)時(shí)間等;Excel導(dǎo)出是導(dǎo)出測(cè)試項(xiàng)目的結(jié)果數(shù)據(jù);總體報(bào)告是生成某時(shí)間段內(nèi)的總體報(bào)告以及測(cè)試合格與否的報(bào)告。

(3)客戶端。

客戶端是基于Android開(kāi)發(fā)的,完成測(cè)試人員的注冊(cè)和測(cè)試(文中不做詳細(xì)介紹)。

2.4 系統(tǒng)的測(cè)試流程

采用B/S模式實(shí)現(xiàn)心理檢測(cè)系統(tǒng)和后臺(tái)數(shù)據(jù)管理端的數(shù)據(jù)同步,對(duì)于心理檢測(cè)系統(tǒng)與客戶端平板之間則是通過(guò)局域網(wǎng)實(shí)現(xiàn)通信的。

供高級(jí)管理員使用的后臺(tái)數(shù)據(jù)管理端建立好主試人員信息和測(cè)試計(jì)劃,其中每個(gè)主試人員都有相應(yīng)的權(quán)限。心理檢測(cè)系統(tǒng)服務(wù)端在保證互聯(lián)網(wǎng)連接正常的情況下,下載本次的測(cè)試計(jì)劃以及完成測(cè)驗(yàn)的所有的測(cè)試人員信息,下載完畢后,就可以斷開(kāi)互聯(lián)網(wǎng),然后通過(guò)局域網(wǎng)和客戶端連接,等待客戶端的注冊(cè)信息。如果有新注冊(cè)的測(cè)試人員信息,則根據(jù)其是否要求被重測(cè)或者是新用戶的標(biāo)識(shí)為其分配測(cè)試任務(wù),分配完成之后,再次等待客戶端對(duì)測(cè)試任務(wù)進(jìn)行作答,作答完畢之后,數(shù)據(jù)會(huì)自動(dòng)上傳到數(shù)據(jù)庫(kù),主試人員也可以同時(shí)看到哪些測(cè)試人員已經(jīng)完成任務(wù),便可直接對(duì)其進(jìn)行數(shù)據(jù)處理,給出測(cè)試結(jié)論。至此所有測(cè)試結(jié)束,然后再次在保證互聯(lián)網(wǎng)連接正常的情況下,將已給出測(cè)試結(jié)論的人員信息再次上傳至后臺(tái)管理端數(shù)據(jù)庫(kù)。其流程如圖2所示。

圖2 流 程

3 關(guān)鍵技術(shù)

對(duì)于本系統(tǒng)而言,數(shù)據(jù)需要在廣域網(wǎng)上進(jìn)行頻繁的傳輸,那么其安全性和完整性就顯得非常重要。為了實(shí)現(xiàn)其安全性,必須將數(shù)據(jù)經(jīng)過(guò)加密之后再傳輸。

目前,比較流行的加密方式有兩種,即對(duì)稱加密算法和非對(duì)稱加密算法。對(duì)稱加密算法是指加密和解密所用的密鑰相同,此種加密方式的加密速度非???,適合頻繁發(fā)送數(shù)據(jù)的系統(tǒng)。非對(duì)稱加密算法即加密和解密的密鑰是不同的,這種加密解密的速度非常慢,適合偶爾發(fā)送數(shù)據(jù)的系統(tǒng)。

本系統(tǒng)中的數(shù)據(jù)傳輸比較頻繁,所以通過(guò)高級(jí)加密標(biāo)準(zhǔn)AES的對(duì)稱加密算法對(duì)數(shù)據(jù)進(jìn)行加密之后在網(wǎng)絡(luò)上進(jìn)行傳輸,從而保證了數(shù)據(jù)的安全性。

其加密流程如圖3所示。

圖3 加密流程

明文P:沒(méi)有經(jīng)過(guò)加密的數(shù)據(jù)。

密鑰K:用來(lái)加密明文的密碼。它是接收方和發(fā)送方協(xié)商而產(chǎn)生的,但不可以在網(wǎng)絡(luò)上傳輸,否則會(huì)導(dǎo)致密鑰泄露。

AES加密函數(shù):把明文P和密鑰K作為加密函數(shù)的參數(shù)輸入,則加密函數(shù)會(huì)輸出密文C。

密文C:經(jīng)加密函數(shù)處理后的數(shù)據(jù)。

本系統(tǒng)使用Rfc2898DeriveBytes(pwd,salt)類(lèi),即通過(guò)使用密碼、salt值派生密鑰。其中pwd為派生密鑰的密碼,salt為用于派生密鑰的密鑰,其大小必須等于或大于8字節(jié)。

實(shí)現(xiàn)如下:

AesManaged aes=new AesManaged();

byte[] salt=new byte[8];

……

Rfc2898DeriveBytes k1=new Rfc2898DeriveBytes(pwd,salt);

aes.key=k1.GetBytes(aes.Keysize/8)

MemoryStream ms=new MemoryStream();

cs=new CryptoStream(ms , aes.CreateEncryptor(), CryptoStreamMode.Write);

retrun ms.toArray(); //返回加密后的數(shù)據(jù)流

數(shù)據(jù)的完整性是通過(guò)事務(wù)來(lái)實(shí)現(xiàn)的,它是一個(gè)操作的集合,這些操作要么執(zhí)行成功,要么執(zhí)行失敗,回滾到最初的狀態(tài),從而保證了數(shù)據(jù)的完整性。其操作流程如圖4所示。

圖4 事務(wù)的操作流程

經(jīng)常用到的方法有以下三種[14]:

(1)直接將數(shù)據(jù)操作的語(yǔ)句寫(xiě)入到sql中。

在存儲(chǔ)過(guò)程中使用BEGIN TRANS,COMMIT TRANS,ROLLBACK TRANS實(shí)現(xiàn)。

優(yōu)點(diǎn):一個(gè)單獨(dú)的操作就可以包含所有的事務(wù)邏輯;運(yùn)行事務(wù)的性能最好;獨(dú)立于應(yīng)用程序。

缺點(diǎn):僅在數(shù)據(jù)庫(kù)調(diào)用中使用事務(wù)的上下文;數(shù)據(jù)庫(kù)代碼和數(shù)據(jù)庫(kù)系統(tǒng)的自身有關(guān)。

(2)使用ADO.Net實(shí)現(xiàn)。

使用ADO.Net實(shí)現(xiàn),這種方式的優(yōu)點(diǎn)是既可以選擇在中間層也可以選擇在數(shù)據(jù)層來(lái)實(shí)現(xiàn)事務(wù)的管理。

優(yōu)點(diǎn):簡(jiǎn)單性;數(shù)據(jù)庫(kù)代碼與數(shù)據(jù)庫(kù)系統(tǒng)無(wú)關(guān)。

缺點(diǎn):事務(wù)不能在多個(gè)數(shù)據(jù)庫(kù)連接中調(diào)用。

(3)COM+事務(wù)。

使用DTC作為事務(wù)管理器和事務(wù)協(xié)調(diào)器在分布式環(huán)境中運(yùn)行事務(wù)。

本系統(tǒng)選用ADO.Net實(shí)現(xiàn)事務(wù),具體代碼如下:

Try()

{

SqlConnection sqlconn=new SqlConnection (strcon);

//建立連接

SqlCommand cmd=new SqlCommand();

cmd.Connection=sqlconn;

SqlTransaction sqltran; //創(chuàng)建事務(wù)

sqlconn.Open();

sqltran=sqlconn.BeginTransaction(); //開(kāi)始事務(wù)

cmd.Transaction=sqltran;

操作1 //一系列操作

操作2

……

Sqltran.Commit(); //提交事務(wù)

}

Catch()

{

Sqltran.Rollback(); //事務(wù)回滾

}

4 應(yīng)用效果

首先,本系統(tǒng)的功能模塊之間的耦合度低,分工明確,使用簡(jiǎn)單,用戶經(jīng)過(guò)簡(jiǎn)單的學(xué)習(xí)就能很快掌握系統(tǒng)的使用。其次,心理檢測(cè)的主要依據(jù)是數(shù)據(jù),本系統(tǒng)服務(wù)端在與后臺(tái)數(shù)據(jù)庫(kù)進(jìn)行數(shù)據(jù)同步以及分配測(cè)試任務(wù)時(shí),當(dāng)數(shù)據(jù)庫(kù)中的數(shù)據(jù)超過(guò)上萬(wàn)條時(shí),系統(tǒng)的運(yùn)行效率就會(huì)很低,通過(guò)使用事務(wù)可以大大提高系統(tǒng)的運(yùn)行效率,大概時(shí)間會(huì)縮短到不采用事務(wù)時(shí)的68%。

5 結(jié)束語(yǔ)

著重論述了在Windows環(huán)境中基于WPF的心理檢測(cè)系統(tǒng)的設(shè)計(jì)和實(shí)現(xiàn),介紹了通過(guò)XAML技術(shù)實(shí)現(xiàn)界面與邏輯代碼完全分離,既可以使用少量的代碼實(shí)現(xiàn)復(fù)雜和美觀的界面布局,還可根據(jù)顯示器的大小自動(dòng)調(diào)節(jié)界面的呈現(xiàn)。結(jié)果表明,基于WPF的心理檢測(cè)系統(tǒng)運(yùn)行穩(wěn)定、界面美觀、功能強(qiáng)大,對(duì)其他項(xiàng)目的研發(fā)具有一定的指導(dǎo)意義[15]。

猜你喜歡
測(cè)試人員數(shù)據(jù)管理密鑰
企業(yè)級(jí)BOM數(shù)據(jù)管理概要
定制化汽車(chē)制造的數(shù)據(jù)管理分析
幻中邂逅之金色密鑰
幻中邂逅之金色密鑰
航發(fā)葉片工藝文件數(shù)據(jù)管理技術(shù)研究
保證滲透測(cè)試成功實(shí)施的方法分析
Android密鑰庫(kù)簡(jiǎn)析
數(shù)據(jù)挖掘在學(xué)生成績(jī)數(shù)據(jù)管理中的應(yīng)用研究
數(shù)據(jù)挖掘在學(xué)生成績(jī)數(shù)據(jù)管理中的應(yīng)用研究
淺析軟件測(cè)試中的心理學(xué)應(yīng)用