結構化程序設計范文
時間:2023-04-08 03:38:03
導語:如何才能寫好一篇結構化程序設計,這就需要搜集整理更多的資料和文獻,歡迎閱讀由公務員之家整理的十篇范文,供你借鑒。
篇1
1、整體思路清楚,目標明確。
2、設計工作中階段性非常強,有利于系統開發的總體管理和控制。
3、在系統分析時可以診斷出原系統中存在的問題和結構上的缺陷。
4、用戶要求難以在系統分析階段準確定義,致使系統在交付使用時產生許多問題。
5、用系統開發每個階段的成果來進行控制,不能適應事物變化的要求。
6、系統的開發周期長。
篇2
【關鍵字】案例教學 C語言程序設計 課程改革
【中圖分類號】TP311.1-4;G642.0
程序設計方法大體上分成兩種:一種是結構化程序設計,一種是面向對象程序設計。結構化程序設計思想的原則是:自頂向下,逐步求精,模塊化。絕大多數高校對學生進行結構化程序設計思維培養都是通過“C語言程序設計”課程進行的,但是多數課堂在進行“C語言程序設計”課程時都是按照教材的章節進行講解[1][2],對C語言缺少一個整體的設計,并且實例之間都是離散的,沒有關聯,這樣對于學生形成結構化程序設計思維造成了很大的困難。學生在學習“C語言”之后,往往知道其中的一些概念,如數組、結構體、指針、函數等等,會使用的就會減少一部分,而對“C語言”能夠有一個整體的理解,對結構化程序設計思維有深入了解的,能夠獨立編程[3]的就少之又少。
為了培養學生的“結構化程序設計思維”,讓學生對“C語言”有一個整體的掌握,并且能夠熟練使用“C語言”進行程序設計,我們采用“全程案例式”教學方式進行C語言程序設計課程改革。
所謂“全程案例式”C語言程序設計教學是指在C語言的教學過程中從頭到尾選用一個典型案例,如“學生成績管理系統”,仿照教務管理平臺對學生成績進行管理。這樣的案例學生非常了解,能夠對其中的角色功能有明確的認知,這樣就很容易分析清楚整個系統的功能模塊構成,在此基礎上對各個功能模塊和數據類型進行設計,從而培養學生的結構化程序設計思維。
一、問題分析
教學人員對教務管理平臺都不陌生,在分析問題的時候可以讓學生自己設定學生成績管理系統的角色和功能,然后實現。一般情況下,學生成績管理系統可以分成三種角色,一是管理員,主要負責訪問成績管理平臺成員數據的增、h、改、查等操作,二是教師,主要負責學生成績的錄入、修改、查看等操作,三是學生,可以查看自己的成績信息。同時三種成員都可以修改自己登陸平臺的密碼,功能模塊劃分如圖1所示。通過對系統功能模塊的劃分,可以讓學生理解結構化程序設計“自頂向下,逐步求精,模塊化”的程序設計思想,并在此基礎上,開發對應的功能函數。
二、學生分組
將學生分組,如25名同學分成5組,每組5人,有一位組長。每組分別獨立完成以上教務管理平臺中對應的功能模塊,可以根據本組的討論有所增刪。這樣每位同學平均完成兩個功能模塊,從而保證在課堂教學時間能夠完成該項目。組長負責整個案例的任務分配,同時解決小組成員實施時遇到的技術問題,當然組成的最后成績也會較高。
三、教學內容
仿照工程化的思路,如設計一個產品,需要有工人、原材料、工人。工人使用工具按一定的步驟加工原材料得到一個一個的零件,再將這些零件有機地組裝起來就會形成一個產品。C語言的教學內容也可以按照以上思路進行分解,首先要有人,即程序員也就是學生;原材料是C語言的數據類型,包括基本類型(整型、實型、字符型、枚舉型)、構造類型(數組、結構體、共用體)、指針類型和空類型;工具是運算符,用來操作某種類型的數據;操作步驟包括順序結構、選擇結構和循環結構;程序員使用工具按照一定的步驟加工原材料就能夠得到一個零件,即函數;再將這些函數按圖1進行組裝就能夠形成最后的學生成績管理系統的源文件,同時能夠對存儲在外部文件中的人員數據等信息進行訪問。[4]
將C語言的教學內容按照內在邏輯分成五大部分,學生容易理解并掌握。
四、教學方式
在教學上,采用“全程案例教學”,第一節課就開始寫代碼。開發工具可以使用C-Free、Dev-C++、Visual C++等,讓學生理解C語言、C++語言和開發工具的區別。
根據問題的需要,首先要設計一個“學生成績管理系統”的歡迎界面,通過該界面的設計講解順序結構,尤其是輸出語句的使用。接下來應該是用戶權限選擇,如“1、管理員 2、教師 3、學生”,這就要用到選擇結構,講解if語句和switch語句。此時要在選擇語句中使用一些數據類型,因此可以在此處講解基本數據類型(字符型、整型、實型、枚舉型)。在用戶進行選擇時要進行選擇數據的輸入,此時講解輸入語句。此時的程序只能進行一次用戶的選擇,如果想再次選擇則需要重新執行程序,在此處可以進行循環結構的講解,可以多次選擇用戶,直到用戶自己退出程序為止。在循環結構中要用到相關的表達式,可以在此處進行表達式的講解。當然,也可以先講解基本數據類型和表達式,之后再進行順序結構、選擇結構、循環結構的設計。
在選擇了相應的用戶權限之后,就要執行對應的用戶功能,如管理員功能、教師功能、學生功能等。此時給學生講解程序設計中的模塊,即函數,讓學生深刻理解模塊的概念及實現方式。在進入到相應的函數之后,如學生函數,此時應該確認學生的身份是否合法,通過鍵入如學號和密碼來驗證該學生是否合法,如合法則可以查詢成績,如不合法則重新登陸或退出。而學生的信息適合使用結構體類型數據來存儲,很多學生信息則需要用結構體數組來存儲,在此處給學生講解構造數據類型(結構體、共用體、數組),通過學生結構體數組來模擬數據庫表,在此處給學生講解相關的數據庫知識。學生功能包括成績查詢和修改密碼兩部分,所以要寫兩個相關的子函數,此處深入講解函數的相關知識,如函數的調用、參數傳遞等。這部分是學生成績管理系統的核心功能,工作量較大。
在完成相關數據的存儲之后,發現關機之后數據就沒有了,通過回顧內存與外存的區別,所以要把數據庫存儲在外存儲器上,這就要用到文件。建立若干個文件用來存儲管理員、教師和不同班級學生的記錄(可用二維數組或多維數組來區別系或班級等),通過對文件的讀寫來實現對數據庫數據的存取,基本達到學生成績管理系統的使用目標。
在這個過程中,除了必要的知識介紹外,重在培養學生的結構化程序設計思維,理解C語言的幾大組成部分并熟練使用,同時養成設計代碼的規范性。
五、考核方式
全程采用案例教學就不適合出試卷進行考核,因此在考核方式上更適合過程化考核[5]。我們將考核內容分成兩個部分,平時考核占60%(出勤占20%,平時訓練占80%),最終考核占40%(小組考核占50%,個人考核占50%)。這樣可以弱化對知識點的考查,重在考查學生對程序的分析與設計的能力。
六、實踐教學
在實踐教學環節(課程設計[6])可以安排類似的管理系統供學生分析和設計,此時每組要求選擇不同的系統進行設計,每組獨立設計系統功能框圖、分工并實現,從而鞏固并強化課堂所學的內容。
七、第二課堂
第二課堂可以參加相關的學科競賽,如“ACM大學生程序設計競賽”、“藍橋杯全國軟件和信息技術專業人才大賽”等學科競賽,從而開闊學生的視野,加強學生的實際編程能力。當然,如果想參加相關的學科競賽,還需要有一定的數據結構知識和算法知識,這需要對學生進行相關的培訓或由學生自學完成。這對于學生是一次很好的升華,學生獲得的相關學科競賽讀書對于將來的就業是一個很好的準備。
綜上,通過一個典型案例將C語言程序設計課程內容有機地組織起來,將C語言教學內容分成五大部分,使學生容易理解并形成一個較強的印象。在實驗室教學,人手一機,邊講邊練,重在培養學生分析問題和設計程序的能力,培養學生的結構化程序設計思維。
參考文獻
[1]蒲海波 興趣驅動的案例教學在C語言教學中的應用[J]計算機光盤軟件與應用 2013年第7期:192-193
[2]丁海燕 高級語言程序設計案例教學模式的探討[J]計算機教育2011年第8期: 65-68
[3]吳美紅 基于CDIO模式的案例教學在C語言程序設計中的應用[J]電腦知識與技術 2013年第11期:2632-2633
[4]李偉光 提高C語言實際應用能力的研究與實踐[J]煤炭技術2012年11期:242-243
[5]薛小鋒 案例教學在非計算機專業C語言程序設計教學中的應用[J]江蘇技術師范學院學報2010年第4期:80-82
[6]波 模塊化案例教學在C語言程序設計課程中的應用[J]計算機教育 2009年第21期:62-65
篇3
【關鍵詞】信息管理專業;面向對象程序設計;教學改革
面向對象程序設計具有抽象、封裝、繼承與多態的特點,比傳統的結構化程序設計具有更高的可重用性、易擴展性和易維護性,目前它已成為開發大中型應用軟件的主流方法。從軟件產業發展角度來看,程序設計已經從傳統的結構化程序設計轉向面對對象的程序設計方法。因此為順應市場需求,國內各個高校的計算機、信息管理專業及其他相關專業都開設了面向對象程序設計課程,如Java、VB、VC。我校信息專業將《面向對象程序設計》確立為學生必修的專業基礎課程,旨在培養學生熟練掌握面向對象的程序設計思想和設計方法,應用面向對象思想解決信息分析處理、應用系統開發等實際問題,具備較強的信息處理分析和軟件開發能力。面向對象程序設計雖作為軟件開發的常用語言,但它是把所學的專業知識轉化為應用的橋梁,在應用型人才培養過程中顯得尤為重要,所以,《面向對象程序設計》課程在整個信息專業教學體系中占據非常重要的地位。
隨著21世紀全球信息化進程的發展,教育肩負著培養民族創新精神和高素質創新人才的歷史使命。為此,我專業對近年來《面向對象程序設計》課程教學情況進行了調研,分析教學過程中存在的問題,探討新的教學方案,培養創新型應用人才,以提高學生素質為宗旨,以培養創新精神和實踐能力成為課程教學改革的最終目標。
1 教學中存在的問題
一直以來,根據我校信息管理專業的人才培養方案,在學生大一時期先開設結構化程序設計語言《C語言程序設計》,然后再開設《面向對象程序設計》(我校選擇Java語言),主要目的是想讓學生通過結構化語言作為入門,構建起一定的編程思想,為后續課程打下基礎,進而學習更深的編程方法。但從以往的教學情況看,存在著以下幾個問題:
第一,學生先學習C語言程序設計,然后學習Java程序設計,存在著從結構化程序設計到面向對象程序設計思想的轉變,而面向對象編程思想與面向過程編程思想差異較大,學生在學習上有一定的難度,因而學生感覺不易接受,導致不良的教學效果。
第二,由于學生在學習面向對象程序設計課程之前,都學習過C語言,對編程語言有了一定的了解,有很多學生在學習C語言的過程中已經對程序設計類課程開始望而卻步了,甚至對編程類課程采取放棄的態度,他們覺得“C語言都沒有學好,Java肯學也學不好了”,導致對編程失去興趣和學習的信心,因此產生了消極抵觸的情緒,這種心態嚴重影響著這門課程的教學效果。
第三,面向對象程序設計語言所涉及的概念多、語法結構復雜,學生在學習的開始階段往往出現不能理解掌握面向對象的基本思想,如類、對象及通過類調用方法等設計思想,使得學生常常感到茫然,缺乏學習興趣,教學效果差,學生的程序設計能力較低。
第四,在教學過程中存在“重語言輕思想”現象?!耙哉Z法知識為主線,按照教材章節講解語法知識”來安排教學內容,往往忽視了培養學生面向對象程序設計的思想,導致學生認為是又學習一門編程語言。并且語法的內容也增加了學生學習的枯燥,而且對于基本結構等知識顯得重復了。
第五,教學內容零散,缺乏系統觀念。老師在授課時一般側重于零碎知識的教學,沒能把知識連貫成為一個整體“只見樹木不見森林”。學生只學到了零散的語法知識,基本上是圍繞著對基本語法的理解來解決一些簡單的問題,而不能系統地運用這些語法練習開發具有一定復雜程度的系統。同時由于教學中用到的實例程序與實際工程應用聯系不夠緊密,整個教學缺乏整體性和實用性,導致學生綜合應用能力比較差,使得學生在學習過程中不能很好地將所學到的知識融于到實際工作中。
2 教學改革實踐
面對學生出現的“學會但不會用”尷尬狀況,如何讓學生在學習完面向對象程序設計課程后能充分掌握面向對象的設計思想和方法,并能真正滿足社會工作崗位的需求,是我們迫切要解決的問題。為此,我們的教學要不斷探索新的方法,以培養“應用型人才”為目標,提出一些建設性的改革措施:
2.1 適應社會市場需求,整合教學內容體系
目前,程序設計已經從傳統的結構化程序設計轉向面對對象的程序設計,在實際工作崗位中很少設計結構化的編程。因此,為了適應社會市場需求,并根據學生實際學習的情況,整合教學內容體系??紤]取消開設結構化程序語言課程,直接進入面向對象程序設計的思想,并增加面向對象程序設計課程的學時,讓學生能夠構建一個完整的面向對象程序設計思想的體系結構。
2.2 以案例導入知識點,講解教學內容
在教學過程中以一個案例為主線來展開,把相關的知識點融入案例的各個環節中去,層層推進,直至得到一個完整的解決方案,從而達到學習知識、培養能力的目的。把實際的案例分解成若干個簡單的任務,貫穿在課堂中講解,從而讓學生在實際的案例中學習Java語言知識。學生通過案例研究,培養一種獨立分析和處理問題的能力,這樣不但克服了傳統教學方式“傳遞――接受”存在的問題,而且還能增強學生的自信心,提高學習的效率,發展學生創造性思維,以培養其解決實際問題的能力。
2.3 采用任務驅動的教學方法
以任務引路,學生邊學邊練,教師與學生互動,教與學雙方共同參與,學生自主完成學習任務的教學活動。在授課過程中,教師在講解每個知識點前,先提出相關內容任務,并且以現實生活中常見的例子,這樣可以讓學生有著直觀感受,帶著疑問聽課,激發學生學習的興趣。
2.4 加強實踐教學,提高學生的綜合運用能力
Java程序設計是一門實踐性非常強的課程。畢業學生的親身經歷使我們認識到,如果只是一味地抱著課本看,不親手編寫程序,不用它解決實際問題,永遠都學不會編程。綜合運用所學知識設計開發有一定復雜程度的與實際聯系緊密的系統,根據任務模塊對學生分組,讓學生在整個過程中,能夠提高自己團隊合作精神、對知識的綜合運用能力及項目經驗。
2.5 開展情景模擬
開展情景模擬,虛擬項目管理是引導學生培養其綜合實踐能力的舉措,它為學生充分展示自己的創造性和聰明才智提供了機會和環境。組織學生以小組為單位,采用工作組的形式,讓他們身臨其境,扮演不同的角色,設身處地去當一個軟件工程師,把自己置身于一個實際項目中。這樣既可以增加學生對軟件開發項目的感性認識和興趣,又提高了他們的管理者才能。同時通過軟件開發的實踐,積累經驗以提高分析和解決問題的能力,并激發學生實踐的積極性與創造性,開拓思路,進行新創意,培養創造性的工程設計能力,并且促進綜合素質的提高。
總之,順應信息專業的發展要求及市場需求,我們正努力抓住課程特點,明確教學目標,不斷改進和提高教學方法,通過多種途徑培養學生學習的主動性、動手能力、應用能力和創新能力,實現真正意義上的“應用為本,學以致用”。
【參考文獻】
[1]丁智國,錢婕.面向對象程序設計課程教學改革[J].計算機教育,2011(9):9-11.
[2]黃素萍.面向對象程序設計教學改革模式研究[J].教育教學論壇,2013(2):264-265.
篇4
關鍵詞 高職教育 C語言 結構化編程 互聯網
如何提高高職計算機類專業學生非圖形模式下的結構化編程能力,是高職計算機教育中的一個普遍問題。作者通過三年的努力,對“C語言程序設計”課程在教學內容、教材建設、實訓設計、網站建設和考核方式等諸多方面,進行了大膽的改革和探索,將電子教材、電子教案、學習論壇、編程工具、學習資料等,整合成為學習網站,在教學過程中通過論壇程序不同版本,實施案例驅動,課后通過QQ群進行輔導答疑,通過論壇、電子郵件進行作業提交批改,建立了基于案例驅動的結構化編程教學模式。本文具體論述了基于案例驅動的高職C語言結構化編程教學的過程和方法。
1 教學內容
在課程設計上,針對高職計算機專業學制短,技能要求高的特點,提出了“一條線兩階段,三結構四循環”的教學模式。
“一條線”是指在一年級的編程教學課中,貫徹C語言一條線。曾經有一種觀點,認為高職計算機專業的編程語言教學,直接從面向對象語言開始學習,可以節約時間。但是,70%的企業依然要求學生具備面向過程的結構化編程能力。考慮到企業的需求,結合后續的課程安排,我們決定在一年級的課程安排上,貫徹C語言“一條線”,即在第一學期,開設“程序設計基礎”,第二學期,開設面向過程的“C語言程序設計”。
“兩階段’指課程安排分為“程序設計基礎”和“C語言程序設計”兩個階段?!俺绦蛟O計基礎”解決程序的基本結構,重點在建立學生的結構化程序的基本框架和概念;以C語言為基本語言,使學生能有實際操作的平臺,但準確把握“把C語言作為偽語言”的原則,不讓學生陷入C語言多變的泥淖,而把注意力放在結構化程序的基本結構上?!癈語言程序設計”放在解決C語言的使用上,把握“C語言”是編程工具而不是研究對象的原則,根據企業的編程規范,對“C語言”進行簡化,重點是如何使用C語言解決一般復雜程度的結構化編程問題。
“三結構”是指在一年的學習中,學生要學習三個成績管理軟件的編程,分別是基于一維數組、二維數組和動態結構數組。從企業實際應用來看,動態空間的使用,可以用動態數組解決。因此我們去掉了鏈表,重點是讓學生寫出有工程實際意義的結構化程序。
“四循環”是指編寫基于“三結構”的每一個成績管理軟件過程中,教師四個以上的程序版本,引導學生改寫、增加函數,讓學生直觀地看到軟件的功能是如何一步一步構建起來的。
結構化程序設計的教學中,如何讓學生建立起結構化程序的框架是很困難的。一個簡單的成績管理軟件,代碼就超過300行。對初學者來說,看懂超過100行的程序就需要很長時間,學生又如何能在短短的課堂時間里通過增加/改寫函數來增加功能呢?這也就是很多學生學完了C語言程序設計,依然不能編寫一個簡單的應用程序的主要原因。我們發現通過論壇程序版本,利用工具軟件BeyondCompare,比較不同的程序版本之間的差異,可以讓學生直觀地看到軟件的功能是如何一步一步構建起來的,如圖1所示。程序的第一個版本,就是一個主函數,不超過10行,只顯示程序的幾項功能菜單,學生很容易理解,然后通過第二個、第三個版本,每一個版本實現或改進一個菜單的功能,直到最后版本。
通過圖1,我們可以看到程序功能的增加是由哪些代碼實現的,而通過不斷反復的比較,學生就可以掌握結構化程序設計的過程和方法。
在教學過程中,通過比較版本,讓學生直觀地看到復雜的程序功能是如何由簡單的函數一個一個構成的。學生經過“程序設計基礎”的課程設計,基本掌握主函數與模塊函數的作用和相互關系,可以看懂超過100行的C語言源程序,理解基于一維數組的成績管理系統;在“C語言程序設計”的課程設計中,學生對主函數與模塊函數的理解更加深入,可以看懂超過300行的C語言源程序,理解基于動態結構數組的成績管理系統,掌握主函數的設計方法,并按照規范的格式寫出自己的函數?;叵肴昵埃驗闆]有采用這種方法,只要是超過20行的程序,學生就普遍反映看不懂。由此可見,采用新的方法后,學生編程能力的提高十分明顯。
2 教材建設
2004年9月清華大學出版社出版了作者主編的21世紀高職高專規劃教材《程序設計基礎》,教材主要在三個方面進行了改革。
(1)強調把生活中的問題轉化為程序的能力,使學生真正能夠編寫實用的程序
在教材編寫思想上,重點放在培養學生把生活中的問題轉變成為程序并進行處理的能力,強調轉變講授思路,推行引導學生首先想清楚“我要做什么?”,然后才教給學生“如何做”,最后上機進行驗證的三步教學法。
在教材的編寫風格上,對全書所有的例題進行了通盤的考慮,在循環、數組、函數和結構化設計等單元,所有的例子都有前后的聯系,強調內容的前后銜接,特別注意工程規范的引入,在變量的命名、程序格式方面,均按工程要求進行。在案例選擇上,全部采用工程實際和實際生活中的案例。
(2)提出了以“三大區域”為特色的c程序的基本框架
通過把一個基本的C程序從上到下分成預處理區、變量聲明區、執行語句區“三大區域”為特色的C程序的基本框架,讓學生樹立正確的程序格式與規范。“三大區域”概念的提出,明確規定了程序的基本框架,讓學生從一開始就按固定的格式進行編程,養成良好的編程習慣。
(3)提出了使用函數的“三大步九要素”的基本方法,建立使用函數的清晰框架
我們提出的使用函數的“三大步九要素”的基本方法,在教學中取得了很好的效果。
所謂“三大步”,是指我們在使用自定義的函數時,對函數進行聲明、定義和調用。三大步按順序進行。
所謂“九要素”,是分別指函數聲明、定義、調用各有三要素共九點:函數聲明的三要素:返回值的類型、函數的名字、形式參數。函數定義的三要素:形式參數、功能、返回值。函數調用的三要素:名字、實際參數、返回值。通過對“九要素”的理解掌握,學生能夠建立起使用函數的清晰框架。
3 實訓設計
對高職學小的技能培養,實訓是很重要的環節。我們采用了項目驅動的思想來設計實訓項目,每一單元的實訓,都是構成最終程序的不同版本,在“程序設計基礎”頭程序版本8個,“C語言程序設計”共程序版本10個,構成了實用的軟件框架,學生相當于參與了一個中等復雜程度的軟件開發,積累了經驗。在今后的實際工作中,完全可以以此為模板,進行結構化程序的開發。
4 網站建設
利用互聯網技術,建立基于互聯網的學習資源。2003年建立了“光華之窗”教學網站,在網站平臺上,將電子教材、電子教案、學習論壇,編程工具、學習資料等,整合成為學習網站,設計了“程序設計基礎”、“C語言程序設計”教學論壇,兩年來積累了完整的教學過程資料。可以說,網站的建設和運行,為課程的質量提供了保證,避免了“課隨老師走”的問題。
5 考核方式
篇5
2、線性表的定義:線性表的順序存儲結構及其插入與刪除運算。棧和隊列的定義;棧和隊列的順序存儲結構及其基本運算。線性單鏈表、雙向鏈表與循環鏈表的結構及其基本運算。
3、樹的基本概念:二叉樹的定義及其存儲結構;二叉樹的前序、中序和后序遍歷。順序查找與二分法查找算法;基本排序算法(交換類排序,選擇類排序,插入類排序)。
4、程序設計基礎:程序設計方法與風格。結構化程序設計。面向對象的程序設計方法,對象,方法,屬性及繼承與多態性。
5、軟件工程基礎:軟件工程基本概念,軟件生命周期概念,軟件工具與軟件開發環境。結構化分析方法,數據流圖,數據字典,軟件需求規格說明書。結構化設計方法,總體設計與詳細設計。
6、軟件測試的方法:白盒測試與黑盒測試,測試用例設計,軟件測試的實施,單元測試、集成測試和系統測試。程序的調試,靜態調試與報考調試。
7、數據庫設計基礎:數據庫的基本概念:數據庫,數據庫管理系統,數據庫系統。數據模型,實體聯系模型及 E-R 圖,從 E-R 圖導出關系數據模型。
篇6
計算機二級公共基礎知識考試大綱基本要求:
1、掌握算法的基本概念。
2、掌握基本數據結構及其操作。
3、掌握基本排序和查找算法。
4、掌握逐步求精的結構化程序設計方法。
5、掌握軟件工程的基本方法,具有初步應用相關技術進行軟件開發的能力。
篇7
關鍵詞:循環結構;C語言程序設計;非計算機專業
中圖分類號:TP393文獻標識碼:A文章編號:1009-3044(2012)26-6323-05
Discussion on Loop Structure Teaching in C Language Programming of Non-computer Specialty
XIA Yun
(College of Mathematics and Computer Science, Anhui Normal University , Wuhu 241000 , China)
Abstract: The teaching of loop structure is an important component in C language programming. This paper designed 5 teach? ing examples for the students of non-computer specialty. This paper analyzes the teaching progress in detail and emphasizes the teaching points of the loop structure teaching. And it produces a good effect in the actual teaching progress.
Key words: loop structure; C Language programming; non-computer specialty
大學計算機應用基礎作為一門課程大約于20世紀90年代中期開設,現在已成為大學里的計算機學習基礎課程,是所有非計算機專業大一新生的必修公共基礎課,也是培養學生基本素質的一門重要課程[1]。作為大學計算機應用基礎課程,理工類專業大部分會開設程序設計課程,有部分專業會開設C程序設計課程。C語言是一種語法靈活、適用范圍廣的高級程序設計語言。結構化程序設計方法有三種基本結構:順序結構、分支結構和循環結構。順序結構和分支結構比較簡單,循環結構從教學上來說是重點也是難點。本文主要對C語言循環結構教學進行探討。
1教學內容的分析
C語言循環結構編程主要涉及到三種循環結構語句while、do-while和for。本文作者認為非計算機專業開設這門課程,主要是講解程序設計的方法,培養學生的編程能力和思維能力,因此,在教學中上述的三種語句可以以while語句為重點,講解循環結構編程的思想,do-while和for語句可以簡單舉例說明它們的流程。在講解循環結構編程分析時,可以以流程圖或者用自然語言逐步描述操作步驟的形式,指出循環結構編程關鍵是找到在什么情況下需要反復執行某些操作,并找到這些反復執行的操作是什么。
2教學用例的分析
在課程教學過程中,需要用一些例子來配合講解循環結構的編程。在教學時,選取一些比較合適的例子,可以很好地幫助學生理解所教授的內容。教師在教學過程中除了要加強課堂啟發外,盡可能結合課程自身的特點,注重學生現場演練,并采用任務驅動、師生互動、鼓勵學生等教學手段來提高其學習的主動性和積極性[2]。
2.1導入的例子
在教學活動中,講授后面知識內容時要與前面知識相互呼應[3],因此,在上課時,可以以這樣的問題開始,例題1:用戶輸入正整數n值的大小后,要求計算1+2+3+…+n,將所得出的結果輸出。這個例題主要是復習前面的內容,復習輸入、輸出函數和分支結構的編程。該問題提出后,可以讓同學們思考一下,然后再進行提問,提問時可以讓學生說出編程思路,若課堂時間比較多也可以請學生直接編寫源代碼并運行。
提問時,有的同學可能給出如下的順序結構編程的解答:
步驟1:輸入整數n
步驟2:求s=(1+n)*n/2
步驟3:輸出s
while (j
{輸出i*j
j++;}
由此,得出在循環while (i
循環結構是結構化程序設計的一種重要結構,在教學中不僅需要學生掌握這種結構的語法,更重要的是培養學生的設計思維和思考方法,本文主要是從教學的角度,對循環結構的整個教學過程設計了5個教學用例,并對其進行展開分析,重點是讓學生掌握循環結構編程的思想,實際上就是在問題分析過程中找循環條件和循環操作,在實際教學中取得了較好的效果。
[1]何文海,吳明珠,謝劍剛.情商與智商相結合的教學模式[J].現代計算機,2007(8):73-75.
[2]郭?;?陳允芳,王健.非計算機專業中“VB程序設計”教學方法初探[J].計算機教育,2009(18):98-100.
篇8
關鍵詞:C語言;結構化程序設計;循環結構
中圖分類號:TP
文獻標識碼:A
文章編號:1672-3198(2010)13-0329-02
1 for循環語句的應用規則
C語言中的for循環語句使用非常靈活,不僅可以用于循環次數已經確定的情況,而且可以用于循環次數不確定而只給出循環結束條件的情況,它完全可以代替while語句。
1.1 for循環語句的格式
for(表達式1;表達式2;表達式3)語句;
這里邊的“語句”就是循環體語句,若其中只有一條語句,可以不用花括號,若多于一條,則必須用花括號將這些循環體語句括起來。
1.2 for循環語句的執行過程
(1)先操作表達式1;
(2)操作表達式2,若其值為真(值為非0),則執行for語句中的循環體語句一次,然后執行下面第三步,若為假(值為0),則結束循環,轉到第5步;
(3)操作表達式3;
(4)轉回上面第2步驟繼續執行;
(5)結束循環,執行for語句下面的語句。
一定要搞清楚這三個表達式的執行次序!且要注意表達式1只執行一次!
通常,表達式1用來為循環變量賦初值,表達式2用來設置執行循環的條件,表達式3用來改變循環變量的值。所以for語句的格式也可以這樣描述:
for(循環變量賦初值;循環條件;循環變量增值)語句;
2 fo與while語句的編程對比
通過結合例子,如求sum=1+2+3+…+100的和,來分別看一下for和while語句的編程效果。
首先用for循環語句來編程實現
main()
{
int i,sum=0;/*定義變量i,sum為基本整型,且為sum賦初值0*/
for(i=1;i
printf(“sum=%d”,sum); /*退出循環后的語句,即輸出sum的值*/
}
再用while語句進行編程實現
main()
{
int i=1,sum=0; /*定義變量i,sum為基本整型,且為它們分別賦初值1和0*/
while(i
{
sum=sum+i; /*將變量i與其前各項之和累加*/
i++; /*循環變量增加1*/
} /*循環體多于一個語句時要用花括號括起來*/
printf(“sum=%d”,sum); /*退出循環,輸出sum的值*/
}
對比以上程序,顯然我們發現,用for語句在編程語句上更簡單、方便,編程效率更高。而while語句在編程過程中,要書寫更多的語句。
3 for語句的深入應用
(1)for語句一般形式中的表達式1可以省略,此時應在for語句之前給循環變量賦初值。注意省略表達式1時,其后的分號不能省略。如for(;i
(2)表達式2也可以省略,即沒有判斷循環的條件,此時編譯系統將循環條件默認為真,循環將無終止地循環下去,這種情況可以在循環體中設置條件控制循環。
例如:for(i=1;;i++)sum=sum+i;為死循環語句,若使其實現1+2+3+…+100后結束循環,則可以在循環體中加上控制條件:
for(i=1;;i++){if(i>100)break;sum=sum+i;}
(3)表達式3也可以省略,即沒有設置用來改變循環變量的語句,循環將無終止地循環執行下去,但此時程序設計者可以在循環體中加上用來改變循環變量的語句。如:
for(i=1;i
{sum=sum+i;
i++;/*循環變量增加1,改變循環變量的值*/
}
另外表達式3不一定都要寫成如i++這樣的形式,要根據循環變量的實際變化規律而定,如可以寫成這樣的形式:i=i+2或i=i*3…。
(4)可以省略表達式1和表達式3,只有表達式2即只給循環條件。此時可以在程序的適當位置對循環變量賦初值和改變循環變量的值。如:
int i=1,sum=0; /*定義變量i,sum為基本整型,且為它們分別賦初值1和0*/
for(;i
sum=sum+i++; /*改變循環變量的值*/
(5)三個表達式都可以省略。
如:for(;;)語句;
即不設初值,沒有判斷條件(認為表達式2為真值),循環變量不增值,將無終止的執行循環體。在實際應用中程序設計者可以將這三個內容分寫在程序的適當位置。
如:
main()
{
int i=1,sum=0; /*定義變量賦初值1和0*/
for(;;)
{if(i>100);{sum=sum+i++;}}/*為循環設置控制條件,改變循環變量的值*/
printf(“sum=%d”,sum);
}
(6)表達式1也可以是設置循環變量初值的賦值表達式,也可以是與循環變量無關的其他表達式.且可以有多個,此時用逗號將其分隔開,如:
for(i=1,sum=0;i
{
sum=sum+i;
}
(7)當循環的次數不確定時,表達式2即控制循環的條件語句,其判斷對象就不能是循環變量了。如:
已知s=1+2+3+…+n,求滿足s>=1000的最小n值。
這個程序的循環執行的條件為“s
main()
{ int n,s; /*定義變量賦不賦初值*/
for(n=1,s=0;s
s=s+n; /*將變量n與其前各項之和累加*/
printf(“n=%d”,n-1); /*,輸出n的值*/
}
用while語句可以這樣編寫:
main()
{int n=1,s=0;
while(s
s=s+n++;
printf(“n=%d”,n-1);
}
上面這個程序循環的次數在編寫程序時不能確定,遇到這種情況人們首先想到的是用while語句來實現循環,以為for語句無法實現,其實這是一種誤解。在BASIC語言中for循環只能用在循環次數確定的循環當中,而C語言中for語句格式卻有其特殊性,而應用更具靈活性。
參考文獻
篇9
關鍵詞:循環控制,goto語句,while語句,do…while語句,for語句
1、引言
循環結構式結構化程序設計的三種基本結構之一。在要求多次重復執行時,循環結構會使程序簡單高效,具有很大的優越性,因此應用相當廣泛。。日常生活中,很多問題都要用到循環控制,如輸入全校學生成績, 求若干個數據的和, 求階乘,這些都是重復處理的問題。。循環就是重復,可以解決這類問題。
2、循環控制
2.1、循環結構
循環結構, 又稱重復結構, 即反復執行某一部分的操作。循環結構是結構化程序設計的三種基本結構之一。在C語言中, 主要有以下四種循環語句:用goto語句構成循環、用while語句實現循環、用do…while語句實現循環、用for語句實現循環。這四種語句都可以完成循環結構的功能,但是在語法、程序流程上又有各自的特點。(以下程序均以求為例)
2.2、goto語句以及用goto語句構成循環
goto語句為無條件轉向語句,它的一般形式為:
goto 語句標號;
語句標號用標識符表示,它是由字母、數字、和下劃線組成,其第一個字符必須為字母或下劃線,不能用整數來作標號。例如:
goto part_1;
是合法的,而
goto 111;
卻是不合法的。
由于濫用goto語句容易使程序流程無規律、可讀性差,所以主張限制使用它,但是也不絕對禁止。goto語句一般與if語句一起構成循環語句。例如:
#include<stdio.h>
void main()
{
int i,sum=0;
i=1;
loop:if(i<=100)
{
sum=sum+i;
i++;
goto loop;
}
printf(“%d ”,sum);
}
運行結果為:5050
2.3、用while語句構成循環
while語句用來實現“當型”循環結構,一般形式如下:
while(表達式) 語句
當表達式為非0值時,執行while語句中的內嵌語句。例如:
#include<stdio.h>
void main()
{
int i,sum=0;
i=1;
while(i<=100)
{
sum=sum+i;
i++;
}
printf(“%d ”,sum);
}
需要注意的是:
(1)如果循環體包含了一個以上的語句,應用花括號括起來,以復合語句的形式出現。如果不加花括號,那么while語句的范圍只能到while后第一個分號處。
(2)循環體中應該有能使循環語句結束的語句,否則會造成死循環。
2.4、用do…while語句實現循環
do…while語句,要先執行循環體,再判斷循環條件是否成立。其一般形式為:
do
循環體語句
while(表達式);
具體是這樣執行的:先執行一次指定的循環體語句,然后判別表達式,當表達式的值為“真”(即非0)時,返回重新執行循環體語句,如此反復,直到表達式的值等于0為止。例如:
#include<stdio.h>
void main()
{
int i,sum=0;
i=1;
do
{
sum=sum+i;
i++;
}
while(i<=100);
printf(“%d ”,sum);
}
2.5、用for語句實現循環
for語句的一般形式為:
for(表達式1;表達式2;表達式3) 語句
其最簡單的理解形式如下:
for(循環變量賦初值;循環條件;循環變量增值) 語句
例如:
for(i=1;i<=100;i++) sum=sum+i;
需要說明的是:
(1) for語句的一般形式中“表達式1”可以省略,但是其后面的分號不能省略。這時應在for語句之前給循環變量賦初值。
(2) 若表達式2省略,則不判斷循環條件,循環會無終止地進行下去,即認為表達式2始終為真。
(3) 表達式3也可省略,但這時程序設計者應另外設法保證循環能正常結束。
(4) 可省略表達式1和表達式3,只有表達式2,即只給循環條件。
(5) 三個表達式都可省略,此時無終止地執行循環體。
(6) 表達式1可以是設置循環變量初值的賦值表達式,也可以是與循環變量無關的其他表達式。
(7) 表達式一般是關系表達式或邏輯表達式,也可以是數值或字符表達式,只要其值為非0,就執行循環體。
由此可見,for循環語句的使用方法最為靈活。
2.6、四種循環的比較
(1)除goto語句不主張使用外,其他三種語句一般情況下可以互相替換,處理同一問題。。
(2)在while和do…while語句中,因為只能在while后的括號內指定循環條件,所以循環體中應當包含能使循環趨向結束的語句。
(3)for語句可以在表達式1中實現循環變量的初始化,而while和do…while語句應在while和do…while語句之前完成循環變量的初始化。
(4)除goto語句和if語句構成的循環外,其他三種語句都可以用break語句跳出循環,用continue語句結束本次循環。
3、結束語
循環結構和順序結構、選擇結構共同作為各種復雜程序的基本構造單元,在程序設計中占有重要地位。只有認真分析總結,才能熟練掌握循環結構的概念和使用,提高編程效率和質量。
參考文獻:
[1]譚浩強.C程序設計.北京:清華大學出版社,2005.
[2]C編寫組.常用C語言用法速查手冊.北京:龍門書局,1995.
篇10
論文摘要:信息資源的價值越來越高,建設以數據庫為中心的管理信息系統,對提高金融管理水平和生活質量具有重要的意義,本文以具體實例闡述了面向對象程序設計方法的特點,并分析其優點和不足的地方,以便于在經濟工作中運用面向對象軟件開發實踐方法具體設計相關管理信息系統。
1前言
隨著我國經濟信息化工作的不斷發展提升,對金融工作者的計算機應用知識要求越來越高,有些企業的信息系統正面臨從傳統的核算軟件向管理決策性的大型管理軟件的再開發。當前我國企業經濟發展對管理信息系統開發的需求很大,如何正確安排軟件的結構,合理組織、管理軟件的生產,不僅是從事軟件開發專業人員的事,也是廣大從事金融管理工作人員及學員必需掌握的知識,金融工作人員經常就會被要求加入到系統開發中去,向系統開發人員提供有關專業技術支持,幫助開發人員了解企業的財務處理程序、經營過程,管理要求及用戶的信息需求等。為了縮短了軟件的研制時間,提高了軟件的開發效率,面向對象程序設計由此應運而生。面向對象事件驅動程序設計方法是程序設計方法的一次變革.我們應迎頭趕上井掌握這門新技術。
2面向對象方法程序設計(00)的基本過程
計算機軟件技術發展非??欤絹碓蕉嗟膶嵱密浖ぞ哂胁煌潭鹊拿嫦驅ο笞詣泳幊坦δ?,軟件工程各階段的自動化程度也將越來越高.面向對象程序設計是目前程序設計方法的主流,是程序設計在思維和方法上的一次巨大進步。WWW.133229.coM面向對象程序設計思想是面向對象,即設計的重要任務在于描述對象,程序是由事件驅動的,因而,在執行過程中,持續等待的是一個發生在對象上的事件。而發生什么事件則要看使用者的操作,如單擊、雙擊鼠標等。至于下一步的程序流向,則要看驅動的是什么事件。這類程序設計的主要目的是從任何方便與簡化使用人手,由使用者控制程序流向,這在一定程序上增加了編程的難度,以基于vfp6.0面向對象的程序設計應用為例,假設某儲戶到銀行提取存款x元,試問銀行出納元應如何付款最佳(即各種票頰鈔票總張數最少)。
2.1分析
可以從最大的票額(100元)開始,算出所需張數,然后在剩下的部分算出較小面額的張教,直到最小票額(1元)。
2.2設計步辣
(l)建立應用程序用戶最界面。
選擇“新建”表單設計器,增加一個命令按鈕command1、14個標簽labeli_label14,7個文本框texti_text7。
(2)設置對象屬性.如表i:
表單的默認按鈕
(3)編寫程序代碼:
說明:文本框的interactivechange事件當文本框中的內容被改變時發生。
2.3建立程序界面與程序運行結果
在企業的金融信息系統中其它應用需求諸如:求各種所得稅的納稅情況,水電費收支情況,工資管理情況等應用,軟件需求大,需求的具體要求各有千秋,程序代碼和界面是千變萬化的,系統開發人員和信息管理應用工作者應根據具體的要求按一定的語法規則去改變程序的結構和方式,形成各自的風格,以滿足企業信息管理系統對應用軟件日益增長的需要。
3面向對象系統開發(00)方法的原理
面向對象方法是在吸取結構化思想和優點的基礎卜發展起來的,是對結構化方法的進一步發展和擴充。各種分析方法在財經軟件開發過程中墓本目標是相同的。都以較低的成本開發高質量的軟件,系統開發從問題域中的實體與關系出發,體系結構是由對象類及其關系構成,對象之間通過消息傳遞信息,通過執行服務一消息鏈完成指定功能,一旦用戶要求修改,可以只更改局部內容即可。但不管采取什么開發方法,軟件開發的墓本活動包括:需求定義、設計(design),實現、驗證/確認,一個面向對象的程序的每一成份應是對象,計算是通過新的對象的建立和對象之間的通信來執行的。“面向對象”一詞是針對“面向過程’一詞提出的,是在本質上不同于傳統的結構化方法的一種新方法,但其是基于或擴展結構化的思想,且包含三個基本的原理:封裝、繼承及多態。面向對象方法是吸取結構化方法的思想和優點的基礎上發展起來的,是對結構化方法的進一步發展和擴充。
4面向對象系統開發(00)方法的特點和發展趨勢
面向對象程序設計方法是一種正在發展中的方法,它認為客觀世界是由對象組成的,用對象表示軟件應用領域里的事物,用消息傳送表現事物之間的相互聯系,它用對象和消息來描述事物及其相互之間的聯系,用類和繼承來描述對象,建立問題或模型、描述系統。它是一種運用對象、類、繼承、聚合和消息等概念來構造程序的設計方法。面向對象的程序設計方法主要的構成可為:對象+類十繼承十消息。軟件系統利用以上四個概念進行設計或實現的,使認為其是面向連接的.面向對象程序設計的特點是唯一性,從前一階段到后一階段高度連續,將面向對象分析ooa、面向對象程序設計oop、面向對象設計ood集成到生存期各階段中,相對于結構化程序設計方法來說.面向對象程序設計方法具有其獨到的以下優點:開發方法的唯一性,開發階段的高度連續性.表示方法的一致性。問題空間實體的自然表示,減輕了設計者的負擔。設計之初不必考慮很完整的地方,建立完整的體系結構,可促進復用性,易于維護,易于修改,可合理利用其共同性,減少其復雜性。
例如,在基本的發visualfoxfro,vi-sualbasic.visualc++中,控件(control)、表單(form)等都是一個個對象.對其中對象的操作,可以通過屬性、事件和方法來實現。面向對象是當前軟件方法學的主要方向,也是目前最有效的開發方法之一。其基本思路是:把一個復雜問題的求解過程分階段進行,每個階段處理的問題都控制在人們容易理解和處理的范圍內。在應用中,面向對象的分析方法首先定義對象及其屬性,根據問題域中的操作規則和內在性質定義對象的行為特征(服務),建立狀態模型,用狀態模型描述對象的生命周期,分析對象之間的關系,采用封裝,繼承,消息通信等原則使問題域的復雜性得到控制,根據對象及其生命周期定義處理過程。當然,面向對象設計方法有很多不足之處,在開發大型軟件方面,面向對象設計方法無疑其有很好的優勢,但這種優勢只有其在開發大型軟件上才體現出來,軟件的重用使其冗余相對較大。對于小型軟件和要求講究效率的場合來講,結構化程序設計方法仍有其使用的必要。
以金融管理信息系統為例,隨著金融軟件的推廣應用,企業電算化應用水平不斷提高,軟件已不能滿足企業管理水平提高的需求,為此我國金融軟件開發應用工作者又相繼推出了atm系列、銀證轉賬軟件產品,井與會計管理軟件功能相關聯和對接,主要包括:賬務處理、資金管理、帳務分析、銷售等功能,在管理型軟件各功能模塊中還將滿足納稅處理、提供審計線索等功能需求。將推出成熟的商品化金融企業管理信息軟件,以實現企業內部物流、資金流與信息流的一體化管理,實現管理與決策有機統一,并通過建立在internet/intranet/extranet上,實現企業內部資源與企業外部資源構成的整個供應鏈的管理.