焦 華
(貴州商學(xué)院,貴州 貴陽 550014)
從C編程到C#控制臺編程及窗體編程的教學(xué)實(shí)踐研究
焦 華
(貴州商學(xué)院,貴州 貴陽 550014)
程序設(shè)計(jì)的發(fā)展與計(jì)算機(jī)語言的發(fā)展是相輔相成的,過程化編程是面向?qū)ο缶幊痰幕A(chǔ),歷史上程序設(shè)計(jì)經(jīng)歷了無數(shù)里程碑的跨越!以計(jì)算機(jī)語言為例,C家族就經(jīng)歷了C、C++、C#的發(fā)展演變。本文從教學(xué)的角度探討從C語言編程跨越到C#控制臺編程、再從C#控制臺編程跨越到C#的Windows窗體編程。選擇較優(yōu)路徑,采用比較教學(xué)法實(shí)現(xiàn)了輕松自然的過渡和跨越!本文對《C#程序設(shè)計(jì)》課程教學(xué)確有實(shí)用價值。
C語言;C#控制臺程序;Windows窗體編程;比較教學(xué)法
在很多高等院校計(jì)算機(jī)類專業(yè)人才培養(yǎng)方案中,課程設(shè)置是先開設(shè)面向過程的高級語言,后續(xù)課程是面向?qū)ο蟮母呒壵Z言。[1]學(xué)生在學(xué)習(xí)了《C語言程序設(shè)計(jì)》課程之后進(jìn)一步學(xué)習(xí)《C#程序設(shè)計(jì)》課程是一種通常的選擇方式,當(dāng)然也可以選擇Java,C#與Java相類似,也同為競爭對手。C#控制臺程序是為了兼容DOS程序而設(shè)立的,它通常沒有可視化的界面,往往通過字符串來顯示或者監(jiān)控程序。用戶只是關(guān)心數(shù)據(jù)而不在乎界面。這種編程方式和傳統(tǒng)的C語言編程方式相類似,學(xué)生在擁有C語言編程經(jīng)驗(yàn)的基礎(chǔ)上學(xué)習(xí)C#控制臺編程應(yīng)是順理成章、水到渠成。以下通過加減乘除四則運(yùn)算的實(shí)例加以說明:[2]
C#控制臺程序(代碼)
C#控制臺程序運(yùn)行結(jié)果
傳統(tǒng)的C語言編譯程序(如VC++6,Win—TC)無自動生成的代碼,所有程序代碼都需要用戶自己編寫,因此對Visual Studio自動生成的代碼(這一點(diǎn)學(xué)生需要逐步適應(yīng)過來)要進(jìn)行簡單解釋:比如System 是系統(tǒng)名字空間,用它的 Console類的ReadLine方法和 WriteLine方法實(shí)現(xiàn)數(shù)據(jù)的輸入輸出。而傳統(tǒng)的C是通過scanf函數(shù)及printf函數(shù)實(shí)現(xiàn)數(shù)據(jù)的輸入輸出的。下面是對同一問題給出的C語言編寫的程序代碼:[4]
圖1 C#運(yùn)行結(jié)果圖Fig.1 C# operation results
C語言程序代碼
可以看出,上面加減乘除四則運(yùn)算的實(shí)例用傳統(tǒng)C編寫的程序與用C#編寫的控制臺程序很相似、運(yùn)行結(jié)果是一樣的。在具體教學(xué)過程中可先提出問題,然后講授C語言的解決方案、再講授C#的解決方案,實(shí)現(xiàn)兩種編程方式的過渡和跨越!這樣的安排符合人類的認(rèn)知規(guī)律:從簡單的去把握復(fù)雜的、從熟悉的去把握不熟悉的。[6]傳統(tǒng)的 C一上來就編寫源代碼文件,而C#是采用項(xiàng)目管理方式、源代碼文件只是其中的重要文件……在整個教學(xué)活動中充分使用比較教學(xué)法:求同比較、求異比較、相似比較。
在完成第一步跨越之后,現(xiàn)進(jìn)入第二步跨越,即從C#控制臺編程過渡和跨越到C#的Windows窗體編程。下面是同一問題的窗體程序的界面設(shè)計(jì)和代碼設(shè)計(jì):
窗體程序的界面設(shè)計(jì)
圖2 C#界面設(shè)計(jì)圖Fig.2 C# interface design
窗體程序的代碼設(shè)計(jì)
窗體程序的運(yùn)行結(jié)果
圖3 C#運(yùn)行結(jié)果圖Fig.3 C# operation results
進(jìn)入 C#的 Windows窗體編程,就要介紹工具箱、窗體、控件、屬性、事件響應(yīng)、類、對象、方法等基本概念,這部分內(nèi)容的學(xué)習(xí)較抽象,是《面向?qū)ο蟪绦蛟O(shè)計(jì)》的基本內(nèi)容。[2]學(xué)生在完成前面《面向過程的程序設(shè)計(jì)》學(xué)習(xí)后仍需花時間精力逐步領(lǐng)悟這些概念與內(nèi)容。這里想表達(dá)的是優(yōu)秀教師是能夠深入淺出的!具體教學(xué)中可作個比喻:“工具箱相當(dāng)于孩童的積木箱,里面的控件就相當(dāng)于積木塊,孩童可選擇積木塊搭建一列火車、搭建一座城堡,你們可選擇控件搭建你們想要的程序。一個控件就是一個軟件模塊,Windows窗體編程就是搭積木式的編程,你們可通過這個實(shí)例比較Windows平臺編程與Dos平臺編程的差異……”。[1]
為了讓學(xué)生有更深入的體會,下面再比較用兩種方式實(shí)現(xiàn)的菜單程序:
C#控制臺程序(代碼)[7]
C#控制臺程序運(yùn)行結(jié)果
圖4 C#運(yùn)行結(jié)果圖Fig.4 C# operation results
上面的C#控制臺程序和傳統(tǒng)的C程序一樣,是典型的菜單程序范例。[8]優(yōu)點(diǎn)是能夠進(jìn)行編程思維訓(xùn)練,弱點(diǎn)是程序繁瑣、用戶界面不完善,一級菜單與二級菜單不清晰,無層次感。但在實(shí)際運(yùn)行中是有層次的,進(jìn)入時先進(jìn)入一級菜單,再進(jìn)入二級菜單;退出時先退出二級菜單,再退出一級菜單。若利用主菜單控件編寫窗體程序,問題得到完滿的解決。
圖5 C#運(yùn)行結(jié)果圖Fig.5 C# operation results
C# Windows窗體程序(代碼部分)
C# Windows窗體程序運(yùn)行結(jié)果
圖6 C#運(yùn)行結(jié)果圖Fig.6 C# operation results
從此例可看出,用主菜單控件編寫的C#窗體程序非常簡單容易,且界面完美、層次感清晰。而前面的控制臺程序既繁瑣、勞心費(fèi)神,用戶界面也不完善。運(yùn)行得到的級聯(lián)菜單不清晰,無層次感。[1]
圖7 C#運(yùn)行結(jié)果圖Fig.7 C# operation results
縱觀計(jì)算機(jī)語言及程序設(shè)計(jì)的發(fā)展歷程(語言和程序的發(fā)展相輔相成),[9]從最早的面向機(jī)器的低級語言到面向人類的高級語言,程序設(shè)計(jì)經(jīng)歷了無數(shù)里程碑的跨越!正在不斷興起的智能機(jī)器、深度學(xué)習(xí)等,程序設(shè)計(jì)也必將經(jīng)歷無數(shù)里程碑的跨越!這里從教學(xué)的角度只探討從 C語言編程跨越到 C#控制臺編程、再從 C#控制臺編程跨越到 C#的Windows窗體編程。寄希望能成為“海灘上一只美麗的貝殼”。
[1]施鍵蘭, 黃文秀, 楊立娟.C語言程序設(shè)計(jì)教學(xué)探討[J].軟件, 2013, 34(1): 171-172.
[2]姜蘊(yùn)莉.以興趣為導(dǎo)向的高職院校《c#程序設(shè)計(jì)》教學(xué)改革探討[J].軟件, 2014, 35(10): 87-90.
[3]周洪安.21天學(xué)通C#[M].電子工業(yè)出版社.2009年.
[4]譚浩強(qiáng).C程序設(shè)計(jì)(第四版)[M].清華大學(xué)出版社.2010年.
[5]梅創(chuàng)社.C語言程序設(shè)計(jì)[M].北京理工大學(xué)出版社.2010年.
[6]施鍵蘭, 黃文秀.程序設(shè)計(jì)類課程中的教改研究[J].軟件, 2016, 37(3): 34-35.
[7]陳強(qiáng).C#編程新手自學(xué)手冊[M].機(jī)械工業(yè)出版社.2012年.
[8]郭旭靜, 周麗娜, 尚佳棟, 等.一種可編程實(shí)現(xiàn)的Ramanujan和計(jì)算方法[J].新型工業(yè)化, 2013, 3(2): 61-70.
[9]唐建中, 陳曉亮.可編程電液比例系統(tǒng)控制器[J].新型工業(yè)化, 2013, 3(9): 99-105.
Research on Teaching Practice from C Programming to C# Console Programming and form Programming
JIAO Hua
(Guizhou University of Commerce Guiyang Guizhou 550014)
the development of programming and the development of computer language are complementary to each other, and the procedural programming is the basis of object-oriented programming, The history of programming has gone through numerous milestones! As an example, the C family has experienced the evolution of C, C++ and C#.This article from the perspective of teaching from the C language programming to the C# console programming, and then from the C# console programming across the C# form Windows programming.Choose the best path, using comparative teaching method to achieve the transition of natural and easy to cross! This paper has practical value in the teaching of C# programming course.
C language; C# console program; Windows form programming; Teaching method
TP311
A
10.3969/j.issn.1003-6970.2017.03.005
貴州省教育廳2016年本科教學(xué)工程項(xiàng)目
焦華(1964-),男,苗族,貴州貴陽人,碩士研究生,貴州商學(xué)院計(jì)算機(jī)與信息工程學(xué)院副教授,研究方向?yàn)樗惴ㄅc程序。
本文著錄格式:焦華.從C編程到C#控制臺編程及窗體編程的教學(xué)實(shí)踐研究[J].軟件,2017,38(3):42-47