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

基于ASP.NET的軟件學院實踐環節課題申報系統的設計與實現

2011-12-27 08:16:30冬,高
中原工學院學報 2011年2期
關鍵詞:功能模塊系統教師

趙 冬,高 亮

(中原工學院,鄭州450007)

基于ASP.NET的軟件學院實踐環節課題申報系統的設計與實現

趙 冬,高 亮

(中原工學院,鄭州450007)

從軟件學院實踐環節課題申報工作的實際需求出發,以實現軟件學院實踐環節課題申報工作的自動化、信息化管理為目標,討論了系統軟件架構、功能模塊及涉及到的關鍵技術.系統采用微軟ASP.NET、AJAX技術及C#語言,可實現從教師開設課題,管理員審核課題,到學生申報課題,教師批準學生申報全過程的自動化管理,提高了實踐環節課題申報工作的效率.

課題申報;實踐環節;三層架構

目前,我國已有越來越多的高校開設了軟件學院,這些軟件學院多以培養應用型軟件工程人才為目標.在學生的培養過程中,實踐環節占了教學過程的較大比重,基本上每個學期末,都會安排一個為期1~3周的集中實踐課程.課程實踐中,教師要帶領學生,以組或個人為單位,開發具有一定規模的軟件.這類實踐課程的管理過程一般是:①在實踐課程開始前若干周,由各位教師發布自己的題目及每個題目需要多少組、每組多少人;②題目經過相關管理人員審批合格后,即公布給學生;③學生自由結合成組,選擇教師及題目;④教師確認自己所帶的組,并將最終的選報結果公布給學生.

目前,很多高校的這一選報過程仍采用手工或半自動化方式來完成,不僅工作效率較低,而且結果不準確,每次都會發生學生漏報或教師統計錯誤等情況,給后續的統計教師工作量及提交學生成績等工作造成不便.本課題申報系統能夠完成課題申報審批的全自動化處理,不僅減少了相關人員的工作壓力、提高了工作效率,而且提高了課題申報過程的規范性和準確性.

1 軟件架構

本系統采用了三層架構模式.所謂三層架構,是將整個系統劃分為三層,自下而上分別是數據訪問層、業務邏輯層和表示層[1].如圖1所示.三層架構模式層與層相對獨立,各層分別負責完成一類工作.該模式具有分散關注、松散耦合、邏輯復用等優勢[2].

圖1 軟件架構示意圖

2 功能結構

本系統功能模塊包括教師功能模塊、管理員功能模塊、學生功能模塊及通用功能模塊.系統體系結構如圖2所示.

圖2 實踐課題申報系統體系結構圖

2.1 教師功能模塊

教師功能模塊包括:

(1)個人題庫管理.教師可以維護自己的題庫,進行新增、修改及刪除題目等操作.每個學期申報題目時可以直接從題庫中選取或稍加修改,無需重復錄入.個人題庫中的題目只有教師本人可以維護.

(2)課題申請.教師在個人題庫或公共題庫列表中選擇合適的題目,只要選擇正確的學期、實踐環節類型、專業、組數、每組人數等信息,即可提交申請.

(3)學生選報處理.教師與學生之間是雙向選擇的關系,學生在選報教師的某個課題后,教師要對其進行確認,同時也有權拒絕其加入課題組.經過確認的學生,不能再自行退組.學生如要更換教師或題目,必須由本人提出申請,由教師將學生除名后才能再選擇其他教師的題目.

(4)學生成果管理.課題結束時,學生必須上傳自己的代碼及文檔.教師可通過此模塊查看并下載自己所帶學生上傳的成果.

2.2 管理員功能模塊

管理員功能模塊包括:

(1)公共題庫管理.管理員可以維護公共題庫,公共題庫中的題目可以供所有教師使用.

(2)課題審批.教師提交課題申請之后,需要經過管理員審批,學生才能選題.如審批沒通過,管理員可將沒通過的原因反饋給教師.

(3)基礎信息管理.管理員還需管理系統運行所需的基礎信息,如學生信息、教師信息、專業信息、班級信息、課題允許選報時間設置等.

2.3 學生功能模塊

學生功能模塊包括:

(1)課題選報.學生登錄后可看到與自己本專業、本次實踐環節相關的所有題目,可查看每一個題目的詳細信息及目前的選報情況,如課題組是否已經報滿、各組組員是否已經報滿等情況.學生選好課題后,可自行在該課題下創建項目組(在該課題項目組數未滿的情況下)并設置組密碼,也可直接加入其他組(該組的組員未滿,且要求輸入組密碼).學生在創建或加入某組后,在教師未確認之前,仍可自行退組并選擇其他組或課題.教師確認后,學生會收到一條確認成功的站內短信,且不能再退組.如果教師將學生除名,被除名的學生會收到一條站內短信,則該生處于未加入任何組的狀態,可繼續選擇其他教師的題目.

(2)成果提交.在實踐環節結束時,學生可以通過該模塊提交自己的代碼及文檔等成果性資料,作為教師評分的依據.

2.4 通用功能模塊

通用功能模塊包括:

(1)登錄.本系統所有用戶必須經過登錄驗證身份后才可使用.如果是學生登錄,需要以學生所在班級為依據,結合當前日期計算本學期該生應該參加哪個實踐環節,以及目前是否已經開放了該實踐環節的選題功能.系統會根據計算結果決定是否顯示課題列表以及顯示哪些題目.

(2)公告.管理員有權發布公告,教師及學生只有瀏覽公告的權限.

(3)站內短信.管理員可向任何人發送站內短信,教師可向自己所帶學生及管理員發送站內短信;學生可向自己的指導教師及管理員發送站內短信.系統支持群發功能.

(4)BBS.任何登錄用戶均可使用BBS進行交流.管理員具有論壇管理權限,包括刪除帖子、刪除回復、封ID等.

3 數據庫設計

本系統采用了SQL Server2000作為DBMS.系統E-R圖如圖3所示.

圖3 實踐課題申報系統E-R圖

4 關鍵技術的應用

4.1 AJAX技術的應用

AJAX(Asynchronous JavaScript and XML)即異步JavaScript和XML,是一種創建交互式網頁應用的網頁開發技術.AJAX最大的特點是實現了客戶端與服務器端之間異步的數據交換[3].目前在 ASP.NET2.0下,可以有多種方式實現AJAX.本系統是采用Client CallBack方式實現的.

本系統幾乎所有涉及到數據列表刷新的頁面都采用了AJAX技術,下面以班級信息的添加操作為例,說明采用Client CallBack方式實現AJAX的方法:

第一步,使需要完成AJAX效果的頁面實現ICallback Event Handler:

public partial class Classes Manage :System.Web.UI.Page,System.Web.UI.ICallback Event Handler

既然需要實現ICallback Event Handler接口,就要實現接口中定義的2個方法:GetCallback Result和RaiseCallback Event.第一個方法用來返回回調事件的結果,第二個方法用來處理回調事件.

班級管理頁面中,這2個方法的核心實現如下:

public string Get Callback Result()

return builder.ToString();//builder 為Classes Manage類的成員變量

public void RaiseCallback Event(string event Argument)

//Begin實現班級信息的添加,重新綁定數據顯示列表

BLL.classes bc = new Maticsoft.BLL.classes();//創建班級的業務邏輯層對象

Model.classes mc=new Maticsoft.Model.classes();//創建班級實體

mc.classid= GetId();

mc.classname = Request.Form\["txt-ClassName"\].ToString();

mc.proid=ddlPro.Selected Value;

bc.Add(mc);//調用業務邏輯層添加班級信息的方法,完成添加操作

Grid View1.DataSource = bc.Get All List().Tables\[0\].Default View ;

Grid View1.DataBind();

//End

//以下代碼將Grid View?轉換成 HTML流,存到builder中,在GetCallBack Result時傳回客戶端

System.IO.String Writer sw = new System.IO.StringWriter();

Html Text Writer htw=new Html Text-Writer(sw);

Grid View1.RenderControl(htw);

builder.Append(sw.ToString());

第二步,需要在aspx文件中注冊回調方法.

(1)在<Head>標簽內添加以下Javascript代碼:

function ReceiveServer Data(arg,context)

document.get ElementById ("msg_display").inner HTML=arg;//將服務器傳回的Grid View的HTML碼顯示在名為“msg_display”的DIV標簽內.

function Call TheServer(arg,context)

<% =ClientScript.GetCallback Event Reference(this,"arg","ReceiveServer Data","context")%>//注冊回調方法

(2)處理添加按鈕的onclick客戶端事件處理函數為:Call TheServer.

<input type="button"value="添加"onclick="Call TheServer(')"id="Button1"/>

在Call TheServer函數中對回調函數注冊后,當用戶點擊“添加”按鈕時,服務器端就會執行Raise-Callback Event方法,即處理數據的插入操作,重新綁定Grid View的數據源,以及將Grid View轉換成新的HTML碼,最后以GetCallback Result返回給客戶端,而客戶端就會以ReceiveServer Data函數接收這個HTML碼,將其放到合適的位置中.在整個處理過程中,Grid View的更新是無刷新的.

4.2 服務器推送技術的應用

所謂服務器推送技術,就是當客戶端提出一個請求后,即和服務器建立一個永久的連接,而后服務器會根據客戶端的請求主動把數據推給客戶端,這個推的過程是不間斷的.由服務器推向客戶端的數據在客戶機的瀏覽器上會不斷呈現出新的內容[4].

在本系統中,有2個功能在實現時用到了服務器推送技術:其一是站內短信的即時提醒功能,本功能做到了當站內在線的用戶給他人發送短信時,接收方可以實時獲得新短消息的閃爍圖片通知;其二是學生進行課題選報時所使用的課題列表頁面,該頁面要時刻根據所有同學的選報情況控制每個在線學生的課題列表中每個課題所在行的“創建課題組”和“加入課題組”按鈕的可用狀況,以避免在學生從進入課題列表頁面到確定選報哪個題目并進行操作這段時間內,因其他同學已經報滿了該題目而浪費學生的選題時間.

下面以站內短信即時提醒功能為例,說明服務器推送技術在本系統中的具體實現.本系統站內短信新消息的提醒是采用在母版頁上顯示閃爍的GIF圖標來提醒用戶的.母版頁的核心代碼如下:

在<head>標簽中添加以下javascript:

<script type="text/javascript">

function SetContent()

window.document.get ElementById("div New Message").inner HTML="<a href='list My-New Message.aspx'><img width=30 height=20 src='imgs/message.gif'/></a>";

//在<body>中需要有一個名為div New Message的標簽,該標簽就是用來顯示新消息提醒圖標的

function init(){

var ifr1= new ActiveXObject("htmlfile");//創建htmlfile對象

ifr1.open();//打開該對象

var iDiv=ifr1.createElement("div");//在該htmlfile對象中創建一個div標簽

ifr1.appendChild(iDiv);//將創建的div添加到htmlfile

ifr1.parent Window.SetContent=SetContent;//注冊方法

iDiv.inner HTML = "<iframe src='message.aspx'></iframe>";//在上面創建的div里添加iframe

ifr1.close();//關閉htmlfile對象

setInterval(function(){},10000);//循環執行,因htmlfile對象存在超時的問題

init();執行init函數

</script>

在init函數中提到的message.aspx就是要和服務器保持長連接的頁面,其后臺C#代碼如下 :

Application[Session["username"].ToString()]= Response;//Session["username"]會在用戶登錄時產生,存儲用戶名,該行代碼的目的是保存每一個登錄用戶及其長連接頁面的Response對象.

System.Threading.Thread.Sleep (System.Threading.Timeout.Infinite);//使該頁面永不完成,以實現長連接

發送站內消息的發送按鈕事件代碼如下:

for (int i = 0;i < Application.All Keys.Length;i++)//遍歷各在線用戶的Response對象

string name= Application.All Keys[i];//獲得Application的鍵,即用戶名

Http Response Response=Application[name]as Http Response;//獲得該用戶的Response

if(Response!= null && Response.IsClientConnected)

for (int j= 0;j< cbl User List.Items.Count;j++)//遍歷短信的目標用戶列表if (cbl User List.Items [j].Selected&&cbl User List.Items[j].Value==name)

{//如果當前Response所屬用戶是短信接受人,則執行推送

Response.Write("<script>parent.SetContent()</script>");

Response.Flush();

e

lse

Application.Remove(name);

總體來說,服務器推送功能由3個重要的環節來實現:

(1)構造長連接頁面,時刻保持與服務器的連接,隨時接受服務器“推”來的數據;

(2)保管每一個長連接,推送時才能有目的地進行;

(3)需要htmlfile對象來避免下載進度條持續下載的缺陷.

5 結 語

本系統能夠完成軟件學院實踐環節課題申報全業務過程的自動化管理,大大提高了工作效率,有效保證了數據的及時性和準確性.本系統自2006年開始投入試運行,4年間經過了3個版本的升級與完善,目前運行穩定,業務邏輯嚴謹,計算準確.

[1]李園,陳世平.MVC設計模式在ASP.NET平臺中的應用[J].計算機工程與設計,2009(30):3180-3184.

[2]甄鐳 .NET與設計模式[M].北京:電子工業出版社,2005.

[3]修桂華,李紅光.AJAX技術在 ASP.NET開發中的應用[J].科技資訊,2009(33):7-8.

[4]Jason Bell,Mike Clark.ASP.NET程序員參考手冊[M].北京:清華大學出版社,2002.

Designing and Realizing of ASP.NET Based Project Declaring System for Practicing Courses of Software College

ZHAO Dong,GAO Liang
(Zhongyuan University of Technology,Zhengzhou 450007,China)

This article discusses the framework,function modules and the key thchniques of project declaring system for practicing courses,which was designed from the real working flow of software college and aimed at robotization and informationization of project declaring.The system was designed and realized by ASP.NET,AJAX and C#.NET,which can automaticly process teacher’s opening project,manager’s auditing project,students’declaring project and teacher’s arrpoving students,which can improve the working efficiency of project declaring.

project declaring;practicing courses;3-tier application

TP315

A

10.3969/j.issn.1671-6906.2011.02.018

1671-6906(2011)02-0066-05

2011-02-27

趙 冬(1976-),女,河南鄭州人,講師,碩士.

猜你喜歡
功能模塊系統教師
Smartflower POP 一體式光伏系統
工業設計(2022年8期)2022-09-09 07:43:20
最美教師
快樂語文(2021年27期)2021-11-24 01:29:04
WJ-700無人機系統
ZC系列無人機遙感系統
北京測繪(2020年12期)2020-12-29 01:33:58
教師如何說課
甘肅教育(2020年22期)2020-04-13 08:11:16
未來教師的當下使命
連通與提升系統的最后一塊拼圖 Audiolab 傲立 M-DAC mini
基于ASP.NET標準的采購管理系統研究
軟件導刊(2016年9期)2016-11-07 21:35:42
輸電線路附著物測算系統測算功能模塊的研究
M市石油裝備公服平臺網站主要功能模塊設計與實現
石油知識(2016年2期)2016-02-28 16:20:16
主站蜘蛛池模板: 日a本亚洲中文在线观看| 亚洲精品免费网站| 狼友视频国产精品首页| 日韩在线视频网| julia中文字幕久久亚洲| www欧美在线观看| 国产日本一线在线观看免费| 日韩一区二区在线电影| 亚洲日韩精品欧美中文字幕| 成人福利在线看| 欧洲精品视频在线观看| 国产导航在线| 亚欧乱色视频网站大全| 色屁屁一区二区三区视频国产| 国产美女一级毛片| 亚洲中文字幕久久精品无码一区| 无码av免费不卡在线观看| 黄色一级视频欧美| 91蝌蚪视频在线观看| 亚洲天堂精品视频| 欧美精品v| 久久一本日韩精品中文字幕屁孩| 99热这里只有精品在线观看| 色综合五月| 久久精品欧美一区二区| AV天堂资源福利在线观看| 91在线一9|永久视频在线| 国内精品免费| 99热这里只有精品在线播放| 国产亚洲欧美在线人成aaaa| 老熟妇喷水一区二区三区| h视频在线观看网站| 国产清纯在线一区二区WWW| 免费jizz在线播放| 永久天堂网Av| 六月婷婷激情综合| 国产性生交xxxxx免费| 国产亚洲欧美在线中文bt天堂| 性色生活片在线观看| 亚洲午夜国产精品无卡| 国产成人亚洲无码淙合青草| 波多野结衣在线se| 日韩成人午夜| 久久精品人妻中文视频| 国产伦精品一区二区三区视频优播 | 国产一区二区三区在线观看视频| 波多野结衣久久精品| 精品久久久久成人码免费动漫 | 伊人大杳蕉中文无码| 91啪在线| 欧美亚洲日韩中文| 免费毛片全部不收费的| 无码内射在线| 国产91小视频在线观看| 日韩高清在线观看不卡一区二区| 久久久久免费看成人影片| 在线精品自拍| 国产精品亚洲精品爽爽| 日本一区中文字幕最新在线| 福利姬国产精品一区在线| 久草视频福利在线观看| 不卡视频国产| 欧美午夜在线播放| 中文无码精品a∨在线观看| 99国产在线视频| 中文字幕日韩丝袜一区| 伊人久久大香线蕉aⅴ色| 高清免费毛片| a色毛片免费视频| 中文字幕免费播放| 欧洲欧美人成免费全部视频| 欧洲成人免费视频| 久久久久久久97| 九色视频一区| 成人午夜精品一级毛片| 中文字幕欧美日韩高清| 久无码久无码av无码| 色久综合在线| 亚洲欧美日韩中文字幕在线| 欧美日本一区二区三区免费| 免费 国产 无码久久久| 亚洲an第二区国产精品|