潘潔 張偉峰 肖攀 李露露
摘 ?要:隨著近年來地震臺站儀器數(shù)字化進(jìn)程的加快,越來越多的儀器在硬件底層提供可以通過網(wǎng)絡(luò)訪問的接口,所以開發(fā)如遠(yuǎn)程監(jiān)控儀器狀態(tài)、自動讀取轉(zhuǎn)換數(shù)據(jù)等軟件成為可能。數(shù)據(jù)收集和處理工作非常繁瑣并且每天要重復(fù)操作,自動化工作日志的研發(fā)能夠自動讀取數(shù)據(jù)并且自動處理,對提高數(shù)據(jù)處理人員的工作質(zhì)量和工作效率提供很大的幫助。
關(guān)鍵詞:工作日志 ?自動化 ?Winform框架
中圖分類號:TP27 ? 文獻(xiàn)標(biāo)識碼:A ? ? ? ? ? ?文章編號:1672-3791(2019)06(c)-0013-02
處在地震監(jiān)測一線的臺站職工,每天要預(yù)處理各種數(shù)據(jù)和上報工作日志,其中工作日志要填寫每天8點、12點、16點、20點4個時間點的溫度、氣壓以及全天的降雨量,人工收集、處理耗時費力,該課題使用C#語言,基于Winform框架,生成exe綠色文件,直接在電腦里運行,自動生成每天的工作日志。移植性很高,任何一臺Windows電腦均可使用,為一線臺站的監(jiān)測人員節(jié)約大量的時間,也保證了數(shù)據(jù)的準(zhǔn)確性。
1 ?數(shù)據(jù)收集處理和報送現(xiàn)狀
臺站職工每天要向省局服務(wù)器報送一個前一天的工作日志,工作日志中每天要收集氣溫氣壓雨量,并且要人工計算氣溫氣壓的均值和降雨總量,如表1所示。目前臺站使用的氣溫氣壓雨量觀測儀有多種,其中WYY-1型使用較為普遍。該文就以WYY-1型氣溫氣壓雨量觀測儀來開發(fā)相關(guān)的軟件,通過讀取儀器產(chǎn)生的數(shù)據(jù),調(diào)用程序進(jìn)行計算,自動生成每天的工作日志。
其中圖1中的數(shù)據(jù)要通過中國地震前兆臺網(wǎng)數(shù)據(jù)管理系統(tǒng)先把儀器中的數(shù)據(jù)采集到服務(wù)器,然后使用中國地震前兆臺網(wǎng)數(shù)據(jù)處理系統(tǒng)2014集成版來轉(zhuǎn)換數(shù)據(jù),預(yù)處理數(shù)據(jù),然后人工讀取數(shù)據(jù)并按照要求計算,最后填寫到圖1中。
2 ?軟件開發(fā)思路
通過儀器在硬件底層提供的網(wǎng)絡(luò)訪問接口,訪問儀器,判斷目錄下是否存在此文件,如果不存在,提示文件不存在,如果存在,則打開文件。然后使用如下for循環(huán)語句+文件操作函數(shù)把文件數(shù)據(jù)讀取并存到數(shù)組中[1]。
#include
int i,a[100];
int main(){
FILE * fp1 = fopen("input.txt", "r");//打開輸入文件
FILE * fp2 = fopen("output.txt", "w");//打開輸出文件
if (fp1==NULL || fp2==NULL) {//若打開文件失敗則退出
puts("不能打開文件!");
rturn 0;
}
for(i=0;fscanf(fp1,"%d",a+i)!=EOF;i++);//從輸入文件連續(xù)讀取整數(shù)到數(shù)組a
for(;i--;)fscanf(fp2,"%d ",a[i]);//把數(shù)組a逆序?qū)懭氲捷敵鑫募?dāng)中
fclose(fp1);//關(guān)閉輸入文件
fclose(fp2);//關(guān)閉輸出文件,相當(dāng)于保存
return 0;
}
按文件內(nèi)容規(guī)律依次讀取時間和數(shù)據(jù),鏈接數(shù)據(jù)庫,創(chuàng)建數(shù)據(jù)表,把讀取的數(shù)據(jù)插入[2]。使用求和語句計算出氣溫和氣壓的均值,求平均值程序如下:利用求和語句對降雨量求和程序不再一一列出。最后將結(jié)果數(shù)據(jù)導(dǎo)入工作日志表格,并最終生成工作日志。
float aver(int*a,intl)//計算整型數(shù)組a,前l(fā)個元素的平均值。
{
floatr=0;
inti;
for(i=0;i r+=a[i];//累加。 r/=l;//平均值 returnr;//返回結(jié)果。 } 該軟件使用C#語言編程最后生成exe文件。采用Winform框架,智能讀取和采集數(shù)據(jù)文件,使用大數(shù)據(jù)思想分析整理數(shù)據(jù),數(shù)據(jù)導(dǎo)入導(dǎo)出,數(shù)據(jù)統(tǒng)計,數(shù)據(jù)查詢,多種數(shù)據(jù)庫的整合,能夠手動配置數(shù)據(jù)庫類型[3]。并對所有歷史數(shù)據(jù)備份保留,形成數(shù)據(jù)的可追溯性,同時對于后期系統(tǒng)的迭代或者其他系統(tǒng)調(diào)用均可完美兼容,并且可以實現(xiàn)模塊快速集成,不再需要的模塊,通過修改配置移除。 3 ?結(jié)語 使用C#語言,從本地讀取儀器數(shù)據(jù)并自動識別需要時間點的各種數(shù)據(jù),寫入數(shù)據(jù)庫或表格,基于Winform框架,通過后臺菜單的配置和權(quán)限的指定,還能夠?qū)崿F(xiàn)菜單的動態(tài)加載和權(quán)限驗證,生成exe綠色軟件,直接在任何一臺電腦上運行。為一線的監(jiān)測人員更準(zhǔn)確快速地上報數(shù)據(jù)提供幫助。最后生成exe文件,任何一臺Windows電腦都可使用,增加了可移植性。 參考文獻(xiàn) [1] 于磊.基于C#的WinForm開發(fā)中存儲過程應(yīng)用研究[J].軟件導(dǎo)刊,2018(4):178-179,183. [2] 斯琴巴圖,楊利潤.C#winform中嵌入Excel實現(xiàn)復(fù)雜表格的顯示和控制[J].軟件導(dǎo)刊,2013(4):26-27. [3] 張曉熙.基于Winform的電子卷宗采集與管理系統(tǒng)設(shè)計[J].計算機(jī)光盤軟件與應(yīng)用,2015(3):287-288.