![C語言程序設(shè)計(第三版)課件:C語言概述_第1頁](http://file4.renrendoc.com/view8/M02/35/05/wKhkGWcA6YqAPkMlAAOs1noiClo239.jpg)
![C語言程序設(shè)計(第三版)課件:C語言概述_第2頁](http://file4.renrendoc.com/view8/M02/35/05/wKhkGWcA6YqAPkMlAAOs1noiClo2392.jpg)
![C語言程序設(shè)計(第三版)課件:C語言概述_第3頁](http://file4.renrendoc.com/view8/M02/35/05/wKhkGWcA6YqAPkMlAAOs1noiClo2393.jpg)
![C語言程序設(shè)計(第三版)課件:C語言概述_第4頁](http://file4.renrendoc.com/view8/M02/35/05/wKhkGWcA6YqAPkMlAAOs1noiClo2394.jpg)
![C語言程序設(shè)計(第三版)課件:C語言概述_第5頁](http://file4.renrendoc.com/view8/M02/35/05/wKhkGWcA6YqAPkMlAAOs1noiClo2395.jpg)
版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進行舉報或認領(lǐng)
文檔簡介
C語言概述知識目標(biāo):
1.了解C語言的特點、C語言程序開發(fā)步驟。
2.初步了解C程序的組成結(jié)構(gòu),主函數(shù)的作用。
3.初步掌握C語言流程圖、N-S圖圖例特點與屬性。能力目標(biāo):
1.能夠啟動VisualC++6.0,并能正確進入編程窗口。
2.學(xué)會與人打交道,完成調(diào)查任務(wù)。
3.能初步掌握“班級學(xué)生成績管理系統(tǒng)”工作模塊構(gòu)成。
4.能調(diào)查了解本校學(xué)生成績管理系統(tǒng)的工作流程,畫出本校學(xué)生成績管理系統(tǒng)工作模塊圖。1.1C語言的發(fā)展歷史及特點1.1.1C語言的發(fā)展歷史
C語言是目前世界上流行、使用非常廣泛的高級程序設(shè)計語言。C語言對操作系統(tǒng)和系統(tǒng)使用程序以及需要對硬件進行操作的場合,用C語言明顯優(yōu)于其它高級語言,許多大型應(yīng)用軟件都是用C語言編寫的。C語言具有繪圖能力強,可移植性,并具備很強的數(shù)據(jù)處理能力,因此適于編寫系統(tǒng)軟件,同時它也是數(shù)值計算的高級語言。
C語言的發(fā)展頗為有趣。它的原型ALGOL
60語言。(也成為A語言)
1963年,劍橋大學(xué)將ALGOL60語言發(fā)展成為CPL(CombinedProgrammingLanguage)語言。1967年,劍橋大學(xué)的MatinRichards對CPL語言進行了簡化,于是產(chǎn)生了BCPL語言。
1970年,美國貝爾實驗室的Ken
Thompson將BCPL進行了修改,并為它起了一個有趣的名字“B語言”。意思是將CPL語言煮干,提煉出它的精華。并且他用B語言寫了第一個UNIX操作系統(tǒng)。
而在1973年,B語言也給人“煮”了一下,美國貝爾實驗室的D.M.RITCHIE在B語言的基礎(chǔ)上最終設(shè)計出了一種新的語言,他取了BCPL的第二個字母作為這種語言的名字,這就是C語言。為了使UNIX操作系統(tǒng)推廣,1977年Dennis
M.Ritchie
發(fā)表了不依賴于具體機器系統(tǒng)的C語言編譯文本《可移植的C語言編譯程序》。1978年Brian
W.Kernighian和Dennis
M.Ritchie出版了名著《The
C
Programming
Language》,從而使C語言成為目前世界上流行最廣泛的高級程序設(shè)計語言。
1988年,隨著微型計算機的日益普及,
出現(xiàn)了許多C語言版本。由于沒有統(tǒng)一的標(biāo)準(zhǔn),使得這些C語言之間出現(xiàn)了一些不一致的地方。為了改變這種情況,美國國家標(biāo)準(zhǔn)研究所(ANSI)為C語言制定了一套ANSI標(biāo)準(zhǔn),
成為現(xiàn)行的C語言標(biāo)準(zhǔn)
3.C語言的主要特點
。C語言發(fā)展迅速,
而且成為最受歡迎的語言之一,
主要因為它具有強大的功能。許多著名的系統(tǒng)軟件,
如DBASE
Ⅲ
PLUS、DBASE
Ⅳ
都是由C
語言編寫的。用C語言加上一些匯編語言子程序,
就更能顯示C語言的優(yōu)勢了,象PC-
DOS
、WORDSTAR等就是用這種方法編寫的。
目前最流行的C語言有以下幾種:
MicrosoftC或稱MSC
BorlandTurboC或稱TurboC
這些C語言版本不僅實現(xiàn)了ANSIC標(biāo)準(zhǔn),而且在此基礎(chǔ)上各自作了一些擴充,使之更加方便、完美。
在C的基礎(chǔ)上,一九八三年又由貝爾實驗室的BjarneStrou-strup推出了C++。C++進一步擴充和完善了C語言,成為一種面向?qū)ο蟮某绦蛟O(shè)計語言。C++目前流行的最新版本是BorlandC++4.5,SymantecC++6.1,和MicrosoftVisualC++2.0。C++提出了一些更為深入的概念,它所支持的這些面向?qū)ο蟮母拍钊菀讓栴}空間直接地映射到程序空間,為程序員提供了一種與傳統(tǒng)結(jié)構(gòu)程序設(shè)計不同的思維方式和編程方法。因而也增加了整個語言的復(fù)雜性,掌握起來有一定難度。1.1.2C語言的特點
總之,一種語言之所以能存在和發(fā)展,并且具有較強的生命力,總是有其不同于其他語言的特點。C語言的主要特點如下:
1.簡潔緊湊、靈活方便
C語言一共只有32個關(guān)鍵字,9種控制語句,程序書寫自由,主要用小寫字母表示。它把高級語言的基本結(jié)構(gòu)和語句與低級語言的實用性結(jié)合起來。C語言可以象匯編語言一樣對位、字節(jié)和地址進行操作,而這三者是計算機最基本的工作單元。
2.運算符豐富
C的運算符包含的范圍很廣泛,共有種34個運算符。C語言把括號、賦值、強制類型轉(zhuǎn)換等都作為運算符處理。從而使C的運算類型極其豐富表達式類型多樣化,靈活使用各種運算符可以實現(xiàn)在其它高級語言中難以實現(xiàn)的運算。
3.數(shù)據(jù)結(jié)構(gòu)豐富
C的數(shù)據(jù)類型有:整型、實型、字符型、數(shù)組類型、指針類型、結(jié)構(gòu)體類型、共用體類型等。能用來實現(xiàn)各種復(fù)雜的數(shù)據(jù)類型的運算。并引入了指針概念,使程序效率更高。另外C語言具有強大的圖形功能,支持多種顯示器和驅(qū)動器。且計算功能、邏輯判斷功能強大。
4.C是結(jié)構(gòu)式語言
結(jié)構(gòu)式語言的顯著特點是代碼及數(shù)據(jù)的分隔化,即程序的各個部分除了必要的信息交流外彼此獨立。這種結(jié)構(gòu)化方式可使程序?qū)哟吻逦?便于使用、維護以及調(diào)試。C語言是以函數(shù)形式提供給用戶的,這些函數(shù)可方便的調(diào)用,并具有多種循環(huán)、條件語句控制程序流向,從而使程序完全結(jié)構(gòu)化。
5.C語法限制不太嚴(yán)格、程序設(shè)計自由度大
一般的高級語言語法檢查比較嚴(yán),能夠檢查出幾乎所有的語法錯誤。而C語言允許程序編寫者有較大的自由度。
6.C語言允許直接訪問物理地址,可以直接對硬件進行操作因此既具有高級語言的功能,又具有低級語言的許多功能,能夠象匯編語言一樣對位、字節(jié)和地址進行操作,而這三者是計算機最基本的工作單元,可以用來寫系統(tǒng)軟件。
7.C語言程序生成代碼質(zhì)量高,程序執(zhí)行效率高
一般只比匯編程序生成的目標(biāo)代碼效率低10へ20%。
8.C語言適用范圍大,可移植性好1.2C程序的基本結(jié)構(gòu)分析
C語言有一個突出的優(yōu)點就是適合于多種操作系統(tǒng),如DOS、UNIX,也適用于多種機型。為了說明C語言源程序結(jié)構(gòu)的特點,先看以下幾個程序。這幾個程序由簡到難,表現(xiàn)了C語言源程序在組成結(jié)構(gòu)上的特點。雖然有關(guān)內(nèi)容還未介紹,但可從這些例子中了解到組成一個C源程序的基本部分和書寫格式?!纠?.1】0102030405#include<stdio.h>main(){printf("GoodMoning!\n");}代碼貼士
在程序中,第01行main是主函數(shù)的函數(shù)名,表示這是一個主函數(shù)。每一個C源程序都必須有,且只能有一個主函數(shù)(main函數(shù))。第03行是函數(shù)調(diào)用語句,printf函數(shù)的功能是把要輸出的內(nèi)容送到顯示器去顯示。printf函數(shù)是一個由系統(tǒng)定義的標(biāo)準(zhǔn)函數(shù),可在程序中直接調(diào)用。
這是一個最簡單的C語言程序。main前面的void表示此主函數(shù)是“空類型”,void是“空”的意思,即執(zhí)行此函數(shù)后不產(chǎn)生一個函數(shù)值。每一個C語言程序都必須有一個main函數(shù)。每一個函數(shù)要有函數(shù)名,也要有函數(shù)體(即函數(shù)的實體)。函數(shù)體由一對花括號{}括起來。本例中主函數(shù)內(nèi)只有一行。printf是C編譯系統(tǒng)提供的標(biāo)準(zhǔn)函數(shù)庫中的輸出函數(shù)(詳見第4章)。程序第4行是一個printf語句,圓括號中雙撇號內(nèi)的字符串按原樣輸出?!埃躰”是換行符,在執(zhí)行程序時,輸出“GoodMoning!”,然后執(zhí)行回車換行。語句最后有一個分號。
在使用標(biāo)準(zhǔn)函數(shù)庫中的輸入輸出函數(shù)時,編譯系統(tǒng)要求程序提供有關(guān)的信息(例如對這些輸入輸出函數(shù)的聲明),程序第01行“#include<stdio.h>”的作用就是用來提供這些信息的,stdio.h是C編譯系統(tǒng)提供的一個文件名,stdio是“standardinput&output”的縮寫,即有關(guān)“標(biāo)準(zhǔn)輸入輸出”的信息。在開始時對此可暫不必深究,以后會有詳細介紹的。在此只須記?。涸诔绦蛑杏玫较到y(tǒng)提供的標(biāo)準(zhǔn)函數(shù)庫中的輸入輸出函數(shù)時,應(yīng)在程序的開頭寫這樣一行:
#include<stdio.h>01020304050607080910111213141516#include<stdio.h>main(){intx,y,z;/*變量說明*/intmax(inta,intb);/*函數(shù)聲明*/printf("inputtwonumbers:\n");scanf("%d%d",&x,&y);/*輸入x,y值*/z=max(x,y);/*調(diào)用max函數(shù)*/printf("max=%d\n",z);/*輸出*/}intmax(inta,intb)/*定義max函數(shù)/{if(a>b)returna;/*把結(jié)果返回主調(diào)函數(shù)*/Elsereturnb;/*把結(jié)果返回主調(diào)函數(shù)*/}【例1.2】:任意輸入兩個數(shù),求兩個數(shù)中最大的那個數(shù)。代碼貼士在程序中,第03行是變量說明,說明變量x、y、z的數(shù)據(jù)類型。在程序中第04行是函數(shù)聲明。第06行為輸入語句,調(diào)用scanf函數(shù),接受鍵盤上輸入的數(shù)并存入變量x、y中。在程序中第07行調(diào)用了max函數(shù)。程序第10~16行是一個用戶自定義的max函數(shù)。
上例中程序的功能是由用戶輸入兩個整數(shù),程序執(zhí)行后輸出其中較大的數(shù)。本程序由兩個函數(shù)組成,主函數(shù)main和max函數(shù)。函數(shù)之間是并列關(guān)系。但可從主函數(shù)中調(diào)用其它函數(shù)。本例中的主函數(shù)體中又分為兩部分:一部分為說明部分(第03~04行),另一部分為執(zhí)行部分(第05~08行)。在程序的說明部分中,不僅可以有變量說明,還可以有函數(shù)說明。
行結(jié)果如下:
inputtwonumbers:8,5↙max=8
通過以上幾個例子,可以看到C源程序的結(jié)構(gòu)特點:
1.一個C語言源程序可以由一個或多個源文件組成。
2.每個源文件可由一個或多個函數(shù)組成。
3.一個源程序不論由多少個函數(shù)組成,都有一個且只能有一個main函數(shù),即主函數(shù)。
4.源程序中可以有預(yù)處理命令(include
命令僅為其中的一種),預(yù)處理命令通常應(yīng)放在源文件或源程序的最前面。
5.每一個說明,每一個語句都必須以分號結(jié)尾。但預(yù)處理命令,函數(shù)頭和花括號“}”之后不能加分號。
6.標(biāo)識符,關(guān)鍵字之間必須至少加一個空格以示間隔。若已有明顯的間隔符,也可不再加空格來間隔。
1.3程序設(shè)計時的算法描述1.3.1程序的三種基本結(jié)構(gòu)一個程序包含一系列的執(zhí)行指令,每一個指令使計算機完成一種操作。程序中的指令不是任意書寫而無規(guī)律的。1966年,Bohra和Jacopini提出了以下三種基本結(jié)構(gòu),用這三種基本結(jié)構(gòu)作為表示一個良好算法的基本單元。因此,任何一個復(fù)雜程序都是由三種基本結(jié)構(gòu)組成,即:順序結(jié)構(gòu)、選擇結(jié)構(gòu)、循序結(jié)構(gòu)。它們的含義如下:①順序結(jié)構(gòu):順序結(jié)構(gòu)的程序是一條語句接一條語句順序地往下執(zhí)行的。順序結(jié)構(gòu)的程序是最簡單的程序。如圖1-1為順序結(jié)構(gòu)結(jié)構(gòu)圖圖1-1
②分支結(jié)構(gòu):若在程序執(zhí)行過程中,程序的流程可由多路分支組成,根據(jù)不同的條件去執(zhí)行不同的任務(wù)。如圖1-2為選擇結(jié)構(gòu)結(jié)構(gòu)圖。圖1-2③循環(huán)結(jié)構(gòu):若在程序中需要根據(jù)某項條件重復(fù)地執(zhí)行某項任務(wù)若干次或直到滿足或不滿足某條件為止,這就構(gòu)成了循環(huán)結(jié)構(gòu)。如圖1-3為循環(huán)結(jié)構(gòu)結(jié)構(gòu)圖。圖1-31.3.2程序的算法描述算法的概念計算機所進行的一切操作都是由程序決定的,而程序是人事先編寫好并輸入給計算機的。從前面的程序中可知,一個程序包括以下兩個方面的內(nèi)容:
(1)對數(shù)據(jù)的描述。在程序中要指定數(shù)據(jù)的類型和數(shù)據(jù)的組織形式,即數(shù)據(jù)結(jié)構(gòu)(datastructure)。
(2)對操作的描述。即操作步驟,也就是算法(algorithm)。數(shù)據(jù)是操作的對象,操作的目的是對數(shù)據(jù)進行加工處理,以得到期望的結(jié)果。打個比方,廚師制作菜肴,需要有菜譜,菜譜一般應(yīng)包括:①配料,指出應(yīng)使用哪些原料;②操作步驟,指出如何使用這些原料按規(guī)定的步驟加工成所需的菜肴。沒有原料是無法加工成所需菜肴的。但是用同一些原料可以加工出不同的菜肴。作為程序設(shè)計人員,必須認真考慮和設(shè)計數(shù)據(jù)結(jié)構(gòu)和操作步驟(即算法)。著名計算機科學(xué)家沃思(NikildausWirth)提出一個公式:數(shù)據(jù)結(jié)構(gòu)+算法=程序
2.算法的表示構(gòu)思好一個算法后,可以選擇不同的方式表示。(1)用自然語言表示自然語言就是人們?nèi)粘J褂玫恼Z言,可以是漢語、英語,或其他語言。用自然語言表示通俗易懂,但文字冗長,容易出現(xiàn)歧義性。自然語言表示的含義往往不太嚴(yán)格,要根據(jù)上下文才能判斷其正確含義。假如有這樣一句話:“張先生對李先生說他的孩子考上了大學(xué)”。請問是張先生的孩子考上大學(xué)呢還是李先生的孩子考上大學(xué)呢?光從這句話本身難以判斷。此外,用自然語言來描述包含分支和循環(huán)的算法,不很方便。因此,除了那些很簡單的問題以外,一般不用自然語言描述算法。
(2)用傳統(tǒng)流程圖表示算法流程圖是用一些圖框來表示各種操作。用圖形表示算法,直觀形象,易于理解。美國國家標(biāo)準(zhǔn)化協(xié)會ANSI(AmericanNationalStandardlnstitute)規(guī)定了一些常用的流程圖符號見圖1-4,已為世界各國程序工作者普遍采用。圖1-4【例1.3】:任意輸入兩個數(shù),求兩個數(shù)中最大的那個數(shù)。說明:用傳統(tǒng)流程圖表示此題的算法見圖1-5。圖1-5
N開始輸入x,yx>yx→maxy→max輸出max結(jié)束Y
(3)用N-S流程圖表示算法
1973年美國學(xué)者I.Nassi和B.Shneiderman提出了一種新的流程圖形式。在這種流程圖中,完全去掉了帶箭頭的流程線。全部算法寫在一個矩形框內(nèi),在該框內(nèi)還可以包含其他的從屬于它的框,或者說,由一些基本的框組成一個大的框。這種流程圖又稱N-S結(jié)構(gòu)化流程圖(N和S是兩位美國學(xué)者的英文姓氏的首字母)。這種流程圖適于結(jié)構(gòu)化程序設(shè)計,而且作圖簡單,占用面積小。N-S流程圖用以下的流程圖符號。圖1-6順序結(jié)構(gòu)圖1-7選擇結(jié)構(gòu)【例1.4】:將【例1.3.1】的算法用N-S流程圖來表示。輸入x,yx>y是否x→maxy→max輸出max圖1-8循環(huán)結(jié)構(gòu)圖1-9
4.用偽代碼表示算法用傳統(tǒng)的流程圖和N-S圖表示算法直觀易懂,但畫起來比較費事,在設(shè)計一個算法時,可能要反復(fù)修改,而修改流程圖是比較麻煩的。為了設(shè)計算法時方便,常用一種稱為偽代碼(pseudocode)的工具。偽代碼是用介于自然語言和計算機語言之間的文字和符號來描述算法。它如同一篇文章一樣,自上而下地寫下來。每一行(或幾行)表示一個基本操作。它不用圖形符號,因此書寫方便,格式緊湊,也比較好懂,也便于向計算機語言算法(即程序)過渡。
【例1.5】:將例【例1.3.1】的算法用偽代碼表示。
ifx>ythenx→maxelsey→max
用偽代碼寫算法并無固定的、嚴(yán)格的語法規(guī)則,只要把意思表達清楚,并且書寫的格式要寫成清晰易讀的形式??傊谝陨蠋追N表示算法的方法中,具有熟練編程經(jīng)驗的專業(yè)人士喜歡用偽代碼,初學(xué)者喜歡用傳統(tǒng)流程圖或N-S圖,比較形象,易于理解。
1.4VisualC++6.0環(huán)境下調(diào)試C實例1.4.1C程序的編譯通過前面二個例子我們已經(jīng)了解了C語言的程序結(jié)構(gòu)。所謂程序,就是一組計算機能識別和執(zhí)行的指令。每一條指令使計算機執(zhí)行特定的操作。用高級語言編寫的程序成為源程序。但是一個源程序文件只是可以存儲,并不能運行。因為計算機并不認識源程序中的語句。要讓計算機直接運行,還要將它翻譯成計算機可以直接辨認并可以執(zhí)行的機器語言程序。這一過程成為編譯。對于C語言程序來說,這一過程一般分為4步。
圖1-10運行C程序的流程
第一步:編輯源程序。編輯源程序,就是用高級語言編寫并修改源程序。源程序的編輯要在編輯器中進行。編輯器具有字符的修改、添加等功能。編輯好的源程序,可以先以源程序文件的形式保存起來。如前所述,C語言源程序的文件名后綴為.c。源程序僅僅是按照C語言的詞法和語法編寫的,并能被編輯器處理的文字字符的集合。它還圖1-10運行C程序的流程不能被計算機執(zhí)行。
第二步:編譯。編譯就是把用C語言描述的程序(或程序模塊)翻譯成計算機可以理解并執(zhí)行的機器語言命令組成的程序(或程序模塊)。C語言的編譯過程分為兩個階段:首先是編譯預(yù)處理,系統(tǒng)要先掃描程序,處理所有預(yù)處理命令,如把文件包含命令要求的文件包含(嵌入)到程序(或程序模塊)中;然后才開始編譯。
編譯后得到的文件稱為目標(biāo)文件,目標(biāo)文件就是用機器語言描述的文件。C語言的目標(biāo)文件的后綴為.obj。目標(biāo)文件的主文件名,一般與源程序文件名相同。在編譯過程中,還要對源程序中的語法和邏輯結(jié)構(gòu)進行檢查。編譯任務(wù)是由稱做編譯器(compiler)的軟件完成的。程序在編譯過程中,也可能發(fā)現(xiàn)錯誤。這時要重新進入編輯器進行編輯。目標(biāo)程序文件還不能被執(zhí)行,它們只是一些在內(nèi)存中可重定位的目標(biāo)程序模塊。
第三步:鏈接。接是將與當(dāng)前程序有關(guān)的、已經(jīng)存在的幾個目標(biāo)模塊鏈接在一起,形成一個完整的程序代碼文件。這些已經(jīng)存在的目標(biāo)模塊包括:庫函數(shù),如前面使用的printf;對于大的程序,常常分成幾個模塊,分別編寫、編輯和編譯,形成不同的目標(biāo)模塊。正確鏈接所生成的文件才是可執(zhí)行文件??蓤?zhí)行文件的文件名后綴為.exe程序在鏈接過程中,也可能發(fā)現(xiàn)錯誤。這時也要重新進入編輯器進行編輯。第四步:執(zhí)行。接后得到的可執(zhí)行文件名,對操作系統(tǒng)來說,相當(dāng)于一條命令。在操作系統(tǒng)提供的命令界面上輸入這個命令,就可以開始執(zhí)行這個程序。1.4.2C程序的運行為了編譯、連接和運行C程序,必須要有相應(yīng)的C編譯系統(tǒng)。目前使用的大多數(shù)C編譯系統(tǒng)都是集成開發(fā)環(huán)境(IDE)的,把程序的編輯、編譯、連接和運行等操作全部集中在一個界面上進行,功能豐富,使用方便,直觀易用。
目前學(xué)習(xí)C++的人大多使用VisualC++6.0集成環(huán)境,因此不少人在學(xué)習(xí)C時也使用VisualC++集成開發(fā)環(huán)境,這樣有利于今后方便地學(xué)習(xí)C++。本節(jié)主要介紹在VisualC++6.0中怎樣編輯、編譯、連接和運行C程序。本書中的程序都是在VisualC++6.0環(huán)境下調(diào)試和運行的。
1.進入VisualC++6.0集成開發(fā)環(huán)境
VisualC++6.0是在Windows環(huán)境下工作的。VisualC++6.0有英文版和中文版,二者使用方法相同。本節(jié)介紹的是VisualC++6.0中文版。為了能使用VisualC++6.0集成環(huán)境,必須事先在所用的計算機上安裝VisualC++6.0系統(tǒng)。在安裝后最好在桌面上設(shè)立VisualC++6.0的快捷方式圖標(biāo),以方便使用。雙擊桌面上VisualC++6.0圖標(biāo),就能進入VisualC++6.0集成開發(fā)環(huán)境,屏幕上出現(xiàn)VisualC++6.0的主窗口,見圖1-12。
在VisualC++主窗口的頂部是VisualC++的主菜單欄。其中包含9個菜單項:文件編輯查看插入項目組建工具窗口幫助主窗口的左側(cè)是項目工作區(qū)窗口,右側(cè)是程序編輯窗口。工作區(qū)窗口用來顯示所設(shè)定的工作區(qū)的信息,程序編輯窗口用來輸入和編輯源程序。
2.輸入和編輯源程序(1)新建一個源程序可采取以下的步驟:在VisualC++主窗口的主菜單欄中選擇“文件”,然后選擇“新建”,見圖l-13。
屏幕上出現(xiàn)一個“新建”對話框(見圖l-14)。單擊此對話框的上方的“文件”標(biāo)簽,在其下拉菜單中選擇C++SourceFile項,表示要建立新的C++源程序文件,然后在對話框
右半部分的位置文本框中輸入準(zhǔn)備編輯的源程序文件的存儲路徑(今假設(shè)為E:\zc),表示準(zhǔn)備編輯的源程序文件將存放在E:\zc子目錄下。在其上方的文件名文本框中輸入準(zhǔn)備編輯的源程序文件的名字(今輸入cl_1.c)。這樣,即將進行輸入和編輯的源程序就以c1_1.c為文件名存放在E盤的zc目錄下。在單擊OK按鈕后,回到VisualC++主窗口,可以看到光標(biāo)在程序編輯窗口閃爍,表示程序編輯窗口已激活,可以輸入和編輯源程序了。輸入例1.1中的程序(見圖l-15)。在輸入過程中如發(fā)現(xiàn)有錯誤,可以利用全屏幕編輯方法進行修改編輯。
如果經(jīng)檢查無誤,則將源程序保存在前面指定的文件cl-l1.c中,方法是:在主菜單欄中選擇“文件”,并在其下拉菜單中選擇“保存”項。見圖l-16。
(2)打開一個已有的程序如果已經(jīng)編輯并保存過C源程序,而希望打開所需要的源程序文件,并對它進行修改,方法是:
①在“我的電腦”中按路徑找到已有的C程序名(如cl-1.c)。
②雙擊此文件名,則進入了VisualC++集成開發(fā)環(huán)境,并打開了該文件,程序已顯示在編輯窗口中。
③修改后選擇“文件”→“保存”,保存在原來的文件中。
3.程序的編譯在編輯和保存了源文件(如cl-l.c)以后,若需要對該源文件進行編譯。選擇主菜單欄中的“組建”,在其下拉菜單中選擇“編譯[c1-1.c]”項。見圖l-17。由于剛才建立(或保存)文件時已指定了源文件的名字c1-l.c,因此在“組建”菜單的“編譯[c1-1.c]”項中自動顯示了現(xiàn)在要編譯的源文件名c1-1.c。
在選擇“編譯”命令后,屏幕上出現(xiàn)一個對話框,內(nèi)容是Thisbuildcommandrequiresanactiveprojectworkspace,Wouldyouliketocreateadefaultprojectworkspace?(此編譯命令要求一個有效的項目工作區(qū),你是否同意建立一個默認的項目工作區(qū)),見圖l-18。單擊“是”按鈕,表示同意由系統(tǒng)建立默認的項目工作區(qū),然后開始編譯。也可以不用選擇菜單的方法,而直接按Ctrl+F7鍵來完成編譯。
在進行編譯時,編譯系統(tǒng)檢查源程序中有無語法錯誤,然后在主窗口下部的調(diào)試信息窗口輸出編譯的信息,如果無錯,則生成目標(biāo)文件cl-1.obj,如果有錯,則會指出錯誤的位置和性質(zhì),提示用戶改正錯誤。
4.程序的連接在得到后綴為.obj的目標(biāo)程序后,還不能直接運行,還要把程序和系統(tǒng)提供的資源(如函數(shù)庫、頭文件)建立連接。此時應(yīng)選擇“組建”→“組建[c1-1.exe]”,見圖l-19。表示要求連接并建立一個可執(zhí)行文件cl-1.exe。
在執(zhí)行連接后,在調(diào)試輸出窗口中顯示連接時的信息,說明沒有發(fā)現(xiàn)錯誤,生成了一個可執(zhí)行文件cl-1.exe。見圖1-20。
以上介紹的是分別進行程序的編譯與連接,也可以選擇菜單“組建”→“組建”(或按F7鍵)一次完成編譯與連接。對于初學(xué)者來說,還是提倡分步進行程序的編譯與連接,因為程序出錯的機會較多,最好等到上一步完全正確后才進行下一步。對于有經(jīng)驗的程序員來說,在對程序比較有把握時,可以一步完成編譯與連接。
5.程序的執(zhí)行在得到可執(zhí)行文件c1-1.exe后,就可以直接執(zhí)行c1-1.exe了。選擇“組建”→“!執(zhí)行[c1-1.exe]”,見圖1-21。
在選擇“!執(zhí)行[c1-1.exe]”項后,即開始執(zhí)行c1-1.exe。也可以不通過選擇菜單,而直接按Ctrl+F5鍵來實現(xiàn)程序的執(zhí)行。程序執(zhí)行后,屏幕切換到輸出結(jié)果的窗口,顯示出運行結(jié)果,見圖1-22。
可以看到,在輸出結(jié)果的窗口中的第1行是程序的輸出:
GoodMoning!然后換行。第2行“Pressanykeytocontinue”并非程序所指定的輸出,而是VisualC++在輸出完運行結(jié)果后由VisualC++6.0系統(tǒng)自動加上的一行信息,通知用戶“按任何一鍵以便繼續(xù)”。當(dāng)你按下任何一鍵后,輸出窗口消失,回到VisualC++的主窗口,你可以繼續(xù)對源程序進行修改補充或進行其他工作。如果已完成對一個程序的操作,不再對它進行其他處理,應(yīng)當(dāng)選擇“文件”→“關(guān)閉工作區(qū)”,以結(jié)束對該程序的操作。1.4“學(xué)生成績管理系統(tǒng)”初步總體規(guī)劃設(shè)計
1.4.1應(yīng)用程序的開發(fā)過程應(yīng)用程序的開發(fā)過程一般分為三個階段:分析、設(shè)計、實施。
1.系統(tǒng)分析系統(tǒng)分析主要完成三個任務(wù),一是需求報告,二是可行性分析,三是系統(tǒng)詳細分析并建立邏輯模型。在進行系統(tǒng)分析以前,必須首先確定用戶究竟需要應(yīng)用系統(tǒng)完成什么樣的工作?達到什么目標(biāo)?預(yù)期完成的時間要求等。這些即稱為需求報告,這種需求報告應(yīng)該是由用戶寫出,其中應(yīng)包括系統(tǒng)的名稱、預(yù)期目標(biāo)、輸入輸出格式說明以及完成時間等。
可行性分析是應(yīng)用程序開發(fā)中的重要一環(huán),它是在用戶提交的需求報告的基礎(chǔ)上實事求是地分析提出需求的可能性與必要性,其作用是盡量減少開發(fā)過程中的盲目性,避免不必要的損失??尚行苑治鰬?yīng)該從技術(shù)可行性、經(jīng)濟可行性、操作可行性等三個方面進行分析??尚行苑治鲋螅仨氂砷_發(fā)人員寫出書面的可行性報告,它應(yīng)該反映這樣幾個問題:系統(tǒng)簡述、系統(tǒng)目標(biāo)、系統(tǒng)開發(fā)的條件與結(jié)論。結(jié)論是根據(jù)可行性分析對所提出的應(yīng)用系統(tǒng)研制工作是否可以繼續(xù)進行作出判斷。在可行性報告被認可以后,就要從系統(tǒng)的組織、功能、業(yè)務(wù)等各個方面進行調(diào)查分析以確定應(yīng)用系統(tǒng)的邏輯模型。它一般分為三個階段:調(diào)查研究、綜合分析、編寫系統(tǒng)說明書。工作的重點在于對數(shù)據(jù)流程的調(diào)查分析,在說明書中應(yīng)包含數(shù)據(jù)流程圖。因為這是建立邏輯模型的基礎(chǔ)。2.系統(tǒng)設(shè)計系統(tǒng)設(shè)計是在系統(tǒng)分析的基礎(chǔ)上,規(guī)劃系統(tǒng)規(guī)模、設(shè)計系統(tǒng)結(jié)構(gòu),最終提出系統(tǒng)的實施方案,建立系統(tǒng)的物理模型。這一階段是系統(tǒng)開發(fā)的核心,這主要的工作任務(wù)包括繪制系統(tǒng)結(jié)構(gòu)圖、代碼設(shè)計、輸入輸出設(shè)計、數(shù)據(jù)庫設(shè)計、模塊處理流程設(shè)計等。繪制系統(tǒng)結(jié)構(gòu)圖實際上是進行系統(tǒng)的結(jié)構(gòu)設(shè)計,也就是進行模塊化設(shè)計。所謂的模塊化設(shè)計指將一個系統(tǒng)按功能自頂向下,由抽象到具體,由粗到細,逐層分解,一直分解到功能明確、大小適中、彼此獨立、能用程序?qū)崿F(xiàn)的模塊為止。系統(tǒng)結(jié)構(gòu)圖一般是在數(shù)據(jù)流程圖的基礎(chǔ)上變換而來的。代碼設(shè)計是指將系統(tǒng)中涉及的實體的名稱、屬性、狀態(tài)等用一定的符號(數(shù)字或字母不同組合)來定義,使數(shù)據(jù)標(biāo)準(zhǔn)化、系統(tǒng)化,便于計算機對其進行處理。代碼設(shè)計應(yīng)具唯一性、可擴充性、通用性、便于記憶與識別等特性。代碼的編碼方法很多,如順序碼、層次碼、組碼、多面碼、助記碼、縮寫碼等。例如:一個學(xué)生的學(xué)號可以這樣編:20000102002,其中前四位2000表示該學(xué)生入學(xué)的時間,01表示所在的系,02表示該系所屬的專業(yè),002表示該生的順序號,這種碼就是多面碼。輸入輸出設(shè)計一般是先進行輸出設(shè)計,再進行輸入設(shè)計。輸出設(shè)計是確定輸出信息的需求,確定輸出信息的內(nèi)容,輸出介質(zhì)和設(shè)備,輸出格式的設(shè)計等。輸入設(shè)計是確定原始信息的輸入方式,主要有菜單法、表格法、應(yīng)答法等三種輸入方法。這三種方法可以混合使用,取長補短,其目的是為了簡化操作,提高輸入速度。在確定了輸入方式以后還要設(shè)計數(shù)據(jù)校驗方法,對輸入的數(shù)據(jù)還要進行校驗以保證數(shù)據(jù)輸入的正確性。數(shù)據(jù)庫設(shè)計包括數(shù)據(jù)庫的邏輯設(shè)計與數(shù)據(jù)庫的物理設(shè)計,邏輯設(shè)計的任務(wù)是建立數(shù)據(jù)模型,物理設(shè)計的目的是確定數(shù)據(jù)庫的物理結(jié)構(gòu)如字段的類型、寬度等。通常在一個數(shù)據(jù)庫中往往要包含多個表,物理設(shè)計還要確定數(shù)據(jù)庫中應(yīng)包含那些表,各個表之間的關(guān)系等。模塊處理流程設(shè)計的任務(wù)是分析各個模塊內(nèi)的信息流動情況,選擇信息處理的方法并組織處理的過程。3.系統(tǒng)實施系統(tǒng)實施是繼系統(tǒng)分析與設(shè)計之后的最重要的開發(fā)階段。這個階段的主要任務(wù)是將前兩個階段所完成的“做什么?怎么做?”真正付諸實現(xiàn)。其主要工作包括編制程序、系統(tǒng)的調(diào)試與測試、試運行與維護、系統(tǒng)評價等。程序設(shè)計是利用程序設(shè)計語言實現(xiàn)各個功能模塊的要求。要廣泛使用面向?qū)ο蟮某绦蛟O(shè)計方法,在程序設(shè)計過程中實現(xiàn)功能要求是不言而喻的,但更要強調(diào)程序的可靠性、可維護性與程序的界面友好性。
系統(tǒng)的調(diào)試是開發(fā)人員為了排除程序錯誤,檢查能否實現(xiàn)模塊功能而進行的工作。可分為子系統(tǒng)分調(diào)和應(yīng)用系統(tǒng)聯(lián)調(diào)。分調(diào)重點在于程序的功能與數(shù)據(jù)處理的正確性,而聯(lián)調(diào)則側(cè)重于整個應(yīng)用系統(tǒng)中相關(guān)模塊的相互影響、參數(shù)傳遞的正確性及程序整體控制的正確性檢查。系統(tǒng)維護主要是指針對應(yīng)用系統(tǒng)在運行過程中出現(xiàn)的各種問題進行糾正、修改、升級等。可以分為糾正性維護、完善性維護和適應(yīng)性維護三種。系統(tǒng)維護主要包括數(shù)據(jù)維護、程序維護、硬件與系統(tǒng)軟件的維護等三個方面的工作。系統(tǒng)的評價是在系統(tǒng)運行了一段時間后,對系統(tǒng)的性能指標(biāo)、經(jīng)濟指標(biāo)和管理指標(biāo)作出一個公正而又準(zhǔn)確的評價。1.4.2“學(xué)生成績管理系統(tǒng)”總體規(guī)劃設(shè)計
學(xué)生成績的統(tǒng)計與管理,是學(xué)校教學(xué)管理中的重要管理內(nèi)容,它關(guān)系到學(xué)生是否能正常畢業(yè)。隨
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 網(wǎng)絡(luò)游戲公司前臺接待總結(jié)
- 2025年全球及中國神經(jīng)外科分流器行業(yè)頭部企業(yè)市場占有率及排名調(diào)研報告
- 2025-2030全球草坪護理CRM軟件行業(yè)調(diào)研及趨勢分析報告
- 2025年全球及中國導(dǎo)向銷行業(yè)頭部企業(yè)市場占有率及排名調(diào)研報告
- 2025年全球及中國古董搬運行業(yè)頭部企業(yè)市場占有率及排名調(diào)研報告
- 2025-2030全球雙膜儲氣罐行業(yè)調(diào)研及趨勢分析報告
- 2025-2030全球環(huán)保EPDM顆粒行業(yè)調(diào)研及趨勢分析報告
- 2025-2030全球壞死性筋膜炎藥品行業(yè)調(diào)研及趨勢分析報告
- 2025-2030全球車輛后備箱釋放電纜行業(yè)調(diào)研及趨勢分析報告
- 2025-2030全球光伏舟托行業(yè)調(diào)研及趨勢分析報告
- 第十一章《功和機械能》達標(biāo)測試卷(含答案)2024-2025學(xué)年度人教版物理八年級下冊
- 2025年銷售部年度工作計劃
- 2024年蘇州工業(yè)園區(qū)服務(wù)外包職業(yè)學(xué)院高職單招職業(yè)適應(yīng)性測試歷年參考題庫含答案解析
- ESG表現(xiàn)對企業(yè)財務(wù)績效的影響研究
- DB3713T 340-2024 實景三維數(shù)據(jù)接口及服務(wù)發(fā)布技術(shù)規(guī)范
- 八年級生物開學(xué)摸底考(長沙專用)(考試版)
- 車間空調(diào)崗位送風(fēng)方案
- 使用錯誤評估報告(可用性工程)模版
- 初一年級班主任上學(xué)期工作總結(jié)
- 2023-2024年同等學(xué)力經(jīng)濟學(xué)綜合真題及參考答案
- 農(nóng)村集體土地使用權(quán)轉(zhuǎn)讓協(xié)議
評論
0/150
提交評論