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

C#案例教學之模擬資源管理器瀏覽功能

2013-04-07 00:38:07段莎莉
山西廣播電視大學學報 2013年2期
關鍵詞:案例學生

□段莎莉

( 山西國際商務職業學院 信息系,山西 太原 030031)

一、案例設計背景

高等職業教育具有“高等教育”和“職業教育”的雙重屬性,是高等教育發展中的一個類型,不是其中一個層次,具有不可替代的作用,其培養的目標定位明確為培養一線的勞動者、操作者、服務者和管理者。有了職業技能,就能獲得企業運作的基層經驗,再加上高職院校不同于職業培訓機構的綜合素質的培養,才能進一步提升就業空間,實現人才的可持續發展。計算機與應用技術作為高職教育設置的傳統專業,我們秉承“工學結合,以能力為本位、以職業實踐為主線”的高職教育理念制定人才培養方案,設置課程體系,開設課程時充分考慮學生的就業,適當選取時下熱門實用的語言。基于這種考慮,將《C#程序設計》作為專業核心課程,C#是微軟公司專門為.net平臺設計的完全面向對象的語言,從C,C++和Java等多種語言繼承發展而來,博采眾長,簡言之,綜合了圖形化可視操作和C++的高運行效率,以其強大的操作能力、優雅的語法風格、創新的語言特性和便捷的面向組件編程的支持成為.net開發平臺的首選語言,是學生就業時必備殺手锏之一。該課程緊跟企業技術應用和人才需求崗位而開設,教學中以項目開發過程為導向,采用案例教學法,目的是培養學生具備應用管理軟件底層代碼的能力,職業定位是企業Visual C#.net程序員,注重核心職業技能和職業素質的培養。

我國自上世紀引入案例教學法,在各個學科深入開展廣泛應用,取得了較好的教學效果。它是在教師的指導下,根據教學目的要求,組織學生對案例的調查、閱讀、思考、分析、討論和交流等活動,教給他們分析問題和解決問題的方法或道理,進而提高分析問題和解決問題的能力,加深學生對基本原理和概念的理解的一種特定的教學方法。這個過程中案例的選取是關鍵,案例內容應具有一定的代表性和普遍性,涉及的知識多且全面,通過學習能讓學生舉一反三,從多角度對所學理論加以驗證,從中得出正確結論。有了這樣的思路,我們加大了《C#程序設計》課程案例選取的深度和廣度,向步入準職業領域方向過渡,擴大案例所涉及知識范圍,加長讀寫代碼篇幅,通過合適的項目引導,激發學習興趣,進而把理論教學與實踐教學有機地結合起來,充分發掘學生的創造潛能。

二、windows資源管理器仿真模擬案例的實現

(一)界面設計

界面為帶有標題欄、菜單欄、工具欄、地址欄、狀態欄和用splitCotainer容器分割控件分成左右兩部分的TreeView樹形結構控件和ListView列表視圖控件,左邊用splitContainer分成上下兩部分,上面放置“文件夾”工具條用于轉換“資源管理器”視圖,下面放置TreeView樹形結構控件,為了讓程序適應窗體大小的改變,設置splitCotainer和內置控件停靠屬性dock為fill,且分割控件的固定面板設置為panel1,當窗體調整大小時panel1能保持不變。另外,讀者可能頭疼按鈕圖標,可以采用系統默認的圖標。

在設計階段縱然讓地址欄上的各個按鈕布滿工具欄的寬度,由于放置地址組合框的工具欄的dock屬性為top,所以隨著窗體大小改變,工具欄的寬度是會隨著放寬,并且“地址”標簽和“轉到”按鈕是左、右對齊,造成在地址組合框和“轉到”按鈕之間留下了間隙,故在工具欄的Resize事件中重新計算并調整地址組合框的寬度,通過foreach循環將除地址組合框以外的項目的寬度相加,用工具欄的新寬度將其減去再減一定的數值,為的是調整完寬度不讓其它項目溢出。

(二)功能實現

仿真設計的功能實現完全參考windows資源管理器的瀏覽功能設計。

1.加載本地磁盤列表。窗體加載時調用ListDrivers()加載本地磁盤列表,首先將treeview中的結點清空,再用treeview的add(“結點名稱”)方法動態添加名為“我的電腦”根結點nodes[0]并使其成為selectednode,由于窗體加載和選擇根結點時都要加載本地磁盤列表,清空結點避免本地磁盤列表重復添加,動態添加避免清空在設計階段添加的根結點后找不到nodes[0],無法將本地磁盤列表作為“我的電腦”的子結點添加進去。

有了根結點后通過代碼將本地磁盤列表作為其子結點動態地加入treeview中,使用DriveInfo類的GetDrives()方法提取本地邏輯磁盤盤符(如C:等)到字符串數組中,采取循環方法將數組元素生成treenode添加到treeview1.nodes[0],同時生成listviewitem添加到listview中,一是為了正確顯示結點名稱,通過判斷drivetype來區別“本地磁盤、CDROM和可移動磁盤”,并修改結點的text屬性;二是為了正確顯示結點圖標,將treeview調整為小圖標視圖并與imagelist1相關聯,listview調整為大圖標視圖與imagelist2相關聯。

2.加載邏輯磁盤資源。該功能在treeView_BeforeExpand事件中實現,結點即將展開前觸發事件,通過事件參數e定位到每個即將展開的結點,也就是即將被單擊“+”號的結點,只要分配給當前結點的集合不為空,通過調用NodeUpdate(e.node)[1]就能將各級結點的子目錄作為子結點添加到其集合中。首先調用自定義GetFilePath(e.node)[2]獲取當前結點絕對路徑,用它生成操作文件夾的目錄對象,用GetDirectories()方法提取該對象的子目錄集合,由于每個結點子目錄集合的元素個數不定,故循環的次數不定,只能采用foreach循環將集合中的對象生成treenode作為當前結點e的子結點添加到treeview中,由于treeview控件和imagelist1相關聯,所以將新加下結點的圖標設置為imaglist1中索引為4的文件夾圖標,將其選擇后的圖標設置為索引為5即呈打開狀態的文件夾圖標。首次加入時顯示為文件夾關閉圖標,當單擊成為所選對象后顯示為文件夾打開圖標。

GetFilePath(TreeNode node) 方法和系統提供的node.fullpath屬性實現的功能一樣,但是由于在加載磁盤列表時修改了其text屬性,fullpath屬性得不到結點的絕對路徑,故改寫其實現過程為GetFilePath(),通過判斷所選結點的text屬性,如果選擇根結點“我的電腦”,則返回空字符路徑,表示沒有合法路徑;如果選擇“本地磁盤”結點,則返回node.name即drive.name,這就解決了name和text不一致的問題;如果選擇“本地磁盤的子目錄”結點,則遞歸調用GetFilePath(),層層向上直至遍歷到“本地磁盤”,從而得到該結點的fullpath。

3.瀏覽邏輯磁盤資源。該功能分為正向和反向兩部分來實現,正向瀏覽是單擊treeview結點在listview中加載相應資源,反向瀏覽是激活listview中資源結點的同時在treeview中相應結點處于被選擇狀態。

正向瀏覽功能在treeView1_ AfterSelect事件中實現,結點被選擇后觸發事件,通過事件參數e提供數據且能定位到當前被選擇的結點,調用ListUpdate(GetFilePath(e.node))[3]就能將當前結點的子目錄和子文件添加到listview控件中。首先,將listview清空,因為每選擇一個結點就會加載其子目錄和子文件,如果不清空listview,就會將新增listitem添加到原來加載的項目之后,出現不合理的邏輯結構。

其次,該方法調用當前結點的路徑即GetFilePath(e.node)作參數,在加載listview項目時如果選擇“我的電腦”根結點則返回空字符串的無效路徑,此時調用ListDrivers()方法用大圖標的形式加載本地磁盤列表;否則,先創建當前有效結點e.node文件夾對象DirectoryInfo currentDir = new DirectoryInfo(newPath),獲取子目錄集合currentDir.GetDirectories()和子文件集合currentDir.GetFiles()分別生成treenode結點和listviewitem項目,用foreach循環將其依次添加到treeview和listview中,并統計其count更新到狀態欄中。

第三,添加子文件時關鍵問題是圖標的獲取,用GetSystemIcon[4]類GetIconByFileName方法獲取后將其添加到與之關聯的小圖標顯示控件Imagelist1集合中以備后用。

需注意的兩個問題:(1)由于系統中擴展名為exe的文件圖標不盡相同,故添加exe圖標時不能用擴展名作關鍵字,而是用文件名作關鍵字,且每次添加新的子文件前先將與之關聯的Imagelist1中的exe圖標清除,防止套用不正確的exe圖標;(2)非exe文件的圖標用其擴展名作關鍵字將其圖標添加到Imagelist1中,故添加非exe文件時先根據擴展名判斷Imagelist1中有無這類文件的圖標,有就直接用,沒有就先添加后再使用。

反向瀏覽功能在listView1_ItemActivate事件中實現,雙擊激活listview中的項目后發生。實現時,首先將TreeView的HideSelection屬性設為False,意味著即使TreeView失去焦點,先前所選擇的結點依舊將以灰色背景被顯示出來,這樣可以保留訪問TreeView結點的路徑痕跡;其次在加載本地磁盤列表時將“我的電腦”根結點列為SelectedNode,這樣初始運行程序時相當于單擊了我的電腦,也能為后續查找listview中被激活項目時提供父結點;(3)在listView1_ItemActivate事件中添加代碼,通過foreach循環在TreeView.SelectedNode的集合中查找與ListView被激活項目Text一致的結點,讓其成為新的被選結點。

4.僅展開被選結點。該功能在Treeview1_AfterExpand事件中實現,該事件在treeview控件中的結點展開后觸發,用來控制展開當前結點的同時,折疊上次打開的兄弟結點,判斷當前結點的PreNode和NextNode同級樹結點,如果存在就將其折疊,通過循環,層層深入取得其所有的PreNode和NextNode,將其折疊,直到其不存在為止。

三、教學效果評價

案例教學法的優勢在于:

第一,引導學生將所學課本知識轉化為解決問題的實際應用能力;大多數計算機專業的畢業生在回答能干什么時,往往列舉一堆課程名稱卻舉不出自己已完成的有代表性的案例項目,而案例教學法的實施過程中,學生拿到案例后,先進行消化,再主動搜索腦海中的知識,利用圖書館、網絡等途徑查閱資料,相互交流等多種渠道獲取補充新內容,這無形中加深了對知識的理解,充分發揮學習主體自身的能動性,將知識轉換為能力,這給自身的發展提供了上升的空間。

第二,促使學生養成獨立思考的習慣,學生給出的解決方案都是經過獨立思考、反復驗證而得出的,幾番討論下來學生之間相互競爭,相互激勵,從內心深處激發學生積極進取、刻苦學習的信心。

第三,多方交流,教學相長,在軟件工程中測試人員和開發人員要相互避開,就是為了打破開發者的思維定勢,從中找出破綻,完善軟件功能,通過在課堂上討論,驗證,同學們可以提出自己的見解并質疑現有方案,本身就是一個相互交流,相互提高的過程。課堂討論是教師直接管理案例教學的重要階段,筆者認為針對待解決的問題讓學生各抒己見,求大同、存小異,通過具體的代碼驗證來挑選最佳的實現方案,讓學生體會到成功喜悅的同時引入下一個問題,讓學生的大腦持續處于新鮮興奮的狀態,調動其學習的積極性。實踐證明,隨著案例教學的深入,解決問題的周期在逐漸縮短,這表明學生自主尋求理論知識來支撐論點的能力和拓展思維的能力均得到了提高。

通過該案例的制作,讓學生們很好地掌握了.net平臺窗體設計程序的全過程,約700多行的代碼閱讀、代碼改錯、規范化檢查,引領學生體驗程序員的職業生涯。在此基礎上,提出新思考方向:得到文件路徑和名稱是完成管理文件的第一步,那如何利用.net框架提供的System.IO命名控件中的文件操作類實現路徑的后退、前進、向上,如何對文件剪切、復制和粘貼等編輯操作和讀取、寫入、查看屬性等操作呢?[5]有了新的思考方向,鼓勵學生大膽想象設計、查閱資料、編寫代碼、運行查錯、提出解決思路和可行性的實施方案,讓學生反復提煉、歸納總結自己的經驗,有了這個成功的教學案例,今后可在高職層次《C#程序設計》案例化教學進程中走得更遠。

參考文獻:

[1][3][4]資源管理器 [EB/OL].CSDN網站, http://download.csdn.net/detail/ZhengZhiRen/1013102.

[2]王平華.C#.NET程序設計項目教程[M].北京:中國鐵道出版社,2008.

[5]楊學全.C#技術基礎[M].北京:高等教育出版社,2008.

猜你喜歡
案例學生
快把我哥帶走
案例4 奔跑吧,少年!
少先隊活動(2021年2期)2021-03-29 05:40:48
隨機變量分布及統計案例拔高卷
《李學生》定檔8月28日
電影(2018年9期)2018-11-14 06:57:21
趕不走的學生
發生在你我身邊的那些治超案例
中國公路(2017年7期)2017-07-24 13:56:38
學生寫話
學生寫的話
隨機變量分布及統計案例拔高卷
一個模擬案例引發的多重思考
中國衛生(2015年4期)2015-11-08 11:16:06
主站蜘蛛池模板: 欧美成人免费午夜全| 久久毛片网| 国产亚卅精品无码| 久久福利网| 欧美激情第一欧美在线| 欧美另类第一页| 五月天综合网亚洲综合天堂网| 日韩欧美综合在线制服| 国产黑丝一区| 国产午夜福利亚洲第一| 夜夜爽免费视频| 亚洲国产精品久久久久秋霞影院| 亚洲视频无码| 国产毛片高清一级国语 | 欧美人与动牲交a欧美精品| 无码不卡的中文字幕视频| 亚洲综合欧美在线一区在线播放| 亚洲日韩精品无码专区97| 美臀人妻中出中文字幕在线| 国产成人综合日韩精品无码不卡| 天天综合网亚洲网站| 午夜电影在线观看国产1区| 性做久久久久久久免费看| 中文字幕人妻av一区二区| 欧美第一页在线| 国产精品久久国产精麻豆99网站| 日本成人一区| 亚洲成年网站在线观看| 91精品国产91久无码网站| 精品国产免费观看一区| 色噜噜久久| 国产在线观看91精品| 亚洲欧美在线看片AI| 亚洲av成人无码网站在线观看| 国产又色又爽又黄| 国产在线观看一区二区三区| 一区二区三区在线不卡免费| 欧美国产成人在线| 欧美人与牲动交a欧美精品 | 亚洲性一区| 亚洲无码在线午夜电影| 99热这里只有精品国产99| 91精选国产大片| 国产女人在线| 精品人妻AV区| 欧美区国产区| 免费毛片视频| 国产精品人人做人人爽人人添| 尤物精品国产福利网站| 谁有在线观看日韩亚洲最新视频| 久久久久亚洲av成人网人人软件| 中文字幕有乳无码| 青草视频免费在线观看| 第一区免费在线观看| 亚洲精品天堂在线观看| 国产精品免费露脸视频| 欧美日韩理论| 久久人人97超碰人人澡爱香蕉| 九九久久99精品| 91精品福利自产拍在线观看| 久久精品国产电影| 国产又粗又猛又爽视频| 久久国产精品77777| 国产精品大尺度尺度视频| 玖玖精品在线| 在线观看无码av五月花| 国产成人精品视频一区二区电影| 免费看a毛片| 99成人在线观看| 亚洲成a人片77777在线播放| 国产一区二区三区免费观看 | 福利在线免费视频| 久久黄色毛片| аⅴ资源中文在线天堂| 国产精品永久久久久| 成人一区专区在线观看| 亚洲一区二区黄色| 毛片基地视频| 91亚洲精选| 九色在线视频导航91| 国产免费a级片| 19国产精品麻豆免费观看|