亚洲免费av电影一区二区三区,日韩爱爱视频,51精品视频一区二区三区,91视频爱爱,日韩欧美在线播放视频,中文字幕少妇AV,亚洲电影中文字幕,久久久久亚洲av成人网址,久久综合视频网站,国产在线不卡免费播放

        ?

        基于VBA 的PPT 考勤管理系統(tǒng)的設(shè)計(jì)與實(shí)現(xiàn)

        2020-06-15 12:04:52王宏杰許麗娟
        現(xiàn)代計(jì)算機(jī) 2020年13期
        關(guān)鍵詞:數(shù)組考勤控件

        王宏杰,許麗娟

        (廣東財(cái)經(jīng)大學(xué)華商學(xué)院,廣州 511300)

        0 引言

        考勤是教師管理課堂、督促學(xué)生學(xué)習(xí)的一個(gè)重要手段,也是評(píng)定學(xué)生平時(shí)成績(jī)的一個(gè)重要因素。盡管信息化教學(xué)已發(fā)展多年,各課室都配備了多媒體設(shè)備,幾乎所有教師都使用電子課件,但考勤工作卻沒(méi)能跟上信息化的步伐。目前市面上有很多具有考勤功能的軟件,但往往需要聯(lián)網(wǎng)、安裝第三方軟件等,這與很多學(xué)校的設(shè)施或管理是相沖突的,導(dǎo)致很多教師只能采用傳統(tǒng)的紙質(zhì)考勤。但傳統(tǒng)紙質(zhì)考勤,存在攜帶、篡改、丟失、統(tǒng)計(jì)等問(wèn)題,使得部分教師對(duì)考勤比較消極,不打或很少打考勤,進(jìn)而導(dǎo)致對(duì)學(xué)生平時(shí)成績(jī)的評(píng)定無(wú)法公開(kāi)、公平。

        對(duì)此,本文提出基于VBA 的PPT 考勤管理系統(tǒng),通過(guò)VBA 技術(shù)實(shí)現(xiàn)在Microsoft PowerPoint 課件上點(diǎn)名,在Microsoft Excel 中存儲(chǔ)考勤數(shù)據(jù),使得考勤工作完全電子化。系統(tǒng)完全集成在PPT 課件上,無(wú)需安裝任何軟件,無(wú)需網(wǎng)絡(luò)連接,只要能播放PPT 的環(huán)境就能運(yùn)行。Microsoft Excel 中的考勤數(shù)據(jù),教師可以直接打開(kāi)進(jìn)行查看、統(tǒng)計(jì)等。

        1 技術(shù)基礎(chǔ)

        1.1 VBA

        VBA(Visual Basic For Application)是美國(guó)微軟公司在Visual Basic 基礎(chǔ)上開(kāi)發(fā)出來(lái),應(yīng)用于其桌面應(yīng)用程序的一種自動(dòng)化任務(wù)編程語(yǔ)言。1993 年,VBA 開(kāi)始出現(xiàn)在 Microsoft Excel 和 Microsoft Project 中[1],以滿足用戶在特定領(lǐng)域?qū)ffice 基本功能擴(kuò)展的需求。目前,VBA 已集成于Microsoft Office 的大多數(shù)產(chǎn)品中,包括 Word、Excel、PowerPoint、Outlook 等。

        本系統(tǒng)使用的VBA 是基于Microsoft PowerPoint 2016 的 Microsoft Visual Basic for Application 7.1。

        1.2 ActiveX控件

        ActiveX 是微軟公司對(duì)一系列策略性面向?qū)ο蟪绦蚣夹g(shù)和工具的稱呼,其中主要的技術(shù)是組件對(duì)象模型(COM)。ActiveX 控件,是可以在應(yīng)用程序中重復(fù)使用的程序?qū)ο?,它的主要技術(shù)是ActiveX。VBA 編輯器提供的ActiveX 控件比較豐富,本系統(tǒng)使用到的有:命令按鈕控件、標(biāo)簽控件、文本框控件、List Box 控件、單選按鈕控件等。

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

        2.1 功能設(shè)計(jì)

        系統(tǒng)以PPT 為宿主對(duì)象,以Excel 為數(shù)據(jù)文件對(duì)象,以班級(jí)為基本操作對(duì)象,設(shè)置新增考勤、再次考勤、更新考勤三大功能模塊(圖1)。

        (1)新增考勤。用于一天中第一次對(duì)某班級(jí)點(diǎn)名,考勤數(shù)據(jù)將以當(dāng)前時(shí)間為索引單獨(dú)保存在Excel 的一列中。

        (2)再次考勤。用于對(duì)前一次考勤進(jìn)行補(bǔ)充,新考勤數(shù)據(jù)將之前的進(jìn)行合并。根據(jù)再次點(diǎn)名的學(xué)生是否能與之前已點(diǎn)名的學(xué)生重復(fù),分為兩種情況:一是“全量隨機(jī)”,此時(shí)可以重復(fù),被重復(fù)點(diǎn)名的學(xué)生,考勤數(shù)據(jù)以最后一次為準(zhǔn);二是“剩余隨機(jī)”,此時(shí)再次點(diǎn)名的學(xué)生不會(huì)與已經(jīng)點(diǎn)過(guò)名的學(xué)生重復(fù)。

        (3)更新考勤。用于對(duì)歷史考勤數(shù)據(jù)的修改,系統(tǒng)先列出當(dāng)前班級(jí)所有的歷史考勤時(shí)間索引;然后,根據(jù)用戶指定的時(shí)間索引將歷史考勤數(shù)據(jù)呈現(xiàn)出來(lái);最后,用戶對(duì)歷史數(shù)據(jù)進(jìn)行修改,提交保存。

        (4)點(diǎn)名方式。點(diǎn)名方式分兩種:一是全量點(diǎn)名,對(duì)選定班級(jí)的所有學(xué)生進(jìn)行點(diǎn)名;二是隨機(jī)點(diǎn)名,在選定班級(jí)中隨機(jī)抽取一定數(shù)量的學(xué)生進(jìn)行點(diǎn)名。兩種點(diǎn)名方式,最后都將點(diǎn)名結(jié)果以時(shí)間為索引保存在Excel 中。

        2.2 數(shù)據(jù)存儲(chǔ)設(shè)計(jì)

        VBA 技術(shù)支持對(duì) MySQL、SQL Server、Access 等數(shù)據(jù)庫(kù)的訪問(wèn)[2]。但考慮系統(tǒng)的簡(jiǎn)單、實(shí)用性,本設(shè)計(jì)以Microsoft Excel 作為考勤數(shù)據(jù)的“數(shù)據(jù)庫(kù)”,以方便非專業(yè)的用戶對(duì)考勤數(shù)據(jù)的查看、統(tǒng)計(jì)等操作。

        (1)Excel 文件。考勤數(shù)據(jù)的存儲(chǔ)以課程為單位,一門課程一個(gè)考勤表(Excel 文件),以“xxx 考勤表”為文件命名,并和PPT 放在同一目錄下。

        (2)Excel 工作表。一個(gè)Excel 文件里面可以有多個(gè)工作表(sheet)。一個(gè)班級(jí)設(shè)置為一個(gè)工作表,工作表表名為班級(jí)名稱。工作表里第一行為標(biāo)題行,初始設(shè)置 2 列(第 1 列標(biāo)題為“學(xué)號(hào)”,第 2 列標(biāo)題“姓名”),將班級(jí)學(xué)生信息填充到表中,學(xué)號(hào)順序沒(méi)有要求。

        (3)考勤信息。從工作表的第3 列開(kāi)始,系統(tǒng)自動(dòng)寫入考勤信息。其中,第一行為時(shí)間索引表示點(diǎn)名時(shí)間,格式為“年/月/日/小時(shí):分鐘”(如 2020/01/28/11:07);其余行用字母作為考勤標(biāo)識(shí):C-遲到,D-到課,K-曠課,Q-請(qǐng)假,Z-早退,沒(méi)有任何標(biāo)識(shí)的表示該學(xué)生沒(méi)被點(diǎn)名。

        3 系統(tǒng)實(shí)施

        3.1 初始化Excel

        根據(jù)上述數(shù)據(jù)存儲(chǔ)設(shè)計(jì)規(guī)則,新建一個(gè)Excel 文件,并將學(xué)生信息按班級(jí)寫入表格中。Excel 文件的存放路徑與PPT 保持一致。

        3.2 界面初始化

        (1)系統(tǒng)觸發(fā)。設(shè)置一個(gè)命令按鈕控件作為用戶調(diào)用系統(tǒng)的觸發(fā)器,由于點(diǎn)名時(shí)PPT 可能在任意頁(yè)面,所以將命令按鈕設(shè)置在幻燈片母版中[3],這樣由母版創(chuàng)建的每一張PPT 頁(yè)面都有這個(gè)按鈕,而我們只需對(duì)母版命令按鈕的點(diǎn)擊事件進(jìn)行編程即可。

        系統(tǒng)觸發(fā)后先讀取考勤表里的班級(jí)、人數(shù)信息,然后加載到初始化窗口中。但以PPT 為宿主的VBA 不能直接使用Excel 相關(guān)對(duì)象和函數(shù),需要先加載Excel對(duì)象庫(kù),即通過(guò)VBA 編輯器的“工具”,引用“Microsoft Excel 16.0 Object Library”,之后就可以通過(guò)程序來(lái)操作Excel 了,部分代碼如下:

        (2)初始化窗口。將上一步讀到班級(jí)、人數(shù)信息,加載到初始化窗口(圖2)的ListBox 控件中,并設(shè)置單選按鈕作為用戶選擇點(diǎn)名方式的控件。如果是隨機(jī)點(diǎn)名,則將班級(jí)人數(shù)四分之一的整數(shù)值作為文本框控件的默認(rèn)值。同時(shí),根據(jù)班級(jí)的不同,動(dòng)態(tài)給出輸入值范圍,并對(duì)用戶輸入的合法性進(jìn)行校驗(yàn)處理,部分代碼如下:

        圖2 初始化窗口

        3.3 新增考勤

        (1)生成要點(diǎn)名的學(xué)生ID 數(shù)組。一個(gè)班級(jí)里可能有學(xué)生退學(xué)、重修等情況,導(dǎo)致一個(gè)班級(jí)里學(xué)號(hào)可能不連續(xù),所以不能用學(xué)號(hào)作為序號(hào)。本系統(tǒng)將Excel 的行號(hào)作為學(xué)生ID,由于第一行是標(biāo)題,因此ID 數(shù)組的取值范圍為[2,PUB_studentsnum+1],其中 PUB_students?num 為全局變量,用于保存當(dāng)前班級(jí)的學(xué)生人數(shù)。

        全量點(diǎn)名時(shí),ID 數(shù)組的數(shù)據(jù)元素就是{2,3,4,…,PUB_studentsnum+1}。隨機(jī)點(diǎn)名時(shí),利用Rnd 函數(shù)產(chǎn)生一系列不重復(fù)的隨機(jī)數(shù)并保存到ID 數(shù)組中,代碼如下:

        (2)讀取班級(jí)表格中需要點(diǎn)名的ID 對(duì)應(yīng)的學(xué)生信息。上述得到的ID 數(shù)組,實(shí)際就是Excel 的行號(hào),根據(jù)行號(hào)讀取對(duì)應(yīng)班級(jí)表里的學(xué)生信息:第一列的學(xué)號(hào)和第二列的姓名,組合成字符串“學(xué)號(hào)-姓名“,保存到數(shù)組中。部分代碼如下:

        (3)點(diǎn)名。點(diǎn)名窗口(圖3)的ListBox 控件設(shè)置為2 列,第1 列用于加載上一步的學(xué)生信息,第2 列表示考勤信息??记谛畔⒂米址麡?biāo)識(shí):C-遲到,D-到課,K-曠課,Q-請(qǐng)假,Z-早退。同時(shí),為每個(gè)考勤標(biāo)識(shí)設(shè)置單選按鈕控件并對(duì)其點(diǎn)擊事件編程,達(dá)到通過(guò)點(diǎn)擊單選按鈕動(dòng)態(tài)改變考勤標(biāo)識(shí)的作用。以“請(qǐng)假”單選按鈕為例的代碼如下:

        圖3 點(diǎn)名窗口

        (4)保存考勤數(shù)據(jù)。遍歷圖3 的ListBox 控件,得到考勤標(biāo)識(shí),如果考勤標(biāo)識(shí)為空則默認(rèn)為“D”(到課)。然后,在班級(jí)表里新增一列,將這些考勤標(biāo)識(shí)逐一寫到ID 數(shù)組所記錄的行里。部分代碼如下:

        3.4 再次考勤

        設(shè)置“全量隨機(jī)”和“剩余隨機(jī)”兩個(gè)單選按鈕,系統(tǒng)動(dòng)態(tài)給出取值范圍。同時(shí),以最大值的1/3 作為“剩余隨機(jī)”的默認(rèn)輸入值,1/4 作為“全量隨機(jī)”的默認(rèn)輸入值供用戶參考,如圖4。

        再次考勤窗口的參數(shù)由用戶設(shè)定后,點(diǎn)擊“確定”,系統(tǒng)將生成新的需要點(diǎn)名的ID 數(shù)組,之后的操作與前面類似。再次考勤的數(shù)據(jù)將與之前的數(shù)據(jù)進(jìn)行合并,時(shí)間索引更新為最后一次點(diǎn)名時(shí)間。

        圖4 再次考勤界面

        3.5 更新考勤

        遍歷班級(jí)表的第一行,取出所有的歷史時(shí)間索引(圖5),加載到考勤時(shí)間選擇窗口的ListBox 控件中(圖6)。待用戶確定時(shí)間點(diǎn)后,系統(tǒng)讀取表里該時(shí)間點(diǎn)所在列的相關(guān)信息:行ID,學(xué)號(hào)-姓名,考勤標(biāo)識(shí)??记跇?biāo)識(shí)不為空的,就是之前點(diǎn)過(guò)名的學(xué)生,之后的操作與前面類似。新考勤數(shù)據(jù)覆蓋到原考勤時(shí)間所在的列中,實(shí)現(xiàn)歷史考勤的更新。

        圖5 班級(jí)考勤表

        圖6 考勤時(shí)間選擇窗口

        4 結(jié)語(yǔ)

        本系統(tǒng)以PPT 為宿主對(duì)象,以Excel 為數(shù)據(jù)文件對(duì)象,以班級(jí)為基本操作對(duì)象,利用VBA 技術(shù)實(shí)現(xiàn)了考勤管理的自動(dòng)化、電子化,能滿足部分教師的日常考勤需要。VBA 簡(jiǎn)單易學(xué),教師們可以開(kāi)發(fā)更多特色功能,豐富自己的教學(xué)工具,提升教學(xué)工作的“科技含量”。

        猜你喜歡
        數(shù)組考勤控件
        JAVA稀疏矩陣算法
        JAVA玩轉(zhuǎn)數(shù)學(xué)之二維數(shù)組排序
        基于人臉識(shí)別技術(shù)的考勤應(yīng)用研究
        電子制作(2019年12期)2019-07-16 08:45:28
        智能人臉識(shí)別考勤系統(tǒng)
        電子制作(2019年9期)2019-05-30 09:42:00
        關(guān)于.net控件數(shù)組的探討
        軟件(2018年7期)2018-08-13 09:44:42
        便攜式指紋考勤信息管理系統(tǒng)設(shè)計(jì)
        尋找勾股數(shù)組的歷程
        “最嚴(yán)考勤”難留學(xué)生心
        VB數(shù)組在for循環(huán)中的應(yīng)用
        考試周刊(2012年88期)2012-04-29 04:36:47
        就這樣玩會(huì)VBA中常見(jiàn)的自定義控件
        電腦迷(2012年24期)2012-04-29 00:44:03
        国产精品无码制服丝袜| 亚洲人成网站久久久综合| 欧美zozo另类人禽交| 中文字幕一区二区三区精品在线 | 亚洲av麻豆aⅴ无码电影| 精品欧美一区二区在线观看| 4hu44四虎www在线影院麻豆 | 亚洲AV无码久久久一区二不卡| 视频二区 无码中出| 少妇人妻系列中文在线| 日韩精品中文一区二区三区在线| 欧美四房播播| 国产精品福利自产拍久久| 亚洲va在线va天堂va四虎| 中文字幕人妻乱码在线| 白浆国产精品一区二区| 久久久久夜夜夜精品国产| 亚洲av永久无码精品国产精品| 日韩中文在线视频| av在线手机中文字幕| 亚洲中文字幕久久在线| 欧美多人片高潮野外做片黑人 | 亚洲色偷偷色噜噜狠狠99| 午夜视频免费观看一区二区| 极品夫妻一区二区三区| 亚洲一区二区三区小说| 国产人妻人伦精品1国产盗摄| 久久水蜜桃亚洲av无码精品麻豆| 亚洲国产精品成人av| 一区二区三区激情免费视频| 人人爽人人爽人人片av| 每天更新的免费av片在线观看| 粉嫩小泬无遮挡久久久久久| 日韩av在线手机免费观看| 亚洲国产av无码精品| 白又丰满大屁股bbbbb| av资源在线看免费观看| 一区二区三区精品亚洲视频| 久久精品中文字幕女同免费| 手机看片久久国产免费| av无码av在线a∨天堂app|