語言(英文:Language,法文:Langue )是人類進行溝通交流的表達方式。據德國出版的《語言學及語言交際工具問題手冊》,世界上查明的有5651種語言。一般來說,各個民族都有自己的語言,語言是民族的重要特征之一。漢語、英語、西班牙語、俄, 以下是為大家整理的關于c語言程序設計心得體會6篇 , 供大家參考選擇。
c語言程序設計心得體會6篇
第一篇: c語言程序設計心得體會
第2章 數據類型、運算符和表達式
C程序是一個字符序列,編譯器首先把程序的字符序列分解成稱之為記號(token)的詞法元素,再根據確定的語法規則檢查這些記號是否構成合法的串。記號是程序中具有語義的最基本組成元素。本章將首先介紹詞法元素和語法規則的概念,然后詳盡地討論組成C程序的基本元素,包括基本數據類型、常量和變量、運算符、表達式等。
2.1 字符及詞法元素
2.1.1 字符集
C語言源程序是由字符序列構成的,C語言字符集是7位ASCII碼的子集,組成如下:
英文字母:a~z 和A~Z
數字字符:0~9
特殊字符: ! " # % & " ( ) * + , - . / : ; < > = ? [ ] \
^ _ { } | ~
空白字符:空格、換行符、水平制表符(HT)、垂直制表符(VT)、換頁符(FF)
有些國家的本國字符集不包括上述所有特殊字符。標準C語言定義了一組三字符序列,使C語言程序可以用ISO 646-1083不變代碼集編寫,這是7位ASCII代碼集的子集,是許多非英語國家字符集公用的代碼集。三字符序列以兩個連續問號開頭,見表2-1。所有的三字符序列都要用相應的單個字符替換,這種替換發生在其他任何處理之前。標準C語言只能識別這9個三字符序列,其他字符序列(如??&)不進行替換。
表2.1 三字符序列
例如,int a??(4??)=??; 被替換成 int a[4]={0}; 后再進行詞法分析。
字符串常量"??/??/"被替換成"\\",表示包含一個反斜線的字符串。
注:Turbo C 2.0 不能識別三字符序列,而Visual c++ 6.0能。
2.1.2 詞法元素
編譯器對C程序中的字符序列進行詞法分析,即按照特定規則分解成稱之為記號的詞法元素,記號是程序中具有語義的最基本組成單元。記號共分5類:標識符、關鍵字、常量、運算符和標點符號。編譯器從左至右收集字符,總是盡量建立最長的記號,即使結果并不構成有效的C語言程序。相鄰記號可以用空白符或注釋語句分開。在進行嚴格的語法定義之前,先看一些簡單的例子,學習一些程序中的記號。
例2.1 sum=x+y
編譯器將這些字符分解成sum、=、x、+和y 共5個記號。其中sum、x、y是標識符,=和+是運算符。因此可以寫成:sum = x + y ,但不能寫成:s u m = x + y , 因為編譯器會把s u m中的每一個字符處理為單獨的標識符,這是無效的C語法。
例2.2 int a,b=10;
被分解成int、a、,、b、=、10和 ; 共7個記號。其中int是關鍵字,a和b是標識符,=是運算符, ,和;是標點符號,10是常量。上式不能寫成:inta,b=10; 這樣會把inta看成一個標識符記號。
例2.3 x+++++y
被分解成x、++、++、+、y 共5個記號,這是無效的C語法。如組合成記號后的x++ + ++y是有效語法,但不允許這種記號組合。
2.2 語法規則
由C語言字符集中的單個或多個字符按照確定的規則組成語義上關聯的記號,再由記號根據確定的規則構成語句乃至整個程序文本,這些規則被稱為C的語法規則。編譯器根據語法規則檢查程序的合法性,并根據語法規則識別每一條語句,同時進行相應的語義處理。
為了說明如何形式化地描述語法規則,首先來看一個簡單的描述語法的式子:
< 數字 > ::= 0 | 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9
用文字敘述:數字可以是字符0,或者字符1,……,或者字符9。這種描述語法結構的式子被稱為生成式。為了通過生成式給出語法的形式化定義,需要提供如下4個方面的信息:
(1) 終結符,C語言字符集中的符號。
(2) 非終結符,表示語法單位,在定義中將被利用相應的生成式進一步展開。
(3) 生成式規則,每條規則確定一個結構的各個成分,生成式以一個非終結符作為它的左部,而后是符號::=,然后取自終結符和非終結符集合的一個串作為右部。
(4) 開始符號,代表語法定義的主結構,任何語法定義過程都從某個非終結符開始。開始符號的生成式總是寫在最前面。
以上4個部分構成了一個語言的文法。而用于描述文法的生成式很多,Backus-Naur范式(BNF)就是這樣的一種生成式,
2.2.1 BNF范式
它被用于組織Algol 60程序設計語言的報告,以后就流行起來了。例如,一個有關實數的BNF范式:
::= .
::= |
::= |
::= 0 | 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9
在BNF里,非終結符用特殊符號括起來,空串寫成,終結符按照通常的樣子寫,比如數字0~9和小數點是終結符。符號“::=”可讀作“可以是”,符號“|”可讀作“或者”。因此,
::= |
就可以讀作:“一個小數部分可以是一個數字,或者是一個數字后隨另一個小數部分”。例如,小數部分153,其中的數字是“1”,而后隨的是“53”。
每個由|分隔的選項實際上是一個獨立規則,因此上述寫法也可以重復為下面等價的形式:
::=
::=
表示長度為0的空串,它在表示可選結構時很有用。例如,假定0.5中的0是可選的,這個語法的BNF范式:
::= .
::= |
::=
用文字描述:一個實數有一個整數部分,一個小數點和一個小數部分,其中整數部分是一個可選的數字序列,小數部分是一個數字序列。根據規則: ::= ,整數部分可以為空,例.5是這樣的情況,這里的小數部分是一位數5。
2.2.2 EBNF
EBNF是BNF的一種擴充,用它能直接描述元素的序列和可選元素,減少生成式和非終結符的數目,但不會改變所能描述的范圍,任何在EBNF中能描述的也都可以用BNF描述。EBNF中符號有:
{ }:括起來的部分重復0次或多次。
[ ]:括起來的部分出現0次或1次。
( ):表示結成一組。
例如,在實數表示中有一個可選整數部分,用EBNF范式描述為:
::= [] .
與其等價的BNF范式為:
::= . | .
象{和}這類在語言的描述中有特殊作用的符號被稱作元符號,同樣符號可能又出現在某個語言的語法中,例如,例如,a[i]下標i不是可選的。因此需要區分單詞和元符號,通過需要時用單引號括起單詞的方式,就可以避免單詞和元符號之間的混淆。例如描述簡單表達式生成式的EBNF范式:
::= {(+|-)}
::= {(* | / )}
::= " ( "" ) " | 名字 | 數字
2.2.3 語法圖
語法圖是另一種表示文法的常見方式,對應于每個非終結符有一個子圖,圖中每條路徑對應于該非終結符的一個生成式,路徑上的是生成式右端的終結符和非終結符。終結符用弧形框表示,非終結符用矩形框表示。上述簡單表達式文法可表示為圖2.1的形式。
圖2.1 簡單表達式語法圖
2.3 標識符、關鍵字及分隔符
2.3.1 標識符
標識符是用來標識用戶定義的常量、變量、數據類型和函數等名字的符號。C語言規定,標識符由字母、數字和下劃線組成,但首字符必須是字母或下劃線,字母要區分大小寫。標識符的語法規則可用下述BNF范式描述,語法圖可表示為圖2-2的形式。
::= (a|b|c|…|z|A|B|…|Z|_ )
::= (0|1|2|…|9|a|b|c|…|z|A|B|…|Z|_ )
標識符的EBNF范式為:
::= (a|b|c|…|z|A|B|…|Z|_ ){0|1|2|…|9|a|b|c|…|z|A|B|…|Z|_ }
圖2.2 標識符的語法圖
下面是一些合法的標識符:
K _id x_coord time1
但以下的表示均不是標識符:
20_sum (不能以數字開頭)
not#me (特殊符號#不是組成字符)
創建標識符是為了對程序中的對象進行唯一地命名,不能使用類似double和if這樣的C語言關鍵字為自己的對象命名,同時也要避免使用C語言程序庫中函數和常量的名稱,例如scanf和sin。
C語法規定,一個標識符所包含的字符個數(即長度)不限,但能被編譯程序識別的那一部分字符的個數稱為標識符的有效長度。早期有些C語言版本規定標識符有效長度為前8個字符,ANSI C 規定為31個字符,而C99增加到63個字符。
良好的編程風格要求程序員選擇有助于記憶且有一定含義的標識符,這樣可增強程序的可讀性和程序的文檔性。
2.3.2 關鍵字
關鍵字也稱作保留字,是被系統賦予特定含義并有專門用途的標識符,不能作為普通標識符,但可以作為宏名,因為所有預處理發生在識別這些關鍵字之前。表2.1列出了標準C定義的關鍵字,其中加“*”號的均是C99標準中新增加的。
表2.2 標準C的關鍵字
此外,有些C編譯系統中還規定了其它的關鍵字,在不同的系統中,附加的關鍵字是不同的。例如Borland C中附加的關鍵字有:asm、cdecl、far、huge、interrupt、near、pascal,其含義參考具體編譯程序的有關資料。
2.3.3 分隔符
分隔符統稱為空白字符,包括空格符、制表符、換行符、換頁符及注釋符,它們在語法上僅起分隔單詞的作用。當程序中兩個相鄰的單詞之間如果不用標識符就不能將兩者區分開時則必須加分隔符(通常用空格符)。為了使程序更加清晰,便于閱讀,任何單詞之間都可以加適當空格符。
例如,變量定義“int x,y;”不能寫成“intx,y;”,因為intx是一個標識符,但可以寫成“int x, y ;”,x和y之間有逗號隔開,所以可加或不加空格。
2.4 基本數據類型
數據是程序處理的對象。數據的取值范圍以及能對該數據施行的運算由該數據的類型決定。數據類型也就是數據的存儲方式,它告知編譯程序為該類型的對象在內存分配多大的空間,數據類型直接反映了一種語言的數據表達能力。
2.4.1 數據類型的分類
C的數據類型非常豐富,包括幾種類型的整型、浮點型、復數類型、指針、數組、結構和聯合等。可以把C的數據類型組織成表2-2所示的類別,分為基本類型、導出類型和空類型(void),其中加“#”號的均是C99標準中新增加的。整型包括所有形式的整型、字符、枚舉和布爾型。基本類型包括整型、浮點型和復數類型,復數類型在復數域中,而整型和浮點型在實數域中。導出類型是由基本類型構造出的,以后將要討論的數組、指針、結構和聯合就屬于導出類型。空類型有三種用途:(1)明確地表示函數不返回任何值;(2)說明函數無參數;(3)說明指針的類型,表示指針類型未確定,每種用途的含義及用法將在后續章節討論。
表2.3 C語言類型與類別
2.4.2 基本類型的名字
C99新增的數據類型在2.9節介紹,枚舉類型在2.10節介紹,本小節介紹所有其它基本類型,即:字符型、整型、浮點型和雙精度浮點型,類型關鍵字分別是char、int、float和double。char變量用于保存8位的ASCII字符,也可存儲8位二進制數。int變量用于保存整型數。float和double變量用于保存帶小數的、非常大或非常小的數。float和double變量之間的差別是所表示的最大數和最小數不同。
除float外,其它三種基本數據類型的前面都可以加類型修飾符,用于改變基本類型的含義,以準確地適應不同情況下的要求。類型修飾符有:signed(有符號)、unsigned(無符號)、short(短的)和long(長的)。signed和unsigned可用于字符型和整型、short和long可用于整型,long還可用于雙精度浮點型。表2.4依據ANSI C標準列舉了這些基本數據類型及它們的長度和取值范圍。
表2.4 基本類型的名字和長度
通常,整型前面的signed可以省略,即對任何整型類型缺省就是有符號的。同樣,當int前面有其它修飾符時,關鍵字int也可以省略。例如,signed int 等價于int和signed,signed short int、short int、signed short和short都是等價的。由于較短的名字容易輸入,所以經常使用短類型名。
2.4.3 字符和數據類型char
char的存儲長度是一字節。signed 和unsigned的區別在于它們的最高位的定義不同。 signed的最高位為符號位,而unsigned沒有符號位,因此,signed char變量的取值范圍為-128~127(在采用補碼的機器上),unsigned char變量的取值范圍為0~255。普通char對象是有符號還是無符號取決于具體機器,但可打印字符總是正的,多數系統中char與signed char是同一類型。
字符數據以ASCII碼存儲在內存的一個字節中,例如,字符"a"被存儲為01100001,這個二進制數的值就是字符"a"的ASCII碼為97。由于字符數據的存儲形式和整數的存儲形式類似,使得字符數據和整型數據之間可以通用。在不要求大整數的情況下,可用字符型代替整型,整型也能用于表示字符。一個字符數據可以以字符形式輸出,也可以以整數形式輸出。同樣,可以按字符格式或整數格式輸出任何整數。
2.4.4 整型類型
通常把int型值存儲在一個機器字中。有些機器的字長為2字節,還有一些機器的字長為4字節,甚至其它的可能。也就是說,int的長度隨機器字長不同而不同。假設機器字長為2字節,那么int變量的取值范圍為-215 ~ 215-1(即-32768~32767),unsigned變量的取值范圍為0 ~ 216-1(即0~65535)。考慮下面的代碼是否正確。
#define BIG 30000
void main(void)
{
int x,y,z;
x=y=BIG;
z=x+y; /* 整數溢出 */
……
}
以上代碼語法上是正確的,然而,在16位機上運行時,會賦給變量z一個錯誤值。表達式的邏輯值是60000,這大于int的最大值,該加法運算要引起整數溢出。當出現整數溢出時,程序會繼續執行,但邏輯結果是錯誤的。因此,程序員必須時刻保證整數表達式的值在合理范圍內。
引入short和long的目的是為了提供各種滿足實際要求的不同長度的整數。int通常反映特定機器的自然大小,一般為2字節或4字節,short對象一般為2字節,long對象一般為4字節。因此,當關心存儲時,用short;當需要較大的整數值時,用long。
整型類型的實際長度和值域等信息記錄在頭文件limit.h中。
2.4.5 浮點類型
ANSI C 只有3種浮點類型:float、double和long double,它們的區別是浮點表示法所占的位數不同,因此它們可表示的數值范圍和精度也不同。精度描述了浮點值中有意義的十進制位的個數,范圍描述了浮點變量能表示的正的最大浮點值和最小浮點值。
一個浮點數N可表示成帶符號的m乘以基b的指數x次冪,即:
在計算機中,用二進制形式分別存儲實數的各個部分。浮點數的存儲區分為3個區域:符號區、指數區和尾數區。圖2.2顯示了一種4字節float數表示法表示的數值-10.0。這種表示法將32位劃分成3個區域:符號區(1b)、指數區(8b)和尾數區(23b),基b=2。尾數的結果應是規格化的,即它的形式為:0.1XX…X,這里X代表0或1。這種形式總是小數點后以1開始。
圖2.2 浮點數的二進制表示法
尾數所占的位數決定值的精度,指數所占的位數決定值的范圍,標準C沒有規定浮點類型的長度和浮點數的格式,由具體實現定義。因此,float的精度大約為7位,范圍約為10-38~10+38。double占8字節存儲空間,其中符號1位,指數11位,尾數52位,其精度大約為15位,范圍約為10-308~10+308。long double的存儲空間通常要多于double,很多編譯器將其處理為double,在某些系統中,它占用10或12字節。由于double對絕大多數計算均已夠用,因此很少使用這種長類型。浮點類型的實際精度和指數范圍等信息在標準頭文件float.h中可查到。
必須要注意的是:在值的可表示范圍內,整數一定是精確表示,而浮點數的表示可能只是近似的。其值與表示法之間的差稱為“可表示誤差”。例如:
float x=4.8; printf("\nx=%0.8f ",x); 結輸出結果為:x = 4.80000019
計算也可能造成可表示誤差。根據數學公式,z*(y/z)的結果應等于y。但計算機計算后的結果會受到浮點數可表示誤差的影響,兩者可能不相等。由此可見,不能使用= =和!=運算符比較float和double類型的數據。可以用兩個數值之差同一個預定的小正數比較的方法解決這個問題。對任何應用程序,均可選出一個比最小可測試數據小一點的小正數epsilon,測試兩個數值之差的絕對值是否小于epsilon。測試大于或小于條件時,也需用epsilon值彌補可表示誤差。
如果浮點數絕對值太大或太小,超出其類型可表示范圍,則產生溢出。在數軸上,一個double浮點數可以表示如圖2-3,其中E區間和F區間是浮點數可表示范圍;C區間和D區間數據絕對值小于最小可表示數值,產生下溢;A區間和B區間數據絕對值大于最大可表示數值,產生上溢。
圖2.3 double型數在數軸上的表示
下溢時,有些系統保存一個非規則化數值,即指數域全為0,尾數域非0,有些系統將其簡單地用0表示。上溢后,用稱為“無窮大”的特殊位模式表示,即指數域全為1,尾數域0。有些系統中將輸出+Infinity或-Infinity表示上溢的數據;在其它系統中,上溢數是一個指數非常大的數值。程序員必須能識別本地編譯器和系統的上溢和下溢值,能識別并修正造成溢出的錯誤運算。
2.5 常量與變量
數據是程序處理的對象,分為常量和變量兩種。常量是程序執行期間其值保持不變的數據,變量是程序執行期間其值可以改變的數據。每個數據對象,不管是常量還是變量,都有確定的類型和它相聯系。常量有文字常量和符號常量兩種表示形式。文字常量就是在代碼中使用文字書寫的,例如3.0是一個double文字常量,C語言中每一種類型的數值都可以書寫文字常量。符號常量指的是用標識符賦予名稱的常量。
2.5.1 文字常量
C有4種類型的常量:整型、浮點型、字符型和字符串型。常量的數值和類型從其文字書寫格式即可判別。下面介紹前述各種基本類型常量的書寫格式,C99中新增的復數浮點型、寬字符型和寬字符串型常量的表示將在2.9節介紹。
1. 整型常量
整型常量可以用十進制、八進制或十六進制書寫。三種不同進制通過前綴字符加以區分:前綴為0時,是八進制;前綴為0x或0X時,是十六進制;無前綴時,是十進制。例如,十進制整數31可以寫成八進制數037,也可以寫成十六進制數0x1f或0X1F。
整型常量可以帶有后綴,用以指定其類型:
● 字母u或U表示unsigned
● 字母l或L表示long
● 字母ul或UL表示unsigned long
● 字母ll或LL表示long long (C99)
● 字母ull或ULL表示unsigned long long (C99)
● 無后綴時,表示int
后綴字母大小寫任意,小寫字母l很容易和數字1混淆,應避免使用。例如,0XFUL是一個unsigned long常量,其值等于十進制數15。如果不發生溢出,整型常量的值總是非負數。如果前面出現負號,則是對常量使用的一元運算符,而不是常量的一部分。
當常量值超出指定類型的范圍時,其實際類型取決于數值大小、前綴、后綴和C語言實現確定的類型表示精度,確定類型的規則很復雜,在標準化前的C語言、C89和C99中各不相同。
2. 浮點型常量
浮點型常量有兩種表示方式。第一種是通常的帶小數點的十進制數形式,任何包含小數點的數均為浮點表示法,既可以小數點開頭,也可以小數點結尾,如23.7,14.,.126等。第二種是指數形式,即科學計數法,將指數部分跟在尾數部分后面。尾數部分的書寫規則與第一種相同,但可以沒有小數點,指數部分由一個字母e或E、一個可選的符號+或-(缺省為+)和一個整數n組成,即用e±n代表10±n。如45e-3表示4510-3,.15e5表示 0.15105。
同整型一樣,可以使用后綴來指定其類型。在沒有后綴時類型為double,后綴f或F指定float常量,后綴l或L指定long double常量。
下面是一些合法和非法浮點常量的表示。
合 法 非 法
1.f E+10
1.2e-123L 10e1.5
10E10L 1.2eF
3. 字符常量
字符常量寫成用一對單引號括住單個字符的形式:
"字符"
這對單引號(" " )是字符常量的標志,稱為定界符。字符常量是一個整數,其值為該字符在ASCII字符集中的字符碼。例如,字符"0"的值為48,與數值0沒有關系。
括在單引號內的字符有兩類,一類是字符集中除單引號(" )和反斜線(\)之外的圖形符號,如"1","*"," ["等。另一類是轉義序列,它是以反斜線開頭的一個特殊的字符序列,代表某個字符,如"\n"表示換行符(字符碼為10)。表2-4是常用的轉義序列及其表示的字符。
表2.5 轉義序列
轉義序列有兩種形式,一種是“字符轉義序列”,即反斜線后面跟一個圖形符號,用于表示字符集中的非圖形符號和一些特殊的圖形字符。說明如下:
(1) 單引號(" )和反斜線( \ )雖然是圖形符號,但作為字符常量時必須用轉義序列。如"\"和 " \\"是合法的,而 """ 和 "\" 是非法的。
(2) 雙引號(")作為字符常量時既可用圖形符號也可用轉義序列表示。如"""和"\""均合法。
(3) 字符常量"\0"表示其值為0的字符,稱為空字符,即不引起任何控制動作,也不是一個可顯示字符,注意它不同于空格符,空格符的值為32。"\0"通常用于表示一個字符串結束。用"\0"來代替0,是為了在某些表達式中強調字符的性質。
(4) "\?"在少數情況下,例如可能與三字符序列混淆時用于取代問號。例如,如果字符串中要包含將被替換的三字符序列,則至少要將其中一個字符用轉義序列表示。因此,字符串常量"What?\?= "實際表示包含字符What??=的字符串,而字符串常量"What??= "將被替換成"What#",實際表示包含字符What# 的字符串,
例2.4 轉義序列的應用
#include
void main(void)
{
printf("\n\\n causes \na line feed to occur");
printf("\n\\\"causes a double quote (\") to be printed");
printf("\n\\a causes the bell,or beep, to sound\a");
printf("\n\\t can be used to align some numbers to tab");
printf("columns \n\t1\t2\t3\n\t4\t5\t6");
}
程序運行結果為:
\n causes
a line feed to occur
\"causes a double quote (") to be printed
\a causes the bell,or beep, to sound
\t can be used to align some numbers to tab columns
1 2 3
4 5 6
轉義序列的另一種是“數字轉義序列”,即反斜線后面跟一個字符的八進制或十六進制字符碼,即\ooo或\xhh。ooo表示1~3個八進制數字,hh表示1~2個十六進制數字,x是十六進制前綴。例如,"A"、"\101" 和"\x41" 均表示字符A; "t"、"\11"、"\011"、"\x9"和"\x09"均表示水平制表符。使用數字轉義序列時注意以下兩點:
(1)使用數字轉義序列時可能依賴于字符編碼方式,因此是不可移植的。最好把轉義符隱藏在宏定義中,便于修改。
#define EOT "\004"
#define ACK "\006"
#define NAK "\004"
(2)數字轉義序列的語法是獨特的,八進制轉義序列在用完3個八進制位之后或遇到第一個非八進制位時終止,因此字符串〞\0111〞包含兩個字符\011和1,字符串〞\090〞包含三個字符\0、9和0。十六進制轉義序列中的十六進制位超過2時,編譯出錯,這時為了終止十六進制轉義,可以把字符串分段。
"\xabc" /* 出錯 */
"\xa""bc" /* 這個字符串包含3個字符 */
4. 字符串常量
字符串常量寫成用一對雙引號括住0至多個字符的形式:
"字符序列"
這對雙引號是字符串的定界符,不是字符串的組成部分。字符串的組成字符可以是圖形符號也可以是轉義序列。例如:
"I am a string\n" /* 包含14個字符的字符串,\n 是換行符 */
"" /* 包含0個字符的空字符串,兩個相鄰的雙引號,其間無空格 */
字符串中的單引號可以用圖形符號表示,但雙引號和反斜線必須用轉義序列表示。例如:
"3"40\"" /* 表示5個字符的字符串:3"40" */
"c:\tc" /* 表示4個字符的字符串,\t是水平制表符 */
"c:\\tc" /* 表示5個字符的字符串:c:\tc */
C的語法規定,在程序中書寫字符串時不能直接中途換行。如
"Hello,
how are you"
是非法的。如何將一個較長的字符串寫成多行?可以用行連接和字符串連接兩種方法。行連接的方法是:在前一行的末尾輸入反斜線(\)再換行,這里反斜線是續行符,可以將多行合并成一行。例如:
"Hello,\
how are you" /* 換行后應緊靠行首,等于"Hello,how are you" */
字符串連接的方法是:將字符串分段,分段后的每個字符串用雙引號括起來。編譯程序會自動將它們連接成一個字符串。例如:
"Hello, "
"how are you" /* 換行后不必緊靠行首,等于"Hello,how are you" */
字符串常量就是字符數組,即用一個字符數組來存放一個字符串。在機內存儲字符串時,系統會自動在其末尾添加一個空字符"\0"作為字符串的結束標志,故字符串的存儲長度比字符串的實際長度大1。這種表示方法使程序在處理字符串時能確定字符串的長度。例如字符串"world"的實際長度是5個字符,其存儲長度為6字節,它的機內表示是:
請仔細區分"A"與"A"的區別:"A"是一個字符常量,實際上是一個值為字符碼的整數;"A"是一個字符串常量,實際上是一個包含字符"A"和"\0"的字符數組。因此,字符常量與只包含一個字符的字符串是完全不同的。
2.5.2 符號常量
一個符號常量就是一個標識符,是給程序中經常使用的文字常量定義的名字。使用符號常量與使用文字常量相比可以減少麻煩和預防錯誤。如果文字常量的精度位數很長,類似的數值,或者常量將在以后更改,則更應該使用符號常量。具有一定意義的名字還可以增強程序的可讀性。C語言中有三種定義符號常量的方法:
(1) 用#define指令定義一個符號常量
(2) 用const聲明語句定義一個符號常量
(3) 用枚舉類型定義一組符號常量(在2.10節介紹)
1.用#define定義符號常量
#define是一種編譯預處理指令(詳細用法參見第6章),用它定義符號常量的語法格式為:
#define 標識符 常量
標識符就是符號常量的名字,它代表后面的常量值。此后,所有在程序中出現的該標識符,都用對應的常量替換,這種替換在編譯之前進行。#define指令通常放在文件頂端。
例2.5 打印華氏和攝氏溫度對照表,溫度轉換公式為:℃=(5/9)(℉-32)。
#include
#define LOWER 0 /* 表的下限 */
#define UPPER 300 /* 表的上限 */
#define STEP 20 /* 步長 */
/* 打印華氏和攝氏溫度對照表 */
void main(void)
{
int fahr;
for(fahr=LOWER;fahr
第二篇: c語言程序設計心得體會
c語言程序設計心得體會-心得體會范文
二十一世紀是計算機的世紀,是一個全新的世紀,計算機正逐步入侵我們的生活。剛開始接觸計算機的時候感覺很新奇,那時覺得計算機很神秘,于是就產生了以后一定要熟練掌控計算機的念頭。懷著這個愿望,我選擇了計算機科學與技術為專業,有點興奮又有點擔憂,興奮的是以后可以經常接觸和了解計算機了,擔憂的是我幾乎沒有任何基礎,怕跟不上大家的步伐。有死黨說我杞人憂天,結果證實我憂得不無道理。依然清楚地記得第一學期的上機課,每次上機老師都計分,所以經常手忙腳亂,用慘不忍睹來形容是最適合不過了。
緊張的一個學期過后,我們迎來了c語言的學習和一位風趣博學的老師。雖然剛開始學習c語言的時候大家都一籌莫展,但在老師的鼓勵和教育下一步步地往前邁,很令人欣慰。在這之后的學習中仍然困難重重,然而堅持到底就是勝利這個堅定的信念激勵著我們勇往直前。c語言課本的學習總算結束了,多么崎嶇的一條學習之路。
大學的教育模式和中學有很大不同,從平常的課程安排和教學就可以知道,但是獨立完成課程設計和寫論文這種任務對我們來說無疑是一個很大的挑戰。十七周開始進行課程設計,老師要求我們寫一個計算器的程序,起初大家都被難倒了,然后開始一步步地摸索,先查找有關資料,畫計算器的圖形,寫了好長一段程序才把圖形搞定,可老師一看都不滿意,要求我們用循環來做,師令如山,不得不聽從,改吧,這一改又讓大家死了好多腦細胞,感覺有點殘忍。
完成了計算器的圖形很有成就感,畢竟六月天坐在機子前不是令人愉快的事。接下來要進行計算器內部運算程序的設計,說實話,我根本就不知道要做,更不清楚如何著手,不是我妄自菲薄,獨立完成這個程序設計根本就是不可能的事,可想而知只能尋求幫助了,但這個程序不是輕而易舉就能完成的。有些積極的同學從網上搜索了好多有關這方面的資料,拼拼湊湊,進行了多次討論,終于完成了這部分的設計,在同學的互相幫助下,大多數人都完成了最重要的一部分程序設計。
接下來就是用循環語句使按鍵上的數字有閃爍的功能,這個因為之前老師有過提點,所以相對簡單一些。
完成了整個程序設計,這次課程設計就接近尾聲了,不過最后的課程報告著實讓我們苦惱了一兩天。小小的抱怨一下應該沒關系吧。
整個課程設計終于完成了,完成的好辛苦,好艱難,但還是順利的完成了。我們付出了很多心血和汗水,但我認為我們得到的更多。如果沒有同學們的互相幫助,這次課程設計就不會這么順利,這種同舟共濟的團隊精神深深震撼了我,《禮記學記》上也有講過:獨學而無友,則孤漏而寡聞。同時有些同學積極的態度讓我感到一絲慚愧,他們所體現出的堅持不懈的品質更令我折服。當然這次程序設計也讓我看到了自己基礎的薄弱。古人有詩云:路漫漫其修遠兮,吾將上下而求索。從今天起我將不斷繼續求索,學習之路也好,人生之路也罷。
總之我受益匪淺。
第三篇: c語言程序設計心得體會
程序設計實習心得體會
通過實訓中心老師的課堂講解與企業化標準的培訓,使我...經過之前的在校學習,對程序設計有了一定的認識與理解。下面XX推送程序設計實習心得體會,歡迎參考! 程序設計實習心得體會 通過兩個星期的折騰,總算把課程設計給完成了,這是一個堅苦而又漫長的過程。是啊,讀了那么多年的書,課程設計可是第一次。看著勞動成果,很欣慰!雖然這不是我一個人做的,是大家的共同努力得來的。 “也許完成不了!”兩個星期前我們這樣說,“完成他沒問題!”一個星期前我們這樣說,現在我們可以說:“哈哈,完成啦”! 剛開始,可以說是沒有頭緒,于是就去圖書館找資料,找到了一些關于畫圖方面的,可是這點小進展遠遠不夠,這只是一個小小的開始。下一步是上網查,找到了些與我們題目相似的,那時我們每個人都很高興,可是那還不是我們要的,于是又上網查到了些有關的函數等等,終于在我們大家的努力下,完成了這個程序。 雖然對著電腦做程序,有點累有點熱,可是當看到勞動成果時,真是別有一番滋味在心頭啊!世上無難事,只怕有心人,的確如此。做完這個程序最大的收獲就是感受到了集體的力量,當然個人的智慧也是很重要的哦! 做完這個課程設計,我們的自信一下子提高了,我們也會寫程序了;盡管對于有些人這種程序會很簡單,可對我們C語言初學者來說,已經很不容易了。這次體驗為以后的學習計算機的我們增強了信心。享受勞動成果的滋味實在很美妙啊! 程序設計實習心得體會 在軟件實驗室經過2個星期Jsp程序設計實訓,從對軟件開發沒有太多經驗的我掌握了更多的軟件開發的方法和技能,收獲頗多。 經過這次理論學習,了解到要做好軟件開發,要求掌握的知識并不是只有編寫代碼方面的,網絡、數據庫、操作系統等的知識對做好項目開發是很有幫助的。這讓我明確了以后學習的目標,在不斷學習軟件開發的同時,也應該繼續其他相關知識的深入學習。 實訓期間經歷的許許多多,給我們帶來了很多很多有實無形的東西,知識、友情以及團隊開發的熱情,快樂無一不包圍著我們。在這我很想感謝幾個人,王璐老師和班上一同參與這次實訓的2位同學。王璐老師對我們備至關心,不論在學習前后,都給予我們關懷不少,并且王璐老師不愧是從事多年軟件開發的專業人士,其深厚的專業技能知識和豐富的經驗令我等欽佩無比。對于我們未出茅廬的大學生而言,遇到的問題多而復雜,詢問有經驗的人,他們或許一句話就能解決問題,而自己就得找資料或上網摸索可能要一兩天,有時甚至絞盡完腦汁都不得其解。用個詞形容,老師的解答如醍醐灌頂,而對我們,則甘之如飴。 實訓這段期間真的好累,盡管實驗室給我們提供了一個相當不錯的上課學習環境,但是整天木木地待在實驗室面對毫無生氣的熒屏,為 code而煩惱,為bug而郁悶,被文檔所包圍,隨程序侵蝕。然而,這就是學習的生活,既選之也則安之。忙碌的生活讓我每天似乎沒有太多的時間去想一些其他的事,耐心的去調試,專注的去編寫更好的算法,沉浸充實和快樂之中。 更重要的是,兩個星期的實訓使我們明白我們所欠缺的不僅僅是技術知識,更重要的是有一種處理事情的方法、面對問題的心態和動手能力。面對完全陌生的新知識、新技術、新項目以及整個IT行業,我們不能畏懼,要以一種積極的心態去面對,分析并抓住關鍵所在。因為我們所即將應對的每一個項目都是既需要實際操作,又需要詳細規劃的。作為組長,協調組員、激勵其他組員和積極參與項目開發是我每天必做的工作。我認為每個人都應該在團隊中做好自己應盡的職責,再優秀的個人也可能完成一個即龐大又復雜的項目工作,我們必需緊密的聯合在一起,以一個團隊的角色來面對。 總之,這次實訓為我們以后從事軟件開發工作打下了良好的專業基礎,為我們的進一步學習提高打下了扎實的理論基礎。 Jsp程序設計實訓在不知不覺中就結束了,我感覺自己還有好多理論知識要學,還有好多的技術不懂呢!這是我大學以來第三次實訓,每次實訓我都感覺學到了好多東西!因為是一天到晚的不間斷訓練,所以記的會非常牢固。不像平時上課,每上兩次的理論課卻只有90分鐘的實際操作。在課上,做的練習小項目都不復雜,可輪到做大的項目實訓并且要求我們獨立完成的時候,,就不那么順手了,一個個技術問題,一個個bug接踵而至!我很感謝學校有實訓這樣的安排,把我們這一學期學的東西系統的集中的進行訓練,對我們計算機水平的提高發揮著重要作用!還要感謝我們的王璐老師,王老師很溫柔,也很有耐心,即使老師講了很多遍的問題,我們不會,老師還是會走進我們給我們耐心的指導。還有,一起完成這個項目的其他小組成員,大家一起討論算法,一起攻克Bug,一起協作,分工明確又彼此幫助,彼此傳授自己的經驗,和諧,積極而又快樂,充實。 經過這次的實訓,我真真確確的感受到了團隊的重要性,身為團隊中的一員,一定要做好團隊個成員之間的溝通,要彼此協作。充分發揮團隊的力量,對于軟件項目開發至關重要。同時,這次實訓也暴露了自己在軟件開發過程中相關理論、技術方面的不足,在以后的學習過程中要重視理論的學習,開發經驗的積累,要多練習,多去嘗試開發一些項目,查漏補缺,積累開發經驗,并且要不斷的去學習一些新技術。 此外,這次實訓給我們營造了一個很好的類似于在公司實習的氛圍,并且整個項目的流程是按照現實中項目的通常情況來安排的,無論是在項目的設計步驟還是日期安排上,不同于以往我們自己做課堂練習時缺乏這樣詳細的設計和計劃,讓我們向更正規的項目實施靠近了一步,并且在真正進入公司工作之前讓我們更熟悉業務流程,使更多的時間可以專注于自己的工作而不是適應從學校到工作環境的轉變上。 總之,經過這次實訓學到了很多,成長了很多,相信在以后的項目開發中這些經驗會讓我受益匪淺的。 程序設計實習心得體會 天下英雄皆我輩,一入江湖立馬催。” 從學校到社會的大環境的轉變,身邊接觸的人也完全換了角色,老師變成老板,同學變成同事,相處之道完全不同在這巨大的轉變中,我們可能彷徨,迷茫,無法馬上適應新的環境。我們也許看不慣企業之間殘酷的競爭,無法忍受同事之間漠不關心的眼神和言語。很多時候覺得自己沒有受到領導重用,所干的只是一些無關重要的雜活,自己的提議或工作不能得到老板的肯定。做不出成績時,會有來自各方面的壓力,老板的眼色同事的嘲諷。而在學校,有同學老師的關心和支持,每日只是上上課,很輕松。常言道:工作一兩年勝過十多年的讀書。兩個月的實習時間雖然不長,但是我從中學到了很多知識,關于做人,做事,做學問。 一、關于工作 1.自學能力 “在大學里學的不是知識,而是一種叫做自學的能力”。參加工作后才能深刻體會這句話的含義。除了英語和計算機操作外,課本上學的理論知識用到的很少很少。我擔任的是文員一職,平時在工作只是打打電話處理文件,幾乎沒用上自己所學的專業知識。而同公司的網站開發人員就大不一樣了。計算機知識日新月異,在一個項目中,他們經常被要求在很短的時間內學會用一種新的計算機語言進行開發設計,他們只能在自己以前的基礎上努力自學盡快掌握知識。在這個信息爆炸的時代,知識更新太快,靠原有的一點知識肯定是不行的。我們必須在工作中勤于動手慢慢琢磨,不斷學習不斷積累。遇到不懂的地方,自己先想方設法解決,實在不行可以虛心請教他人,而沒有自學能力的人遲早要被企業和社會所淘汰。 2.工作辛苦 由于現在還住校,所以每天7點不到就得起床去擠公交車,就算再寒冷再差的天氣,只要不是周末,都得去上班,有時候公司業務繁忙,晚上或周末得加班,那留給個人支配的時間更少。我們必須克制自己,不能隨心所欲地不想上班就不來,而在學校可以睡睡懶覺,實在不想上課的時候可以逃課,自由許多。 每日重復單調繁瑣的工作,時間久了容易厭倦。象我就是每天就是坐著對著電腦打打字,顯得枯燥乏味。但是工作簡單也不能馬虎,你一個小小的錯誤可能會給公司帶來巨大的麻煩或損失。,還是得認真完成。而象同公司的網絡推廣員每天得打電話,口干舌燥先不說,還要受氣,忍受一些電話接聽者不友好的語氣有些甚至說要投訴。如果哪家公司有意向的還得到處奔波去商談。而事實上所有的業務并不是一次就能交易成功的,他們必須具備堅忍不拔的個性,遭遇挫折時絕不能就此放棄,犯錯遭領導責罵時不能賭氣就辭職。 而網站開發人員就經常得喝咖啡熬夜趕項目。一直以來,我們都是依靠父母的收入,而有些人則是大手大腳的花錢。也許工作以后,我們才能體會父母掙錢的來之不易。而且要開始有意識地培養自己的理財能力,我們剛畢業,工資水平普遍不高,除掉房租餐費和日常的開支,有時候寄點錢給父母補貼家用,我們常常所剩無幾,一不留神可能就入不敷出成為月光一族,但此時我們再也不好意思伸手向父母要,因此很多時候我們要合理支配我們手中的這筆少的可憐的錢。 3.同事相處 踏上社會,我們與形形色色的人打交道。由于存在著利益關系,又工作繁忙,很多時候同事不會象同學一樣對你噓寒問暖。而有些同事表面笑臉相迎,背地里卻勾心斗角不擇手段,踩著別人的肩膀不斷地往上爬,因此剛出校門的我們很多時候無法適應。比如我們公司做網絡推廣的同事,他們很注意對自己客戶資料的保密,以防被同事搶去自己的業績,因而關系顯得有點淡漠。但是環境往往會影響一個人的工作態度。 一個冷漠沒有人情味的辦公室,大家就會毫無眷戀之情,有更好的機會他們肯定毫不猶豫的跳槽。他們情緒低落導致工作效率 不高,每天只是在等待著下班,早點回去陪家人。而偶爾的為同事搞一個生日party,生病時的輕輕一句慰問,都有助于營造一個齊樂融融的工作環境。心情好,大家工作開心,有利于公司的發展。在電視上不止一次的看到職場的險惡,公司里同事之間的是非,我想我能做的就是“多工作,少閑話”。且在離畢業走人僅剩的幾個月,更加珍惜與同學之間的相處。 二、總結 我是學管理的,在書本上學過很多套經典管理理論,似乎通俗易懂,但從未付諸實踐過,也許等到真正管理一個公司時,才會體會到難度有多大;我們在老師那里或書本上看到過很多精彩的談判案例,似乎輕而易舉,也許親臨其境或親自上陣才能意識到自己能力的欠缺和知識的匱乏。實習這兩個月期間,我拓寬了視野,增長了見識,體驗到社會競爭的殘酷,而更多的是希望自己在工作中積累各方面的經驗,為將來自己走創業之路做準備。
第四篇: c語言程序設計心得體會
語言程序設計
一、基本信息
課程代碼:【】
課程學分:【】
面向專業:【機械制造】、【微電子】等專業
課程性質:【通識教育基礎】
開課院系:【信息技術學院計算機科學與技術系】
使用教材:主教材【《語言程序設計與運用》 張曉東等 人民郵電出版社年再版】
輔助教材【《程序設計(第四版)》 譚浩強 清華大學出版社 年月】
參考教材【 (美國) . 和 . 機械工業出版社 第版】
網絡資源【維基百科 】
先修課程:【高等數學(下)】、【微型計算機系統 】
二、課程簡介
程序設計是理工類各專業的必修課程之一,重在培養學生邏輯思維能力和面向過程的程序設計方法,為今后進一步學習面向對象程序設計打下基礎。
通過本課程的學習,使學生運用語言的基本語法和語義,并能進行代碼級程序設計;使學生學會從計算機角度思考問題,從而具備解決簡單實際問題的程序設計能力;并能把語言作為程序設計的基本工具使用,為今后學習各種以語言為描述工具的后繼課程打下基礎,也為畢業后可能從事的軟件設計與開發工作打好扎實的基礎。
本課程教案特點之一:不是簡單的按教材上課,而是循序而進,分模塊教案,漸進式引導學生學習語言程序設計。其中第一模塊 簡單程序設計,第二模塊 模塊化程序設計,第三模塊 復雜數據類型程序設計。實踐環節也根據教案模塊分為三大塊,每個模塊均包括三個實驗,共九個實驗。 本課程教案特點之二:注重運用能力的培養,強化實踐教案,通過課內外上機實踐,提高程序設計能力。
三、選課建議
本課程的前導課程是理解計算機系統簡況的課程,例如《計算機導論》。本課程是各種課程設計中需要使用的程序設計工具,更是用來精確地說明有關概念和方法的描述工具。本課程也是面向過程的程序方法的代表課程,更為今后進一步學習面向對象程序設計打下基礎。
四、課程與培養學生能力的關聯性
自主學習
表達溝通
專業能力
盡責抗壓
協同創新
服務關愛
信息運用
國際視野
軟件開發
程序調試
撰寫技術文檔
軟件測試
五、課程學習目標
本課程著重培養學生閱讀程序或程序模塊的基本能力,按照指定的算法和數據結構設計較簡單的程序或程序模塊的能力。通過本課程的學習,使學生:
()運用語言的基本語法規則和語義
理解各種類型的數據在程序設計中的作用,能正確地定義各種類型的變量,運用常用的數據類型和數據存貯類型,能正確地書寫各種類型的常量。理解各種類型語句的執行效果,能正確地使用各種語句,以及各種嵌套的控制結構描述計算的過程。
()具有一定的閱讀程序的能力
能理解給定的程序或程序段中所描述的數據結構及算法的設計思路,汲取經驗。
()能進行簡單的代碼級的程序設計
能按以一定方式包括自然語言、偽代碼和流程圖給出的設計要求,編寫語法和語義都正確的語言源程序或函數定義。理解并使用結構化和模塊化的程序設計方法解決簡單實際問題。
()具有一定的上機操作能力
熟練運用一種語言開發環境的運用,如;熟練運用源程序的編輯、編譯和連接等各階段的操作步驟,能生成小規模的源程序對應的可執行程序。初步理解并能運用基本的程序調試方法調試程序,解決程序邏輯方面的問題。
六、課程內容
第章 概論
理解程序設計語言在計算機系統中的地位和作用;語言基本特點和發展簡況;源程序和可執行程序;編譯系統的作用。
理解源程序的結構;源程序編輯、編譯、連接和執行等上機操作過程;源程序的語法錯誤和邏輯錯誤。
本章重點是以一個簡單計算問題的簡單源程序為例,介紹源程序的結構、及從源程序到可執行程序的處理全過程。
第章 算術類型數據
理解常量、數據類型及變量的概念;各種數據類型的值范圍和內部存貯格式;算術類型數據的輸入和輸出,常用庫函數。
熟練運用常量的原形式;常用基本數據類型的變量定義。
本章重點是要注意各種不同類型的變量和常量的作用以及它們的區別;設計程序的過程中選擇數據類型的一般方法。
第章 基本運算和表達式
理解基本運算的屬性包括功能、目數、優先級、結合性、副作用、可截斷性;運算執行時的自動類型轉換;數值計算表達式;判斷情況的表達式;條件表達式。
熟練運用算術運算( * );賦值運算( θ );關系運算( < < > > );邏輯運算( ! );位運算(> ~ ^ )。
本章重點注意各種不同基本運算的功能,以及對參加運算的數據的類型要求。特別注意:
()算術常規轉換和賦值轉換這二個自動類型轉換規則的效果,以及對計算結果的影響。
()增減運算的副作用。
()邏輯與、邏輯或運算的可截斷性。
()表示的真假規則,包括關系運算及邏輯運算的結果類型和結果值,能以值的計算和情況的判斷為例,結合表達式展示基本運算的作用和各種特性。
第章 算法與語句
理解語句和流程控制結構概述。理解語言語句的類型。運用常用基本算法,基本語句包括表達式語句、復合語句、空語句;選擇結構語句;循環結構語句等解決具體問題。
熟練運用和語句、語句、和語句設計程序,及上述語句的執行流程和功能;循環的嵌套的運用。
本章重點是表達式與語句的區別。條件嵌套的匹配;、語句與語句的比較;尤其是語句的執行流程、計數型循環和條件型循環語句的不同設計、語句的綜合運用。
教案建議以選擇為重點,分析語句的執行流程;重視對情況進行判斷的表達式的構造,進一步熟練地使用各種關系運算和邏輯運算等解決具體問題。
第章 數組類型
熟練運用一維數組的定義及引用;數值型數組的輸入輸出基本處理;字符數組、字符串存貯格式及字符串的輸入、輸出;
運用數組的典型處理解決具體問題。,如:求數組的最大(小)值、均值,順序查找,對分查找,選擇交換排序,冒泡排序等;字符串的典型處理,如求串長,字符串復制、連接,字符串的字典次序比較等。
重點強調數組在程序設計中的廣泛用途、數組變量定義的整體性和處理的個別性;使用循環控制語句,按不同的模式處理數組中的數據,重視下標表達式的構造;以數組處理為背景,綜合使用循環控制和選擇控制語句,尤其是、形式的控制;重視字符串在字符數組中的存貯格式,結合循環和選擇控制語句進行字符串的各種常用處理。
在一維數組的基礎上理解二維數組的定義;數組成員的引用及下標表達式;數據的輸入輸出。理解二維數組的典型處理,如:計算行(列)和、尋找行(列)的最大(小)值、計算上(下)三角陣數據之和等。
注意數組變量定義的整體性和處理的個別性。
本章重點是使用二重循環控制語句,按不同的模式處理數組中的數據,重視下標表達式的構造及運用。
第章 函數
熟練運用函數的定義;函數的調用;函數調用的實現過程。
理解函數調用時的數據傳送機制;函數的原型說明;直接遞歸函數調用的實現過程;變量的存儲類與作用域;預處理程序。運用函數調用規則。
理解直接遞歸函數定義實例,如計算的階乘,對一個正數倒序輸出等。
注意程序設計的模塊化方法;在運用函數定義和函數調用的形式的基礎上,理解函數調用的實現過程;特別強調函數頭的設計要領,通過大量的函數定義訓練,詳細理解直接遞歸函數調用的執行過程;
本章重點是函數定義,函數說明和函數調用的三種格式和用途。注意不同存貯類型的變量的生存期限和影響范圍的區別。
第章 文件和文件管理
理解文件的基本概念。
運用處理文件的常用庫函數:、等。
運用文本文件處理和常用庫函數:、、、等。
運用字節文件處理和常用庫函數:、、、等。
本章重點是要注意文件與變量在數據存貯方面的區別和用途,文件處理的基本模式:打開、各種處理、關閉等。
七、課內實驗名稱及基本要求
序號
實驗名稱
主要內容
實驗時數
實驗類型
備注
簡單程序設計
運用關系運算表示選擇條件,掌握簡單分支語句的功能和使用。
利用語句掌握計數型簡單循環結構的功能和使用。
理解函數在程序設計中的作用,掌握函數的定義方式及調用方式。
設計型
第一模塊
模塊化程序設計
理解嵌套結構概念,掌握選擇嵌套、循環嵌套和復合嵌套結構的使用。
體驗模塊化程序設計過程。綜合利用已經掌握的相關知識進行程序設計。
設計型
第二模塊
復雜數據類型程序設計
掌握一維數組的典型處理。
掌握字符串的典型處理。
掌握文件操作的常用方法及相應語句的應用技巧,用函數的編程方法來處理結構數組。
設計型
第三模塊
總評構成()
()
(、、……)
評價方式
期終閉卷筆試
模塊測驗一 模塊測驗二 實驗及平時成績
與兩項所占比例
八、評價方式與成績(必填項)
本課程采用閉卷筆試方法進行考試。
平時成績權重為: (實驗 課外討論 作業 。
撰寫:甘家寶 系主任審核:
第五篇: c語言程序設計心得體會
程序設計心得體會
【收獲及體會】
通過兩個星期的折騰,總算把課程設計給完成了,這是一個堅苦而又漫長的過程。是啊,讀了那么多年的書,課程設計可是第一次。看著勞動成果,很欣慰!雖然這不是我一個人做的,是大家的共同努力得來的。
也許完成不了!兩個星期前我們這樣說,完成他沒問題!一個星期前我們這樣說,現在我們可以說:哈哈,完成啦!
剛開始,可以說是沒有頭緒,于是就去圖書館找資料,找到了一些關于畫圖方面的,可是這點小進展遠遠不夠,這只是一個小小的開始。下一步是上網查,找到了些與我們題目相似的,那時我們每個人都很高興,可是那還不是我們要的,于是又上網查到了些有關的函數等等,終于在我們大家的努力下,完成了這個程序。
雖然對著電腦做程序,有點累有點熱,可是當看到勞動成果時,真是別有一番滋味在心頭啊!世上無難事,只怕有心人,的確如此。做完這個程序最大的收獲就是感受到了集體的力量,當然個人的智慧也是很重要的哦!
做完這個課程設計,我們的自信一下子提高了,我們也會寫程序了;盡管對于有些人這種程序會很簡單,可對我們c語言初學者來說,已經很不容易了。這次體驗為以后的學習計算機的我們增強了信心。享受勞動成果的滋味實在很美妙啊!
姜*
【收獲及體會】
忙碌了一個多星期,在大家的共同努力下,我們總算將此程序設計出來。盡管不是自己獨立完成,但仍然很高興,因為在設計的過程中,讓我了解到要設計一個大型程序,查找資料是至關重要的,在他人的基礎上,再根據自己所學進行修改與調試,最后設計出自己想要的程序,這過程艱辛,但只要你持之以恒,成功指日可待。
另外平時扎實的基礎也很關鍵,因為如果你平時學得就不怎么樣,那么你面對這么一個比較有難度的程序,你可能會望而卻步,看他人的程序都是個難點,更別說讓你自己去設計。為了解決此。類問題,最好就是多向同學,老師請教,不要怕難為情。尤其是老師,評他們多年的編寫程序的經驗,要解決我們的問題,對他們來說只是small case。
在設計這個程序時,我們剛開始是根據老師給我們提供的資料,用畫圖以及循環將框架設計出來,但是接下去便無從下手了,計算是個關鍵和難點,我們也查了相應的資料,但是它上面用得是坐標來做的,所以為了方便設計程序,我們也改為坐標來做的,這樣計算問題解決了。接下去就是按鍵問題,我們的資料是用鼠標做的,所以關于按鍵這個函數就只能我們自己設計,還好手頭有類似的資料,經過自己的反復嘗試以及與與同學的討論,這也不難,最好還是被我們搞定了。最后就是閃爍,這個設計的方法很死板,都一個類型,就是算坐標比較煩瑣,要確定好它的位置,但是這些只要你自己愿意去嘗試,問題都可以迎刃而解的。
從這一個多星期的設計過程中,我看到了大家的拼搏與努力,也讓我知道團隊精神得難能可貴,盡管一年下來大家不怎么有多大接觸,但是彼此之間的友誼已經在我們心里扎根生底,在遇到問題時,我們會共同進退,每個人都很慷慨不會因為是通過自己艱辛勞動設計出來的東西而不準他人剽竊了。
總之,這次設計程序讓我受益良多,我會好好珍惜像這種難得的機會共11頁,當前第1頁1234567891011
薛**
【收獲及體會】
自從記事以來就聽過了電腦這個高科技,現在終于實現了自己的一個小小愿望成為了計算機系的一名學生,這學期我們學的c語言,以前就聽過這個名字,打開書一看簡直一竅不通,學好這門科簡直就是一個挑戰,課前課后都要把書啃一遍,要不然上課就跟不上,終于學期快結束了,我們有一個課程設計,在兩個星期內,完成一個復雜的程序,我們的題目是做一個計算器,計算器從小就見過但讓我自己設計一個出來就有點困難了。
第一天,我們都按照老師教的畫圖函數畫計算器的外貌,但發現一個一個畫實在是太煩瑣,后來在老師的點撥下,我們采取了for語句,果然很快地畫出來了,接下來的事就是計算了,用什么函數?怎么用?那個上午就坐那發呆,沒有什么新突破,自性心嚴重受到打擊,下午立馬找了份材料到圖書館去研究,還專門找了位高手教我,研究了一個下午終于有眉目了,第三天我們成功地把計算功能搞定了,但還有閃爍的功能沒有搞,這確實是一個問題,這時團結的力量得到了充分的體現,大家齊心協力,有的找資料,有的幫忙改錯,有的&&俗話說:三個臭皮匠頂個諸葛亮。在大家的共同努力下,我們勝利了。
感謝劉金平老師的淳淳教誨,感謝同學的積極幫忙,我的程序終于順利完成了,接下來的就是寫報告收尾了,看著自己的勞動成果寫起報告來特有勁,特有靈感。
很感謝這次的課程設計,它使我更加深刻地體會到多看專業書的重要性,只有掌握了一定量的專業知識才能得心應手地解決諸多問題;另外,做任何事都要有耐心,不要一遇到困難就退縮;在學習和工作中要時刻謹記團結二字,它好比通向成功的鋪路石,不可或缺。
人生的道路是曲折的,但正是因為曲折人生才光彩奪目,在人生的路上,總遇到重重困難,但正是因為困難我們才變的更堅強。今后的路還很長,面對困難,讓我們用行動去俘虜它吧!
毛**
【收獲及體會】
做了兩周的課程設計,有很多的心得體會,更多的是同學之間的合作精神, 這道課程設計花了我們一到兩周的時間,幾人合作,老師的幫忙才完成。我第一次完成這么完美的杰作,心理有一份別樣的滋味,在設計過程中,我付出了很多,也懂得了只有付出才有回報。在這次設計中,我遇到了很多困難,但我沒有向困難低頭,通過查詢資料,虛心向同學、老師請教,才一一得到了解決。我發現平時學的太少了,在今后我首先要把老師在課堂講的弄懂,弄透,在此基礎上利用課余時間多看課外書籍,拓寬知識面。在設計過程中,合作精神必不可少。單憑一個人的力量是不能完成的,畢竟一個人學的很有限。每個人掌握的不同。我相信:態度決定一切,只有努力才有收獲。
第一天上機時對如何編計數器程序一點頭緒都沒有,只是將從圖書館借來的關于如何制作圖形看了一遍,大體上有了了解。
第二天我就著手畫計數器圖形,雖然有些人圖形已畫好,可我沒有著急,畢竟別人花的時間比我多,為了使圖形美觀我不斷運行、調試,直到自己滿意為止。
接下來是星期五,說實話那天蠻難熬的,一天都泡在機房。眼睛有點吃不消,可沒有辦法,將來我們就靠計算機吃飯,再苦再累也要堅持。在已編好的程序上又加了一點精髓,怎樣使字符閃爍,這也是我們幾個人互相討論的結果。共11頁,當前第2頁1234567891011
第二周,通過周末到網上查的資料,和參考資料又加入計數器的靈魂算法。
接下來幾天再將程序不斷完善、加工,計數器程序初露頭角。
最后小結:程序設計過程有如解決一實際問題,從解決實際問題的角度,我們可以這樣來看:首先要了解這個問題的基本要求,即輸入、輸出、完成從輸入到輸出的要求是什么;其次,從問題的要害入手,從前到后的解決問題的每個方面,即從輸入開始入手,著重考慮如何從輸入導出輸出,在這個過程中,可確定所需的變量、數組、函數,然后確定處理過程--算法。可得最后結論。
在程序設計中,可認為也是一個社會,每個一同的社會成員都有不同的想法。程序設計學得的好壞要看你在社會中解決問題的能力的高低,所以不同的人編程的結果是不同的。在這個社會中,經驗與想法最為重要。
左**
【收獲及體會】
c語言課程設計和現代計算機技術的實際應用相結合,是我們在本階段學完理論課程之后對自己該方面的能力的一次很好的檢驗,從開始的算法思路到運行調試后的美觀的圖形界面以及另人興奮的可用程序,都是一個很好的學習和鍛煉的過程。使我們鞏固了原有的理論知識,培養了我們靈活運用和組合集成所學過知識及技能來分析、解決實際問題的能力。使我們體會到自身知識和能力能在實際中的應用和發揮。不但可以激發創新意識,還可以開發創造能力、培養溝通能力。這次實習時間雖然僅有一個星期,但確實使我受益非淺。通過實習我豐富了計算機操作經驗,更加深了對c語言的了解,熟悉了其環境,更增強了對turbo c的使用技巧。
另外,實習中老師對我們進行了細心、耐心的指導,鼓勵我們對程序進行合理改進,培養了我們的創新意識和創新能力。原來是我認為可怕的課程設計,就在種種輔助條件下完成了,心里有說不出的高興。
雖說捧著自己的成果很高興,但成果背后總是付出很大的努力。
一個多禮拜中,我們有過山窮水盡的困惑;有過柳暗花明的驚喜;有過唇槍舌劍的辯論;有過相互鼓勵的安慰。一個多禮拜的時間我們經歷了很多,也收獲了很多。與其說它是體力與腦力的作業,不如說它是合作精神和毅力的考驗。經過這次課程設計,我不僅學到了很多知識和技能,更重要的是我們學會了如何運用所學知識去解決實際問題.
一個多禮拜的掙扎,絞盡腦汁終于帶著麻木的手指和大腦脫出那堆泥潭。現在的心情是如魚得水,干澀的眼睛前方是萬里晴空。終于,所有的努力即將化成了一個個鉛字,打印機滋滋的聲音仿佛已經宛如天籟般悅耳地在耳畔響起。此時此刻,真想把一切拋上天空。高呼:出來了!我的成果即將出來了!,心里也在默默的感慨著:有志者,事竟成,破釜沉舟,百二秦關終歸楚。苦心人,天不負,臥薪嘗膽,三千越甲可吞吳。
----劉**
★點滴感悟★
這兩星期一直在做程序設計,今天終于完成了,心里別提有多興奮。看著這兩禮拜自己的勞動成果,這兩個禮拜發生的種種歷歷在目。
還記得剛開始時,進展可以用一籌莫展來形容,當時真想放棄,可自身不輕易認輸的性格支持著我。
同時,我也清楚地知道21世紀挑戰與機遇并存,沒有足夠的知識儲備必將被時代所拋棄。c語言作為國際上廣泛流行的通用程序設計語言,在計算機的研究和應用中已展現出強大的生命力。c語言兼顧了諸多高級語言的特點,是一種典型的結構化程序設計語言,它處理能力強,使用靈活方便,應用面廣,具有良好的可移植性。雖然我們c語言已有四個月,但一直都重概念、輕實踐,這次設計對我們來說是千載難逢的機會,無論如何都要好好把握。共11頁,當前第3頁1234567891011
心態一轉變,整個人的精神狀態都非同尋常,而且這種程序設計課比一般的課堂教學更具靈活性,它可以始終使人處于興奮之中。
高中的教育模式化傾向太強,整齊劃一的教育模式使學校變成工廠,學生成為統一式模子加工出來的標準件。但大學的程序設計實踐課促進我們的個性充分、健康地發展,最大限度地激發我們的學習熱情和創造熱情。我可以說若你一一欣賞我們的設計,你一定會眼花繚亂,因為它們各種各樣、各有千秋。并且,它無形中促進我們自主學習,使我們對c語言有了更深刻地了解,對程序設計有了更高的操作水平。
通過這次實踐我明白:人是在與他人交往中認識世界,在交流中不斷調整和修正自己的錯誤,從而使之更全面,更透徹。這套運算器的程序都由我們自己互相幫助,經過無數次的修改而成,老師只是輔導。我們知道老師不再是全知全能的權威,不再是知識的來源,他們只是學生的協作和促進者,只有我們才是學習的主人。
請允許我把這種課堂模式稱作放水養魚模式,它很自由,有利與培養我們的獨立思考、求異思維,創新能力,使我們獲得更多的知識和更強的能力。
我覺得這次程序設計課相當成功,學校應多多開展。
孫**
【收獲及體會】
終于挨到了寫收獲和體會的時候了,也就意味著這個課程設計接近了尾聲,的確令人興奮,看著自己的勞動成果,應該是大家,全班同學的共同努力,才有現在的這個程序。
一個星期前的現在,當聽到老師布置給我們的這個題目時,我們都蒙了,這么難的題目我們怎么會啊,我們都表示不滿,抗議,可是一切都是徒勞,我們只能盡我們自己最大的努力把程序給寫出來,雖然知道這一路肯定是異常的艱苦,但豁出去了。
上網查資料是我們邁開的第一步,有類似的題目,可是不一樣,我們失望而回,然后再是去圖書館查,肯定沒有現成的,我們只能查相關的函數,經過兩三天的努力,我們把框架弄出來了,可是還有計算和閃爍這兩大難題擺在我們面前,真的是個難題,自從把框架弄好了以后就沒有進展了,眼看一個星期快過去了,我們那個急啊,可是急也沒有用。29個人總歸可以搞定,這是我們可以堅持到現在的信念,終于工夫不負有心人,我們參照類似程序,改改和添添,終于大功告成,我們歡呼我們雀躍,終于相信我們自己是足夠的偉大。
這一個多星期以來,我們坐在電腦旁,又累又熱,可是當程序做出來了之后,那點累那點苦又算得了什么呢。
當現在敲打這些字的時候,滿足感油然而生,如果有人問我物質和精神哪個更讓人滿足,那答案一定是精神,那種感覺只有自己體會了才能懂。
這可不是大話,原來一直認為這樣一個程序我們是不能完成的,可是現在我會很自信的說:沒有什么可以難倒我們。程序設計提升了我們的自信心,真的是受益匪淺啊。
這當然得感謝劉金平老師和全班同學的幫助。
我們不僅僅是盡力,更是竭盡全力。
這就是年少輕狂的我們什么都敢做,什么都不怕,就算跌倒了,再爬起來,沒有什么大不了。
陸**
【收獲及體會】
二十一世紀是計算機的世紀,是一個全新的世紀,計算機正逐步入侵我們的生活。剛開始接觸計算機的時候感覺很新奇,那時覺得計算機很神秘,于是就產生了以后一定要熟練掌控計算機的念頭。懷著這個愿望,我選擇了計算機科學與技術為專業,有點興奮又有點擔憂,興奮的是以后可以經常接觸和了解計算機了,擔憂的是我幾乎沒有任何基礎,怕跟不上大家的步伐。有死黨說我杞人憂天,結果證實我憂得不無道理。依然清楚地記得第一學期的上機課,每次上機老師都計分,所以經常手忙腳亂,用慘不忍睹來形容是最適合不過了。共11頁,當前第4頁1234567891011
緊張的一個學期過后,我們迎來了c語言的學習和一位風趣博學的老師。雖然剛開始學習c語言的時候大家都一籌莫展,但在老師的鼓勵和教育下一步步地往前邁,很令人欣慰。在這之后的學習中仍然困難重重,然而堅持到底就是勝利這個堅定的信念激勵著我們勇往直前。c語言課本的學習總算結束了,多么崎嶇的一條學習之路。
大學的教育模式和中學有很大不同,從平常的課程安排和教學就可以知道,但是獨立完成課程設計和寫論文這種任務對我們來說無疑是一個很大的挑戰。十七周開始進行課程設計,老師要求我們寫一個計算器的程序,起初大家都被難倒了,然后開始一步步地摸索,先查找有關資料,畫計算器的圖形,寫了好長一段程序才把圖形搞定,可老師一看都不滿意,要求我們用循環來做,師令如山,不得不聽從,改吧,這一改又讓大家死了好多腦細胞,感覺有點殘忍。
完成了計算器的圖形很有成就感,畢竟六月天坐在機子前不是令人愉快的事。接下來要進行計算器內部運算程序的設計,說實話,我根本就不知道要做,更不清楚如何著手,不是我妄自菲薄,獨立完成這個程序設計根本就是不可能的事,可想而知只能尋求幫助了,但這個程序不是輕而易舉就能完成的。有些積極的同學從網上搜索了好多有關這方面的資料,拼拼湊湊,進行了多次討論,終于完成了這部分的設計,在同學的互相幫助下,大多數人都完成了最重要的一部分程序設計。
接下來就是用循環語句使按鍵上的數字有閃爍的功能,這個因為之前老師有過提點,所以相對簡單一些。
完成了整個程序設計,這次課程設計就接近尾聲了,不過最后的課程報告著實讓我們苦惱了一兩天。小小的抱怨一下應該沒關系吧。
整個課程設計終于完成了,完成的好辛苦,好艱難,但還是順利的完成了。我們付出了很多心血和汗水,但我認為我們得到的更多。如果沒有同學們的互相幫助,這次課程設計就不會這么順利,這種同舟共濟的團隊精神深深震撼了我,《禮記學記》上也有講過:獨學而無友,則孤漏而寡聞。同時有些同學積極的態度讓我感到一絲慚愧,他們所體現出的堅持不懈的品質更令我折服。當然這次程序設計也讓我看到了自己基礎的薄弱。古人有詩云:路漫漫其修遠兮,吾將上下而求索。從今天起我將不斷繼續求索,學習之路也好,人生之路也罷。
總之我受益匪淺。
戴*
【收獲及體會】
c語言是一門計算機基礎語言,通過這一學期的學習,對于它的一些特點和算法有了一定程度的了解,并能夠做一些中等的題目,但并沒有完全掌握。這兩周的課程設計正是讓我們鞏固以前的知識并在此基礎上能夠有所突破。
這次做的是計算器,對于我來說有一定困難,因為我的c語言基礎并不是很過硬,所以在第一周我的程序并沒有太大的進展,除了一個框架外并無其他任何功能,每天別人在絞盡腦汁想如何做程序的時候,我都會看著自己寫的框架發呆,或者做一些與課程無關的事情,那一個禮拜過的蠻無聊,蠻郁悶的,心情也不是很好。一個禮拜的煎熬終于過去了,終于有了讓我喘息的機會。周末的時候,拿出了網上找到的計算器的程序,靜下心來認真的研究別人的算法,終于初步看懂了那些在我看來深奧的一塌糊涂的語言。第二周又要上機,不過這次情況有所改善,畢竟有了一點小頭緒了,當然趁熱打鐵,把那個程序中有用的部分copy了一下,就變成了自己的計算器程序啦。運行了一下也成功了。雖然程序有的是copy的,外形也不如別人的美觀,可其中包含了我的心血,應該并不算盜用吧。共11頁,當前第5頁1234567891011
c語言是一門較難的語言,我感覺學的蠻累的,尤其是這兩周的課程設計,我更體會到了這一點,雖然我們是在同一條起跑線上學習的,可每個人的能力都是不同的,有人掌握的好,也有人掌握的不是很好。而我屬于后者,因此,在做設計的時候,單單靠我自己的能力是不行的,需要靠大家的幫忙,需要運用集體的智慧,需要大家團結合作。所以,通過兩個禮拜的努力和同學的幫忙,我終于做出了比較傳統的計算器,在此過程中,我體會到了失敗后的失落,同時也體會到了成功后的喜悅,也許在以后的學習生活中我會更加體會到這一點。
吳鋆績
【收獲及體會】
通過這段時間的課程設計,我認識到c語言是一門比較難的課程。需要多花時間上機練習。這次的程序訓練培養了我實際分析問題、編程和動手能力,使我掌握了程序設計的基本技能,提高了我適應實際,實踐編程的能力。
剛開始做這個程序的時候,感到完全無從下手,覺得讓我完成這次程序設計根本就是不可能的,于是開始查閱各種資料以及參考文獻:譚浩強著.c程序設計(第二版).北京:清華大學出版社,1999;徐金梧、楊德斌、徐科著.turboc實用大全.北京:北京機械工業出版社,1996。之后便開始著手寫程序,寫完運行時有很多問題,如輸入的數據總是覆蓋之前的數據,在做按鍵的閃爍時,閃爍后的按鍵不能變回原來的顏色等,后來花了很長時間才解決了這些問題。我的程序有許多值得改進的地方,如可以增加一些函數:cos、sin、ln、sqrt等;在畫界面矩形的時候可以使用for語句。
總的來說,這次程序設計讓我獲益匪淺,對c語言也有了進一步的認識:c語言功能高、表達能力強、使用靈活方便、目標程序效率高。
c語言是在國內外廣泛使用的一種計算機語言,我相信除了以上優點之外還有許多,希望能在以后的學習中有更深入的認識。
周**
【收獲及體會】
我有一個很不好的習慣,對新事物只有三分鐘熱度。剛開始接觸c語言的時候我覺得這東西很好玩,特別是它能編寫一些簡單的游戲程序,我很喜歡玩游戲,但是隨著時間的推移,特別是上c語言的理論課,說實話,真的很無聊啊!就這樣,我漸漸也對她失去了興趣。上課也不聽了。
直到劉老師說我們要做一個c程序的簡單設計---計算器。我當時一聽就傻了,我可是什么有用的東西也沒學到啊!我怎么可以做出這么牛叉的東西出來呢?我肯定要掛了!但是也沒辦法啊,別人都做,我總不能在機房里面傻玩吧?就這樣我開始借課代表的筆記本來看了,其實劉老師已經把一些關鍵的函數告訴了我們,我們只要把它們有機的結合起來,再加一些小細節就行了。我看了幾遍筆記后就基本上把界面搞定了,當然期間我問了幾位同學,也尋求過劉老師的幫助,受益良多。后面的程序有點小難,當然是對我這種菜鳥來說的。但是經過同學的細心耐心的講解,我總算也能在黑暗的道路上曲折前進。直到整個程序寫完的那一刻我才松了一可氣。終于完成了,想想幾天來的認真和辛苦,值啊!畢竟也算是做出來得啊。那種成就感很強啊!
通過這次的設計課我明白了編程員的偉大很不容易。也明白了集體的智慧是偉大的。還有劉老師他總能在我們走投無路的時候雪中送炭!他,亦師亦友!共11頁,當前第6頁1234567891011
王**
當得知要編一計算器的程序時,覺得不是很難,但后來仔細一想似乎要滿足老師的要求并不是那么容易,越想越覺得復雜.當老師給我們上了一節指導課后,我看到了希望.再經過兩個星期的仔細構想,我感到勝利在望.于是興孜餑餑得坐進了機房,手指在鍵盤上不停的跳躍,不一會就一部分寫好了,真的蠻興奮的.于是又開始第二部分的編寫,又好了,當我按下alt+f4+回車時,沒得到我預想的結果,有點意外.于是移動光標上下掃描,好象沒發現任何語法錯誤,我猜可能是結構的順序出了問題,再仔細的將程序看了遍,想了想.結果發現第二部分沒被運行.接下來我對疹下藥,果然有用,這人真是喜啊!在接下來的幾節課我完成了余下的部分,當然不可能一切非常順利,其中的曲曲折折是很難說清楚的.
當寫完了這程序我深深地感到寫程序是一件很有趣的事,給人喜悅,給人快感,給人滿足.其中的感覺真是難以用言語來表達,即使是一個小小的程序運行成功那也要比打游戲打死一個大boss要爽快!總之這一切只有身臨其境才知道.
其次還對同學之間的合作精神深感贊嘆,同學之間的互相幫助精神在這時體現的淋漓浸漬。
蔣*
通過這次的上機練習我還是有那么一點點的小收獲
首先 由于平時沒有太多的上機實驗,我很多的東西都不會弄,有時看別人弄了幾次都不會,真是太悲哀了
第二 就是tc并不象我想的那么簡單,當時我為了一個簡單的閃要問了n多的人
但是到了最后當我會做了才發現原來寫程序還是蠻好玩的
第三 一開始的時候我一做不出來就在那邊發呆或是打游戲,但是當我每運行出一步時,總感覺自己也蠻厲害的,這時就有往下面做的信心了
最后 還是蠻后悔上課沒有認真聽,如果上天能給我一個重來的機會,我估計我還是會比以前認真的,以后學習也一定要認真
徐**
剛開始學習c語言的時候覺得他很無聊,但是隨著不斷的學習還是越來越感興趣了。
通過這次的程序設計,我學到了很多,首先就是能夠更加熟練的使用和深入的了解c語言這門通用的計算機語言,還有就是可以自己編寫程序了,還是很有成就感的。同時還讓我們學會同學之間的相互合作,共同完成一個任務。
c語言是一門深奧的語言,我從一開始的懵懂到現在的有點理解可以說和老師的教導分不開的。雖然俗語說師傅領進門,修行靠自身。但是師傅的作用還是不可取代的。劉老師不僅是我們的老師,還是我們的朋友。和他在一起的時候沒有那種隔閡感,這也是我們能好好學習的基礎吧。不過有時開小差是不可避免的,但也只是偶爾啦。
光書本的知識的確不行,還是要理論聯系實踐才行。因此不斷的練習是必要的,上機實踐更重要。有時理論是對的,但是實踐起來就不行了啊。所以通過這次的程序編寫讓我對c語言產生更大的興趣了,我相信以后會越來越好的。
錢**
在大學以前我從來就沒見過c語言,這東西對我來說是十分陌生的。剛開始學c語言,感到每天都在云里霧里飄著,感覺對這個東西真的好難入手。但學了一段時間后逐漸對c語言有了認識,并能進行簡單操作。現在我們又要開始進行課程設計,我的天空突然徹底black了,阿門!不過我不會放棄,前輩們都說:堅持到底就是勝利!,恩!我也是這么認為的。萬事開頭難,只要我找到方法,我一定可以的,嘿,嘿,嘿!不過我們都知道,我們是一定會成功的,因為我們有我們的太陽,至于是誰呢,我就不說了,大家都知道了,是吧!剛開始編程時,那個error啊,多得已經無法用多來形容了,那是很多啊!于是我開始了漫長而繁瑣的地毯式搜查,我累的地暗天黑都已無所謂,那個瘋狂的人,是我,是我,還是我!海闊憑魚躍,天高任我飛!我曾經花了整整一個上午的時間來弄一個麻煩的閃爍,那做出來后的感覺,就能用一個字來形容,那就是爽,人生最幸福的事也就莫過于此,這小小的成功使我的信心十足,我看到希望了,來西牙!共11頁,當前第7頁1234567891011
于是,我開始了更為艱巨的任務,那就是把整體結構弄出來,我為此都白了少年頭。在我們整個宿舍的團結合作下,終于把框架弄出來了。接下來就應該改錯誤了,隨著一個個錯誤的糾正,終于一個程序浮出了水面!!!我們成功了,高興啊,真高興!通過這次課程設計,我對c語言更有興趣了,我相信以后我一定趕上我們的太陽的。
許**
在老師第一次說,我們的課程設計是一個具有界面操作的計算機時,說實話當時的確沒有底,似乎有一些害怕,應為從沒有與c語言中的圖形函數接觸過,但經過老師的初步介紹圖形函數,了解一部分,更了解了之所以給我們下我們不怎么熟悉的部分,是應為讓我們能夠在其課程設計時充分體會到自己的自學能力,并發揮它,以及在設計過程中的團隊作用,提高自己解決問題能力.
在設計程序時也增長了自己的自己翻閱有關文獻,加強了自己實踐能力.
從接觸c語言,到達了解c語言,是一個過程,是自身學習的過程,熟話說,師傅領進門,修行靠自身.在編寫過程中也認知了自身的不足,這些有的是上課時小漏動,也有是自己容易出錯的地方,在這放面的認知,只有實打時的多練習,也希望老師能在以后的學習生活中多多的能給予指導,這樣我們也可以少走一些彎路,c語言只是人生中的學習的一個小插曲,但讓我認識到要在學習中學習,不斷進步.
最后,謝謝老師在學習中對我的指導.
盛**
計數器是windows的一個附加功能,給使用者帶來極大的方便。通過近兩個星期的課程設計,我完成了一個簡單計數器的程序。雖然其中不乏他人的幫助,但我自己還是收獲頗多。
首先,我學會了利用函數畫矩形,橢圓;用for語言做循環;如何輸出一個多位數,怎樣在閃完之后鍵上的數字不消失;
其次,如何在矩形和橢圓中填充顏色,以及如何定義鍵的閃動;
再次,如何添加運算功能。
c語言是在國內外廣泛使用的一種計算機語言 。語言功能豐富、表達能力強、使用靈活方便、既具有高級語言的優點,又具有低級語言的許多特點,適合編寫系統軟件。同時,我覺得c語言應該是操作和理論相結合的課程,在不斷地編寫中去思考,兩者是不可分割的。我們在編寫一個較大的程序時應該把它分開成幾個小程序來看,這樣會容易得多。
編寫程序需要牢固的理論基礎,同時,上機實踐也是至關重要的一環。想要學好c語言,一定要培養自己認真、塌實、細心的性格。
最后,感謝劉老師對我們的教導。
張*
在剛聽到這個課程設計的題目時,我頓感那時一個無法實現的難題,就光在tc中畫圖,對我來說就難于上青天了,畢竟那個我一無所知;老師上課對于課程設計的講解還能聽懂,不過理論與實踐之間是有鴻溝的。
看著筆記上機,發現始終不能通過編譯,改了又改,還是error,就在我焦頭爛額的時候,身邊一陣清風襲過,熟悉的身影出現在眼前,趕緊舉手求助,老師過來了,只改動了一點點地方,程序就ok了。我寒!!
這人怎么就這么大的差距呢??幾時我才有他那種水平啊!
開始的一周就這樣毫無頭緒的度過了,沒有老師的幫忙修改,根本沒辦法做下去,我不可能總依靠老師,得自己想辦法的。
后來從圖書館和網上找到了一些資料,從中收獲不少,同時在同學的幫助下,逐漸學會了對圖形的操作。后面幾天逐漸完成了計算器的基本界面和功能設計。這其中老師的幫助也是不可或缺的。共11頁,當前第8頁1234567891011
在實踐過程中不但提高了對已知知識的認知度,更令我們掌握了不少新知識。知道了要學的還有很多。在設計程序時也增長了自己的自己翻閱有關文獻,加強了自己實踐能力.
alt+r按下后,千萬不要在意error有多少,平靜的對待,錯誤才是提高的前提。
在上機操作過程中,得到了不少同學的幫助,集體的力量的確很大!但在必要的時候還是得依靠自己!
兩周的時間,挺快!喜怒哀樂,喧鬧后,一切歸于平靜。
當寫完了后,喜悅,快感,滿足,安慰;凝凍的空氣,悶熱的天,流動的汗,平靜中我繼續前進,該學的還有很多很多&&
最后,還得要謝謝劉金平老師及同學在這過程中對我的指導幫助。
錢**
在編寫計算器這個程序過程中,遇到不少麻煩!一開始,就碰到了沒有學過的圖形函數,雖然課上老師反復重復著:畫圖不難的,it’s so easy!但是當自己實際操作時,感覺并不是那么容易。課上筆記拿來上機,發現始終不能通過編譯~改了又改,還是error,那時真的要多郁悶有多郁悶但老師過來,只改動了一點點地方,程序就ok了,說明一個問題:上課記錯東西了~汗
接下來的輸入,顯示,閃爍,都是不小的難題。翻閱了一本又一本參考書,也借鑒了一個類似的計算器程序,并在同學的幫助下,才最終搞定了一個簡單的計算器程序!
現在才發現原來編個程序這么復雜
通過一個學期對c語言的學習,逐漸對寫程序有了興趣,從剛開始的編譯出現n多個error,然后根據提示,可以自己把錯誤改出來,心里有了一點小小的成就感。不僅如此,劉老師上課的風格,也給我留下了深刻的印象,讓我也學到了c程序以外的東西
董**
完成了這次計算器的程序設計,我收獲很多,也體會很多,要學好一門學科,沒有刻苦鉆研的精神是不行的,只有在不斷的嘗試中,不斷經歷失敗,然后又不斷的嘗試才能獲得成功。
要完成一個優秀的程序,必須熟練掌握各種語句的特點及用法,要學會舉一反三,充分實現c程序的靈活性。在平時的學習實踐中,要不斷開動腦筋,活學活用。要發揚團體合作的精神,互幫互助,共同進步。善于發問,善于思考。
剛開始接觸c程序,就覺得有一種似曾相識的感覺,因為以前學過vb。說實話,我對編程挺感興趣,一個程序編寫完成運行成功之后的喜悅真的讓人難忘,就像次的課程設計,一開始畫圖,計算器有許多數字鍵,要一個一個方框的畫很麻煩,我就試著能不能找到一個簡單的方法能一下子畫完。我聯想到了二維數組,每一個方框就好象數組中的每一個元素。于是我就試著用兩個for嵌套的方法,經過反復嘗試,終于成功了,你說的沒錯,當時的感覺真的比游戲打通關了還要好。
在寫程序的過程中,我又碰到了一些難題,比如按鍵的閃爍問題,按鍵不能直接運行的問題,不能連續運行問題,還有數字不能成串顯示問題。其中有些是問你的,有些是我自己解決的。比如連續運行,閃爍做好后,我發現每次運行只能按一個數字,按第二個數字的時候就跳出了,后來我想到了在switch之前加for的辦法,這樣就可以用循環的辦法達到我想達到的目的。至于數字成串問題,其實我是不成功的,因為計算器數字顯示從顯示條的右邊開始,而我的是從左邊開始。我在switch前的for前給b附值為0,然后在最后一個case后寫b++,再把每一個case中數字輸出的橫坐標都寫成140+b*10,這樣,我就達到了成串輸出的目的。共11頁,當前第9頁1234567891011
要學好c程序,光有知識是不夠的,還得有經驗,上機操作的經驗,只有大腦中有了經驗,在碰到問題的時候才有許多解決的方案,然后才能去嘗試。
好象差不多500字了吧?不過我還想說些東西。題目只寫收獲與體會,也沒有強調是做程序設計的收獲與體會哦,那我就寫了。
為什么偏偏讓我重寫啊?不就是在書上抄了一段嘛,你也沒說不能抄書啊,我能想到抄書就說明我對書了解的比別人多,其他人的大發感慨也不見得比我抄書有用吧?寫這個收獲和體會就真的那么重要嗎?你如果仔細看了程序,你會發現有些人的程序基本上是一樣的,就坐標改了一下,這樣算不算要重新做啊?當然,我也有抄的,計算部分是抄的,真的不會,時間又來不及了,我周四要回家了。我也不對你發牢騷了,一句話,做人難,不可能把每一個人都安排的服服帖帖。一個人有人喜歡的同時必有人討厭,當然,我并不是說你,我不討厭你,我挺喜歡你的教學方式。
就到這里吧,好象太多了,也浪費你時間看,不寫了。
朱*
學習c程序這門課一個學期了,這是我們學的第一門專業課,所以作為我這個計算機系的學生來說當然十分重要,老師在第一節課說過,c語言是計算機的基礎,大多數軟件都需要用c語言來編寫,通過一個學期的學習,使我初步掌握了一些關于這門課的知識
這次的課程設計是對我們一個學期來所學的知識的綜合考察,里面涉及到了我們大多數所學知識。記得剛開始學這門課的時候,對這門課充滿了希望,自己有信心學好這門課,但是經過一段時間的學習之后。才發現程序設計并不好學,它既要你有很強的領悟能力,還要你課后的努力,也許是自己之前太有信心學好這門課了吧,中間遇到了很大的瓶頸,一度陷入無休止的煩惱中編程序時沒有一次是成功的,總會遇到很多的error,改完一個又有一個,哎!這時我會想到一句古話天將降大人于斯人也,必先苦其心志,勞其筋骨,餓其體膚,也許以后會有些許光明吧。之后,隨著時間的推移,慢慢掌握了這門課學習的一些竅門,學習起來也比剛開始的時候好了一點,至于編程序嗎還是有錯誤,但比以前少了,呵呵,總讓我看到希望了。這次的課程設計要求我們編一個簡易計算器,剛開始的時候我一頭霧水,丈二摸不著頭腦,不知從哪里下手,后來經過老師和同學的幫助,從最簡單的編框開始,慢慢的到最關鍵的算法,這其中經歷了很多彎路,也犯過了很多錯誤,但是還是一一攻克了,好比紅軍長征兩萬五千里終于到達了終點。看到最后自己編寫出來的計算器感到格外的高興,暫且不說計算器的功能方面吧,但畢竟是自己寫的第一個正式的程序嗎,感到格外的高興。
在編寫程序的過程中受到了其他同學的指點,也許在某些程序方面會和有的同學想類似,另外老師也幫助了很多,一個好的學生離不開一個好老師嗎,雖說我不算一個好學生,但是老師在我編程序過程中也起到了很大的作用,就像劉老師說的一句話一樣革命尚未成功,同志仍需努力,我們在c語言這門課上還會繼續走下去,以后還會經常碰到,我會努力的。
沈*
【收獲及體會】
當我揉著干澀的眼睛,吃力的看者顯示屏,我已經是不耐煩了,而且我含情默默注視著的竟然是那可惡的源程序。我的身體在流汗,我的心在滴血,六月的天寫程序,苦不堪言也......共11頁,當前第10頁1234567891011
顯示是殘酷的,人情是冷暖的,c程序還是要交的,我不得不繼續抗戰于悶熱的機房內,繼續我的夙命。以前叫嚷著中國應試教育的不好,還不是一路走過來了,我只有無奈,這c程序也是如此,認了。
微風試圖撫平我的煩躁,那它在做夢。此刻的我,正如98年的時候喬丹最后時刻持球,哪平靜的了啊。等我的論文完成了,老爺子的球也進了。
言歸正轉,這個程序的完成過程是跌跌撞撞,曲折的。即便沒有紅軍兩萬五,也有個一萬兩千五。不過,咱值!你說為什么?咱學到東西唄。
查書,查資料,請教同學的過程就是我提高的過程,久違的認真又體會了一次。
真正的收獲更多是思想上的,讓我認識程序的復雜,自己的微不足道,學無止境頭一次認識的這么深刻,察覺自己的不足。在這次編程中,同學幫了我很多,我一個人是不能完成的。以后的學習生活真的要踏踏實實,自己的計算機生涯必定是坎坷的,信心受挫了。
【隨想】相比之下,原來籃球是那么好學。
陸*共11頁,當前第11頁1234567891011
第六篇: c語言程序設計心得體會
程序設計心得體會
程序設計心得體會
程序設計心得體會1
忙碌了一個多星期,在大家的共同努力下,我們總算將此程序設計出來。盡管不是自己獨立完成,但仍然很高興,因為在設計的過程中,讓我了解到要設計一個大型程序,查找資料是至關重要的,在他人的基礎上,再根據自己所學進行修改與調試,最后設計出自己想要的程序,這過程艱辛,但只要你持之以恒,成功指日可待。
另外平時扎實的基礎也很關鍵,因為如果你平時學得就不怎么樣,那么你面對這么一個比較有難度的程序,你可能會望而卻步,看他人的程序都是個難點,更別說讓你自己去設計。為了解決此。類問題,最好就是多向同學,老師請教,不要怕難為情。尤其是老師,評他們多年的編寫程序的經驗,要解決我們的問題,對他們來說只是small case。
在設計這個程序時,我們剛開始是根據老師給我們提供的資料,用畫圖以及循環將框架設計出來,但是接下去便無從下手了,計算是個關鍵和難點,我們也查了相應的資料,但是它上面用得是坐標來做的,所以為了方便設計程序,我們也改為坐標來做的,這樣計算問題解決了。接下去就是按鍵問題,我們的資料是用鼠標做的,所以關于按鍵這個函數就只能我們自己設計,還好手頭有類似的資料,經過自己的反復嘗試以及與與同學的討論,這也不難,最好還是被我們搞定了。最后就是閃爍,這個設計的方法很死板,都一個類型,就是算坐標比較煩瑣,要確定好它的位置,但是這些只要你自己愿意去嘗試,問題都可以迎刃而解的。 從這一個多星期的設計過程中,我看到了大家的拼搏與努力,也讓我知道團隊精神得難能可貴,盡管一年下來大家不怎么有多大接觸,但是彼此之間的友誼已經在我們心里扎根生底,在遇到問題時,我們會共同進退,每個人都很慷慨不會因為是通過自己艱辛勞動設計出來的東西而不準他人剽竊了。
總之,這次設計程序讓我受益良多,我會好好珍惜像這種難得的機會。
程序設計心得體會2
windows程序設計也就是基于微軟的windows操作系統而進行的程序設計。你有沒有想過,為什么是基于windows操作系統呢?下面就來解答:windows應用程序需要利用由windows操作系統開放出來公用用程序使用的應用程序接口“API”windows提供了上千種API函數供應用程序使用。
上面說了,windows程序其實就是在非邏輯的使用這些API函數,我這里提到了“非邏輯”三個字,這正是windows程序的精髓,這是一切windows程序運行的方式。非邏輯也就是指程序不是按照事先安排好的順序來進行的,是根據用戶的不同操作或者是其他某些原因一步一步進行的。這種運行方式就叫做“消息驅動”
簡單一點來解釋一下何謂消息驅動,就是指應用程序始終在等待,它絕對不是在等待誰會給它愛它是在等待用戶或者是系統的消息,當接到消息后呢,它會把消息通過DispatchMessage傳遞給窗口函數窗口函數就會對照事先由程序編寫好的消息對照表調用對應的方法來處理消息。這樣就完成一個消息的處理,接下來準備處理下一個消息。
相信一般的朋友都會明白吧,它的作用的就是在接收到WM_DESTROY時呢,通過調用PostQuitMessage讓windows在消息列表中呢在加入另一條消息“WM_QUIT”。當GetMessage函數抓取到WM_QUIT時返回0,其余返回非0值,懂了吧,這下可以退出消息循環了。這就是windows程序設計最基礎的部分了,可以說是核心。
該說一些心得了,我認為學習windows程序設計不要基于某一部分,而要把握住其大局,要有整體觀,有了整體觀對windows程序設計有了一定的了解后在對其各部分下功夫這樣才不會走火入魔就寫到這吧,以后等我水平高些了再寫,希望我沒白費功夫,也希望對你有用。
程序設計心得體會3
c語言課程設計和現代計算機技術的實際應用相結合,是我們在本階段學完理論課程之后對自己該方面的能力的一次很好的檢驗,從開始的算法思路到運行調試后的美觀的圖形界面以及另人興奮的可用程序,都是一個很好的學習和鍛煉的過程。使我們鞏固了原有的理論知識,培養了我們靈活運用和組合集成所學過知識及技能來分析、解決實際問題的’能力。使我們體會到自身知識和能力能在實際中的應用和發揮。不但可以激發創新意識,還可以開發創造能力、培養溝通能力。這次實習時間雖然僅有一個星期,但確實使我受益非淺。通過實習我豐富了計算機操作經驗,更加深了對c語言的了解,熟悉了其環境,更增強了對turbo c的使用技巧。
另外,實習中老師對我們進行了細心、耐心的指導,鼓勵我們對程序進行合理改進,培養了我們的創新意識和創新能力。原來是我認為可怕的課程設計,就在種種輔助條件下完成了,心里有說不出的高興。
雖說捧著自己的成果很高興,但成果背后總是付出很大的努力。
一個多禮拜中,我們有過山窮水盡的困惑;有過柳暗花明的驚喜;有過唇槍舌劍的辯論;有過相互鼓勵的安慰。一個多禮拜的時間我們經歷了很多,也收獲了很多。與其說它是體力與腦力的作業,不如說它是合作精神和毅力的考驗。經過這次課程設計,我不僅學到了很多知識和技能,更重要的是我們學會了如何運用所學知識去解決實際問題.
一個多禮拜的掙扎,絞盡腦汁終于帶著麻木的手指和大腦脫出那堆“泥潭”。現在的心情是如魚得水,干澀的眼睛前方是萬里晴空。終于,所有的努力即將化成了一個個鉛字,打印機“滋滋”的聲音仿佛已經宛如天籟般悅耳地在耳畔響起。此時此刻,真想把一切拋上天空。高呼:“出來了!我的成果即將出來了!”,心里也在默默的感慨著:“有志者,事竟成,破釜沉舟,百二秦關終歸楚。苦心人,天不負,臥薪嘗膽,三千越甲可吞吳。”
程序設計心得體會4
通過兩個星期的折騰,總算把課程設計給完成了,這是一個堅苦而又漫長的過程。是啊,讀了那么多年的書,課程設計可是第一次。看著勞動成果,很欣慰!雖然這不是我一個人做的,是大家的共同努力得來的。
也許完成不了!兩個星期前我們這樣說,完成他沒問題!一個星期前我們這樣說,現在我們可以說:哈哈,完成啦!
剛開始,可以說是沒有頭緒,于是就去圖書館找資料,找到了一些關于畫圖方面的,可是這點小進展遠遠不夠,這只是一個小小的開始。下一步是上網查,找到了些與我們題目相似的,那時我們每個人都很高興,可是那還不是我們要的,于是又上網查到了些有關的函數等等,終于在我們大家的努力下,完成了這個程序。
雖然對著電腦做程序,有點累有點熱,可是當看到勞動成果時,真是別有一番滋味在心頭啊!世上無難事,只怕有心人,的確如此。做完這個程序最大的收獲就是感受到了集體的力量,當然個人的智慧也是很重要的哦!
做完這個課程設計,我們的自信一下子提高了,我們也會寫程序了;盡管對于有些人這種程序會很簡單,可對我們c語言初學者來說,已經很不容易了。這次體驗為以后的學習計算機的我們增強了信心。享受勞動成果的滋味實在很美妙啊!
程序設計心得體會5
做了兩周的課程設計,有很多的心得體會,更多的是同學之間的合作精神, 這道課程設計花了我們一到兩周的時間,幾人合作,老師的幫忙才完成。我第一次完成這么完美的杰作,心理有一份別樣的滋味,在設計過程中,我付出了很多,也懂得了只有付出才有回報。在這次設計中,我遇到了很多困難,但我沒有向困難低頭,通過查詢資料,虛心向同學、老師請教,才一一得到了解決。我發現平時學的太少了,在今后我首先要把老師在課堂講的弄懂,弄透,在此基礎上利用課余時間多看課外書籍,拓寬知識面。在設計過程中,合作精神必不可少。單憑一個人的力量是不能完成的,畢竟一個人學的很有限。每個人掌握的不同。我相信:態度決定一切,只有努力才有收獲。
第一天上機時對如何編計數器程序一點頭緒都沒有,只是將從圖書館借來的關于如何制作圖形看了一遍,大體上有了了解。
第二天我就著手畫計數器圖形,雖然有些人圖形已畫好,可我沒有著急,畢竟別人花的時間比我多,為了使圖形美觀我不斷運行、調試,直到自己滿意為止。
接下來是星期五,說實話那天蠻難熬的,一天都泡在機房。眼睛有點吃不消,可沒有辦法,將來我們就靠計算機吃飯,再苦再累也要堅持。在已編好的程序上又加了一點精髓,怎樣使字符閃爍,這也是我們幾個人互相討論的結果。共11頁,當前第2頁1234567891011 第二周,通過周末到網上查的資料,和參考資料又加入計數器的靈魂算法。
接下來幾天再將程序不斷完善、加工,計數器程序初露頭角。
最后小結:程序設計過程有如解決一實際問題,從解決實際問題的角度,我們可以這樣來看:首先要了解這個問題的基本要求,即輸入、輸出、完成從輸入到輸出的要求是什么;其次,從問題的要害入手,從前到后的解決問題的每個方面,即從輸入開始入手,著重考慮如何從輸
入導出輸出,在這個過程中,可確定所需的變量、數組、函數,然后確定處理過程--算法。可得最后結論。
在程序設計中,可認為也是一個社會,每個一同的社會成員都有不同的想法。程序設計學得的好壞要看你在社會中解決問題的能力的高低,所以不同的人編程的結果是不同的。在這個社會中,經驗與想法最為重要。




