摘? 要:“C#程序設計”課程是計算機軟件開發(fā)類專業(yè)ASP.NET方向的一門專業(yè)基礎課程,軟件是用來解決人在生活中遇到的實際問題。當前本科院校和高職院校教學中廣泛使用的情景教學,項目教學,將生活中購買雙色球彩票的過程轉(zhuǎn)化為C#程序設計教學案例,既符合項目教學也符合情境教學的要求;以此激發(fā)學生的學習興趣,提升教學效果,進而提升軟件技術專業(yè)學生思考問題的能力和實踐動手能力。
關鍵詞:C#;項目驅(qū)動;情境教學;教學案例;雙色球
中圖分類號:TP311.1? ? ? 文獻標識碼:A 文章編號:2096-4706(2020)03-0092-03
Abstract:“C# Program Design” course is a professional basic course in the direction of ASP.NET for computer software development major. Software is used to solve the practical problems people encounter in life. At present,situational teaching and project teaching are widely used in the teaching of undergraduate and vocational colleges. The process of buying the two color ball lottery in our life is transformed into a teaching case of C# programming,which meets the requirements of both project teaching and situational teaching;in order to stimulate studentsinterest in learning,improve the teaching effect,and then improve the ability of thinking and practice of software technology students.
Keywords:C#;project driven;situational teaching;teaching cases;two color ball
0? 引? 言
“C#程序設計”課程本科院校和高職院校相關專業(yè)都在開設,是計算機軟件開發(fā)類專業(yè)ASP.NET方向的一門專業(yè)基礎課程,也是一門專業(yè)核心課程。通過本門課程的學習可以讓學生熟悉C#語言的開發(fā)環(huán)境,掌握C#語言的基本語法,建立面向過程和面向?qū)ο蟮某绦蛟O計思路,掌握面向過程和面向?qū)ο蟪绦蛟O計的基本方法,為后續(xù)課程奠定堅實的基礎。力爭通過一學期對“C#程序設計”課程對學習,鞏固和提升學生的邏輯思維素質(zhì),加強學生的自主學習能力,提升實踐動手能力和編碼能力,積累一些實際項目經(jīng)驗。
目前很多“C#程序設計”教材,都在用一些經(jīng)典的輸出制定范圍的奇偶數(shù)、求解整數(shù)的約數(shù),找出兩個整數(shù)的最大最小公約數(shù),求解特定精度范圍的數(shù)學常量值等,這些教學案例非常經(jīng)典,但無法引起學生的學習興趣,甚至讓學生對學習感到枯燥乏味,對知識感到生澀難懂。
1? 案例背景
C#是微軟推出的面向?qū)ο蟮某绦蛟O計語言,語法簡單高效,提供的組件功能強大且可編程,但好多教材上的案例學習起來枯燥,老師講解起來照本宣科,一個一個知識點驗證式講解,教學過程毫無新意,對學生毫無吸引力;而教學過程是一個充滿互動的活動,不僅是老師教,還得學生學,更重要的是師生互動,不然會導致學生缺乏學習的積極性和主動性,教學效果甚微。
生活化案例能營造出輕松愉悅的課堂氛圍,使學習不再枯燥乏味,學生不再埋頭玩手機、注意力不集中,教師對重難點內(nèi)容著重闡述、能通過學生表情了解學生疑惑所在;學生不理解的知識隨時跟老師交流,在情境中師生相互進行引導與啟發(fā),增強師生互動,讓學生學會主動學習,探求新知識,構(gòu)建知識體系。
本文以雙色球彩票為例,討論如何用C#語言實現(xiàn)購買雙色球彩票的算法代碼。
2? 項目設計
2.1? 開發(fā)環(huán)境
開發(fā)語言:C#。
開發(fā)工具:Visual Studio 2012。
2.2? 項目需求
雙色球彩票獎項設置如表1所示。
雙色球游戲規(guī)則是按照提示用戶購買6個1到33之間不重復的紅球號,購買1個1到16之間的藍球號;搖獎產(chǎn)生6個開獎紅球號和1個開獎藍球號;程序運行界面如圖1所示。
2.3? 項目思路
紅球和藍球號碼皆為整數(shù),紅球號又是多個,用整型數(shù)組分別存放購買的紅球號和搖獎產(chǎn)生的開獎號,利用算法控制購買和搖獎號碼在特定范圍且不重復,比對購買紅球號和開獎紅球號得到紅球買中個數(shù),比對購買藍球和開獎藍球得到藍球是否買中,根據(jù)比對結(jié)果公布中獎等次。
3? 項目編碼
3.1? 程序主流程
因在各方法中都要訪問紅球和藍球號,需要將數(shù)組聲明為全局變量,先購買紅球和藍球號,搖獎產(chǎn)生開獎號,展示購買和開獎號碼,公布中獎結(jié)果。
3.2? 購買紅球的代碼
多次購買紅球號,用for循環(huán)實現(xiàn);用戶輸入的紅球號可能超出范圍,套用do循環(huán)進行驗證,符合范圍才可接收號碼;用戶輸入的號碼不能和前面已輸入的號碼重復,每次輸入后要與已輸入的號碼比對,套用for循環(huán)控制;輸入的號碼不超出范圍、不和已輸入號碼重復才賦值給整型數(shù)組;用戶輸入號碼是隨意的,購買完對紅球數(shù)組用冒泡排序,按照從小到大的號碼展示更直觀,具體代碼如下。
3.3? 搖獎產(chǎn)生開獎紅球的代碼
搖出開獎紅球號過程代碼比購買紅球過程代碼略簡,不存在輸入超出范圍的情況,控制好取隨機數(shù)范圍即可;每次隨機號應跟前面生成隨機號比對,若重復需重新取隨機號;最后排序開獎號碼。
3.4? 比對中獎結(jié)果的代碼
比對中獎結(jié)果要在購買了彩票號和搖獎生成開獎號之后進行,算法上先用購買的第一個紅球號跟所有的開獎號比對,判斷購買的第一個紅球是否中了獎,在某個購買號逐個與開獎號比對過程中,因開獎號是從小到大排序的,如果比對到開獎號比這個購買號還大,就沒有必要繼續(xù)比下去了。
4? 結(jié)? 論
本項目案例來源于生活,程序需求淺顯易懂;初見可能讓學生摸不著頭腦,待老師講解后學生會覺得項目比較簡單,在具體編寫代碼過程中又會碰到諸多問題;正是這種將復雜問題簡化的項目案例才能激發(fā)學生的學習興趣,培養(yǎng)堅忍不拔不服輸?shù)木瘛崿F(xiàn)技術中用到了變量的聲明、賦值和引用;數(shù)組的聲明、創(chuàng)建、賦值和引用;if-else語法結(jié)構(gòu)的使用、for循環(huán)和do-while循環(huán)結(jié)構(gòu)的使用,以及數(shù)組元素的遍歷、隨機數(shù)的獲取等,在編碼過程中讓學生對知識的理解有所加深和鞏固。
該項目代碼規(guī)模130行左右,完成該項目會讓學生體會到前所未有的成就感,該案例將復雜問題簡化,從而激發(fā)學生學習編程的興趣,增強了編程的樂趣,提高學生解決實際問題的能力,可以算得上程序設計類課程教學中的一個經(jīng)典案例。
參考文獻:
[1] 許春勤.《C#程序設計》的教學方法探討 [J].電腦迷,2018(11):275.
[2] 張巖.C#程序設計課程教學改革研究 [J].科技經(jīng)濟導刊,2017(16):164.
[3] 吳小玲.C#程序設計課程教學改革探討 [J].福建電腦,2017,33(11):182-183.
作者簡介:紀輝進(1977-),男,漢族,湖北黃陂人,講師,本科,主要研究方向:軟件技術教學。