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

?

高職院?;贛VC模式的C語(yǔ)言課程教學(xué)實(shí)踐研究

2016-12-19 13:04張智慧
計(jì)算機(jī)時(shí)代 2016年11期
關(guān)鍵詞:軟件工程C語(yǔ)言職業(yè)技能

摘 要: MVC設(shè)計(jì)模式是當(dāng)前廣泛運(yùn)用的軟件設(shè)計(jì)方法,能夠提高軟件開發(fā)質(zhì)量和效率。本文從軟件工程的角度,將MVC設(shè)計(jì)模式引入到C語(yǔ)言課程教學(xué),讓學(xué)生掌握一種程序設(shè)計(jì)理念和良好的軟件架構(gòu)方法。采用項(xiàng)目驅(qū)動(dòng)、小組討論的方式,把枯燥的語(yǔ)法、命令融入項(xiàng)目開發(fā),綜合培養(yǎng)學(xué)生分析問題、解決軟件開發(fā)實(shí)際問題的能力和職業(yè)素養(yǎng)。教學(xué)實(shí)踐表明,學(xué)生學(xué)習(xí)C語(yǔ)言的積極性和主動(dòng)性有了很大提高,團(tuán)隊(duì)協(xié)作和實(shí)際軟件開發(fā)能力得到了有效提升。

關(guān)鍵詞: C語(yǔ)言; 軟件工程; MVC模式; 職業(yè)技能

中圖分類號(hào):G424 文獻(xiàn)標(biāo)志碼:A 文章編號(hào):1006-8228(2016)11-86-03

Research on the teaching practice of C language course in higher vocational colleges

Zhang Zhihui

(Beijing Information Technology College, Beijing 100015, China)

Abstract: MVC design pattern is a widely used software design method, which can improve the quality and efficiency of software development. In this paper, from the perspective of software engineering, the MVC design pattern is introduced into the C language teaching, so that students can master a program design concept and a good software architecture method. The use of project driven and group discussion integrates the boring grammar and command into the project development to comprehensively cultivate students' abilities of analyzing the problem and solving the practical problems of software development, and their professional quality. Teaching practice shows that the enthusiasm and initiative of the students to learn the C language has been greatly improved, and the ability of team work and actual software development ability have been effectively improved.

Key words: C Language; software engineering; MVC design pattern; occupation skill

0 引言

靈活運(yùn)用知識(shí)解決實(shí)際問題的工程能力和動(dòng)手能力是高等職業(yè)教育重點(diǎn)培養(yǎng)的職業(yè)能力。高級(jí)語(yǔ)言程序設(shè)計(jì)作為高職院校信息技術(shù)專業(yè)的必修課,主要是面向編程技能和邏輯思維能力培養(yǎng),現(xiàn)有的人才培養(yǎng)質(zhì)量和規(guī)格已遠(yuǎn)不能滿足人才市場(chǎng)需求[1]。傳統(tǒng)C語(yǔ)言程序設(shè)計(jì)教學(xué)往往按照知識(shí)點(diǎn)先后順序和難易程度講解程序的基本結(jié)構(gòu),注重語(yǔ)言的各種語(yǔ)句、語(yǔ)法和命令,卻無(wú)法真正讓學(xué)生形成解決實(shí)際問題的能力[2]。本文將當(dāng)前流行的MVC設(shè)計(jì)模式引入C語(yǔ)言課堂教學(xué)實(shí)踐,能夠讓學(xué)生從軟件工程的角度,了解掌握一種良好的程序架構(gòu)和設(shè)計(jì)方法,在學(xué)習(xí)基本的語(yǔ)法命令和編程技巧的基礎(chǔ)上,進(jìn)一步提升解決實(shí)際問題的綜合能力,并能為后續(xù)課程實(shí)訓(xùn)和第一崗位任職打下堅(jiān)實(shí)的基礎(chǔ)。

1 MVC設(shè)計(jì)模式在C語(yǔ)言教學(xué)中的應(yīng)用

對(duì)于剛接觸程序語(yǔ)言的學(xué)生來(lái)說(shuō),在對(duì)程序設(shè)計(jì)能解決什么問題、怎么去解決問題沒有基本概念的情況下,很難將學(xué)到的語(yǔ)法、命令與復(fù)雜的軟件功能關(guān)聯(lián)起來(lái)。

1.1 對(duì)MVC的認(rèn)識(shí)

從傳統(tǒng)的結(jié)構(gòu)化、面向?qū)ο蟪绦蛟O(shè)計(jì)方法,到C/S、B/S軟件架構(gòu),以及SAAS/PAAS/IAAS云計(jì)算架構(gòu),都是通過合理的應(yīng)用架構(gòu)使得復(fù)雜的軟硬件以及網(wǎng)絡(luò)體系結(jié)構(gòu)得以建立[3]。同樣,一個(gè)好的程序架構(gòu),可以使得軟件開發(fā)過程更加簡(jiǎn)單,開發(fā)質(zhì)量效率更高,可維護(hù)性更強(qiáng)。MVC架構(gòu)是20紀(jì)80代編程語(yǔ)言Smalltalk-80提出的一種軟件開發(fā)模式,至今已經(jīng)廣泛應(yīng)用于Asp.net、Php、Java等語(yǔ)言和軟件開發(fā),越來(lái)越受到歡迎[4],這也是將MVC模式引入C語(yǔ)言課程教學(xué)的主要原因。

MVC架構(gòu)將一個(gè)應(yīng)用程序分為三個(gè)部分:模型(Model),視圖(View),控制器(Controller)。

模型(Model)用來(lái)表示數(shù)據(jù)和業(yè)務(wù)邏輯,負(fù)責(zé)所有與數(shù)據(jù)有關(guān)的操作任務(wù)。主要是按照控制器的指令,完成數(shù)據(jù)信息的加工、處理、存儲(chǔ)等任務(wù),并實(shí)現(xiàn)對(duì)數(shù)據(jù)庫(kù)的操作。比如,對(duì)人員數(shù)據(jù)的增加、刪除、查詢等代碼。

視圖(View)主要是用戶交互界面,提供用戶輸入輸出操作界面。視圖將用戶的操作輸入直接提交給控制器,并按照控制器的指令與模型層進(jìn)行數(shù)據(jù)交互,將輸入數(shù)據(jù)提交給模型層,將處理結(jié)果顯示給用戶。

控制器(Controller)主要負(fù)責(zé)解釋用戶的請(qǐng)求,控制軟件系統(tǒng)的執(zhí)行流程。通過調(diào)用不同的模型進(jìn)行數(shù)據(jù)處理,選擇不同的視圖向用戶反饋處理結(jié)果。

現(xiàn)有Jsp、Visual Studio等開發(fā)平臺(tái),都提供基本的MVC框架,支持按照MVC模式進(jìn)行代碼組織和程序開發(fā),可以自動(dòng)生成技術(shù)框架和一些基本的代碼,便于工程管理,提高軟件開發(fā)效率。MVC還是一種軟件設(shè)計(jì)思想、開發(fā)方法,而不單純是針對(duì)具體編程語(yǔ)言或語(yǔ)法,可以起到“設(shè)計(jì)圖紙”的作用,通過將具體應(yīng)用的界面顯示、邏輯控制和數(shù)據(jù)處理等各個(gè)應(yīng)用部分的進(jìn)行分層、隔離,從而降低功能模塊間的耦合度和開發(fā)復(fù)雜度,提高代碼的重用率和可維護(hù)性。

1.2 MVC在C語(yǔ)言課程的教育模式

現(xiàn)有的MVC模式知識(shí)并不適合直接用于課堂教學(xué),需要結(jié)合C語(yǔ)言課程的教學(xué)目標(biāo)、課時(shí)要求,進(jìn)行適當(dāng)?shù)暮?jiǎn)化和改造,由教師提供程序框架,并結(jié)合具體的項(xiàng)目實(shí)踐,加強(qiáng)應(yīng)用指導(dǎo)。

C語(yǔ)言課程一般選擇標(biāo)準(zhǔn)C或C++,開發(fā)環(huán)境能夠提供的輸入輸出功能都非常弱,但并不影響MVC結(jié)構(gòu)在教學(xué)實(shí)際中的應(yīng)用。圖1是經(jīng)過簡(jiǎn)化后的MVC體系結(jié)構(gòu),控制器用來(lái)處理鍵盤或鼠標(biāo)的輸入,顯示器負(fù)責(zé)屏幕的輸出顯示,處理器用于程序內(nèi)部的邏輯和數(shù)據(jù)處理。這樣的分層架構(gòu),有利于對(duì)信息的輸入、輸出和處理等功能進(jìn)行分層開發(fā)。

簡(jiǎn)化后的MVC結(jié)構(gòu)為學(xué)生編寫實(shí)際應(yīng)用程序提供了一個(gè)基本框架,要求程序設(shè)計(jì)至少包括三個(gè)部分,控制模塊、顯示模塊和數(shù)據(jù)處理模塊,建立起應(yīng)用程序開發(fā)的輸入、輸出、數(shù)據(jù)處理分層框架設(shè)計(jì)。在具體實(shí)現(xiàn)上,可以將C語(yǔ)言的main函數(shù)作為主控模塊,超過2層的邏輯判斷要單獨(dú)寫控制函數(shù)和文件,顯示模塊和數(shù)據(jù)處理模塊要單獨(dú)寫顯示函數(shù)和數(shù)據(jù)處理文件。在課程教學(xué)內(nèi)容上,可以將開發(fā)環(huán)境的文件組織和函數(shù)調(diào)用部分知識(shí)點(diǎn)移到前面,指導(dǎo)學(xué)生建立基本的工程文件結(jié)構(gòu),并貫穿于整個(gè)課程學(xué)習(xí)實(shí)踐活動(dòng),為從事大型復(fù)雜軟件開發(fā)打下基礎(chǔ)。例如,一個(gè)課程項(xiàng)目工程至少包括4個(gè)文件,用于描述主程序、控制模塊、顯示模塊和處理模塊,像蓋房子先要有圖紙,潛移默化中培養(yǎng)學(xué)生良好的分層架構(gòu)習(xí)慣。

2 課程教學(xué)實(shí)踐活動(dòng)案例分析

課程教學(xué)的關(guān)鍵是把教與學(xué)結(jié)合在一起,通過實(shí)施一個(gè)完整的項(xiàng)目,教師提供“設(shè)計(jì)藍(lán)圖”,讓學(xué)生通過任務(wù)驅(qū)動(dòng)方式,主動(dòng)參與、相互協(xié)作,將學(xué)習(xí)到的數(shù)據(jù)類型、語(yǔ)句、語(yǔ)法等零散的知識(shí)點(diǎn),系統(tǒng)地應(yīng)用到解決實(shí)際問題。

2.1 課程教學(xué)方案設(shè)計(jì)

在教學(xué)目標(biāo)上,以提高應(yīng)用C語(yǔ)言從事軟件開發(fā)能力為主線,突出程序設(shè)計(jì)模式、運(yùn)行機(jī)理分析和解決實(shí)際問題方法等應(yīng)用內(nèi)容,提高施教的針對(duì)性。在教學(xué)計(jì)劃上,根據(jù)學(xué)生之前的課程安排,有針對(duì)性地補(bǔ)充軟件工程相關(guān)知識(shí),增加程序設(shè)計(jì)方法內(nèi)容,將C語(yǔ)言的語(yǔ)句、語(yǔ)法融入到程序設(shè)計(jì)過程,提高課堂授課的時(shí)效性。在教學(xué)重點(diǎn)上,圍繞按照MVC模式編寫、調(diào)試和配置一系列實(shí)用、規(guī)范的應(yīng)用項(xiàng)目,靈活運(yùn)用任務(wù)驅(qū)動(dòng)和項(xiàng)目教學(xué)法,由簡(jiǎn)單到復(fù)雜,逐步涵蓋C語(yǔ)言的基本語(yǔ)法、編程知識(shí)點(diǎn),熟悉軟件開發(fā)的需求分析、詳細(xì)設(shè)計(jì)、代碼編寫、代碼調(diào)試等各項(xiàng)流程,充分調(diào)動(dòng)學(xué)生的學(xué)習(xí)興趣、發(fā)掘?qū)W生的創(chuàng)造潛能,從而提高學(xué)生分析問題、解決問題的綜合應(yīng)用能力。

2.2 項(xiàng)目驅(qū)動(dòng)教學(xué)方法案例

這里給出采用俄羅斯方塊的教案示例,重點(diǎn)是加深學(xué)生對(duì)輸入控制、數(shù)據(jù)和邏輯處理、顯示方法的理解,提供一個(gè)便于修改和擴(kuò)展、容易調(diào)試和測(cè)試的軟件開發(fā)框架。這種游戲化的項(xiàng)目更容易激發(fā)年輕學(xué)生的學(xué)習(xí)興趣,積累開發(fā)大型應(yīng)用程序的初步經(jīng)驗(yàn)。

⑴ 項(xiàng)目安排。幫助學(xué)生理解MVC設(shè)計(jì)模式程序架構(gòu),并根據(jù)項(xiàng)目開發(fā)需要適當(dāng)調(diào)整教學(xué)內(nèi)容,通常安排為項(xiàng)目設(shè)計(jì)、分解任務(wù)、協(xié)作開發(fā)、應(yīng)用評(píng)價(jià)、迭代完善等五個(gè)環(huán)節(jié)。比如,第一步是在指定位置顯示一個(gè)方塊,主要是接收鍵盤輸入,轉(zhuǎn)化為顯示坐標(biāo),在屏幕上畫方塊。先由教師輔助學(xué)生建立起完整的項(xiàng)目工程文件,并講解變量定義、函數(shù)調(diào)用等內(nèi)容,推動(dòng)項(xiàng)目實(shí)施。后續(xù)項(xiàng)目安排可逐步添加控制方式、方塊的旋轉(zhuǎn)和移動(dòng)處理,直至完善游戲的消行、計(jì)分等功能,分層實(shí)現(xiàn)俄羅斯方塊的編寫,更容易讓學(xué)生理解MVC設(shè)計(jì)模式的優(yōu)勢(shì)。

⑵ 項(xiàng)目實(shí)施??梢圆捎庙?xiàng)目小組的工作方式,每個(gè)小組設(shè)置項(xiàng)目管理員、系統(tǒng)分析員、程序員、測(cè)試員和運(yùn)行維護(hù)人員等角色,分別完成指定任務(wù)。由于MVC框架的不同功能模塊能夠分離開發(fā),又對(duì)程序設(shè)計(jì)能力、界面美工能力有不同要求,所以可以根據(jù)學(xué)生的能力特點(diǎn)進(jìn)行協(xié)作開發(fā),既調(diào)動(dòng)個(gè)體的積極性,又能培養(yǎng)團(tuán)隊(duì)精神。原則上,每5人組成一個(gè)項(xiàng)目小組,組長(zhǎng)負(fù)責(zé)協(xié)調(diào)小組成員的分工,溝通協(xié)調(diào)項(xiàng)目開發(fā)中出現(xiàn)的問題,匯總管理項(xiàng)目文檔。教師協(xié)助建好初始工程文件,然后交給項(xiàng)目小組按照課程計(jì)劃組織項(xiàng)目開發(fā)。本案例的工程包括7個(gè)文件,分別為主程序elsfk.c;elscontrol.h和elscontrol.c,是各類輸入控制函數(shù)的頭文件和實(shí)現(xiàn)文件;elsmodel.h和elsmodel.c,是各類數(shù)據(jù)處理函數(shù)的頭文件和實(shí)現(xiàn)文件;elsview.h和elsview.c,是各類顯示函數(shù)的頭文件和實(shí)現(xiàn)文件。初始框架是完成鍵盤輸入到控制顯示的轉(zhuǎn)換,約定:a為左移,d為右移,w為旋轉(zhuǎn),s為下移,按照MVC模式分別完成各部分程序編寫,示例代碼如下:

//elsfk.c主程序,主要是完成整個(gè)項(xiàng)目文件的集成。

#include

#include

void main(void)

{ while(elscontrol()); //直接調(diào)用控制模塊的主控函數(shù),完成

程序控制權(quán)的交接。

}

// elscontrol.c控制模塊實(shí)現(xiàn)文件

//接收處理所有的輸入,調(diào)用相應(yīng)的數(shù)據(jù)處理和顯示控制函數(shù),實(shí)現(xiàn)功能分離

#include

#include

#include

int ifx; //框架提供的共用內(nèi)存變量示例

int elscontrol()

{ char ch;

while(ch!='x') {

ch=getch(); //獲取鍵盤輸入

processkey(ch); //調(diào)用處理部分相應(yīng)功能

if(ifx>0) showfkpos(ifx); } //調(diào)用顯示部分相應(yīng)功能

return ifx;

}

// elsmodel.c處理模塊實(shí)現(xiàn)文件

//只負(fù)責(zé)數(shù)據(jù)和邏輯處理,不涉及顯示和控制,實(shí)現(xiàn)功能分離

#include

#include

void processkey(char ch)

{ switch(ch) {

case 'a':ifx=1; break; //left

……

case 's':ifx=4; break; //rotate }

}

// elsview.c顯示模塊實(shí)現(xiàn)文件

//嚴(yán)格按照數(shù)據(jù)組織顯示,不涉及處理和控制,實(shí)現(xiàn)功能分離

#include

#include

void showfkpos(int imess) {

switch(imess) { //根據(jù)消息編號(hào),顯示相應(yīng)的內(nèi)容

case 1: printf("Left move.\n"); break; //left

……

case 4: printf("Rotate it!\n"); break; //rotate }

}

⑶ 課程評(píng)價(jià)。分為項(xiàng)目評(píng)價(jià)和小組討論。項(xiàng)目評(píng)價(jià)由教師統(tǒng)一組織,由每個(gè)項(xiàng)目小組分別匯報(bào)項(xiàng)目進(jìn)展、演示項(xiàng)目功能,進(jìn)行講解和答辯,交流開發(fā)經(jīng)驗(yàn),凝聚團(tuán)隊(duì)榮譽(yù)感,促進(jìn)學(xué)習(xí)積極性和創(chuàng)造性。教師根據(jù)項(xiàng)目小組提交的項(xiàng)目文檔資料,對(duì)學(xué)生的綜合素質(zhì)進(jìn)行評(píng)價(jià),并給出問題處理方法建議,部署下一步任務(wù)安排。小組討論由項(xiàng)目小組組織,根據(jù)課程任務(wù)安排完成需求分析和項(xiàng)目設(shè)計(jì),并將討論結(jié)果充實(shí)完善到項(xiàng)目文檔。通過上述示例代碼可以看出,采用MVC程序開發(fā)模式,非常方便項(xiàng)目功能的擴(kuò)充和迭代完善,比如調(diào)整顯示內(nèi)容,只需修改顯示模塊的相關(guān)內(nèi)容,而無(wú)需修改其他文件,這樣就將枯燥的語(yǔ)法融入到了一個(gè)不斷完善的項(xiàng)目開發(fā)過程,培養(yǎng)學(xué)生思考問題、解決問題能力的同時(shí),掌握一種從事實(shí)際軟件開發(fā)的程序架構(gòu)模式。

3 結(jié)束語(yǔ)

本文提出的C語(yǔ)言程序設(shè)計(jì)課程方案,將MVC設(shè)計(jì)模式融入教學(xué)實(shí)踐過程,為學(xué)生提供一種成熟的軟件開發(fā)框架,以提高學(xué)生實(shí)際軟件開發(fā)能力,實(shí)現(xiàn)職業(yè)技能提升。該方案通過近年來(lái)的課堂教學(xué)實(shí)踐,取得了較好的效果,很多學(xué)生在畢業(yè)實(shí)習(xí)階段就能很快融入企業(yè)開發(fā)團(tuán)隊(duì),得到用人單位的高度認(rèn)可,是一種適合于程序設(shè)計(jì)課程的教學(xué)方法,其也可以在其他涉及到軟件開發(fā)的課程中參考使用。

參考文獻(xiàn)(References):

[1] 張智慧.面向職業(yè)技能培養(yǎng)的軟件開發(fā)課程改革探索[J].計(jì)

算機(jī)時(shí)代,2015.5:54-58

[2] 高愛梅.高職院校C語(yǔ)言項(xiàng)目教學(xué)改革探索與實(shí)踐[J].電腦

知識(shí)與技術(shù),2016.1:134-l35

[3] 程欣宇,張麗,王忠德.數(shù)據(jù)結(jié)構(gòu)實(shí)驗(yàn)的三層模型[J].計(jì)算機(jī)教

育,2014.12:65-67

[4] 張治平.淺談MVC架構(gòu)在開發(fā)ASP.NET站點(diǎn)中的應(yīng)用[J].

電子技術(shù)與軟件工程,2016.5:63-63

[5] 李小遐,劉惠梅.C語(yǔ)言程序設(shè)計(jì)能力教程[M].北京理工大學(xué)

出版社,2011.

猜你喜歡
軟件工程C語(yǔ)言職業(yè)技能
大英縣職業(yè)技能培訓(xùn)調(diào)研
基于Visual Studio Code的C語(yǔ)言程序設(shè)計(jì)實(shí)踐教學(xué)探索
太倉(cāng)市服裝定制職業(yè)技能競(jìng)賽舉行
基于C語(yǔ)言的計(jì)算機(jī)軟件編程
高職高專院校C語(yǔ)言程序設(shè)計(jì)教學(xué)改革探索
依托工作室的軟件工程實(shí)踐教學(xué)研究
基于工程教育認(rèn)證的《軟件工程》課程教學(xué)質(zhì)量建設(shè)研究 
關(guān)于如何創(chuàng)新和完善計(jì)算機(jī)軟件工程管理的探討
努力開創(chuàng)職業(yè)技能培訓(xùn)的新局面
論子函數(shù)在C語(yǔ)言數(shù)據(jù)格式輸出中的應(yīng)用