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

基于VB和PYTHON的問卷錄入與分析系統(tǒng)

2018-01-06 00:58:20徐暢暢
電腦知識與技術 2017年35期
關鍵詞:內容系統(tǒng)

徐暢暢

摘要:采用VB 6.0語言開發(fā)數據錄入問卷、核對并修改問錄入數據錯誤等功能,PYTHON 3.5語言進行數據統(tǒng)計并繪制相應統(tǒng)計學圖表,Excel文檔進行問卷數據的保存、輔助問卷錄入,自主研發(fā)出“先行”問卷錄入與分析系統(tǒng)。該系統(tǒng)可高效完成數據采集和管理工作,節(jié)約了紙質問卷錄入時間;同時該軟件易于實施,數據移植性好,后續(xù)輸出的電子數據基本不存在亂碼現(xiàn)象;軟件后續(xù)數據進行科學管理和統(tǒng)計分析,功能更趨完善,便于社會調查最終順利實施。

關鍵詞:計算機;調查問卷;數據錄入;數據管理;編程;軟件;VB 6.0;PYTHON 3.5

中圖分類號:TP311 文獻標識碼:A 文章編號:1009-3044(2017)35-0109-05

1 背景

隨著21世紀的到來,我們的社會逐步邁入大數據時代,數據的收集、分析是處理大數據的基礎。目前數據收集常采用紙質調查問卷,但紙質調查問卷需要手工輸入問卷數據,進而進行統(tǒng)計學處理。手工轉換為電子版的調查問卷數據統(tǒng)計學處理工作量大,后期數據匯總工作繁瑣。現(xiàn)有的問卷錄入軟件界面繁瑣,使用時往往需要操作者具備一定的專業(yè)常識。以EPIDATA問卷錄入系統(tǒng)為代表相關軟件,在錄入中文內容時容易出現(xiàn)亂碼,并且數據的移植性差。

Excel是Windows平臺下電子表格處理軟件,能夠進行各種數據的處理、統(tǒng)計分析和輔助決策操作。Excel文檔擁有良好的數據保管能力,數據移植性好,廣泛地應用于眾多領域。Visual Basic 6.0(VB 6.0)語言擁有易于學習,界面設計容易,與Excel的結合效果好。PYTHON語言同樣易于學習,其強大之處在于它有豐富和強大的類庫,可以方便地處理各種需求。PYTHON的繪圖庫(matplotlib庫),是一款功能強大的科學繪圖庫,修復中文顯示問題后可以高效率的繪制各種統(tǒng)計學圖表。綜上所述,結合Excel、VB 6.0、PYTHON優(yōu)秀之處,可以很好地解決目前問卷錄入系統(tǒng)目前存在的問題。

2 研究內容

2.1 軟件設計的思維導圖

1) 數據錄入模塊

2) 數據格式判斷模塊:統(tǒng)計學處理前準備工作

2.2 “先行”(Forerun)問卷錄入與分析系統(tǒng)設計理念

“先行”(Forerun)問卷錄入與分析系統(tǒng)(簡稱先行系統(tǒng))應該包括問卷錄入、數據統(tǒng)一格式保存、數據備份和統(tǒng)計學處理等功能。數據錄入工作重復性質較強,需要一定效率的工作,強調錄入系統(tǒng)準確和簡潔特質。數據統(tǒng)一格式保存需要一定的兼容性,文字不易發(fā)生改變。數據備份同樣需要一定的格式,保存內容在不同機器上不易發(fā)生改變,對于編程語言較為容易操作的性質。統(tǒng)計學處理建立在一定的數據保存格式下才能進行,需要效率高、精確度高。針對以上的問題,我結合自身先前的編程經歷,決定設計一套軟件組成的系統(tǒng),配合不同語言的優(yōu)勢進行問卷錄入系統(tǒng)軟件設計。

2.3 先行系統(tǒng)設計的過程與實際操作流程

VB 6.0語言具有簡單、易于組合軟件界面的特點,且VB與Excel之間的兼容性好,我又經常使用,因此我設計先行系統(tǒng)時首先著手從上述語言開始編寫。我先結合Excel設計問卷,并將問卷按照特定形式放于Excel中,方便使用VB進行處理。

2.4 先行系統(tǒng)的錄入模塊(基于VB6.0)

1) 問卷錄入的準備工作

在VB中調用了“Microsoft Excel 15.0 Object Library”,使VB可以實現(xiàn)對于Excel的打開、關閉、讀取、寫入功能。新建窗體FORM1,將其命名為 “問題與選項”,聲明與Excel處理有關的內容。

以下為聲明內容:

Dim ExApp As New Excel.Application

Dim ExBook As Excel.Workbook

Dim ExWorksheet As Excel.Worksheet

2) 電子問卷模板形成

按下FORM1的按鍵,將Excel中的問題、選項提取至軟件中。

以下代碼實現(xiàn)軟件的問題與選項提取:

Dim aata(1000) As String

……

Dim hata(1000) As String

Set ExApp = CreateObject("Excel.Application")

Set ExApp = New Excel.Application

Set ExBook = ExApp.Workbooks.Open(Text1.Text)

Set xlsheet = ExBook.Worksheets("sheet1")

For i = 1 To Val(Form2.wt.Text) — 1 ‘確定問題的個數,再導入問題及選項內容

aata(i) = ExApp.Sheets("sheet1").Range("a" & i).Value

……

hata(i) = ExApp.Sheets("sheet1").Range("h" & i).Value

Next i

ExApp.ActiveWorkbook.Save

ExApp.Workbooks.Close

ExApp.Quit

For q = 0 To Val(Form2.wt.Text) - 2

List1.AddItem aata(q + 1)

……

List8.AddItem hata(q + 1)

Next q

3) 問卷錄入

隨后新建FORM2,將其命名為“錄入區(qū)”,在其中新建按鈕等。利用CHECK選擇框進行問題的勾選,TEXT輸入框進行錄入選項,錄入選項同時進行備份,配有防關閉功能,斷點重錄功能,激活“臨時休息區(qū)”(詳見“操作流程”:1.3、1.4)。

以下代碼實現(xiàn)錄入時選項的顯示:

If Check3.Caption = "" Then ‘查找空白項:check1c和heck2為非空白項,檢查check3-8

Check3.Visible = False

End If

……

If Check7.Caption = "" Then

Check7.Visible = False

End If

If Check1.Caption = "(" Then

Text1.Visible = False

Text4.Visible = True ‘打開手工填寫窗口

Text4.SetFocus

End If

以下代碼實現(xiàn)選擇問題選項:

If Val(Text1.Text) = 1 And Len(Check1.Caption) > 0 Then

‘問卷中相應問題項,其Len(object.Caption)>0

Check1.Value = 1

End If

……

If Val(Text1.Text) = 7 And Len(Check7.Caption) > 0 Then

Check7.Value = 1

End If

If Val(Text1.Text) = 8 And Len(Check1.Caption) > 0 Then ‘特殊情況窗口被激活

Check8.Value = 1

End If

Text1.Text = ""

以下代碼負責在錄入時進行備份:

If Text1.Visible = True Then

‘nb.text為問卷序號(1、2、3….),text2.text為問題號,no.caption為問卷編號(例:vx0001)

……

Open "d:\副本 內容.txt" For Append As #1

Print #1, Val(nb.Text) & "(" & Val(Text2.Text) - 1 & ")" & b ‘b為選項

Close #1

Open "d:\副本 數字.txt" For Append As #2

Print #2, Val(nb.Text) & "(" & Val(Text2.Text) - 1 & ")" & c ‘c為機械碼

Close #2

Open "d:\副本 內容" & no.Caption & ".txt" For Append As #3

Print #3, b

Close #3

Open "d:\副本 數字" & no.Caption & ".txt" For Append As #4

Print #4, c

Close #4

Text1.SetFocus

End If

If Text4.Visible = True And Len(Text4.Text) > 0 Then

……

Open "d:\副本 內容.txt" For Append As #1

Print #1, Val(nb.Text) & "(" & Val(Text2.Text) - 1 & ")" & Text4.Text

‘text4.text為特殊情況與文字問題錄入的窗口

Close #1

Open "d:\副本 數字.txt" For Append As #2

Print #2, Val(nb.Text) & "(" & Val(Text2.Text) - 1 & ")" & "無"

Close #2

Open "d:\副本 內容" & no.Caption & ".txt" For Append As #3

Print #3, Text4.Text

Close #3

Open "d:\副本 數字" & no.Caption & ".txt" For Append As #4

Print #4, "無"

Close #4

4) 數據導出

新建FORM3,命名為“導出區(qū)”,保存同時進行備份(詳見“操作流程”中1.6)。

以下代碼實現(xiàn)臨時緩存區(qū)內的所有內容進行備份:

listnum = Form4.List4.ListCount

Open "d:\副本 1號.txt" For Append As #1

Print #1, Now

Close #1

Open "d:\副本 2號.txt" For Append As #2

Print #2, Now

Close #2

For i = 1 To listnum

Open "d:\副本 1號.txt" For Append As #3

Print #3, Form4.List3.List(i) ‘備份問題選項臨時存放區(qū)

Close #3

Open "d:\副本 2號.txt" For Append As #4

Print #4, Form4.List4.List(i) ‘備份機械碼臨時存放區(qū)

Close #4

Next i

以下代碼實現(xiàn)保存問題選項的功能(與機械碼保存相同):

Command4_Click ‘對臨時緩存區(qū)內的所有內容進行備份

Label3.Caption = ""

listnum = Form4.List3.ListCount

Dim bata(80000) As String ‘儲存所有問題的選項結果

Dim x(80000) As String ‘x、y分別儲存Excel文檔的保存坐標

Dim y(80000) As String ‘記錄切分點

Dim z(80000) As Single

If Text1.Text = "" Or Text2.Text = "" Then

a = MsgBox("無效路徑!", 256)

Exit Sub

End If

For o = 0 To listnum

bata(o + 1) = Form4.List3.List(o)

Next o

Set ExApp = CreateObject("Excel.Application")

Set ExApp = New Excel.Application

Set ExBook = ExApp.Workbooks.Open(Text1.Text)

Set xlsheet = ExBook.Worksheets("sheet1")

……

For la = 1 To listnum

On Error Resume Next

xlsheet.Cells(Val(y(la)), Val(x(la))).Value = Mid(bata(la), z(la) + 2)

Next la

Label3.Caption = "done"

ExApp.ActiveWorkbook.Save

ExApp.Workbooks.Close

ExApp.Quit

5) 問卷數據錄入內容的保存與修改

新建FORM4,命名為“臨時收錄區(qū)”,用于支持數據的保存、修改。

以下部分實現(xiàn)“刪除直接改正法”的“刪除”按鈕:

On Error Resume Next

List1.RemoveItem (List1.ListIndex)

List2.RemoveItem (List2.ListIndex)

List3.RemoveItem (List3.ListIndex)

List4.RemoveItem (List4.ListIndex)

以下部分實現(xiàn)“刪除直接改正法”的“插入”按鈕:

Private Sub List3_Click() ‘問題選項臨時存放區(qū)

Text3.Text = 3

List1.ListIndex = -1

List2.ListIndex = -1

List4.ListIndex = -1

End Sub

Private Sub List4_Click() ‘機械碼臨時存放區(qū)

Text3.Text = 4

List1.ListIndex = -1

List2.ListIndex = -1

List3.ListIndex = -1

End Sub

Private Sub Command4_Click() ‘添加修改內容(注意:第一個格子不能修改)

a = InputBox("輸入修改內容")

If Len(a) = 0 Then

Exit Sub

End If

If Text3.Text = "1" Then

List1.AddItem a, List1.ListIndex + 1

End If

If Text3.Text = "3" Then

List3.AddItem a, List3.ListIndex + 1

End If

If Text3.Text = "4" Then

List4.AddItem a, List4.ListIndex + 1

End If

End Sub

Private Sub Command6_Click( ) ‘添加修改內容(注意:僅能修改第一個格子)

a = InputBox("輸入修改內容")

If Len(a) = 0 Then

Exit Sub

End If

If Text3.Text = "1" Then

List1.AddItem a, 0

End If

If Text3.Text = "3" Then

List3.AddItem a, 0

End If

If Text3.Text = "4" Then

List4.AddItem a, 0

End If

End Sub

6) 問卷錄入的安全

新建FORM5,命名為“臨時休息區(qū)”,用于錄入人員在錄入時的臨時休息。臨時休息區(qū)一但激活會關閉所有其他窗口,解除需要密碼(詳見“操作流程”中1.7)。

以下代碼實現(xiàn)臨時休息區(qū):

Private Sub Command1_Click()

If Text1.Text = "abcdef" Then ‘密碼為abcdef

Form1.Visible = True

Form2.Visible = True

Form4.Visible = True

Form5.Visible = False

End If

Text1.Text = ""

End Sub

Private Sub Form_QueryUnload(Cancel As Integer, UnloadMode As Integer)

‘拒絕常規(guī)關閉(與錄入區(qū)防關閉的代碼相同)

Cancel = True

End Sub

2.3 先行系統(tǒng)的判斷、繪圖模塊(基于PYTHON)

先行系統(tǒng)的錄入部分組裝完成后,我想起新學的PYTHON語言擁有有高效的、優(yōu)秀的matplotlib庫繪圖能力與良好的數據處理能力,采用PYTHON進行統(tǒng)計學處理能提高統(tǒng)計學處理的速度,同時降低代碼編寫時的錯誤發(fā)生率。

首先進行編寫的是排除人工填寫部分,人工填寫部分的內容之間存在較大差異性,因此先行系統(tǒng)對這部分數據不自動進行統(tǒng)計學處理。判斷后的結果,均以文本文檔形式(后綴為“.txt”的文件,簡稱TXT)保存。

以下代碼實現(xiàn)判斷是否需要進行自動繪圖:

a=str(0) #不是為0

b=str(1) #是為1

q=open("1.txt",'r')

for line in q:

s=line

t=s.split()

if (t[0][0].__contains__("(")) == True:

t1=open("2.txt",'a')

t1.write(b+"\n")

t1.close()

if (t[0][0].__contains__("(")) == False:

t2=open("2.txt",'a')

t2.write(a+"\n")

t2.close()

q.close()

繪圖部分以TXT為媒介,結合之前的判斷內容與后續(xù)添加的內容進行科學繪圖。

以下代碼實現(xiàn)自動繪圖:

cnames = [ #繪圖顏色(無黑色和不易辨別的顏色)

'#F0F8FF',

'#00FFFF',

'#7FFFD4',

……]

panduan=[] #判斷是否需要自動繪圖

cn=[] #所有問題的選項結果

que=[] #問卷的問題

choose=[] #問卷題目的選項

huancun1=[] #緩存區(qū)1

huancun2=[] #緩存區(qū)2

huancun3=[] #緩存區(qū)3

qunub=0 #問題數量

st1=open("2.txt",'r')#讀取判斷表

for line in st1:

s=line

t=s.split()

panduan=panduan + t

st1.close()

t=""

s=""

st2=open("cn.txt",'r') #讀取錄入的中文

for line in st2:

s=line

t=s.split()

if len(huancun1)

huancun1=huancun1 + t

if len(huancun1)==len(t):

cn.append(huancun1)

huancun1=[]

st2.close()

t=""

s=""

st4=open("que.txt",'r') #讀取問題

for line in st4:

s=line

t=s.split()

que=que+t

qunub=int(qunub)+1

st4.close()

t=""

s=""

st5=open("1.txt",'r') #讀取問題的選項

for line in st5:

s=line

t=s.split()

if len(huancun3)

huancun3=huancun3 + t

if len(huancun3)==len(t):

choose.append(huancun3)

huancun3=[]

st5.close()

del s,t,line,huancun1,huancun2,huancun3

import matplotlib.pyplot as plt

import matplotlib as mpl

from matplotlib.font_manager import FontProperties

for i in range(qunub):

savename=i+1

tit=str(i+1)+"."+que[i]

cn1=cn[i]

pan=panduan[i]

labels=[]

inside=[]

if pan=="0": #pan為1或其他字符,則不需畫圖

……

for s4 in range(len(labels)): #對選項進行折疊,防止問題過長超出畫布

labels[s4]=labels[s4]+'('+inside[s4]+'人)'

if len(labels[s4])>15:

zz=len(labels[s4])

for n in range (10,zz+1,10):

labels[s4]=labels[s4][:n]+'\n'+labels[s4][n:]

……

pie=plt.pie(inside,labels=labels,autopct='%1.2f%%',colors=cnames)

#設置為繪制餅圖,顯示百分比

……

a.set_size_inches(18.5, 10.5) #設置畫布大小

a.savefig('圖表/'+str(savename)+'.png',dpi=90)

a.show()

以上海市xxx小學的數據為例,成功的導出了錄入數據與統(tǒng)計學圖表,軟件的測試獲得了成功(詳見“操作流程”、“圖表”文件夾)。

3 結束語

本軟件界面操作簡潔,無需太多計算機方面的知識即可掌握操作方法。

軟件運行快捷,有效的提高了問卷錄入的速度;基層使用者大多數熟悉Excel的基本操作,對于數據的管理提供了便利,也減低了數據管理對使用者的難度。充分利用了VB的界面設計、PYTHON的繪圖能力與Excel的數據移植性方面的優(yōu)勢,與現(xiàn)有的許多的問卷錄入軟件不支持中文相比,本軟件幾乎完美

地支持中文。有關閉密碼,無法通過常規(guī)方法關閉,提高了錄入的安全性。因此,該軟件的適用范圍較為廣泛,有較大的使用前景和推廣價值。

總之,通過先行系統(tǒng)進行數據錄入及統(tǒng)計學處理,可高效完成數據采集和管理工作,大大節(jié)約了紙質問卷錄入時間與確保錄入時的安全,軟件后續(xù)數據進行科學管理和統(tǒng)計分析,便于社會調查最終順利實施。

參考文獻:

[1] 范蔭恒.《物理化學實驗》數據處理系統(tǒng)軟件的開發(fā)及應用[J]. 計算機與應用化學, 2005(11):1066-1069.

[2] 孔玉. 臨床試驗數據管理軟件的開發(fā)與應用[J]. 第二軍醫(yī)大學, 2007(63).

[3] 龐勝利. Python環(huán)境下用pyExcelerator操作Excel[J]. 電腦編程技巧與維護, 2009(20):48-49,64.

[4] 魏紹蓉. 基于Visual Basic與Excel相結合的問題研究[J]. 青海師范大學學報:自然科學版, 2010(1):67-69.

[5] 羅隆福. 基于VB的電力機車牽引變壓器分析軟件開發(fā)[J]. 湖南大學學報:自然科學版, 2011(7):43-47.

[6] 陸健. 臨床試驗電子化數據管理與統(tǒng)計分析系統(tǒng)的開發(fā)及應用[D].上海: 第二軍醫(yī)大學, 2012.

[7] 孫玉環(huán). 基于EpiData與SAS系統(tǒng)的紙版問卷數據錄入質量控制技巧[J]. 中國衛(wèi)生統(tǒng)計, 2012(4):607-608,611.

[8] 李瀟. 基于excel的數據管理及其在公共衛(wèi)生領域內的應用[J]. 中國衛(wèi)生統(tǒng)計, 2014(6):1084-1086.

猜你喜歡
內容系統(tǒng)
Smartflower POP 一體式光伏系統(tǒng)
內容回顧溫故知新
科學大眾(2022年11期)2022-06-21 09:20:52
內容回顧 溫故知新
科學大眾(2021年21期)2022-01-18 05:53:48
內容回顧溫故知新
科學大眾(2021年17期)2021-10-14 08:34:02
WJ-700無人機系統(tǒng)
ZC系列無人機遙感系統(tǒng)
北京測繪(2020年12期)2020-12-29 01:33:58
基于PowerPC+FPGA顯示系統(tǒng)
半沸制皂系統(tǒng)(下)
連通與提升系統(tǒng)的最后一塊拼圖 Audiolab 傲立 M-DAC mini
主要內容
臺聲(2016年2期)2016-09-16 01:06:53
主站蜘蛛池模板: 国产另类视频| 在线高清亚洲精品二区| 亚洲首页国产精品丝袜| 国产国模一区二区三区四区| 日韩精品高清自在线| 久久精品视频一| 亚洲色图欧美一区| 国产三级国产精品国产普男人 | 国产成人1024精品| 久久综合色播五月男人的天堂| 国产超碰一区二区三区| 真人高潮娇喘嗯啊在线观看| 国产成人a在线观看视频| 国产电话自拍伊人| 日韩中文无码av超清| 鲁鲁鲁爽爽爽在线视频观看| 日韩经典精品无码一区二区| 好吊妞欧美视频免费| 久久久久久国产精品mv| 亚洲手机在线| 亚洲欧美不卡视频| 在线观看国产精品日本不卡网| 国产H片无码不卡在线视频| 国产成人8x视频一区二区| 国产区人妖精品人妖精品视频| 亚洲国产系列| 亚洲成综合人影院在院播放| 在线观看亚洲人成网站| 精品亚洲麻豆1区2区3区| 亚洲一本大道在线| 极品国产一区二区三区| 国产精品女人呻吟在线观看| 69视频国产| 国产精品.com| 国产精品久久自在自2021| 亚洲欧洲自拍拍偷午夜色| 激情亚洲天堂| 国产人前露出系列视频| 国内老司机精品视频在线播出| 中文字幕不卡免费高清视频| 欧美成人精品在线| 99久久精品国产综合婷婷| 成人午夜久久| 人妻少妇乱子伦精品无码专区毛片| 亚洲人成成无码网WWW| 1024你懂的国产精品| 精品视频一区二区三区在线播| 久久久久国产精品熟女影院| 精品国产香蕉伊思人在线| 亚洲日韩久久综合中文字幕| 欧美精品H在线播放| 国产精品爽爽va在线无码观看| 在线日韩日本国产亚洲| 亚洲第一中文字幕| 亚洲精品天堂自在久久77| 动漫精品啪啪一区二区三区| 亚洲欧美人成人让影院| 亚洲欧美日本国产综合在线 | 国产精品久久久免费视频| 男女性色大片免费网站| 人妻出轨无码中文一区二区| 谁有在线观看日韩亚洲最新视频| 日韩中文欧美| 自拍偷拍欧美日韩| 久久精品国产精品一区二区| 国产一级毛片yw| 色综合久久久久8天国| 婷婷伊人五月| 日韩黄色精品| 欧洲免费精品视频在线| 在线播放精品一区二区啪视频| 欧美综合区自拍亚洲综合绿色| 2021无码专区人妻系列日韩| 精品一区二区三区视频免费观看| 国产精品99一区不卡| 国产 在线视频无码| 成人免费黄色小视频| 青草国产在线视频| 亚洲第一视频网站| 亚洲人成网站色7799在线播放| 最新亚洲av女人的天堂| 999精品视频在线|