999精品在线视频,手机成人午夜在线视频,久久不卡国产精品无码,中日无码在线观看,成人av手机在线观看,日韩精品亚洲一区中文字幕,亚洲av无码人妻,四虎国产在线观看 ?

基于C++的企業(yè)電費(fèi)統(tǒng)計程序

2016-03-05 00:10:45施沫寒
無線互聯(lián)科技 2015年6期
關(guān)鍵詞:程序用戶

施沫寒

摘要:近年來,隨著信息技術(shù)的不斷普及,越來越多的生產(chǎn)單位需要-用計算機(jī)來自動統(tǒng)計各種生產(chǎn)數(shù)據(jù)。這種方法不需要過多人為干涉,具有精確度高,速度快,保存質(zhì)量好,統(tǒng)計方便等優(yōu)秀特性。為生產(chǎn)生活提供了極大便利,為決策制定提供了有力依據(jù)。文章將從一個實(shí)際鋼鐵企業(yè)的實(shí)際需求出發(fā),說明如何實(shí)現(xiàn)一個基礎(chǔ)的電力數(shù)據(jù)統(tǒng)計程序。它將讀取電表提供的流式數(shù)據(jù),加以糾錯和處理,最終生成方便統(tǒng)計人員處理查看的檔案數(shù)據(jù)文檔。該程序已經(jīng)通過該企業(yè)的立項,正在實(shí)際使用中。

關(guān)鍵詞:數(shù)據(jù)統(tǒng)計;C++

1 需求分析

眾所周知,伴隨著經(jīng)濟(jì)的快速發(fā)展用電需求的不斷攀升,分時電價作為電力需求管理的重要手段之一,而峰谷電價可有效地降低企業(yè)電能成本。北京首鋼京順軋輥有限公司使用智能型峰谷電表計量電度,電度表上下載的可以是.CSV格式的數(shù)據(jù),能夠記錄峰谷平各個時段電量信息,但不能隨時統(tǒng)計峰谷平各時段用電量及電費(fèi),使用戶感覺很不方便。計算機(jī)技術(shù)處理和保存數(shù)據(jù)已經(jīng)是信息科學(xué)的重要應(yīng)用。現(xiàn)在的數(shù)據(jù)保存早已離不開信息科學(xué)。信息科學(xué)保存數(shù)據(jù)具有方便,快速,可靠,保存時間長等特點(diǎn)。于是人們用e語言編寫電量電費(fèi)實(shí)時統(tǒng)計程序。

要實(shí)現(xiàn)的是從原始數(shù)據(jù)中提取數(shù)據(jù)并做處理。

客戶會提供電表數(shù)據(jù)。數(shù)據(jù)記錄了電表在各個時段電量(包括電流、電壓、有功功率無功功率等)的實(shí)時數(shù)據(jù)。而客戶最關(guān)心的是工廠在特定時間段所消耗的電能和花費(fèi)的電費(fèi)。一天中,電費(fèi)的計費(fèi)分峰時,谷時,平時3個時間段,谷時段電價只有峰時段電價的1/3,因此及時方便的統(tǒng)計出各個時段的用電量及電費(fèi)是企業(yè)降低生產(chǎn)成本的重要依據(jù)。

客戶提供的是一個采樣時間間隔最小5分鐘,每天24小時,累計時間30天之內(nèi)的記錄了電壓、電流、電度、功率等含有大量數(shù)據(jù)的CSV文本文件,工人的下載時間是隨機(jī)的,意味著.CSV文件中的數(shù)據(jù)量是不定的。其中數(shù)據(jù)是字符的形式,每一條目以逗號隔開,每一條記錄以換行符隔開。其中有大家關(guān)心的數(shù)據(jù),也有大家不關(guān)心的數(shù)據(jù)。由于數(shù)據(jù)量很大,要從文件中選擇所需要的數(shù)據(jù)。很多時候記錄數(shù)據(jù)并不可靠。可能會出現(xiàn)記錄缺失,亂碼。對于記錄缺失的情況,還要進(jìn)行容錯處理,可以瀏覽前后的數(shù)據(jù)給出補(bǔ)救,對于后面情況,要中斷工作,告知用戶數(shù)據(jù)有問題。

用戶有8臺大用電量設(shè)備,每個設(shè)備有一個峰谷平智能電度表,每臺設(shè)備以1-8標(biāo)示。文件名的啟用規(guī)則以年月日時間命名并含有與設(shè)備編號一致的標(biāo)號信息,便于統(tǒng)計時歸納。

企業(yè)員工文化水平較低,操作者甚至不能做計算機(jī)基本操作。做的頁面要盡量友好、方便。

2 設(shè)計

本程序由C++設(shè)計算法邏輯。

C++是著名的高級程序設(shè)計語言,支持廣泛的多種程序風(fēng)格,也無需復(fù)雜的編程環(huán)境,因此具有十分廣泛的用途。同時C++效率高,保持了C語言接近匯編語言而得來的簡潔高效,又對c語言的系統(tǒng)進(jìn)行了改革和擴(kuò)充,因此比C語言的編譯更嚴(yán)格,也更安全。

程序的受眾文化程度低,不熟悉計算機(jī)操作,本程序又采用命令行界面,要盡量使說明和操作方式友好,讓用戶容易上手。

客戶交給我們CSV文件,我們也用CSV文件輸出。這種逗號分隔的文本格式可以直接用EXCEL打開,方便用戶使用。

3 流程設(shè)計

3.1 CSV源文件定位

筆者提供給了用戶兩種方式來定位目標(biāo)文件,一個是輸入文件名時從根目錄開始輸入文件目錄的方式。這個方式靈活,可以找到磁盤任何位置的文件。但要求目錄不能輸錯,否則找不到文件無法進(jìn)行下一步,考慮到用戶文化水平較低,正確的輸入目錄可能要費(fèi)一番功夫。所以改用光標(biāo)條選擇,實(shí)現(xiàn)了遍歷文件系統(tǒng),讓用戶從列表里選擇的功能。

第二種方式是遍歷程序當(dāng)前目錄,這樣只要用戶把文件和程序放到一起,所有的.CSV文件都會以有數(shù)字編號的形式列出,用戶輸入文件名時只需輸入數(shù)字編號就可以,很方便的找到文件又便于操作者操作而不會出錯。

例如1.20150301-0302,只需輸入1就是要選的文件。

找到文件后,會回顯文件名讓用戶確認(rèn)。如果有錯返回重新輸入。

3.2 文件糾錯

由于電表數(shù)據(jù)并不完全可靠,可能會出現(xiàn)以下錯誤:

第一,可能會出現(xiàn)大片亂碼情況。對于這種情況,我們檢測文件開始的一些字符,如果正常,則可排除大部分情況,如果不正常,中斷工作。

第二,可能出現(xiàn)數(shù)據(jù)缺失。由于數(shù)據(jù)條目是累計電量,一般情況下只要用再下一條數(shù)據(jù)減去上一條數(shù)據(jù)即可。但是如果分割時間段的那條數(shù)據(jù)缺失,由于單價不同的影響,可能會影響價格的計算。這時錯誤不至于太大,程序照常執(zhí)行,但會提醒用戶可能會發(fā)生錯誤。

3.3 數(shù)據(jù)采集

每條數(shù)據(jù)中,數(shù)據(jù)項按照給定序列排列,每項數(shù)據(jù)用逗號隔開,每條數(shù)據(jù)用換行符隔開。只要簡單的循環(huán)算法,就可以提取出數(shù)據(jù)。數(shù)據(jù)存在自定義的一個數(shù)據(jù)結(jié)構(gòu)中。這個數(shù)據(jù)結(jié)構(gòu)構(gòu)成一個線性表用來管理大量數(shù)據(jù)。數(shù)據(jù)結(jié)構(gòu)全部自行實(shí)現(xiàn)。

可是由于數(shù)據(jù)較多且不可靠,長度也不定,這里的算法是程序的核心。

由于用戶給的數(shù)據(jù)條目里不僅有人們關(guān)心的數(shù)據(jù),還有人們不關(guān)心的,要自行設(shè)計算法篩選需要的數(shù)據(jù)。

3.4 數(shù)據(jù)分析和輸出

采用一邊分析一邊輸出的模式,遍歷線性表,同時累加數(shù)據(jù),到了時間段分割點(diǎn)就輸出。這個算法比較簡單。

4 實(shí)現(xiàn)

4.1 界面設(shè)計

界面設(shè)計以簡潔明了為宜,采用了控制臺方式。

4.2 CSV文件定位

通過WinAPI實(shí)現(xiàn)。主要是遍歷文件系統(tǒng),方便用戶選擇文件。當(dāng)用戶確定一個路徑后,就會列出這個路徑下的所有文件,每一個文件對應(yīng)一個索引號,用戶可以輸入多個索引號來實(shí)現(xiàn)多個文件的批次處理。主要通過FindFirstFile方法和FindNextFile用循環(huán)實(shí)現(xiàn)。這里給出關(guān)鍵的代碼。

這次遍歷用來向用戶展示文件,之后還將遍歷一次,用來存儲文件名。

4.3 數(shù)據(jù)采集

得到文件名后,通過C++的函數(shù)打開文件,得到的會是流式的文本文件。處理這些文件是程序的重點(diǎn)。

首先電表數(shù)據(jù)不一定可靠。可能會出現(xiàn)大片亂碼的情況。這時檢測每條數(shù)據(jù)的前七個字符,應(yīng)該都是數(shù)字。如果符合這個條件,則可排除這種情況。

數(shù)據(jù)還可能缺少條目。這可能會損失結(jié)果的準(zhǔn)確性。這種情況不中斷工作,只提示用戶可能出現(xiàn)錯誤。

之后就可以開始采集數(shù)據(jù)了。數(shù)據(jù)有如下特點(diǎn):

(1)每條數(shù)據(jù)第一項是日期,固定八位。

(2)第二項是時間,固定五位。

(3)第三項是累計電量。位數(shù)不定,以逗號結(jié)束。

(4)后面有若干不關(guān)心的數(shù)據(jù)項,整條數(shù)據(jù)以換行結(jié)束。

經(jīng)過分析容易知道,只要設(shè)置兩個變量,一個計算當(dāng)前條目已得到數(shù)據(jù)的數(shù)量,另一個計算當(dāng)前數(shù)據(jù)項的字符數(shù),就能從原始文件中提取符合容易做進(jìn)一步處理的字符。這里給出關(guān)鍵代碼。

現(xiàn)在已經(jīng)得到了容易處理的字符型數(shù)據(jù),只要通過簡單的循環(huán)算法把它轉(zhuǎn)換為浮點(diǎn)型,在存到線性表里就行了。這里的代碼不再贅述。

4.4 數(shù)據(jù)分析輸出

最后只要逐條數(shù)據(jù)減去上一條,乘以單價然后輸出到文件就可以了。

由于有8臺設(shè)備,每臺設(shè)備都要統(tǒng)計,最終要在一張電子表格中顯示出8臺設(shè)備各個時段的用電量及電費(fèi)情況,便于決策者統(tǒng)計管理,降低成本。設(shè)備號在客戶給出的源文件名中有標(biāo)示,在讀取時本程序已經(jīng)保存。輸出時單列出各個條目輸出即可。

5 結(jié)語

此程序基于純C++開發(fā),使用方便,效率高,用戶反饋良好。

猜你喜歡
程序用戶
試論我國未決羈押程序的立法完善
失能的信仰——走向衰亡的民事訴訟程序
“程序猿”的生活什么樣
英國與歐盟正式啟動“離婚”程序程序
關(guān)注用戶
商用汽車(2016年11期)2016-12-19 01:20:16
關(guān)注用戶
商用汽車(2016年6期)2016-06-29 09:18:54
關(guān)注用戶
商用汽車(2016年4期)2016-05-09 01:23:12
創(chuàng)衛(wèi)暗訪程序有待改進(jìn)
Camera360:拍出5億用戶
100萬用戶
主站蜘蛛池模板: 99久久99视频| 午夜老司机永久免费看片| 国产最爽的乱婬视频国语对白| 日本国产精品| 福利在线不卡| 国产9191精品免费观看| 国产91在线|中文| 人妻出轨无码中文一区二区| 久久成人国产精品免费软件| 欧美在线三级| 欧美一区二区三区国产精品| 日本在线欧美在线| 亚洲成人精品在线| 国产视频自拍一区| 999福利激情视频| 一级毛片在线播放免费观看| 999在线免费视频| 日本在线免费网站| 中文字幕首页系列人妻| 欧美精品亚洲二区| 欧美一区二区人人喊爽| 欧美翘臀一区二区三区| 在线无码九区| 伊人色综合久久天天| 国产va免费精品观看| a级毛片在线免费| 国产成人精品在线| 欧美.成人.综合在线| 怡红院美国分院一区二区| 欧洲精品视频在线观看| 毛片网站观看| 亚洲色图欧美| 999精品在线视频| 国产97视频在线| 天堂av综合网| 欧美日韩精品在线播放| 91久久夜色精品| 天天综合亚洲| 蜜芽一区二区国产精品| 激情无码字幕综合| 在线免费观看a视频| 一级高清毛片免费a级高清毛片| 91精品视频播放| 国产免费福利网站| 国产成人无码久久久久毛片| 亚洲精品国偷自产在线91正片| 国产成人久久综合777777麻豆| 久久96热在精品国产高清| 日韩天堂在线观看| 日韩激情成人| 国产精品久久久精品三级| 亚洲嫩模喷白浆| 欧美成人怡春院在线激情| www.精品视频| 亚洲无码久久久久| 成·人免费午夜无码视频在线观看| 伊人色天堂| 国产精品无码作爱| 天天色综合4| 萌白酱国产一区二区| 国产精品视频白浆免费视频| 国产日本视频91| 国产综合色在线视频播放线视| 91伊人国产| 精品久久国产综合精麻豆| 玖玖精品视频在线观看| 国产丰满成熟女性性满足视频| 国产精品入口麻豆| 99re视频在线| 欧美日韩国产精品va| 国产青青草视频| 国产丝袜啪啪| 国产精品流白浆在线观看| 亚洲国产精品无码久久一线| 亚洲精品人成网线在线 | 欧美a√在线| 国内精品久久久久久久久久影视| 中文无码精品A∨在线观看不卡| 免费看久久精品99| 欧美无遮挡国产欧美另类| 国产亚洲男人的天堂在线观看 | 国产一区二区三区在线观看免费|