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

?

實驗實踐課輔助排課系統的設計與實現

2014-07-13 15:59:12李麗郭蕓俊
電腦知識與技術 2014年5期

李麗 郭蕓俊

摘要:該文詳細介紹了在WINDOWS XP平臺下, 利用可視化集成開發(fā)工具C++ Builder和SQL Server數據庫技術開發(fā)的實驗實踐課輔助排課系統的設計與實現。該系統的運行提高了學院實驗室排課的工作效率,促進了實驗教學管理的定量化、規(guī)范化和信息化。

關鍵詞:排課系統;實驗教學管理;C++ Builder;SQL Server

中圖分類號:TP315.69 文獻標識碼:A 文章編號:1009-3044(2014)05-0965-05

Experiment Practice Lesson Course Auxiliary Scheduling System Design and Realization

LI Li, GUO Yun-jun

(Taiyuan Institute of Computer Engineering, Taiyuan 030008, China)

Abstract:This article describes the platform in WINDOWS XP, using visual integrated development tools C ++ Builder and SQL Server database technology developed experimental practice lesson auxiliary Scheduling System Design and Implementation. The operation of the system to improve the efficiency of the laboratory Scheduling and promote a quantitative experimental teaching management, standardization and information technology.

Key words:course scheduling system;experimental teaching management;C++ Builder;SQL Server

高校的實驗室作為學校實踐教學、科學研究的基地,其管理水平和信息化程度直接影響著學校培養(yǎng)人才的質量和科研的效率。而在實驗實踐教學管理中,實驗課的排課問題又是一項重要且復雜的基礎工作。由于受到實驗室、教師等資源的限制,實驗排課的過程中充滿了矛盾和沖突,手工排課,費時費力,且科學性、方便性更難以保證。所以,開發(fā)小型實用的實驗室排課系統已成為我院實驗室高效管理的迫切需求[1-2]。

目前,我院擁有實驗室、語音室和公共機房100余個,分布在不同的校區(qū)。一直以來,我院實驗室的排課都是采用各自為營、人工編排再統一上報匯總的工作方式。顯然,該工作方式存在效率低、周期長、規(guī)范性差和出錯率高等諸多缺陷。為了提高排課效率,滿足實驗室信息化綜合管理的需求,也為了有利于學院對實驗室的統一規(guī)范化管理和監(jiān)督,我們開發(fā)了實驗實踐課輔助排課系統。

1 系統功能模塊

本系統完成的功能主要有[3-4]:

1) 系統管理員可按學期發(fā)放實驗教學任務,并對實驗教學任務進行管理。

2) 系統管理員可以方便的對實驗室、教師、班級、實驗課程和項目等基本信息進行維護。

3) 實驗室可根據自身特殊情況,設置時間條件限制。

4) 教師可按照本學期實驗教學任務,分課程按實驗項目安排實驗時間和地點。

5) 各類型實驗課表的查詢和導出功能。

6) 系統管理員可對實驗安排情況進行檢查和查錯,并對實驗課表數據進行維護。

根據要完成的主要功能將系統分成8個主要功能模塊,其結構如圖1所示。

1) 用戶登陸模塊:系統允許管理員、教師和學生3 類不同權限的用戶登陸。根據登陸用戶的權限,系統將啟動不同的模塊。管理員擁有系統全部權限;教師擁有添加修改實驗項目、安排實驗上課時間,查詢實驗課表等權限;學生只擁有查詢實驗課表的權限。

2)實驗室信息管理模塊:本模塊由系統管理員負責,實現學院實驗室基本信息的維護和管理,主要包括添加、刪除實驗室,修改實驗室信息等功能。

3)實驗項目管理模塊:實現實驗課程和實驗項目的信息管理,主要包括實驗課程的添加、課程信息的修改、實驗項目的添加、項目信息的修改等功能。該模塊中,教師只分配了實驗項目的操作權限。

4)條件設置模塊:實現實驗室(或教師)不可用時間段的排除設置。該功能主要針對我院部分實驗室(或教師)在特殊時間段有特殊工作安排,無法上實驗的情況而設置的功能。

5)時間安排模塊:實現教師分課程按項目安排實驗地點和時間。主要包括實驗時間的保存、修改和刪除功能。

6)時間查詢模塊:實現實驗課表的查詢。主要包括按教師、按班級、按實驗室中心、按實驗室等不同類型實驗課表的查詢和導出功能。

7)任務管理模塊:本模塊由系統管理員負責,實現本學期實驗教學任務的發(fā)放和管理。主要包括學期初始化、導入教學任務、修改教學任務和教學任務預處理等功能。

8)其他功能模塊:本模塊由系統管理員負責,主要實現了實驗課表安排情況的檢查和查錯、用戶管理和數據管理等功能。

2 系統設計與實現

2.1 設計平臺和工具

本系統是以WINDOWS XP操作系統為開發(fā)平臺,利用可視化集成開發(fā)工具C++ Builder和SQL Server數據庫制作完成的。

2.2 系統數據庫設計

系統數據庫設計主要包括實驗課表(dbs_sykb)、班級表(dbc_bjb)、教師表(dbc_jsb)、用戶表(dbz_user)、課程表(dbc_kcb)、實驗中心表(dbc_syzxb)、實驗室表(dbc_sysb)、實驗項目表(dbc_syxmb)、教學任務表(dbs_jxrw)、 教學任務對比表(dbs_dbrw)等十余種表的設計。

這里主要介紹幾個關鍵表的結構:

1)實驗課表實際上就是按實驗項目安排的時間地點表,主要包括序號、項目名稱、實驗室編碼、實驗室名稱、課程(環(huán)節(jié))、上課班級、周次、星期、節(jié)次、輔導教師等字段。

2)實驗項目表記錄了所有實驗室可做實驗項目的相關信息,主要包括序號、課程(環(huán)節(jié))、項目編碼、項目名稱、計劃時數、實驗類型、實驗類別等字段。

3)實驗室表記錄了所有實驗室信息,主要包括實驗室編碼、實驗室名稱、中心編碼、中心名稱、歸屬系部、設備臺套數、總資產、管理教師等字段。

4)教學任務對比表記錄了本學期所有實驗教學任務的相關信息,主要包括序號、課程(環(huán)節(jié))、實驗類別、課程類別、授課方式、學時(周)數、教師、班級、班級數、學生人數、上課周次等字段。

2.3 主要功能模塊實現

鑒于篇幅有限,這里主要截取登陸模塊、時間安排模塊、時間查詢模塊和課表差錯模塊的實現進行介紹。

2.3.1登陸模塊

用戶通過登錄界面進入系統,教師和管理員通過工號和密碼登錄,學生通過班級號登錄。由于用戶的權限不同,所以不同用戶登錄后所見的系統主界面也不同,如圖2為擁有全部操作權限的管理員登錄后的系統主界面。若以教師身份登錄,主界面中的任務管理和其他功能模塊不可見,而以學生身份登錄后只能看到時間查詢模塊。

圖2 系統主界面

除此之外,本系統還進行了環(huán)節(jié)設置。系統處于數據維護環(huán)節(jié)時,除管理員外,其他身份都無法登錄系統;教師排課環(huán)節(jié),教師可正常登錄系統完成與實驗安排相關的所有功能;課表查詢環(huán)節(jié),教師無權修改課表(如需修改,必須辦理相關手續(xù)后由管理員統一操作),和學生一樣都只能進行課表的查詢操作。

2.3.2時間安排模塊

本系統由教師直接安排實驗時間,時間安排界面如圖3所示。

圖3 時間安排界面

在教師安排時間前,管理員需提前導入本學期實驗教學任務并預處理。這樣,教師就可以方便的選擇實驗課程、班級、實驗地點等內容而不必自己輸入。教師分課程按實驗項目選定了實驗地點和實驗時間等內容后,點擊“保存”按鈕即實現該實驗項目實驗時間的安排。安排成功,該記錄會出現在下面的時間安排表中。當然,在安排實驗時間時,系統要確保數據的完整性和進行沖突檢測(比如:一個教師不能同時使用多個實驗室,一個班級不能同時上多個課程的實驗,一個實驗室也不能同時上多個教師的實驗等等),其實現的基本流程如圖4 所示。

圖4 時間安排基本流程圖

2.3.3時間查詢模塊

實驗時間查詢界面如圖5所示,用戶可根據需要按班級、教師、實驗室、實驗中心、實驗課程等實現單字段查詢也可以結合周次實現多字段查詢,并根據需要導出查詢結果。關鍵實現代碼如下:

s = ComboBox2→Text.Trim();

if(s.Length()>0 && ComboBox2→ItemIndex>=0)

switch(ComboBox3→ItemIndex){

case 0: // 班級

t = " CharIndex('" + s + "', bj)>0 ";

break;

case 1: // 教師

t = " CharIndex('" + s + "', js1+js2)>0 ";

break;

case 2: // 實驗室

t = " sysm='" + s.SubString(s.Pos("[")+1, s.Pos("]")-s.Pos("[")-1) + "' ";

break;

case 3: // 實驗中心

t = " CharIndex('" + s.SubString(s.Pos("[")+1, s.Pos("]")-s.Pos("[")-1) + "', sysm)=1 ";

break;

case 4: // 實驗課程

t = " CharIndex('" + s.SubString(s.Pos("[")+1, s.Pos("]")-s.Pos("[")-1) + "', kc)=2 ";

break;

case 5: // 課程系部歸屬

t = " CharIndex('" + s.SubString(s.Pos("[")+1, s.Pos("]")-s.Pos("[")-1) + "', kc)=4 ";

break;

default: t = "";}

if(ComboBox1→ItemIndex>0){

if(t.Length()>0) t += " AND ";

t += " zc=" + ComboBox1→Text;}

s = sTitle + " where jxxn='" + dm→GetString("學年").Trim() + "' AND jxxq='" + dm→GetString("學期").Trim() + "'";

if(t.Length()>0) s += " AND " + t;

dm→qa[0]→SQL→Text = s + " order by sysm,zc,xq,jc1,js2,kc";

DBGrid1→Columns→Clear();

dm→qa[0]→Open();

2.3.4課表差錯模塊

由于本系統是由教師為主導安排實驗時間的,在排課的過程中難免會出現錯排,漏排的現象,為確保實驗課表的正確性,系統對實驗課表的安排情況進行檢查和差錯是非常有必要的。該模塊由管理員負責,實現界面如圖6所示。

圖6 課表差錯界面

檢查的過程中,要實現與實驗教學任務表的對照,檢索出未排實驗、實驗學時不正確等情況并導出出錯明細,相關差錯語句如下:

select jl 錯誤情況,kc [課程(環(huán)節(jié))],fs 授課方式,sylx 實驗類型,js 教師,bj 班級,rs 人數,sss [計劃時(周)數],pcs [排出時數],pkcs 排課次數

from (—未排

select '沒有排實驗實踐課' jl, kc, fs, sylx, js, bj, rs, sss, pcs, pkcs

from db_temp_dbrw2 A

where (select count(*) from dbs_sykb where LTRIM(RTRIM(kc))=LTRIM(RTRIM(A.kc)) AND CharIndex(LTRIM(RTRIM(A.bj)),bj)>0)=0

—公共計算機課實驗必須正好等于計劃學時數 其他專業(yè)課實驗必須整數倍 實踐校內必須安排時間地點

UNION

select '學時(周)數不正確' jl, kc, fs, sylx, js, bj, rs, sss, pcs, pkcs

from db_temp_dbrw2 A

where fs!='實踐' AND

(select count(*) from dbs_sykb where LTRIM(RTRIM(kc))=LTRIM(RTRIM(A.kc)) AND CharIndex(LTRIM(RTRIM(A.bj)),bj)>0)>0 AND

(select sum(jcs) from dbs_sykb where LTRIM(RTRIM(kc))=LTRIM(RTRIM(A.kc)) AND CharIndex(LTRIM(RTRIM(A.bj)),bj)>0)%A.sss<>0 OR

fs='實踐' AND sylx in ('社會實踐','分散實習','校外集中實習','畢業(yè)實習') AND

(select count(*) from dbs_sykb where LTRIM(RTRIM(kc))=LTRIM(RTRIM(A.kc)) AND CharIndex(LTRIM(RTRIM(A.bj)),bj)>0)!=A.sss OR

fs='實踐' AND sylx not in ('社會實踐','分散實習','校外集中實習','畢業(yè)實習') AND

(select count(*) from dbs_sykb where LTRIM(RTRIM(kc))=LTRIM(RTRIM(A.kc)) AND CharIndex(LTRIM(RTRIM(A.bj)),bj)>0)>0 AND

(select sum(jcs) from dbs_sykb where LTRIM(RTRIM(kc))=LTRIM(RTRIM(A.kc)) AND CharIndex(LTRIM(RTRIM(A.bj)),bj)>0)!=A.sss AND

(select sum(jcs) from dbs_sykb where LTRIM(RTRIM(kc))=LTRIM(RTRIM(A.kc)) AND CharIndex(LTRIM(RTRIM(A.bj)),bj)>0)!= A.sss * CASE when sylx='專用實踐周' then 16 when sylx='課程設計' then 12 else 5 END

—) A

order by SubString(kc,4,2),kc,bj,js;

3 結束語

目前,本系統已在全院范圍內進行了近兩學期的試運行。運行結果表明,系統性能良好,達到了提高工作效率、規(guī)范實驗排課管理工作流程的目的,促進了我院實驗教學管理的信息化建設。當然,系統目前仍存在諸多不足之處有待改進,比如操作的簡便性、查詢的方便性等等??傊覀儗⒗^續(xù)在今后的技術實踐中,不斷地完善和擴展系統性能。

參考文獻:

[1] 張曉偉.煤炭院校實驗室排課系統的設計與實現[J].煤炭技術,2011,30(10):240-241.

[2] 章玉政,李世杰.實驗中心排課系統的設計與實現[J].實驗室科學,2011,14(6):131-133.

[3] 石義芳.基于.net 技術的實驗室排課系統設計與實現[J].電腦知識與技術, 2009, 5(6):1352-1354.

[4] 李志香,趙永剛.實驗室排課系統開發(fā)與使用[J].應用經驗, 2012(225):55,64.

上杭县| 玉门市| 长葛市| 福安市| 长丰县| 会泽县| 博爱县| 巴里| 工布江达县| 特克斯县| 綦江县| 乌拉特前旗| 易门县| 天津市| 无极县| 当涂县| 盐源县| 卓资县| 盐山县| 西盟| 若羌县| 安国市| 时尚| 陆良县| 浦县| 闽清县| 齐齐哈尔市| 巴林右旗| 谢通门县| 娄底市| 利津县| 大宁县| 炉霍县| 吕梁市| 温州市| 宜章县| 镇康县| 丹凤县| 二手房| 固阳县| 绥芬河市|