結(jié)構(gòu)化程序設(shè)計范文

時間:2023-04-08 03:38:03

導(dǎo)語:如何才能寫好一篇結(jié)構(gòu)化程序設(shè)計,這就需要搜集整理更多的資料和文獻,歡迎閱讀由公務(wù)員之家整理的十篇范文,供你借鑒。

篇1

1、整體思路清楚,目標明確。

2、設(shè)計工作中階段性非常強,有利于系統(tǒng)開發(fā)的總體管理和控制。

3、在系統(tǒng)分析時可以診斷出原系統(tǒng)中存在的問題和結(jié)構(gòu)上的缺陷。

4、用戶要求難以在系統(tǒng)分析階段準確定義,致使系統(tǒng)在交付使用時產(chǎn)生許多問題。

5、用系統(tǒng)開發(fā)每個階段的成果來進行控制,不能適應(yīng)事物變化的要求。

6、系統(tǒng)的開發(fā)周期長。

篇2

【關(guān)鍵字】案例教學(xué) C語言程序設(shè)計 課程改革

【中圖分類號】TP311.1-4;G642.0

程序設(shè)計方法大體上分成兩種:一種是結(jié)構(gòu)化程序設(shè)計,一種是面向?qū)ο蟪绦蛟O(shè)計。結(jié)構(gòu)化程序設(shè)計思想的原則是:自頂向下,逐步求精,模塊化。絕大多數(shù)高校對學(xué)生進行結(jié)構(gòu)化程序設(shè)計思維培養(yǎng)都是通過“C語言程序設(shè)計”課程進行的,但是多數(shù)課堂在進行“C語言程序設(shè)計”課程時都是按照教材的章節(jié)進行講解[1][2],對C語言缺少一個整體的設(shè)計,并且實例之間都是離散的,沒有關(guān)聯(lián),這樣對于學(xué)生形成結(jié)構(gòu)化程序設(shè)計思維造成了很大的困難。學(xué)生在學(xué)習(xí)“C語言”之后,往往知道其中的一些概念,如數(shù)組、結(jié)構(gòu)體、指針、函數(shù)等等,會使用的就會減少一部分,而對“C語言”能夠有一個整體的理解,對結(jié)構(gòu)化程序設(shè)計思維有深入了解的,能夠獨立編程[3]的就少之又少。

為了培養(yǎng)學(xué)生的“結(jié)構(gòu)化程序設(shè)計思維”,讓學(xué)生對“C語言”有一個整體的掌握,并且能夠熟練使用“C語言”進行程序設(shè)計,我們采用“全程案例式”教學(xué)方式進行C語言程序設(shè)計課程改革。

所謂“全程案例式”C語言程序設(shè)計教學(xué)是指在C語言的教學(xué)過程中從頭到尾選用一個典型案例,如“學(xué)生成績管理系統(tǒng)”,仿照教務(wù)管理平臺對學(xué)生成績進行管理。這樣的案例學(xué)生非常了解,能夠?qū)ζ渲械慕巧δ苡忻鞔_的認知,這樣就很容易分析清楚整個系統(tǒng)的功能模塊構(gòu)成,在此基礎(chǔ)上對各個功能模塊和數(shù)據(jù)類型進行設(shè)計,從而培養(yǎng)學(xué)生的結(jié)構(gòu)化程序設(shè)計思維。

一、問題分析

教學(xué)人員對教務(wù)管理平臺都不陌生,在分析問題的時候可以讓學(xué)生自己設(shè)定學(xué)生成績管理系統(tǒng)的角色和功能,然后實現(xiàn)。一般情況下,學(xué)生成績管理系統(tǒng)可以分成三種角色,一是管理員,主要負責(zé)訪問成績管理平臺成員數(shù)據(jù)的增、h、改、查等操作,二是教師,主要負責(zé)學(xué)生成績的錄入、修改、查看等操作,三是學(xué)生,可以查看自己的成績信息。同時三種成員都可以修改自己登陸平臺的密碼,功能模塊劃分如圖1所示。通過對系統(tǒng)功能模塊的劃分,可以讓學(xué)生理解結(jié)構(gòu)化程序設(shè)計“自頂向下,逐步求精,模塊化”的程序設(shè)計思想,并在此基礎(chǔ)上,開發(fā)對應(yīng)的功能函數(shù)。

二、學(xué)生分組

將學(xué)生分組,如25名同學(xué)分成5組,每組5人,有一位組長。每組分別獨立完成以上教務(wù)管理平臺中對應(yīng)的功能模塊,可以根據(jù)本組的討論有所增刪。這樣每位同學(xué)平均完成兩個功能模塊,從而保證在課堂教學(xué)時間能夠完成該項目。組長負責(zé)整個案例的任務(wù)分配,同時解決小組成員實施時遇到的技術(shù)問題,當然組成的最后成績也會較高。

三、教學(xué)內(nèi)容

仿照工程化的思路,如設(shè)計一個產(chǎn)品,需要有工人、原材料、工人。工人使用工具按一定的步驟加工原材料得到一個一個的零件,再將這些零件有機地組裝起來就會形成一個產(chǎn)品。C語言的教學(xué)內(nèi)容也可以按照以上思路進行分解,首先要有人,即程序員也就是學(xué)生;原材料是C語言的數(shù)據(jù)類型,包括基本類型(整型、實型、字符型、枚舉型)、構(gòu)造類型(數(shù)組、結(jié)構(gòu)體、共用體)、指針類型和空類型;工具是運算符,用來操作某種類型的數(shù)據(jù);操作步驟包括順序結(jié)構(gòu)、選擇結(jié)構(gòu)和循環(huán)結(jié)構(gòu);程序員使用工具按照一定的步驟加工原材料就能夠得到一個零件,即函數(shù);再將這些函數(shù)按圖1進行組裝就能夠形成最后的學(xué)生成績管理系統(tǒng)的源文件,同時能夠?qū)Υ鎯υ谕獠课募械娜藛T數(shù)據(jù)等信息進行訪問。[4]

將C語言的教學(xué)內(nèi)容按照內(nèi)在邏輯分成五大部分,學(xué)生容易理解并掌握。

四、教學(xué)方式

在教學(xué)上,采用“全程案例教學(xué)”,第一節(jié)課就開始寫代碼。開發(fā)工具可以使用C-Free、Dev-C++、Visual C++等,讓學(xué)生理解C語言、C++語言和開發(fā)工具的區(qū)別。

根據(jù)問題的需要,首先要設(shè)計一個“學(xué)生成績管理系統(tǒng)”的歡迎界面,通過該界面的設(shè)計講解順序結(jié)構(gòu),尤其是輸出語句的使用。接下來應(yīng)該是用戶權(quán)限選擇,如“1、管理員 2、教師 3、學(xué)生”,這就要用到選擇結(jié)構(gòu),講解if語句和switch語句。此時要在選擇語句中使用一些數(shù)據(jù)類型,因此可以在此處講解基本數(shù)據(jù)類型(字符型、整型、實型、枚舉型)。在用戶進行選擇時要進行選擇數(shù)據(jù)的輸入,此時講解輸入語句。此時的程序只能進行一次用戶的選擇,如果想再次選擇則需要重新執(zhí)行程序,在此處可以進行循環(huán)結(jié)構(gòu)的講解,可以多次選擇用戶,直到用戶自己退出程序為止。在循環(huán)結(jié)構(gòu)中要用到相關(guān)的表達式,可以在此處進行表達式的講解。當然,也可以先講解基本數(shù)據(jù)類型和表達式,之后再進行順序結(jié)構(gòu)、選擇結(jié)構(gòu)、循環(huán)結(jié)構(gòu)的設(shè)計。

在選擇了相應(yīng)的用戶權(quán)限之后,就要執(zhí)行對應(yīng)的用戶功能,如管理員功能、教師功能、學(xué)生功能等。此時給學(xué)生講解程序設(shè)計中的模塊,即函數(shù),讓學(xué)生深刻理解模塊的概念及實現(xiàn)方式。在進入到相應(yīng)的函數(shù)之后,如學(xué)生函數(shù),此時應(yīng)該確認學(xué)生的身份是否合法,通過鍵入如學(xué)號和密碼來驗證該學(xué)生是否合法,如合法則可以查詢成績,如不合法則重新登陸或退出。而學(xué)生的信息適合使用結(jié)構(gòu)體類型數(shù)據(jù)來存儲,很多學(xué)生信息則需要用結(jié)構(gòu)體數(shù)組來存儲,在此處給學(xué)生講解構(gòu)造數(shù)據(jù)類型(結(jié)構(gòu)體、共用體、數(shù)組),通過學(xué)生結(jié)構(gòu)體數(shù)組來模擬數(shù)據(jù)庫表,在此處給學(xué)生講解相關(guān)的數(shù)據(jù)庫知識。學(xué)生功能包括成績查詢和修改密碼兩部分,所以要寫兩個相關(guān)的子函數(shù),此處深入講解函數(shù)的相關(guān)知識,如函數(shù)的調(diào)用、參數(shù)傳遞等。這部分是學(xué)生成績管理系統(tǒng)的核心功能,工作量較大。

在完成相關(guān)數(shù)據(jù)的存儲之后,發(fā)現(xiàn)關(guān)機之后數(shù)據(jù)就沒有了,通過回顧內(nèi)存與外存的區(qū)別,所以要把數(shù)據(jù)庫存儲在外存儲器上,這就要用到文件。建立若干個文件用來存儲管理員、教師和不同班級學(xué)生的記錄(可用二維數(shù)組或多維數(shù)組來區(qū)別系或班級等),通過對文件的讀寫來實現(xiàn)對數(shù)據(jù)庫數(shù)據(jù)的存取,基本達到學(xué)生成績管理系統(tǒng)的使用目標。

在這個過程中,除了必要的知識介紹外,重在培養(yǎng)學(xué)生的結(jié)構(gòu)化程序設(shè)計思維,理解C語言的幾大組成部分并熟練使用,同時養(yǎng)成設(shè)計代碼的規(guī)范性。

五、考核方式

全程采用案例教學(xué)就不適合出試卷進行考核,因此在考核方式上更適合過程化考核[5]。我們將考核內(nèi)容分成兩個部分,平時考核占60%(出勤占20%,平時訓(xùn)練占80%),最終考核占40%(小組考核占50%,個人考核占50%)。這樣可以弱化對知識點的考查,重在考查學(xué)生對程序的分析與設(shè)計的能力。

六、實踐教學(xué)

在實踐教學(xué)環(huán)節(jié)(課程設(shè)計[6])可以安排類似的管理系統(tǒng)供學(xué)生分析和設(shè)計,此時每組要求選擇不同的系統(tǒng)進行設(shè)計,每組獨立設(shè)計系統(tǒng)功能框圖、分工并實現(xiàn),從而鞏固并強化課堂所學(xué)的內(nèi)容。

七、第二課堂

第二課堂可以參加相關(guān)的學(xué)科競賽,如“ACM大學(xué)生程序設(shè)計競賽”、“藍橋杯全國軟件和信息技術(shù)專業(yè)人才大賽”等學(xué)科競賽,從而開闊學(xué)生的視野,加強學(xué)生的實際編程能力。當然,如果想?yún)⒓酉嚓P(guān)的學(xué)科競賽,還需要有一定的數(shù)據(jù)結(jié)構(gòu)知識和算法知識,這需要對學(xué)生進行相關(guān)的培訓(xùn)或由學(xué)生自學(xué)完成。這對于學(xué)生是一次很好的升華,學(xué)生獲得的相關(guān)學(xué)科競賽讀書對于將來的就業(yè)是一個很好的準備。

綜上,通過一個典型案例將C語言程序設(shè)計課程內(nèi)容有機地組織起來,將C語言教學(xué)內(nèi)容分成五大部分,使學(xué)生容易理解并形成一個較強的印象。在實驗室教學(xué),人手一機,邊講邊練,重在培養(yǎng)學(xué)生分析問題和設(shè)計程序的能力,培養(yǎng)學(xué)生的結(jié)構(gòu)化程序設(shè)計思維。

參考文獻

[1]蒲海波 興趣驅(qū)動的案例教學(xué)在C語言教學(xué)中的應(yīng)用[J]計算機光盤軟件與應(yīng)用 2013年第7期:192-193

[2]丁海燕 高級語言程序設(shè)計案例教學(xué)模式的探討[J]計算機教育2011年第8期: 65-68

[3]吳美紅 基于CDIO模式的案例教學(xué)在C語言程序設(shè)計中的應(yīng)用[J]電腦知識與技術(shù) 2013年第11期:2632-2633

[4]李偉光 提高C語言實際應(yīng)用能力的研究與實踐[J]煤炭技術(shù)2012年11期:242-243

[5]薛小鋒 案例教學(xué)在非計算機專業(yè)C語言程序設(shè)計教學(xué)中的應(yīng)用[J]江蘇技術(shù)師范學(xué)院學(xué)報2010年第4期:80-82

[6]波 模塊化案例教學(xué)在C語言程序設(shè)計課程中的應(yīng)用[J]計算機教育 2009年第21期:62-65

篇3

【關(guān)鍵詞】信息管理專業(yè);面向?qū)ο蟪绦蛟O(shè)計;教學(xué)改革

面向?qū)ο蟪绦蛟O(shè)計具有抽象、封裝、繼承與多態(tài)的特點,比傳統(tǒng)的結(jié)構(gòu)化程序設(shè)計具有更高的可重用性、易擴展性和易維護性,目前它已成為開發(fā)大中型應(yīng)用軟件的主流方法。從軟件產(chǎn)業(yè)發(fā)展角度來看,程序設(shè)計已經(jīng)從傳統(tǒng)的結(jié)構(gòu)化程序設(shè)計轉(zhuǎn)向面對對象的程序設(shè)計方法。因此為順應(yīng)市場需求,國內(nèi)各個高校的計算機、信息管理專業(yè)及其他相關(guān)專業(yè)都開設(shè)了面向?qū)ο蟪绦蛟O(shè)計課程,如Java、VB、VC。我校信息專業(yè)將《面向?qū)ο蟪绦蛟O(shè)計》確立為學(xué)生必修的專業(yè)基礎(chǔ)課程,旨在培養(yǎng)學(xué)生熟練掌握面向?qū)ο蟮某绦蛟O(shè)計思想和設(shè)計方法,應(yīng)用面向?qū)ο笏枷虢鉀Q信息分析處理、應(yīng)用系統(tǒng)開發(fā)等實際問題,具備較強的信息處理分析和軟件開發(fā)能力。面向?qū)ο蟪绦蛟O(shè)計雖作為軟件開發(fā)的常用語言,但它是把所學(xué)的專業(yè)知識轉(zhuǎn)化為應(yīng)用的橋梁,在應(yīng)用型人才培養(yǎng)過程中顯得尤為重要,所以,《面向?qū)ο蟪绦蛟O(shè)計》課程在整個信息專業(yè)教學(xué)體系中占據(jù)非常重要的地位。

隨著21世紀全球信息化進程的發(fā)展,教育肩負著培養(yǎng)民族創(chuàng)新精神和高素質(zhì)創(chuàng)新人才的歷史使命。為此,我專業(yè)對近年來《面向?qū)ο蟪绦蛟O(shè)計》課程教學(xué)情況進行了調(diào)研,分析教學(xué)過程中存在的問題,探討新的教學(xué)方案,培養(yǎng)創(chuàng)新型應(yīng)用人才,以提高學(xué)生素質(zhì)為宗旨,以培養(yǎng)創(chuàng)新精神和實踐能力成為課程教學(xué)改革的最終目標。

1 教學(xué)中存在的問題

一直以來,根據(jù)我校信息管理專業(yè)的人才培養(yǎng)方案,在學(xué)生大一時期先開設(shè)結(jié)構(gòu)化程序設(shè)計語言《C語言程序設(shè)計》,然后再開設(shè)《面向?qū)ο蟪绦蛟O(shè)計》(我校選擇Java語言),主要目的是想讓學(xué)生通過結(jié)構(gòu)化語言作為入門,構(gòu)建起一定的編程思想,為后續(xù)課程打下基礎(chǔ),進而學(xué)習(xí)更深的編程方法。但從以往的教學(xué)情況看,存在著以下幾個問題:

第一,學(xué)生先學(xué)習(xí)C語言程序設(shè)計,然后學(xué)習(xí)Java程序設(shè)計,存在著從結(jié)構(gòu)化程序設(shè)計到面向?qū)ο蟪绦蛟O(shè)計思想的轉(zhuǎn)變,而面向?qū)ο缶幊趟枷肱c面向過程編程思想差異較大,學(xué)生在學(xué)習(xí)上有一定的難度,因而學(xué)生感覺不易接受,導(dǎo)致不良的教學(xué)效果。

第二,由于學(xué)生在學(xué)習(xí)面向?qū)ο蟪绦蛟O(shè)計課程之前,都學(xué)習(xí)過C語言,對編程語言有了一定的了解,有很多學(xué)生在學(xué)習(xí)C語言的過程中已經(jīng)對程序設(shè)計類課程開始望而卻步了,甚至對編程類課程采取放棄的態(tài)度,他們覺得“C語言都沒有學(xué)好,Java肯學(xué)也學(xué)不好了”,導(dǎo)致對編程失去興趣和學(xué)習(xí)的信心,因此產(chǎn)生了消極抵觸的情緒,這種心態(tài)嚴重影響著這門課程的教學(xué)效果。

第三,面向?qū)ο蟪绦蛟O(shè)計語言所涉及的概念多、語法結(jié)構(gòu)復(fù)雜,學(xué)生在學(xué)習(xí)的開始階段往往出現(xiàn)不能理解掌握面向?qū)ο蟮幕舅枷耄珙?、對象及通過類調(diào)用方法等設(shè)計思想,使得學(xué)生常常感到茫然,缺乏學(xué)習(xí)興趣,教學(xué)效果差,學(xué)生的程序設(shè)計能力較低。

第四,在教學(xué)過程中存在“重語言輕思想”現(xiàn)象?!耙哉Z法知識為主線,按照教材章節(jié)講解語法知識”來安排教學(xué)內(nèi)容,往往忽視了培養(yǎng)學(xué)生面向?qū)ο蟪绦蛟O(shè)計的思想,導(dǎo)致學(xué)生認為是又學(xué)習(xí)一門編程語言。并且語法的內(nèi)容也增加了學(xué)生學(xué)習(xí)的枯燥,而且對于基本結(jié)構(gòu)等知識顯得重復(fù)了。

第五,教學(xué)內(nèi)容零散,缺乏系統(tǒng)觀念。老師在授課時一般側(cè)重于零碎知識的教學(xué),沒能把知識連貫成為一個整體“只見樹木不見森林”。學(xué)生只學(xué)到了零散的語法知識,基本上是圍繞著對基本語法的理解來解決一些簡單的問題,而不能系統(tǒng)地運用這些語法練習(xí)開發(fā)具有一定復(fù)雜程度的系統(tǒng)。同時由于教學(xué)中用到的實例程序與實際工程應(yīng)用聯(lián)系不夠緊密,整個教學(xué)缺乏整體性和實用性,導(dǎo)致學(xué)生綜合應(yīng)用能力比較差,使得學(xué)生在學(xué)習(xí)過程中不能很好地將所學(xué)到的知識融于到實際工作中。

2 教學(xué)改革實踐

面對學(xué)生出現(xiàn)的“學(xué)會但不會用”尷尬狀況,如何讓學(xué)生在學(xué)習(xí)完面向?qū)ο蟪绦蛟O(shè)計課程后能充分掌握面向?qū)ο蟮脑O(shè)計思想和方法,并能真正滿足社會工作崗位的需求,是我們迫切要解決的問題。為此,我們的教學(xué)要不斷探索新的方法,以培養(yǎng)“應(yīng)用型人才”為目標,提出一些建設(shè)性的改革措施:

2.1 適應(yīng)社會市場需求,整合教學(xué)內(nèi)容體系

目前,程序設(shè)計已經(jīng)從傳統(tǒng)的結(jié)構(gòu)化程序設(shè)計轉(zhuǎn)向面對對象的程序設(shè)計,在實際工作崗位中很少設(shè)計結(jié)構(gòu)化的編程。因此,為了適應(yīng)社會市場需求,并根據(jù)學(xué)生實際學(xué)習(xí)的情況,整合教學(xué)內(nèi)容體系??紤]取消開設(shè)結(jié)構(gòu)化程序語言課程,直接進入面向?qū)ο蟪绦蛟O(shè)計的思想,并增加面向?qū)ο蟪绦蛟O(shè)計課程的學(xué)時,讓學(xué)生能夠構(gòu)建一個完整的面向?qū)ο蟪绦蛟O(shè)計思想的體系結(jié)構(gòu)。

2.2 以案例導(dǎo)入知識點,講解教學(xué)內(nèi)容

在教學(xué)過程中以一個案例為主線來展開,把相關(guān)的知識點融入案例的各個環(huán)節(jié)中去,層層推進,直至得到一個完整的解決方案,從而達到學(xué)習(xí)知識、培養(yǎng)能力的目的。把實際的案例分解成若干個簡單的任務(wù),貫穿在課堂中講解,從而讓學(xué)生在實際的案例中學(xué)習(xí)Java語言知識。學(xué)生通過案例研究,培養(yǎng)一種獨立分析和處理問題的能力,這樣不但克服了傳統(tǒng)教學(xué)方式“傳遞――接受”存在的問題,而且還能增強學(xué)生的自信心,提高學(xué)習(xí)的效率,發(fā)展學(xué)生創(chuàng)造性思維,以培養(yǎng)其解決實際問題的能力。

2.3 采用任務(wù)驅(qū)動的教學(xué)方法

以任務(wù)引路,學(xué)生邊學(xué)邊練,教師與學(xué)生互動,教與學(xué)雙方共同參與,學(xué)生自主完成學(xué)習(xí)任務(wù)的教學(xué)活動。在授課過程中,教師在講解每個知識點前,先提出相關(guān)內(nèi)容任務(wù),并且以現(xiàn)實生活中常見的例子,這樣可以讓學(xué)生有著直觀感受,帶著疑問聽課,激發(fā)學(xué)生學(xué)習(xí)的興趣。

2.4 加強實踐教學(xué),提高學(xué)生的綜合運用能力

Java程序設(shè)計是一門實踐性非常強的課程。畢業(yè)學(xué)生的親身經(jīng)歷使我們認識到,如果只是一味地抱著課本看,不親手編寫程序,不用它解決實際問題,永遠都學(xué)不會編程。綜合運用所學(xué)知識設(shè)計開發(fā)有一定復(fù)雜程度的與實際聯(lián)系緊密的系統(tǒng),根據(jù)任務(wù)模塊對學(xué)生分組,讓學(xué)生在整個過程中,能夠提高自己團隊合作精神、對知識的綜合運用能力及項目經(jīng)驗。

2.5 開展情景模擬

開展情景模擬,虛擬項目管理是引導(dǎo)學(xué)生培養(yǎng)其綜合實踐能力的舉措,它為學(xué)生充分展示自己的創(chuàng)造性和聰明才智提供了機會和環(huán)境。組織學(xué)生以小組為單位,采用工作組的形式,讓他們身臨其境,扮演不同的角色,設(shè)身處地去當一個軟件工程師,把自己置身于一個實際項目中。這樣既可以增加學(xué)生對軟件開發(fā)項目的感性認識和興趣,又提高了他們的管理者才能。同時通過軟件開發(fā)的實踐,積累經(jīng)驗以提高分析和解決問題的能力,并激發(fā)學(xué)生實踐的積極性與創(chuàng)造性,開拓思路,進行新創(chuàng)意,培養(yǎng)創(chuàng)造性的工程設(shè)計能力,并且促進綜合素質(zhì)的提高。

總之,順應(yīng)信息專業(yè)的發(fā)展要求及市場需求,我們正努力抓住課程特點,明確教學(xué)目標,不斷改進和提高教學(xué)方法,通過多種途徑培養(yǎng)學(xué)生學(xué)習(xí)的主動性、動手能力、應(yīng)用能力和創(chuàng)新能力,實現(xiàn)真正意義上的“應(yīng)用為本,學(xué)以致用”。

【參考文獻】

[1]丁智國,錢婕.面向?qū)ο蟪绦蛟O(shè)計課程教學(xué)改革[J].計算機教育,2011(9):9-11.

[2]黃素萍.面向?qū)ο蟪绦蛟O(shè)計教學(xué)改革模式研究[J].教育教學(xué)論壇,2013(2):264-265.

篇4

關(guān)鍵詞 高職教育 C語言 結(jié)構(gòu)化編程 互聯(lián)網(wǎng)

如何提高高職計算機類專業(yè)學(xué)生非圖形模式下的結(jié)構(gòu)化編程能力,是高職計算機教育中的一個普遍問題。作者通過三年的努力,對“C語言程序設(shè)計”課程在教學(xué)內(nèi)容、教材建設(shè)、實訓(xùn)設(shè)計、網(wǎng)站建設(shè)和考核方式等諸多方面,進行了大膽的改革和探索,將電子教材、電子教案、學(xué)習(xí)論壇、編程工具、學(xué)習(xí)資料等,整合成為學(xué)習(xí)網(wǎng)站,在教學(xué)過程中通過論壇程序不同版本,實施案例驅(qū)動,課后通過QQ群進行輔導(dǎo)答疑,通過論壇、電子郵件進行作業(yè)提交批改,建立了基于案例驅(qū)動的結(jié)構(gòu)化編程教學(xué)模式。本文具體論述了基于案例驅(qū)動的高職C語言結(jié)構(gòu)化編程教學(xué)的過程和方法。

1 教學(xué)內(nèi)容

在課程設(shè)計上,針對高職計算機專業(yè)學(xué)制短,技能要求高的特點,提出了“一條線兩階段,三結(jié)構(gòu)四循環(huán)”的教學(xué)模式。

“一條線”是指在一年級的編程教學(xué)課中,貫徹C語言一條線。曾經(jīng)有一種觀點,認為高職計算機專業(yè)的編程語言教學(xué),直接從面向?qū)ο笳Z言開始學(xué)習(xí),可以節(jié)約時間。但是,70%的企業(yè)依然要求學(xué)生具備面向過程的結(jié)構(gòu)化編程能力??紤]到企業(yè)的需求,結(jié)合后續(xù)的課程安排,我們決定在一年級的課程安排上,貫徹C語言“一條線”,即在第一學(xué)期,開設(shè)“程序設(shè)計基礎(chǔ)”,第二學(xué)期,開設(shè)面向過程的“C語言程序設(shè)計”。

“兩階段’指課程安排分為“程序設(shè)計基礎(chǔ)”和“C語言程序設(shè)計”兩個階段?!俺绦蛟O(shè)計基礎(chǔ)”解決程序的基本結(jié)構(gòu),重點在建立學(xué)生的結(jié)構(gòu)化程序的基本框架和概念;以C語言為基本語言,使學(xué)生能有實際操作的平臺,但準確把握“把C語言作為偽語言”的原則,不讓學(xué)生陷入C語言多變的泥淖,而把注意力放在結(jié)構(gòu)化程序的基本結(jié)構(gòu)上?!癈語言程序設(shè)計”放在解決C語言的使用上,把握“C語言”是編程工具而不是研究對象的原則,根據(jù)企業(yè)的編程規(guī)范,對“C語言”進行簡化,重點是如何使用C語言解決一般復(fù)雜程度的結(jié)構(gòu)化編程問題。

“三結(jié)構(gòu)”是指在一年的學(xué)習(xí)中,學(xué)生要學(xué)習(xí)三個成績管理軟件的編程,分別是基于一維數(shù)組、二維數(shù)組和動態(tài)結(jié)構(gòu)數(shù)組。從企業(yè)實際應(yīng)用來看,動態(tài)空間的使用,可以用動態(tài)數(shù)組解決。因此我們?nèi)サ袅随湵恚攸c是讓學(xué)生寫出有工程實際意義的結(jié)構(gòu)化程序。

“四循環(huán)”是指編寫基于“三結(jié)構(gòu)”的每一個成績管理軟件過程中,教師四個以上的程序版本,引導(dǎo)學(xué)生改寫、增加函數(shù),讓學(xué)生直觀地看到軟件的功能是如何一步一步構(gòu)建起來的。

結(jié)構(gòu)化程序設(shè)計的教學(xué)中,如何讓學(xué)生建立起結(jié)構(gòu)化程序的框架是很困難的。一個簡單的成績管理軟件,代碼就超過300行。對初學(xué)者來說,看懂超過100行的程序就需要很長時間,學(xué)生又如何能在短短的課堂時間里通過增加/改寫函數(shù)來增加功能呢?這也就是很多學(xué)生學(xué)完了C語言程序設(shè)計,依然不能編寫一個簡單的應(yīng)用程序的主要原因。我們發(fā)現(xiàn)通過論壇程序版本,利用工具軟件BeyondCompare,比較不同的程序版本之間的差異,可以讓學(xué)生直觀地看到軟件的功能是如何一步一步構(gòu)建起來的,如圖1所示。程序的第一個版本,就是一個主函數(shù),不超過10行,只顯示程序的幾項功能菜單,學(xué)生很容易理解,然后通過第二個、第三個版本,每一個版本實現(xiàn)或改進一個菜單的功能,直到最后版本。

通過圖1,我們可以看到程序功能的增加是由哪些代碼實現(xiàn)的,而通過不斷反復(fù)的比較,學(xué)生就可以掌握結(jié)構(gòu)化程序設(shè)計的過程和方法。

在教學(xué)過程中,通過比較版本,讓學(xué)生直觀地看到復(fù)雜的程序功能是如何由簡單的函數(shù)一個一個構(gòu)成的。學(xué)生經(jīng)過“程序設(shè)計基礎(chǔ)”的課程設(shè)計,基本掌握主函數(shù)與模塊函數(shù)的作用和相互關(guān)系,可以看懂超過100行的C語言源程序,理解基于一維數(shù)組的成績管理系統(tǒng);在“C語言程序設(shè)計”的課程設(shè)計中,學(xué)生對主函數(shù)與模塊函數(shù)的理解更加深入,可以看懂超過300行的C語言源程序,理解基于動態(tài)結(jié)構(gòu)數(shù)組的成績管理系統(tǒng),掌握主函數(shù)的設(shè)計方法,并按照規(guī)范的格式寫出自己的函數(shù)?;叵肴昵?,因為沒有采用這種方法,只要是超過20行的程序,學(xué)生就普遍反映看不懂。由此可見,采用新的方法后,學(xué)生編程能力的提高十分明顯。

2 教材建設(shè)

2004年9月清華大學(xué)出版社出版了作者主編的21世紀高職高專規(guī)劃教材《程序設(shè)計基礎(chǔ)》,教材主要在三個方面進行了改革。

(1)強調(diào)把生活中的問題轉(zhuǎn)化為程序的能力,使學(xué)生真正能夠編寫實用的程序

在教材編寫思想上,重點放在培養(yǎng)學(xué)生把生活中的問題轉(zhuǎn)變成為程序并進行處理的能力,強調(diào)轉(zhuǎn)變講授思路,推行引導(dǎo)學(xué)生首先想清楚“我要做什么?”,然后才教給學(xué)生“如何做”,最后上機進行驗證的三步教學(xué)法。

在教材的編寫風(fēng)格上,對全書所有的例題進行了通盤的考慮,在循環(huán)、數(shù)組、函數(shù)和結(jié)構(gòu)化設(shè)計等單元,所有的例子都有前后的聯(lián)系,強調(diào)內(nèi)容的前后銜接,特別注意工程規(guī)范的引入,在變量的命名、程序格式方面,均按工程要求進行。在案例選擇上,全部采用工程實際和實際生活中的案例。

(2)提出了以“三大區(qū)域”為特色的c程序的基本框架

通過把一個基本的C程序從上到下分成預(yù)處理區(qū)、變量聲明區(qū)、執(zhí)行語句區(qū)“三大區(qū)域”為特色的C程序的基本框架,讓學(xué)生樹立正確的程序格式與規(guī)范?!叭髤^(qū)域”概念的提出,明確規(guī)定了程序的基本框架,讓學(xué)生從一開始就按固定的格式進行編程,養(yǎng)成良好的編程習(xí)慣。

(3)提出了使用函數(shù)的“三大步九要素”的基本方法,建立使用函數(shù)的清晰框架

我們提出的使用函數(shù)的“三大步九要素”的基本方法,在教學(xué)中取得了很好的效果。

所謂“三大步”,是指我們在使用自定義的函數(shù)時,對函數(shù)進行聲明、定義和調(diào)用。三大步按順序進行。

所謂“九要素”,是分別指函數(shù)聲明、定義、調(diào)用各有三要素共九點:函數(shù)聲明的三要素:返回值的類型、函數(shù)的名字、形式參數(shù)。函數(shù)定義的三要素:形式參數(shù)、功能、返回值。函數(shù)調(diào)用的三要素:名字、實際參數(shù)、返回值。通過對“九要素”的理解掌握,學(xué)生能夠建立起使用函數(shù)的清晰框架。

3 實訓(xùn)設(shè)計

對高職學(xué)小的技能培養(yǎng),實訓(xùn)是很重要的環(huán)節(jié)。我們采用了項目驅(qū)動的思想來設(shè)計實訓(xùn)項目,每一單元的實訓(xùn),都是構(gòu)成最終程序的不同版本,在“程序設(shè)計基礎(chǔ)”頭程序版本8個,“C語言程序設(shè)計”共程序版本10個,構(gòu)成了實用的軟件框架,學(xué)生相當于參與了一個中等復(fù)雜程度的軟件開發(fā),積累了經(jīng)驗。在今后的實際工作中,完全可以以此為模板,進行結(jié)構(gòu)化程序的開發(fā)。

4 網(wǎng)站建設(shè)

利用互聯(lián)網(wǎng)技術(shù),建立基于互聯(lián)網(wǎng)的學(xué)習(xí)資源。2003年建立了“光華之窗”教學(xué)網(wǎng)站,在網(wǎng)站平臺上,將電子教材、電子教案、學(xué)習(xí)論壇,編程工具、學(xué)習(xí)資料等,整合成為學(xué)習(xí)網(wǎng)站,設(shè)計了“程序設(shè)計基礎(chǔ)”、“C語言程序設(shè)計”教學(xué)論壇,兩年來積累了完整的教學(xué)過程資料??梢哉f,網(wǎng)站的建設(shè)和運行,為課程的質(zhì)量提供了保證,避免了“課隨老師走”的問題。

5 考核方式

篇5

2、線性表的定義:線性表的順序存儲結(jié)構(gòu)及其插入與刪除運算。棧和隊列的定義;棧和隊列的順序存儲結(jié)構(gòu)及其基本運算。線性單鏈表、雙向鏈表與循環(huán)鏈表的結(jié)構(gòu)及其基本運算。

3、樹的基本概念:二叉樹的定義及其存儲結(jié)構(gòu);二叉樹的前序、中序和后序遍歷。順序查找與二分法查找算法;基本排序算法(交換類排序,選擇類排序,插入類排序)。

4、程序設(shè)計基礎(chǔ):程序設(shè)計方法與風(fēng)格。結(jié)構(gòu)化程序設(shè)計。面向?qū)ο蟮某绦蛟O(shè)計方法,對象,方法,屬性及繼承與多態(tài)性。

5、軟件工程基礎(chǔ):軟件工程基本概念,軟件生命周期概念,軟件工具與軟件開發(fā)環(huán)境。結(jié)構(gòu)化分析方法,數(shù)據(jù)流圖,數(shù)據(jù)字典,軟件需求規(guī)格說明書。結(jié)構(gòu)化設(shè)計方法,總體設(shè)計與詳細設(shè)計。

6、軟件測試的方法:白盒測試與黑盒測試,測試用例設(shè)計,軟件測試的實施,單元測試、集成測試和系統(tǒng)測試。程序的調(diào)試,靜態(tài)調(diào)試與報考調(diào)試。

7、數(shù)據(jù)庫設(shè)計基礎(chǔ):數(shù)據(jù)庫的基本概念:數(shù)據(jù)庫,數(shù)據(jù)庫管理系統(tǒng),數(shù)據(jù)庫系統(tǒng)。數(shù)據(jù)模型,實體聯(lián)系模型及 E-R 圖,從 E-R 圖導(dǎo)出關(guān)系數(shù)據(jù)模型。

篇6

計算機二級公共基礎(chǔ)知識考試大綱基本要求:

1、掌握算法的基本概念。

2、掌握基本數(shù)據(jù)結(jié)構(gòu)及其操作。

3、掌握基本排序和查找算法。

4、掌握逐步求精的結(jié)構(gòu)化程序設(shè)計方法。

5、掌握軟件工程的基本方法,具有初步應(yīng)用相關(guān)技術(shù)進行軟件開發(fā)的能力。

篇7

關(guān)鍵詞:循環(huán)結(jié)構(gòu);C語言程序設(shè)計;非計算機專業(yè)

中圖分類號: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

大學(xué)計算機應(yīng)用基礎(chǔ)作為一門課程大約于20世紀90年代中期開設(shè),現(xiàn)在已成為大學(xué)里的計算機學(xué)習(xí)基礎(chǔ)課程,是所有非計算機專業(yè)大一新生的必修公共基礎(chǔ)課,也是培養(yǎng)學(xué)生基本素質(zhì)的一門重要課程[1]。作為大學(xué)計算機應(yīng)用基礎(chǔ)課程,理工類專業(yè)大部分會開設(shè)程序設(shè)計課程,有部分專業(yè)會開設(shè)C程序設(shè)計課程。C語言是一種語法靈活、適用范圍廣的高級程序設(shè)計語言。結(jié)構(gòu)化程序設(shè)計方法有三種基本結(jié)構(gòu):順序結(jié)構(gòu)、分支結(jié)構(gòu)和循環(huán)結(jié)構(gòu)。順序結(jié)構(gòu)和分支結(jié)構(gòu)比較簡單,循環(huán)結(jié)構(gòu)從教學(xué)上來說是重點也是難點。本文主要對C語言循環(huán)結(jié)構(gòu)教學(xué)進行探討。

1教學(xué)內(nèi)容的分析

C語言循環(huán)結(jié)構(gòu)編程主要涉及到三種循環(huán)結(jié)構(gòu)語句while、do-while和for。本文作者認為非計算機專業(yè)開設(shè)這門課程,主要是講解程序設(shè)計的方法,培養(yǎng)學(xué)生的編程能力和思維能力,因此,在教學(xué)中上述的三種語句可以以while語句為重點,講解循環(huán)結(jié)構(gòu)編程的思想,do-while和for語句可以簡單舉例說明它們的流程。在講解循環(huán)結(jié)構(gòu)編程分析時,可以以流程圖或者用自然語言逐步描述操作步驟的形式,指出循環(huán)結(jié)構(gòu)編程關(guān)鍵是找到在什么情況下需要反復(fù)執(zhí)行某些操作,并找到這些反復(fù)執(zhí)行的操作是什么。

2教學(xué)用例的分析

在課程教學(xué)過程中,需要用一些例子來配合講解循環(huán)結(jié)構(gòu)的編程。在教學(xué)時,選取一些比較合適的例子,可以很好地幫助學(xué)生理解所教授的內(nèi)容。教師在教學(xué)過程中除了要加強課堂啟發(fā)外,盡可能結(jié)合課程自身的特點,注重學(xué)生現(xiàn)場演練,并采用任務(wù)驅(qū)動、師生互動、鼓勵學(xué)生等教學(xué)手段來提高其學(xué)習(xí)的主動性和積極性[2]。

2.1導(dǎo)入的例子

在教學(xué)活動中,講授后面知識內(nèi)容時要與前面知識相互呼應(yīng)[3],因此,在上課時,可以以這樣的問題開始,例題1:用戶輸入正整數(shù)n值的大小后,要求計算1+2+3+…+n,將所得出的結(jié)果輸出。這個例題主要是復(fù)習(xí)前面的內(nèi)容,復(fù)習(xí)輸入、輸出函數(shù)和分支結(jié)構(gòu)的編程。該問題提出后,可以讓同學(xué)們思考一下,然后再進行提問,提問時可以讓學(xué)生說出編程思路,若課堂時間比較多也可以請學(xué)生直接編寫源代碼并運行。

提問時,有的同學(xué)可能給出如下的順序結(jié)構(gòu)編程的解答:

步驟1:輸入整數(shù)n

步驟2:求s=(1+n)*n/2

步驟3:輸出s

while (j

{輸出i*j

j++;}

由此,得出在循環(huán)while (i

循環(huán)結(jié)構(gòu)是結(jié)構(gòu)化程序設(shè)計的一種重要結(jié)構(gòu),在教學(xué)中不僅需要學(xué)生掌握這種結(jié)構(gòu)的語法,更重要的是培養(yǎng)學(xué)生的設(shè)計思維和思考方法,本文主要是從教學(xué)的角度,對循環(huán)結(jié)構(gòu)的整個教學(xué)過程設(shè)計了5個教學(xué)用例,并對其進行展開分析,重點是讓學(xué)生掌握循環(huán)結(jié)構(gòu)編程的思想,實際上就是在問題分析過程中找循環(huán)條件和循環(huán)操作,在實際教學(xué)中取得了較好的效果。

[1]何文海,吳明珠,謝劍剛.情商與智商相結(jié)合的教學(xué)模式[J].現(xiàn)代計算機,2007(8):73-75.

[2]郭?;?陳允芳,王健.非計算機專業(yè)中“VB程序設(shè)計”教學(xué)方法初探[J].計算機教育,2009(18):98-100.

篇8

關(guān)鍵詞:C語言;結(jié)構(gòu)化程序設(shè)計;循環(huán)結(jié)構(gòu)

中圖分類號:TP

文獻標識碼:A

文章編號:1672-3198(2010)13-0329-02

1 for循環(huán)語句的應(yīng)用規(guī)則

C語言中的for循環(huán)語句使用非常靈活,不僅可以用于循環(huán)次數(shù)已經(jīng)確定的情況,而且可以用于循環(huán)次數(shù)不確定而只給出循環(huán)結(jié)束條件的情況,它完全可以代替while語句。

1.1 for循環(huán)語句的格式

for(表達式1;表達式2;表達式3)語句;

這里邊的“語句”就是循環(huán)體語句,若其中只有一條語句,可以不用花括號,若多于一條,則必須用花括號將這些循環(huán)體語句括起來。

1.2 for循環(huán)語句的執(zhí)行過程

(1)先操作表達式1;

(2)操作表達式2,若其值為真(值為非0),則執(zhí)行for語句中的循環(huán)體語句一次,然后執(zhí)行下面第三步,若為假(值為0),則結(jié)束循環(huán),轉(zhuǎn)到第5步;

(3)操作表達式3;

(4)轉(zhuǎn)回上面第2步驟繼續(xù)執(zhí)行;

(5)結(jié)束循環(huán),執(zhí)行for語句下面的語句。

一定要搞清楚這三個表達式的執(zhí)行次序!且要注意表達式1只執(zhí)行一次!

通常,表達式1用來為循環(huán)變量賦初值,表達式2用來設(shè)置執(zhí)行循環(huán)的條件,表達式3用來改變循環(huán)變量的值。所以for語句的格式也可以這樣描述:

for(循環(huán)變量賦初值;循環(huán)條件;循環(huán)變量增值)語句;

2 fo與while語句的編程對比

通過結(jié)合例子,如求sum=1+2+3+…+100的和,來分別看一下for和while語句的編程效果。

首先用for循環(huán)語句來編程實現(xiàn)

main()

{

int i,sum=0;/*定義變量i,sum為基本整型,且為sum賦初值0*/

for(i=1;i

printf(“sum=%d”,sum); /*退出循環(huán)后的語句,即輸出sum的值*/

}

再用while語句進行編程實現(xiàn)

main()

{

int i=1,sum=0; /*定義變量i,sum為基本整型,且為它們分別賦初值1和0*/

while(i

{

sum=sum+i; /*將變量i與其前各項之和累加*/

i++; /*循環(huán)變量增加1*/

} /*循環(huán)體多于一個語句時要用花括號括起來*/

printf(“sum=%d”,sum); /*退出循環(huán),輸出sum的值*/

}

對比以上程序,顯然我們發(fā)現(xiàn),用for語句在編程語句上更簡單、方便,編程效率更高。而while語句在編程過程中,要書寫更多的語句。

3 for語句的深入應(yīng)用

(1)for語句一般形式中的表達式1可以省略,此時應(yīng)在for語句之前給循環(huán)變量賦初值。注意省略表達式1時,其后的分號不能省略。如for(;i

(2)表達式2也可以省略,即沒有判斷循環(huán)的條件,此時編譯系統(tǒng)將循環(huán)條件默認為真,循環(huán)將無終止地循環(huán)下去,這種情況可以在循環(huán)體中設(shè)置條件控制循環(huán)。

例如:for(i=1;;i++)sum=sum+i;為死循環(huán)語句,若使其實現(xiàn)1+2+3+…+100后結(jié)束循環(huán),則可以在循環(huán)體中加上控制條件:

for(i=1;;i++){if(i>100)break;sum=sum+i;}

(3)表達式3也可以省略,即沒有設(shè)置用來改變循環(huán)變量的語句,循環(huán)將無終止地循環(huán)執(zhí)行下去,但此時程序設(shè)計者可以在循環(huán)體中加上用來改變循環(huán)變量的語句。如:

for(i=1;i

{sum=sum+i;

i++;/*循環(huán)變量增加1,改變循環(huán)變量的值*/

}

另外表達式3不一定都要寫成如i++這樣的形式,要根據(jù)循環(huán)變量的實際變化規(guī)律而定,如可以寫成這樣的形式:i=i+2或i=i*3…。

(4)可以省略表達式1和表達式3,只有表達式2即只給循環(huán)條件。此時可以在程序的適當位置對循環(huán)變量賦初值和改變循環(huán)變量的值。如:

int i=1,sum=0; /*定義變量i,sum為基本整型,且為它們分別賦初值1和0*/

for(;i

sum=sum+i++; /*改變循環(huán)變量的值*/

(5)三個表達式都可以省略。

如:for(;;)語句;

即不設(shè)初值,沒有判斷條件(認為表達式2為真值),循環(huán)變量不增值,將無終止的執(zhí)行循環(huán)體。在實際應(yīng)用中程序設(shè)計者可以將這三個內(nèi)容分寫在程序的適當位置。

如:

main()

{

int i=1,sum=0; /*定義變量賦初值1和0*/

for(;;)

{if(i>100);{sum=sum+i++;}}/*為循環(huán)設(shè)置控制條件,改變循環(huán)變量的值*/

printf(“sum=%d”,sum);

}

(6)表達式1也可以是設(shè)置循環(huán)變量初值的賦值表達式,也可以是與循環(huán)變量無關(guān)的其他表達式.且可以有多個,此時用逗號將其分隔開,如:

for(i=1,sum=0;i

{

sum=sum+i;

}

(7)當循環(huán)的次數(shù)不確定時,表達式2即控制循環(huán)的條件語句,其判斷對象就不能是循環(huán)變量了。如:

已知s=1+2+3+…+n,求滿足s>=1000的最小n值。

這個程序的循環(huán)執(zhí)行的條件為“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);

}

上面這個程序循環(huán)的次數(shù)在編寫程序時不能確定,遇到這種情況人們首先想到的是用while語句來實現(xiàn)循環(huán),以為for語句無法實現(xiàn),其實這是一種誤解。在BASIC語言中for循環(huán)只能用在循環(huán)次數(shù)確定的循環(huán)當中,而C語言中for語句格式卻有其特殊性,而應(yīng)用更具靈活性。

參考文獻

篇9

關(guān)鍵詞:循環(huán)控制,goto語句,while語句,do…while語句,for語句

 

1、引言

循環(huán)結(jié)構(gòu)式結(jié)構(gòu)化程序設(shè)計的三種基本結(jié)構(gòu)之一。在要求多次重復(fù)執(zhí)行時,循環(huán)結(jié)構(gòu)會使程序簡單高效,具有很大的優(yōu)越性,因此應(yīng)用相當廣泛。。日常生活中,很多問題都要用到循環(huán)控制,如輸入全校學(xué)生成績, 求若干個數(shù)據(jù)的和, 求階乘,這些都是重復(fù)處理的問題。。循環(huán)就是重復(fù),可以解決這類問題。

2、循環(huán)控制

2.1、循環(huán)結(jié)構(gòu)

循環(huán)結(jié)構(gòu), 又稱重復(fù)結(jié)構(gòu), 即反復(fù)執(zhí)行某一部分的操作。循環(huán)結(jié)構(gòu)是結(jié)構(gòu)化程序設(shè)計的三種基本結(jié)構(gòu)之一。在C語言中, 主要有以下四種循環(huán)語句:用goto語句構(gòu)成循環(huán)、用while語句實現(xiàn)循環(huán)、用do…while語句實現(xiàn)循環(huán)、用for語句實現(xiàn)循環(huán)。這四種語句都可以完成循環(huán)結(jié)構(gòu)的功能,但是在語法、程序流程上又有各自的特點。(以下程序均以求為例)

2.2、goto語句以及用goto語句構(gòu)成循環(huán)

goto語句為無條件轉(zhuǎn)向語句,它的一般形式為:

goto 語句標號;

語句標號用標識符表示,它是由字母、數(shù)字、和下劃線組成,其第一個字符必須為字母或下劃線,不能用整數(shù)來作標號。例如:

goto part_1;

是合法的,而

goto 111;

卻是不合法的。

由于濫用goto語句容易使程序流程無規(guī)律、可讀性差,所以主張限制使用它,但是也不絕對禁止。goto語句一般與if語句一起構(gòu)成循環(huán)語句。例如:

#include<stdio.h>

void main()

{

int i,sum=0;

i=1;

loop:if(i<=100)

{

sum=sum+i;

i++;

goto loop;

}

printf(“%d ”,sum);

}

運行結(jié)果為:5050

2.3、用while語句構(gòu)成循環(huán)

while語句用來實現(xiàn)“當型”循環(huán)結(jié)構(gòu),一般形式如下:

while(表達式) 語句

當表達式為非0值時,執(zhí)行while語句中的內(nèi)嵌語句。例如:

#include<stdio.h>

void main()

{

int i,sum=0;

i=1;

while(i<=100)

{

sum=sum+i;

i++;

}

printf(“%d ”,sum);

}

需要注意的是:

(1)如果循環(huán)體包含了一個以上的語句,應(yīng)用花括號括起來,以復(fù)合語句的形式出現(xiàn)。如果不加花括號,那么while語句的范圍只能到while后第一個分號處。

(2)循環(huán)體中應(yīng)該有能使循環(huán)語句結(jié)束的語句,否則會造成死循環(huán)。

2.4、用do…while語句實現(xiàn)循環(huán)

do…while語句,要先執(zhí)行循環(huán)體,再判斷循環(huán)條件是否成立。其一般形式為:

do

循環(huán)體語句

while(表達式);

具體是這樣執(zhí)行的:先執(zhí)行一次指定的循環(huán)體語句,然后判別表達式,當表達式的值為“真”(即非0)時,返回重新執(zhí)行循環(huán)體語句,如此反復(fù),直到表達式的值等于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語句實現(xiàn)循環(huán)

for語句的一般形式為:

for(表達式1;表達式2;表達式3) 語句

其最簡單的理解形式如下:

for(循環(huán)變量賦初值;循環(huán)條件;循環(huán)變量增值) 語句

例如:

for(i=1;i<=100;i++) sum=sum+i;

需要說明的是:

(1) for語句的一般形式中“表達式1”可以省略,但是其后面的分號不能省略。這時應(yīng)在for語句之前給循環(huán)變量賦初值。

(2) 若表達式2省略,則不判斷循環(huán)條件,循環(huán)會無終止地進行下去,即認為表達式2始終為真。

(3) 表達式3也可省略,但這時程序設(shè)計者應(yīng)另外設(shè)法保證循環(huán)能正常結(jié)束。

(4) 可省略表達式1和表達式3,只有表達式2,即只給循環(huán)條件。

(5) 三個表達式都可省略,此時無終止地執(zhí)行循環(huán)體。

(6) 表達式1可以是設(shè)置循環(huán)變量初值的賦值表達式,也可以是與循環(huán)變量無關(guān)的其他表達式。

(7) 表達式一般是關(guān)系表達式或邏輯表達式,也可以是數(shù)值或字符表達式,只要其值為非0,就執(zhí)行循環(huán)體。

由此可見,for循環(huán)語句的使用方法最為靈活。

2.6、四種循環(huán)的比較

(1)除goto語句不主張使用外,其他三種語句一般情況下可以互相替換,處理同一問題。。

(2)在while和do…while語句中,因為只能在while后的括號內(nèi)指定循環(huán)條件,所以循環(huán)體中應(yīng)當包含能使循環(huán)趨向結(jié)束的語句。

(3)for語句可以在表達式1中實現(xiàn)循環(huán)變量的初始化,而while和do…while語句應(yīng)在while和do…while語句之前完成循環(huán)變量的初始化。

(4)除goto語句和if語句構(gòu)成的循環(huán)外,其他三種語句都可以用break語句跳出循環(huán),用continue語句結(jié)束本次循環(huán)。

3、結(jié)束語

循環(huán)結(jié)構(gòu)和順序結(jié)構(gòu)、選擇結(jié)構(gòu)共同作為各種復(fù)雜程序的基本構(gòu)造單元,在程序設(shè)計中占有重要地位。只有認真分析總結(jié),才能熟練掌握循環(huán)結(jié)構(gòu)的概念和使用,提高編程效率和質(zhì)量。

參考文獻:

[1]譚浩強.C程序設(shè)計.北京:清華大學(xué)出版社,2005.

[2]C編寫組.常用C語言用法速查手冊.北京:龍門書局,1995.

篇10

論文摘要:信息資源的價值越來越高,建設(shè)以數(shù)據(jù)庫為中心的管理信息系統(tǒng),對提高金融管理水平和生活質(zhì)量具有重要的意義,本文以具體實例闡述了面向?qū)ο蟪绦蛟O(shè)計方法的特點,并分析其優(yōu)點和不足的地方,以便于在經(jīng)濟工作中運用面向?qū)ο筌浖_發(fā)實踐方法具體設(shè)計相關(guān)管理信息系統(tǒng)。

1前言

隨著我國經(jīng)濟信息化工作的不斷發(fā)展提升,對金融工作者的計算機應(yīng)用知識要求越來越高,有些企業(yè)的信息系統(tǒng)正面臨從傳統(tǒng)的核算軟件向管理決策性的大型管理軟件的再開發(fā)。當前我國企業(yè)經(jīng)濟發(fā)展對管理信息系統(tǒng)開發(fā)的需求很大,如何正確安排軟件的結(jié)構(gòu),合理組織、管理軟件的生產(chǎn),不僅是從事軟件開發(fā)專業(yè)人員的事,也是廣大從事金融管理工作人員及學(xué)員必需掌握的知識,金融工作人員經(jīng)常就會被要求加入到系統(tǒng)開發(fā)中去,向系統(tǒng)開發(fā)人員提供有關(guān)專業(yè)技術(shù)支持,幫助開發(fā)人員了解企業(yè)的財務(wù)處理程序、經(jīng)營過程,管理要求及用戶的信息需求等。為了縮短了軟件的研制時間,提高了軟件的開發(fā)效率,面向?qū)ο蟪绦蛟O(shè)計由此應(yīng)運而生。面向?qū)ο笫录?qū)動程序設(shè)計方法是程序設(shè)計方法的一次變革.我們應(yīng)迎頭趕上井掌握這門新技術(shù)。

2面向?qū)ο蠓椒ǔ绦蛟O(shè)計(00)的基本過程

計算機軟件技術(shù)發(fā)展非???,越來越多的實用軟件工具有不同程度的面向?qū)ο笞詣泳幊坦δ?,軟件工程各階段的自動化程度也將越來越高.面向?qū)ο蟪绦蛟O(shè)計是目前程序設(shè)計方法的主流,是程序設(shè)計在思維和方法上的一次巨大進步。WWW.133229.coM面向?qū)ο蟪绦蛟O(shè)計思想是面向?qū)ο?,即設(shè)計的重要任務(wù)在于描述對象,程序是由事件驅(qū)動的,因而,在執(zhí)行過程中,持續(xù)等待的是一個發(fā)生在對象上的事件。而發(fā)生什么事件則要看使用者的操作,如單擊、雙擊鼠標等。至于下一步的程序流向,則要看驅(qū)動的是什么事件。這類程序設(shè)計的主要目的是從任何方便與簡化使用人手,由使用者控制程序流向,這在一定程序上增加了編程的難度,以基于vfp6.0面向?qū)ο蟮某绦蛟O(shè)計應(yīng)用為例,假設(shè)某儲戶到銀行提取存款x元,試問銀行出納元應(yīng)如何付款最佳(即各種票頰鈔票總張數(shù)最少)。

2.1分析

可以從最大的票額(100元)開始,算出所需張數(shù),然后在剩下的部分算出較小面額的張教,直到最小票額(1元)。

2.2設(shè)計步辣

(l)建立應(yīng)用程序用戶最界面。

選擇“新建”表單設(shè)計器,增加一個命令按鈕command1、14個標簽labeli_label14,7個文本框texti_text7。

(2)設(shè)置對象屬性.如表i:

表單的默認按鈕

(3)編寫程序代碼:

說明:文本框的interactivechange事件當文本框中的內(nèi)容被改變時發(fā)生。

2.3建立程序界面與程序運行結(jié)果

在企業(yè)的金融信息系統(tǒng)中其它應(yīng)用需求諸如:求各種所得稅的納稅情況,水電費收支情況,工資管理情況等應(yīng)用,軟件需求大,需求的具體要求各有千秋,程序代碼和界面是千變?nèi)f化的,系統(tǒng)開發(fā)人員和信息管理應(yīng)用工作者應(yīng)根據(jù)具體的要求按一定的語法規(guī)則去改變程序的結(jié)構(gòu)和方式,形成各自的風(fēng)格,以滿足企業(yè)信息管理系統(tǒng)對應(yīng)用軟件日益增長的需要。

3面向?qū)ο笙到y(tǒng)開發(fā)(00)方法的原理

面向?qū)ο蠓椒ㄊ窃谖〗Y(jié)構(gòu)化思想和優(yōu)點的基礎(chǔ)卜發(fā)展起來的,是對結(jié)構(gòu)化方法的進一步發(fā)展和擴充。各種分析方法在財經(jīng)軟件開發(fā)過程中墓本目標是相同的。都以較低的成本開發(fā)高質(zhì)量的軟件,系統(tǒng)開發(fā)從問題域中的實體與關(guān)系出發(fā),體系結(jié)構(gòu)是由對象類及其關(guān)系構(gòu)成,對象之間通過消息傳遞信息,通過執(zhí)行服務(wù)一消息鏈完成指定功能,一旦用戶要求修改,可以只更改局部內(nèi)容即可。但不管采取什么開發(fā)方法,軟件開發(fā)的墓本活動包括:需求定義、設(shè)計(design),實現(xiàn)、驗證/確認,一個面向?qū)ο蟮某绦虻拿恳怀煞輵?yīng)是對象,計算是通過新的對象的建立和對象之間的通信來執(zhí)行的?!懊嫦?qū)ο蟆币辉~是針對“面向過程’一詞提出的,是在本質(zhì)上不同于傳統(tǒng)的結(jié)構(gòu)化方法的一種新方法,但其是基于或擴展結(jié)構(gòu)化的思想,且包含三個基本的原理:封裝、繼承及多態(tài)。面向?qū)ο蠓椒ㄊ俏〗Y(jié)構(gòu)化方法的思想和優(yōu)點的基礎(chǔ)上發(fā)展起來的,是對結(jié)構(gòu)化方法的進一步發(fā)展和擴充。

4面向?qū)ο笙到y(tǒng)開發(fā)(00)方法的特點和發(fā)展趨勢

面向?qū)ο蟪绦蛟O(shè)計方法是一種正在發(fā)展中的方法,它認為客觀世界是由對象組成的,用對象表示軟件應(yīng)用領(lǐng)域里的事物,用消息傳送表現(xiàn)事物之間的相互聯(lián)系,它用對象和消息來描述事物及其相互之間的聯(lián)系,用類和繼承來描述對象,建立問題或模型、描述系統(tǒng)。它是一種運用對象、類、繼承、聚合和消息等概念來構(gòu)造程序的設(shè)計方法。面向?qū)ο蟮某绦蛟O(shè)計方法主要的構(gòu)成可為:對象+類十繼承十消息。軟件系統(tǒng)利用以上四個概念進行設(shè)計或?qū)崿F(xiàn)的,使認為其是面向連接的.面向?qū)ο蟪绦蛟O(shè)計的特點是唯一性,從前一階段到后一階段高度連續(xù),將面向?qū)ο蠓治鰋oa、面向?qū)ο蟪绦蛟O(shè)計oop、面向?qū)ο笤O(shè)計ood集成到生存期各階段中,相對于結(jié)構(gòu)化程序設(shè)計方法來說.面向?qū)ο蟪绦蛟O(shè)計方法具有其獨到的以下優(yōu)點:開發(fā)方法的唯一性,開發(fā)階段的高度連續(xù)性.表示方法的一致性。問題空間實體的自然表示,減輕了設(shè)計者的負擔。設(shè)計之初不必考慮很完整的地方,建立完整的體系結(jié)構(gòu),可促進復(fù)用性,易于維護,易于修改,可合理利用其共同性,減少其復(fù)雜性。

例如,在基本的發(fā)visualfoxfro,vi-sualbasic.visualc++中,控件(control)、表單(form)等都是一個個對象.對其中對象的操作,可以通過屬性、事件和方法來實現(xiàn)。面向?qū)ο笫钱斍败浖椒▽W(xué)的主要方向,也是目前最有效的開發(fā)方法之一。其基本思路是:把一個復(fù)雜問題的求解過程分階段進行,每個階段處理的問題都控制在人們?nèi)菀桌斫夂吞幚淼姆秶鷥?nèi)。在應(yīng)用中,面向?qū)ο蟮姆治龇椒ㄊ紫榷x對象及其屬性,根據(jù)問題域中的操作規(guī)則和內(nèi)在性質(zhì)定義對象的行為特征(服務(wù)),建立狀態(tài)模型,用狀態(tài)模型描述對象的生命周期,分析對象之間的關(guān)系,采用封裝,繼承,消息通信等原則使問題域的復(fù)雜性得到控制,根據(jù)對象及其生命周期定義處理過程。當然,面向?qū)ο笤O(shè)計方法有很多不足之處,在開發(fā)大型軟件方面,面向?qū)ο笤O(shè)計方法無疑其有很好的優(yōu)勢,但這種優(yōu)勢只有其在開發(fā)大型軟件上才體現(xiàn)出來,軟件的重用使其冗余相對較大。對于小型軟件和要求講究效率的場合來講,結(jié)構(gòu)化程序設(shè)計方法仍有其使用的必要。

以金融管理信息系統(tǒng)為例,隨著金融軟件的推廣應(yīng)用,企業(yè)電算化應(yīng)用水平不斷提高,軟件已不能滿足企業(yè)管理水平提高的需求,為此我國金融軟件開發(fā)應(yīng)用工作者又相繼推出了atm系列、銀證轉(zhuǎn)賬軟件產(chǎn)品,井與會計管理軟件功能相關(guān)聯(lián)和對接,主要包括:賬務(wù)處理、資金管理、帳務(wù)分析、銷售等功能,在管理型軟件各功能模塊中還將滿足納稅處理、提供審計線索等功能需求。將推出成熟的商品化金融企業(yè)管理信息軟件,以實現(xiàn)企業(yè)內(nèi)部物流、資金流與信息流的一體化管理,實現(xiàn)管理與決策有機統(tǒng)一,并通過建立在internet/intranet/extranet上,實現(xiàn)企業(yè)內(nèi)部資源與企業(yè)外部資源構(gòu)成的整個供應(yīng)鏈的管理.