C語言見習報告6篇
C語言是一種計算機程序設計語言,屬高級語言范疇。它既具有高級語言的特點,又具有匯編語言的特點。通過見習做一報告,本文是C語言見習的報告,僅供參考。
C語言見習報告一:
班級:姓名:
實驗名稱:
電話訂餐信息處理
實驗目的:
題目要求:
一個小飯館的生意非常紅火,要想用餐必須提前一天打電話預訂,假設我們是飯館負責接受
電話預訂的服務員,我們需要做些什么呢?首先,需要準備一張大小適當的白紙,等待顧客的電話。李紅最先打進了電話,她預約第2天中午12點用餐,用餐人數5人,服務員在紙上做了如下記錄:“李紅 12點 5人”;接著,劉娜、汪涵、孫杰和趙君分別來了電話,服務員根據他們的要求做了記錄,此時紙上記錄的內容是:
李紅 12點 5人
劉娜 11點 2人
汪涵 11點20分 3人
孫杰 10點30分 5人
趙君 13點20分 6人
孫杰隨后又來電話,將用餐時間推后一個小時,那么記錄的內容也應該做相應的修改。劉娜來用餐以后,可以將其信息從紙上劃去
編寫程序處理電話訂餐的情況
實驗步驟:
首先建立結構體類型,然后函數聲明,編寫主函數,定義函數,調用函數。完成后,對程序進行調試,確定所編寫的程序是否能夠運行。
實驗內容:
#include
#include
#define max 30
struct guest
{ intnum;
char name[40];
char time[20];
int sum;
}guestlink[max];
void insert(int _p);
void inquire(int);
void change(int);
void dele(int _p);
void show(int);
void main()
{ inti;
int count=0;
do
{0
printf("1.......插入\n");
printf("2.......查詢\n");
printf("3.......修改\n");
printf("4.......刪除\n");
printf("5.......顯示\n");
printf("6.......退出\n");
scanf("%d",&i);
switch(i)
{
case 1: insert(&count);break;
case 2: inquire(count);break;
case 3: change(count);break;
case 4: dele(&count);break;
case 5: show(count);break;
case 6:break;
default:printf("輸入錯誤!");break;
}
}while(i!=6);
}
void insert(int _p)
{ inti,number;
if(_p==max)
{ printf("用餐已滿\n");return;}
printf("請輸入編號:");
scanf("%d",&number);
for(i=0;i<_p;i++)
if(guestlink[i].num==number)
{ printf("已有相同的編號");return;}
guestlink[i].num=number;
printf("請輸入姓名:");
scanf("%s",guestlink[i].name);
printf("請輸入人數:");
scanf("%d",&guestlink[i].sum);
printf("請輸入用餐時間:");
scanf("%s",guestlink[i].time);
(_p)++;
}
void inquire(int p)
{ inti,number,flag=1;
printf("請輸入要查詢的編號");
scanf("%d",&number);
for(i=0;i
if(guestlink[i].num==number)
{ printf("姓名:%s",guestlink[i].name);
printf("用餐時間:%s",guestlink[i].time);
printf("人數:%d\n",guestlink[i].sum);
flag=0;
}
if(i>=p&&flag==1) printf("所查詢的編號不存在");
}
void change(int p)
{ inti,number,flag=1;
printf("請輸入要修改的編號");
scanf("%d",&number);
for(i=0;i
if(guestlink[i].num==number)
{ printf("請輸入姓名:");
scanf("%s",guestlink[i].name);
printf("請輸入用餐時間:");
scanf("%s",guestlink[i].time);
printf("請輸入人數:");
scanf("%d",&guestlink[i].sum);
flag=0;
}
if(i>=p&&flag==1) printf("所查詢的編號不存在");
}
void dele(int _p)
{ inti,j,number,flag=1;
printf("請輸入要刪除的編號");
scanf("%d",&number);
for(i=0;i<_p&&flag;i++)
if(guestlink[i].num==number)
{for(j=i;j<_p-1;j++)
guestlink[j]=guestlink[j+1];
flag=0;
(_p)--;
}
if(i>=_p&&flag==1) printf("輸入的編號不存在");
}
void show(int p)
{ inti;
printf("編號 姓名 用餐時間 人數\n ");
for(i=0;i
{ printf("%d",guestlink[i].num);
printf("%8s",guestlink[i].name);
printf("%8s",guestlink[i].time);
printf("%8d\n",guestlink[i].sum);
}
}
實驗結果:
實驗體會:
通過這次實踐讓我覺得用C語言在生活中的應用占有很大的比重,這次編程,讓我體會到了學習C語言的樂趣,以及運用c語言給人們帶來的方便。作為一名初學者,我了解到了計算機語言的神秘性和邏輯性,將算法與數據結構的充分結合,體現了程序的內涵,也同時展現了C語言的深度。也是因為這次實踐的過程,加深了我對c語言的興趣,也意識到學習c語言是需要耐心和細心的。只有透徹的學習,才能有熟練的運用。
C語言見習報告二:
一、實習時間:20_年x月x日—20_年x月x日
二、實習地點:第一微機室
三、實習目的:
1、熟悉我們自己所用的計算機的C語言開發環境,并且能夠熟練掌握,達到錯誤能找到原因并且加以改正。
2、加深對課本理論知識的理解,進一步掌握書中重點、難點實例,鍛煉自己的編寫程序能力和實際應用能力。
3、上機調試程序的過程中,發現錯誤,解決錯誤,保證程序的正確運行,運行結果與給定結果完全相同。
4、學會用書中基本知識解決實際中的一些問題,將書本所學的內容與實際操作相結合,掌握把實際問題轉變為C語言描述的算法的方法,明確思路。將自身的不足與缺陷改掉,養成良好編輯風格
5、培養我們的主觀能動性、溝通、表達能力和團隊合作意識,為我們以后的發展打下基礎。
四、實習內容及方法:
在本次實習中,我們采用了由淺及深、由易到難的實習方法,而且也是按照書本的教學進程內容進行的,同時采取了實際應用與理論相結合的方法,在機房里面實習,一邊理解,思考做題的思路與解法,另一邊就可以馬上進行上機實際操作。這對于我們加深對C語言的理解、操作以及動手能力都有了很大的幫助與提高。
實訓的內容主要分為了七個版塊:
第一版塊:
1、Turbo C運行環境。
了解TC的基本環境,熟悉常用菜單項和快捷鍵:在這一小節中,需要熟練的掌握并應用Turbo C的運行環境,和基本配置。Turbo C是在計算機上廣泛使用的一個C語言開發環境,它具有方便、直觀、易用的界面和豐富的函數庫。它把程序的編輯、編譯、連接和運行等操作去不都集中在一個界面上進行,使用非常方便。并且Turbo C不需要特別安裝,只需要將其拷貝到硬盤上就可以使用了。 為了方便管理用戶的程序文件和維Turbo C2.0的運行環境,客戶應在機子
上建立自己的工作目錄,一邊用來存放自己所需要開發的源程序文件。下面就是建立怎樣自己文件夾,在空白區域內輸入自己所建立的文件夾路徑即可。
2、C程序的編輯、編譯、連接和運行過程。
掌握C程序的運行步驟,初步了解C程序的特點。在Turbo C的運行中,快捷鍵使用非常方便,只需Ctrl+菜單欄中菜單名的首字母即可。
上面是一個程序編譯與鏈接的截屏。第一個Compile to OBJ將源程序編譯為OBJ文件,Make EXE file 編譯連接一次進行,Link EXE file將OBJ文件連接為EXE文件。
3、VC6.0環境的熟悉,自己按照軟件并在軟件中能夠調試簡單的C語言程序。
第二版塊:
1、C語言數據類型:整型、實型、字符型。
C語言的函數類型非常豐富,除了這幾類以外,還有實型、數組、指針、結構體等,在這一小節中,主要了解關于數據類型的定義、用法以及他們的存儲類型,一邊與以后靈活運用。
C語言中還有常量與變量之分,常量是在程序執行過程中其值不變的量。二且在C語言中常量不需要類型說明就可以直接使用,常量的類型是由常量的本身隱含決定的。
2、運算符及表達式。
在C語言中,預算符非常豐富運算靈活,常用的有以下幾個:
(1)算術運算符:+、-、_、/、%(取余)及++(自增)、--(自減)。
(在這里需要注意的是:“/”運算符,在C語言中兩邊都是整數的話,運算結果只取整數部分;“%”他的兩邊都必須是整數才可以運行;“__、--”運用這個運算符時要注意“先用后加(減)、先加(減)后用”的問題)
(2)賦值運算符:=及復合賦值運算符(+=、-=、_=、/=、%=等)。
(在這里需要注意的是“=、==”的區別,要明確用法及所用的地方,“=”它的作用是賦值,“==”它的作用是判斷相等)
(3)逗號運算符:,(對于逗號表達式索要注意的是要明確它所用的地方以及在使用時所要注意的細節)。
了解三種運算符的優先級,掌握三種運算符及相應表達式的應用(詳見附錄)。
第三版塊:在這一節里,我們實習了C語言的三大結構:
1、順序結構:
2、選擇結構:if??else,switch語句。
在這里許啊喲我們學習的很多,因為只要是程序,就脫離不了這個三大結構的范疇。在這個學習里我編寫了
(1)、輸入某年某月某日,判斷這一天是這一年的第幾天?。
(2)、給一個不多于5位的正整數,要求:一、求它是幾位數,二、逆序打印出各位數字。
(3)、某市不同車牌的出租車3公里的起步價和計費分別為:夏利7元,3公里以外,2.1元/公里;富康8元,3公里以外,2.4元/公里;桑塔納9元,3公里以外,2.7元/公里。編程:從鍵盤輸入乘車的車型及行車公里數,輸出應付工資。
源程序減附錄;
經過這幾個程序的練習,讓我聊股的掌握了選擇語句的用法以及精髓,同是這個用法和技巧已經深深的可在了我的腦海里,還有同過這些個程序的編寫,讓我對以前有的絲絲而非的地放完全通透理解,獲益匪淺。
循環結構:while、do-while、for
在循環這一節里,我們主要做了以下程序:
(1)、求200-300之間所有素數,每5個換行。
(2)、猜數字游戲。規則為:輸入一個0-10之間的數字,有5次猜測機會。如果輸入0-4之間的數字,提示“太小了”;如果輸入5-7之間的數字,提示“接近了”;如果輸入9-15之間的數字,提示“太大了”;如果輸入8,提示“correct!”;如果次數超過5次,提示“沒有機會了,退出!”。
(3)、打印輸出如下圖形:(“◇”菱形)
(4)、有1、2、3、4個數字,能組成多少個互不相同且無重復數字的三位數?都是多少?
提示:可填在百位、十位、個位的數字都是1、2、3、4。組成所有的排列后再去掉不滿足條件的排列。
(5)、打印輸出九九乘法表。
我以前就對循環這一節里的內容就理解的比較好,現在做這些題很順利的就做下去了,但在做的同是也會出現以寫小的問題,但這個讓我也更深一步的理解了循環語句的用法、思路以及其中的精華。
總的對這一節來說,使自己更神一步的理解了選擇、過程中需要注意的一些細節問題。
第四版塊:
1、一、二維數組的定義、引用及初始化。初始化:
一維數組:初始化賦值的一般形式為: static 式]={值,值??值}; 其中static表示是靜態存儲類型,態存儲數組和外部存儲數組才可作初始化賦值二維數組:
a.可以只對部分元素賦初值,未賦初值的元素自動取b.如對全部元素賦初值,則第一維的長度可以不給出。2、一、二維數組的應用。
在一維數組的應用中,要與循環嵌套使用,用,但是在這里,嵌套還要是循環的嵌套,因為只有這樣使用才可以使程序更加簡潔、簡便。就像第五題:有一個班4個學生,(1)求每一門課程的平均分; (2)求每一個學生的平均分;
思路:定義一個二維數組,用二重循環輸入這個數組,然后進行相加,在求平均直,最后在用二重循環進行輸出。
循環的用法以及在使用類型說明符 數組名[常量表達 C語言規定只有靜0值。 門課。編程實現如下功能:
在這里,進行了求平均值的過二維數組要與也要與循環嵌套使5程。這里進行了二重循環輸出。
第五版塊:
1、函數的定義和調用
函數可分為庫函數和用戶定義函數兩種。
(1)庫函數
庫函數只不需要用戶自己定義的,只需要在用的時候將其調用出來用就可以了,非常方便,并且C語言有這豐富的函數庫。
(2)用戶定義函數
用戶自己定義的函數,是屬于一個自定義范疇,自己定義的函數不僅要在程序中定義函數本身, 而且在主調函數模塊中還必須對該被調函數進行類型說明,然后才能使用。
2、函數參數和函數值
(1)無 參函數
函數定義、函數說明及函數調用中均不帶參數。 主調函數和被調函數之間不進行參數傳送。 此類函數通常用來完成一組指定的功能,可以返回或不返回函數值。
(2)有參函數
也稱 為帶參函數。在函數定義及函數說明時都有參數, 稱為形式參數(簡稱為形參)。在函數調用時也必須給出參數, 稱為實際參數(簡稱為實參)。 進行函數調用時,主調函數將把實參的值傳送給形參,供被調函數使用。
(1)有返回值函數
此類函數被調用執行完后將向調用者返回一個執行結果, 稱為函數返回值。由用戶定義的這種要返回函數值的函數,必須在函數定義和函數說明中明確返回值的類型。
(2)無返回值函數
此類函數用于完成某項特定的處理任務, 執行完成后不向調用者返回函數值。這類函數類似于其它語言的過程。 由于函數無須返回值,用戶在定義此類函數時可指定它的返回為“空類型”, 空類 型符的類型說明為“void”。
2、函數的嵌套調用和遞歸調用
C語言中不允許作嵌套的函數定義。因此各函數之間是平行的,不存在上一級函數和下一級函數的問題。 但是C語言允許在一個函數的定義中出現對另一個函數的調用。 這樣就出現了函數的嵌套調用。即在被調函數中又調用其它函數。
這以小節內容經過幾個練習題的聯系,讓我掌握到了其中的主要部分,對此也比較的明確。
4、局部變量和全局變量及變量的存儲類別
局部變量:局部變量也稱為內部變量。局部變量是在函數內作定義說明的。其作用域僅限于函數內, 離開該函數后再使用這種變量是非法的。
全局變量:全局變量也稱為外部變量,它是在函數外部定義的變量。 它不屬于哪一個函數,它屬于一個源程序文件。其作用域是整個源程序。在函數中使用全局變量,一般應作全局變量說明。 只有在函數內經過說明的全局變量才能使用。全局變量的說明符為extern。 但在一個函數之前定義的全局變量,在該函數內使用可不再加以說明。
在C語言中,對變量的存儲類型說明有以下四種:auto 自動變量 register 寄存器變量 extern 外部變量 static 靜態變量
在局部變量中所定義的變量,只能在該函數中使用,在函數編輯時,預處理命令下定義的變量屬于全局變量,在每個函數中都可以使用,傳遞參數時,不用傳遞全局變量。
在這里,我主要說的是第二個練習題,它的思想是一個加密算法。思路是:現編寫一個主程序,實現函數調用,在子函數中實現加密算法并且輸出。是將接收的值設置為一個全局變量。就像下面的這個例子:在這里,將所輸入的值進行分解成個、十、百、千位,分別進行加密算法。
加上與第四位對調,第三位與第二位對調。在最后輸出結果。 第六版塊:
1、指針、指針變量的概念
指針的基本概念 在計算機中,所有的數據都是存放在存儲器中的。存儲器中的一個字節稱為一個內存單元, 不同的數據類型所占用的內存單元數不等,如整型量占2個單元,字符量占1個單元等,紹。為了正確地訪問這些內存單元, 必須為每個內存單元編上號。存單元的編號即可準確地找到該內存單元。內存單元的編號也叫做地址。 并且在使用函數在輸入
除以8以后的余數,在將第一位 一般把 在第二章中已有詳細的介 根據一個內
既然在這里進行加密算法,每位上的數6
根據內存單元的編號或地址就可以找到所需的內存單元,所以通常也把這個地址稱為指針。“指針變量”是指取值為地址的變量
2、數組的指針
一個數組是由連續的一塊內存單元組成的。 數組名就是這塊連續內存單元的首地址。一個數組也是由各個數組元素(下標變量) 組成的。每個數組元素按其類型不同占有幾個連續的內存單元。 一個數組元素的首地址也是指它所占有的幾個內存單元的首地址。 一個指針變量既可以指向一個數組,也可以指向一個數組元素, 可把數組名或第一個元素的地址賦予它。如要使指針變量指向第i個元素可以把i元素的首地址賦予它或把數組名加3、指向字符串的指針 返回指針的函數(1)、 字符串指針變量本身是一個變量,串本身是存放在以該首地址為首的一塊連續的內存空間中并以‘結束。字符數組是由于若干個數組元素組成的,它可用來存放整個字符串。(2)、 對字符數組作初始化賦值,必須采用外部類型或靜態類型,串指針變量則無此限制;
(3)、對字符串指針方式 char _ps="C Language";ps="C Language";而對數組方式:static char st[]={"C Language"}char st[20]; st={"C Language"};而只能對字符數組的各元素逐個賦值。3、指針數組及指向指針的指針
指針數組的說明與使用一個數組的元素值為指針則是指針數組。是一組有序的指針的集合。 指針數組的所有元素都必須是具有相同存儲類型和指向相同數據類型的指針變量。
指針數組說明的一般形式為: 類型說明符在指針這一小節,主要是用指針實現:輸入數對換,把最大的數與最后一個數對換。寫3個函數:輸入個數。
在這里進行函數的調用,一個輸入函數,一個操作函數,一個輸出函數。
i賦予它。
而字符
C語言見習報告6篇
C語言是一種計算機程序設計語言,屬高級語言范疇。它既具有高級語言的特點,又具有匯編語言的特點。通過見習做一報告,本文是C語言見習的報告,僅供參考。
C語言見習報告一:
班級:姓名:
實驗名稱:
電話訂餐信息處理
實驗目的:
題目要求:
一個小飯館的生意非常紅火,要想用餐必須提前一天打電話預訂,假設我們是飯館負責接受
電話預訂的服務員,我們需要做些什么呢?首先,需要準備一張大小適當的白紙,等待顧客的電話。李紅最先打進了電話,她預約第2天中午12點用餐,用餐人數5人,服務員在紙上做了如下記錄:“李紅 12點 5人”;接著,劉娜、汪涵、孫杰和趙君分別來了電話,服務員根據他們的要求做了記錄,此時紙上記錄的內容是:
李紅 12點 5人
劉娜 11點 2人
汪涵 11點20分 3人
孫杰 10點30分 5人
趙君 13點20分 6人
孫杰隨后又來電話,將用餐時間推后一個小時,那么記錄的內容也應該做相應的修改。劉娜來用餐以后,可以將其信息從紙上劃去
編寫程序處理電話訂餐的情況
實驗步驟:
首先建立結構體類型,然后函數聲明,編寫主函數,定義函數,調用函數。完成后,對程序進行調試,確定所編寫的程序是否能夠運行。
實驗內容:
#include
#include
#define max 30
struct guest
{ intnum;
char name[40];
char time[20];
int sum;
}guestlink[max];
void insert(int _p);
void inquire(int);
void change(int);
void dele(int _p);
void show(int);
void main()
{ inti;
int count=0;
do
{0
printf("1.......插入\n");
printf("2.......查詢\n");
printf("3.......修改\n");
printf("4.......刪除\n");
printf("5.......顯示\n");
printf("6.......退出\n");
scanf("%d",&i);
switch(i)
{
case 1: insert(&count);break;
case 2: inquire(count);break;
case 3: change(count);break;
case 4: dele(&count);break;
case 5: show(count);break;
case 6:break;
default:printf("輸入錯誤!");break;
}
}while(i!=6);
}
void insert(int _p)
{ inti,number;
if(_p==max)
{ printf("用餐已滿\n");return;}
printf("請輸入編號:");
scanf("%d",&number);
for(i=0;i<_p;i++)
if(guestlink[i].num==number)
{ printf("已有相同的編號");return;}
guestlink[i].num=number;
printf("請輸入姓名:");
scanf("%s",guestlink[i].name);
printf("請輸入人數:");
scanf("%d",&guestlink[i].sum);
printf("請輸入用餐時間:");
scanf("%s",guestlink[i].time);
(_p)++;
}
void inquire(int p)
{ inti,number,flag=1;
printf("請輸入要查詢的編號");
scanf("%d",&number);
for(i=0;i
if(guestlink[i].num==number)
{ printf("姓名:%s",guestlink[i].name);
printf("用餐時間:%s",guestlink[i].time);
printf("人數:%d\n",guestlink[i].sum);
flag=0;
}
if(i>=p&&flag==1) printf("所查詢的編號不存在");
}
void change(int p)
{ inti,number,flag=1;
printf("請輸入要修改的編號");
scanf("%d",&number);
for(i=0;i
if(guestlink[i].num==number)
{ printf("請輸入姓名:");
scanf("%s",guestlink[i].name);
printf("請輸入用餐時間:");
scanf("%s",guestlink[i].time);
printf("請輸入人數:");
scanf("%d",&guestlink[i].sum);
flag=0;
}
if(i>=p&&flag==1) printf("所查詢的編號不存在");
}
void dele(int _p)
{ inti,j,number,flag=1;
printf("請輸入要刪除的編號");
scanf("%d",&number);
for(i=0;i<_p&&flag;i++)
if(guestlink[i].num==number)
{for(j=i;j<_p-1;j++)
guestlink[j]=guestlink[j+1];
flag=0;
(_p)--;
}
if(i>=_p&&flag==1) printf("輸入的編號不存在");
}
void show(int p)
{ inti;
printf("編號 姓名 用餐時間 人數\n ");
for(i=0;i
{ printf("%d",guestlink[i].num);
printf("%8s",guestlink[i].name);
printf("%8s",guestlink[i].time);
printf("%8d\n",guestlink[i].sum);
}
}
實驗結果:
實驗體會:
通過這次實踐讓我覺得用C語言在生活中的應用占有很大的比重,這次編程,讓我體會到了學習C語言的樂趣,以及運用c語言給人們帶來的方便。作為一名初學者,我了解到了計算機語言的神秘性和邏輯性,將算法與數據結構的充分結合,體現了程序的內涵,也同時展現了C語言的深度。也是因為這次實踐的過程,加深了我對c語言的興趣,也意識到學習c語言是需要耐心和細心的。只有透徹的學習,才能有熟練的運用。
C語言見習報告二:
一、實習時間:20_年x月x日—20_年x月x日
二、實習地點:第一微機室
三、實習目的:
1、熟悉我們自己所用的計算機的C語言開發環境,并且能夠熟練掌握,達到錯誤能找到原因并且加以改正。
2、加深對課本理論知識的理解,進一步掌握書中重點、難點實例,鍛煉自己的編寫程序能力和實際應用能力。
3、上機調試程序的過程中,發現錯誤,解決錯誤,保證程序的正確運行,運行結果與給定結果完全相同。
4、學會用書中基本知識解決實際中的一些問題,將書本所學的內容與實際操作相結合,掌握把實際問題轉變為C語言描述的算法的方法,明確思路。將自身的不足與缺陷改掉,養成良好編輯風格
5、培養我們的主觀能動性、溝通、表達能力和團隊合作意識,為我們以后的發展打下基礎。
四、實習內容及方法:
在本次實習中,我們采用了由淺及深、由易到難的實習方法,而且也是按照書本的教學進程內容進行的,同時采取了實際應用與理論相結合的方法,在機房里面實習,一邊理解,思考做題的思路與解法,另一邊就可以馬上進行上機實際操作。這對于我們加深對C語言的理解、操作以及動手能力都有了很大的幫助與提高。
實訓的內容主要分為了七個版塊:
第一版塊:
1、Turbo C運行環境。
了解TC的基本環境,熟悉常用菜單項和快捷鍵:在這一小節中,需要熟練的掌握并應用Turbo C的運行環境,和基本配置。Turbo C是在計算機上廣泛使用的一個C語言開發環境,它具有方便、直觀、易用的界面和豐富的函數庫。它把程序的編輯、編譯、連接和運行等操作去不都集中在一個界面上進行,使用非常方便。并且Turbo C不需要特別安裝,只需要將其拷貝到硬盤上就可以使用了。 為了方便管理用戶的程序文件和維Turbo C2.0的運行環境,客戶應在機子
上建立自己的工作目錄,一邊用來存放自己所需要開發的源程序文件。下面就是建立怎樣自己文件夾,在空白區域內輸入自己所建立的文件夾路徑即可。
2、C程序的編輯、編譯、連接和運行過程。
掌握C程序的運行步驟,初步了解C程序的特點。在Turbo C的運行中,快捷鍵使用非常方便,只需Ctrl+菜單欄中菜單名的首字母即可。
上面是一個程序編譯與鏈接的截屏。第一個Compile to OBJ將源程序編譯為OBJ文件,Make EXE file 編譯連接一次進行,Link EXE file將OBJ文件連接為EXE文件。
3、VC6.0環境的熟悉,自己按照軟件并在軟件中能夠調試簡單的C語言程序。
第二版塊:
1、C語言數據類型:整型、實型、字符型。
C語言的函數類型非常豐富,除了這幾類以外,還有實型、數組、指針、結構體等,在這一小節中,主要了解關于數據類型的定義、用法以及他們的存儲類型,一邊與以后靈活運用。
C語言中還有常量與變量之分,常量是在程序執行過程中其值不變的量。二且在C語言中常量不需要類型說明就可以直接使用,常量的類型是由常量的本身隱含決定的。
2、運算符及表達式。
在C語言中,預算符非常豐富運算靈活,常用的有以下幾個:
(1)算術運算符:+、-、_、/、%(取余)及++(自增)、--(自減)。
(在這里需要注意的是:“/”運算符,在C語言中兩邊都是整數的話,運算結果只取整數部分;“%”他的兩邊都必須是整數才可以運行;“__、--”運用這個運算符時要注意“先用后加(減)、先加(減)后用”的問題)
(2)賦值運算符:=及復合賦值運算符(+=、-=、_=、/=、%=等)。
(在這里需要注意的是“=、==”的區別,要明確用法及所用的地方,“=”它的作用是賦值,“==”它的作用是判斷相等)
(3)逗號運算符:,(對于逗號表達式索要注意的是要明確它所用的地方以及在使用時所要注意的細節)。
了解三種運算符的優先級,掌握三種運算符及相應表達式的應用(詳見附錄)。
第三版塊:在這一節里,我們實習了C語言的三大結構:
1、順序結構:
2、選擇結構:if??else,switch語句。
在這里許啊喲我們學習的很多,因為只要是程序,就脫離不了這個三大結構的范疇。在這個學習里我編寫了
(1)、輸入某年某月某日,判斷這一天是這一年的第幾天?。
(2)、給一個不多于5位的正整數,要求:一、求它是幾位數,二、逆序打印出各位數字。
(3)、某市不同車牌的出租車3公里的起步價和計費分別為:夏利7元,3公里以外,2.1元/公里;富康8元,3公里以外,2.4元/公里;桑塔納9元,3公里以外,2.7元/公里。編程:從鍵盤輸入乘車的車型及行車公里數,輸出應付工資。
源程序減附錄;
經過這幾個程序的練習,讓我聊股的掌握了選擇語句的用法以及精髓,同是這個用法和技巧已經深深的可在了我的腦海里,還有同過這些個程序的編寫,讓我對以前有的絲絲而非的地放完全通透理解,獲益匪淺。
循環結構:while、do-while、for
在循環這一節里,我們主要做了以下程序:
(1)、求200-300之間所有素數,每5個換行。
(2)、猜數字游戲。規則為:輸入一個0-10之間的數字,有5次猜測機會。如果輸入0-4之間的數字,提示“太小了”;如果輸入5-7之間的數字,提示“接近了”;如果輸入9-15之間的數字,提示“太大了”;如果輸入8,提示“correct!”;如果次數超過5次,提示“沒有機會了,退出!”。
(3)、打印輸出如下圖形:(“◇”菱形)
(4)、有1、2、3、4個數字,能組成多少個互不相同且無重復數字的三位數?都是多少?
提示:可填在百位、十位、個位的數字都是1、2、3、4。組成所有的排列后再去掉不滿足條件的排列。
(5)、打印輸出九九乘法表。
我以前就對循環這一節里的內容就理解的比較好,現在做這些題很順利的就做下去了,但在做的同是也會出現以寫小的問題,但這個讓我也更深一步的理解了循環語句的用法、思路以及其中的精華。
總的對這一節來說,使自己更神一步的理解了選擇、過程中需要注意的一些細節問題。
第四版塊:
1、一、二維數組的定義、引用及初始化。初始化:
一維數組:初始化賦值的一般形式為: static 式]={值,值??值}; 其中static表示是靜態存儲類型,態存儲數組和外部存儲數組才可作初始化賦值二維數組:
a.可以只對部分元素賦初值,未賦初值的元素自動取b.如對全部元素賦初值,則第一維的長度可以不給出。2、一、二維數組的應用。
在一維數組的應用中,要與循環嵌套使用,用,但是在這里,嵌套還要是循環的嵌套,因為只有這樣使用才可以使程序更加簡潔、簡便。就像第五題:有一個班4個學生,(1)求每一門課程的平均分; (2)求每一個學生的平均分;
思路:定義一個二維數組,用二重循環輸入這個數組,然后進行相加,在求平均直,最后在用二重循環進行輸出。
循環的用法以及在使用類型說明符 數組名[常量表達 C語言規定只有靜0值。 門課。編程實現如下功能:
在這里,進行了求平均值的過二維數組要與也要與循環嵌套使5程。這里進行了二重循環輸出。
第五版塊:
1、函數的定義和調用
函數可分為庫函數和用戶定義函數兩種。
(1)庫函數
庫函數只不需要用戶自己定義的,只需要在用的時候將其調用出來用就可以了,非常方便,并且C語言有這豐富的函數庫。
(2)用戶定義函數
用戶自己定義的函數,是屬于一個自定義范疇,自己定義的函數不僅要在程序中定義函數本身, 而且在主調函數模塊中還必須對該被調函數進行類型說明,然后才能使用。
2、函數參數和函數值
(1)無 參函數
函數定義、函數說明及函數調用中均不帶參數。 主調函數和被調函數之間不進行參數傳送。 此類函數通常用來完成一組指定的功能,可以返回或不返回函數值。
(2)有參函數
也稱 為帶參函數。在函數定義及函數說明時都有參數, 稱為形式參數(簡稱為形參)。在函數調用時也必須給出參數, 稱為實際參數(簡稱為實參)。 進行函數調用時,主調函數將把實參的值傳送給形參,供被調函數使用。
(1)有返回值函數
此類函數被調用執行完后將向調用者返回一個執行結果, 稱為函數返回值。由用戶定義的這種要返回函數值的函數,必須在函數定義和函數說明中明確返回值的類型。
(2)無返回值函數
此類函數用于完成某項特定的處理任務, 執行完成后不向調用者返回函數值。這類函數類似于其它語言的過程。 由于函數無須返回值,用戶在定義此類函數時可指定它的返回為“空類型”, 空類 型符的類型說明為“void”。
2、函數的嵌套調用和遞歸調用
C語言中不允許作嵌套的函數定義。因此各函數之間是平行的,不存在上一級函數和下一級函數的問題。 但是C語言允許在一個函數的定義中出現對另一個函數的調用。 這樣就出現了函數的嵌套調用。即在被調函數中又調用其它函數。
這以小節內容經過幾個練習題的聯系,讓我掌握到了其中的主要部分,對此也比較的明確。
4、局部變量和全局變量及變量的存儲類別
局部變量:局部變量也稱為內部變量。局部變量是在函數內作定義說明的。其作用域僅限于函數內, 離開該函數后再使用這種變量是非法的。
全局變量:全局變量也稱為外部變量,它是在函數外部定義的變量。 它不屬于哪一個函數,它屬于一個源程序文件。其作用域是整個源程序。在函數中使用全局變量,一般應作全局變量說明。 只有在函數內經過說明的全局變量才能使用。全局變量的說明符為extern。 但在一個函數之前定義的全局變量,在該函數內使用可不再加以說明。
在C語言中,對變量的存儲類型說明有以下四種:auto 自動變量 register 寄存器變量 extern 外部變量 static 靜態變量
在局部變量中所定義的變量,只能在該函數中使用,在函數編輯時,預處理命令下定義的變量屬于全局變量,在每個函數中都可以使用,傳遞參數時,不用傳遞全局變量。
在這里,我主要說的是第二個練習題,它的思想是一個加密算法。思路是:現編寫一個主程序,實現函數調用,在子函數中實現加密算法并且輸出。是將接收的值設置為一個全局變量。就像下面的這個例子:在這里,將所輸入的值進行分解成個、十、百、千位,分別進行加密算法。
加上與第四位對調,第三位與第二位對調。在最后輸出結果。 第六版塊:
1、指針、指針變量的概念
指針的基本概念 在計算機中,所有的數據都是存放在存儲器中的。存儲器中的一個字節稱為一個內存單元, 不同的數據類型所占用的內存單元數不等,如整型量占2個單元,字符量占1個單元等,紹。為了正確地訪問這些內存單元, 必須為每個內存單元編上號。存單元的編號即可準確地找到該內存單元。內存單元的編號也叫做地址。 并且在使用函數在輸入
除以8以后的余數,在將第一位 一般把 在第二章中已有詳細的介 根據一個內
既然在這里進行加密算法,每位上的數6
根據內存單元的編號或地址就可以找到所需的內存單元,所以通常也把這個地址稱為指針?!爸羔樧兞俊笔侵溉≈禐榈刂返淖兞?/p>
2、數組的指針
一個數組是由連續的一塊內存單元組成的。 數組名就是這塊連續內存單元的首地址。一個數組也是由各個數組元素(下標變量) 組成的。每個數組元素按其類型不同占有幾個連續的內存單元。 一個數組元素的首地址也是指它所占有的幾個內存單元的首地址。 一個指針變量既可以指向一個數組,也可以指向一個數組元素, 可把數組名或第一個元素的地址賦予它。如要使指針變量指向第i個元素可以把i元素的首地址賦予它或把數組名加3、指向字符串的指針 返回指針的函數(1)、 字符串指針變量本身是一個變量,串本身是存放在以該首地址為首的一塊連續的內存空間中并以‘結束。字符數組是由于若干個數組元素組成的,它可用來存放整個字符串。(2)、 對字符數組作初始化賦值,必須采用外部類型或靜態類型,串指針變量則無此限制;
(3)、對字符串指針方式 char _ps="C Language";ps="C Language";而對數組方式:static char st[]={"C Language"}char st[20]; st={"C Language"};而只能對字符數組的各元素逐個賦值。3、指針數組及指向指針的指針
指針數組的說明與使用一個數組的元素值為指針則是指針數組。是一組有序的指針的集合。 指針數組的所有元素都必須是具有相同存儲類型和指向相同數據類型的指針變量。
指針數組說明的一般形式為: 類型說明符在指針這一小節,主要是用指針實現:輸入數對換,把最大的數與最后一個數對換。寫3個函數:輸入個數。
在這里進行函數的調用,一個輸入函數,一個操作函數,一個輸出函數。
i賦予它。
而字符\0’作為串的
而對字符可以寫為: char _ps; 不能寫為:
指針數組_數組名[數組長度]
10個整數,將其中最小的數與第一個
10個數;進行處理;輸出10
用于存放字符串的首地址。在這里用數組實現了輸入。
在這里用指針實現了將最小的數與第一個數對換,
把最大的數與最后一個數對換。
在最后進行輸出。 第七版塊:
實訓七屬于一個綜合類型的題目,他要求的比較高,必須在自己王權理解通透了課本知識以后才有可能理解這道題,并且進行修改完善。主要這道題本身是在VC環境下運行的,將其移植到Turbo C環境下運行,這其中牽扯到一些語法不同,在Turbo C中不可以運行,要進行慢慢調試。經過不懈的努力、修改,終于將其成功的在Turbo C環境下可以正常運行了。(詳見附錄)
五、結論 收獲
我的收獲:在本次實習中,我學到了很多實際有用的東西,而且基本上都是在課本上學不到的,并且也在實習中梳理了自己對C語言這門課程所學的所有內容,讓自己對C這門課程有了更進一步的認識,有了一個良好的基礎,為自己的以后打下了堅實基礎。從開頭到現在,所有的內容實習完了,上機實驗是學習程序設計語言必不可少的實踐環節,在 C語言靈活、簡潔中,更需要通過編程的實踐來真正掌握它。
歷時4天的《C語言程序設計》已經結束了,在這幾天編程的過程中感觸頗多,實訓編程的同時暴露出了許多我自身存在的問題,同時也對自身有了很大的提高。
首先,對我以前做題做事非常馬虎的毛病有了很大的改進,通過在這幾天編程的過程中的鍛煉,我現在做題比以前仔細多了,會小心翼翼地去看每一個地方,會仔細地檢查程序的每一個字母、標點,以及每個可能出錯的地方,更會特別仔細,生怕自己一不小心搞錯了,而導致整個程序都無法運行。
其次,在編程的過程當中彌補了我許多知識上的缺陷,弄清楚了我不懂的地方和似是而非的地方,使我及時補上了欠缺,為自己以后的人生道路打下了良好基礎,同時也讓我對每一件事都有了一個好的心態去對待它,更讓自己在編寫程序的過程中每時每刻都處于充足的狀態。
再次,通過幾天綜合實訓編程使我的知識形成了一個完整的框架結構,而不再是零散的知識個體,使我在使用時更加的方便,更加靈活,以前有好多題目要寫十行八行的,還有些地方弄得不是太懂,現在只需要五六行就可以搞定,而且還對于思路特別清晰、明確。
第四,在實習結束后,我對做完的習題檢查比再是一切的走馬觀花,而是仔細核對、認真檢查,和以前相比明顯改善了好多,以前自己對于檢查程序總是沒有耐心,不好好檢查,有問題總是找老師,相對于實習之后來說,有了很大的改善,自己不但可以坐下來耐心檢查,還能夠自己將程序調試成功,這對于現在的我來說是一個明顯的進步。
第五,通過實習改變了我做題時心煩氣燥的習慣,現在做題可以平和靜氣的完成。
第六,通過實習我的自制能力更強了,基本完全可以控制自己,避免外界的干擾,安心地完成自己的工作。
第七,在學習過程中,由于天氣炎熱,心里煩躁,同時也是每天都盯著頻幕看,腦袋都看大了,但是我卻一直堅持了下來,這對于我來說,也是一個非常好的習慣。這同時也是我的一個收獲。
第八,實訓過程中,充分發揮團隊協作精神,共同進步,幫助同學順利完成實訓課程,有困難一起解決,同時也使我在他們身上學到了很多東西。
總之,通過實習使我自身的知識體系得到鞏固、提高以及使團隊工作的能力得到鍛煉。
不足
我的不足:
首先,我的第一個,同時也是一個最大的缺點,自己對于理論知識掌握的還不是很通透,理解的不夠徹底,對于一些問題似似而非,給自己編寫程序的過程中帶來了很大的麻煩。
其次,我不能夠精心的去完成每一個程序,對于每個程序而言,都是馬馬虎虎,只要運行結果是對的,那就可以了。雖然我自己也知道這樣是不好的,但是自己就是不愿意去改,在經過實習之后雖然有所改善,但在我看來,改進的不是很大。
第三,自己做題時還有些馬虎,一些小的細節在編寫程序過程中不注意,只有在編譯連接是才可以發現、對其進行修改,對于一些小程序還不能實現一次就可以完成編譯連接。
第四,做題時自己不能心平氣和的去做。
第五,自己的子宅里不夠強,不能持之以恒的坐在自己的座位上編寫程序,
歇一會就要起來轉轉。
六、致謝
在此,我僅代表我自己,對老師您致以崇高的敬意和深深的感謝,沒有您,就沒有我那么多的收獲,您不辭辛苦,在這炎熱天氣里,放棄您的休息時間來為我們輔導,在輔導過程中,您更是盡心盡力,從來沒有少過一節課,更沒有過遲到早退,對我們是全程陪同,在我們實習中隨時出現問題,隨時解決。只要發現問題,您從來沒有說是不管過,從來沒有煩躁過,對我們提出的問題,也是耐心解決,一邊不懂,接著再講一邊,臉龐流下的汗水,您卻從來沒有在意過。對我們泥更是不計報酬的為我們服務,讓我們有一個好的學習環境,不用為自己遇到問題而煩惱,在這里我想對您說一聲:老師,您辛苦了!請接受您的學子的深深謝意與感激。
在這里,也對學校表示由衷的謝意,感謝學校為我們提供了良好的實習環境,讓我們在這炎熱的天氣里,能夠舒爽的坐在教室里實習,而不用操心任何問題,在這里,對我們學校表示謝意。
C語言見習報告三:
1.課程設計目的
了解基于C語言的軟件開發基本過程與方法,熟悉結構化程序設計的基本方法,了解計算機工作模式,掌握開發一個小型實用系統的基本方法,學會調試一個較長程序的基本方法,養成良好的程序設計習慣和嚴謹的工作態度,初步獲得應用編寫C語言程序來解決實際問題的能力。
2.問題需求分析
根據題目要求,由于要錄入、讀取、保存學生成績信息,因而要實現文件的輸入和輸出功能;要求用戶可以查詢各個學生的成績,并且可以添加學生成績信息等,因而要提供查找和添加功能;另外,還應提供鍵盤式選擇菜單以實現功能選擇。
3.系統設計
3.1數據結構
由于該系統涉及多個學生的成績存儲,因此,定義一個數據結構,用于存儲這些信息?,F僅對學生英語成績、數學成績、C語言成績進行統計管理。 建立以下數據結構:
typedef struct student
{
int no; //存儲學生學號 char name[MAX_NAME]; //存儲學生姓名 double english; //存儲學生英語成績 double math; //存儲學生數學成績 double Programming; //存儲學生C語言成績 double mark_ave; //平均成績 double mark_tot; //總成績
} STUDENT;
3.2總體軟件框架
3.3程序模塊設計
將學生成績管理系統劃分為以下幾個模塊:
1、顯示菜單模塊:用void paint()來實現
2、輸入初始的學生信息:輸入信息包括學生的姓名、學號以及學生的成績等相關信息;用函數void input(STUDENT _data, int _len)來實現此操作。
3、成績輸出模塊:輸出學生的信息以及成績,用函數void output(STUDENT _data, int len)來實現:通過學生的姓名來查看學生的相關成績。
4、排序模塊:用函數void sort(STUDENT _data, int len)來實現
5、成績查詢模塊:用void find(STUDENT _data, int len) 來實現,找到就輸出此學生全部信息。
6、插入模塊:用函數void insert(STUDENT _data, int _len)來實現,插入到合適的位置。
7、保存文件:用函數void save(STUDENT _data, int len)來實現,將信息保存到文件中,再關閉文件。
8、主函數:使用switch條件語句調用主菜單函數,選擇菜單中要選擇對象來執行不同的模塊。
4.編程實現
4.1
4.2將輸入的所有學生成績輸出
4.3成績排序模塊【流程圖】
4.4成績查詢模塊:【流程圖】
4.5成績插入模塊
4.6成績保存模塊
將所有學生的成績信息保存到成績統計表.txt中
4.7主函數【流程圖】
5.系統測試
運行開始:
選擇1輸入成績:
選擇2輸出成績:
選擇3按平均分排序:
選擇4查找(輸入學號1):
選擇5插入新數據:
選擇6保存:
選擇0退出
課程設計是培養學生綜合運用所學知識 ,發現,提出,分析和解決實際問題,鍛煉實踐能力的重要環節,是對我們的實際工作能力的具體訓練和考察過程.隨著科學技術發展的日新月異,當今計算機應用在生活中可以說得是無處不在。因此作為二十一世紀的大學來說掌握程序開發技術是十分重要的,而C語言又是最常見,功能最強大的一種高級語言,因此做好C語言課程設計是十分必要的。 回顧起此次課程設計,至今我們仍感慨頗多,的確,自從拿到題目到完成整個編程,從理論到實踐,在這幾天里,可以學到很多很多的東西,同時不僅可以鞏固了以前所學過的知識,而且學到了很多在書本上所沒有學到過的知識。通過這次課程設計使我們懂得了理論與實際相結合是很重要的,只有理論知識是遠遠不夠的,只有把所學的理論知識與實踐相結合起來,從理論中得出結論,從而提高自己的實際動手能力和獨立思考的能力。在設計的過程中遇到許多問題,可以說得是困難重重。這畢竟是第一次做,難免會遇到過各種各樣的問題,同時在設計的過程中發現了自己的不足之處,對一些前面學過的知識理解得不夠深刻,掌握得不夠牢固。通過這次課程設計之后,我們把前面所學過的知識又重新溫故了一遍。 通過學習《C語言課程設計》使我了解到C語言是一門實踐性很強的課程,以及C語言的基本語法規則.程序設計.以及解題的全過程,加深對C語言的了解,得到程序設計的基本方法和技巧的訓練,從而更加深一步的對知識的了解,真正能使C語言這個強有力的編程工具去解決實際問題。
7.附:關鍵源程序
#include
#include
#include
#define MAXN 35
#define MAX_NAME 256
typedef struct student //學生信息
{
int no;
char name[MAX_NAME];
double english;
double math;
double Programming;
double mark_ave;
double mark_tot;
} STUDENT;
/_---------------顯示信息子程序------------_/
void paint()
{
int i;
system("cls");
printf("%55s\n", "中國地質大學(武漢)學生成績管理系統\n");
for (i=0; i<80;i++)
putchar('=');
putchar('\n');
printf(" 1 輸入信息 2 輸出信息\n");
printf(" 3 按平均分排序 4 按學號查找\n");
printf(" 5 插入 6 保存到文件\n");
printf(" 0 退出\n");
for (i=0;i<=79;i++)
putchar('=');
putchar('\n');
printf("%s\n", "請輸入各操作對應的序號:");
}
/_-----------輸入信息子程序---------_/
void input(STUDENT _data, int _len)
{
int no;
putchar('\n');
printf("%s\n", "請輸入新的記錄,如果需要退出當前菜單請輸入-1.");
printf("%s\n", "格式:\n");
printf("%s\n", "學號 姓名 英語 數學 C語言");
putchar('\n');
scanf("%d", &no);
while(no != -1)
{
data[_len].no = no;
scanf("%s %lf %lf %lf", data[_len].name, &data[_len].english, &data[_len].math,&data[_len].Programming);
data[_len].mark_ave=(data[_len].english+data[_len].math+data[_len].Programming)/3.0;
data[_len].mark_tot=data[_len].english+data[_len].math+data[_len].Programming;
(_len)++;
scanf("%d", &no);
}
}
/_---------------輸出信息子程序---------------_/
void output(STUDENT _data, int len)
{
int i;
system("cls");
printf("%8s", "學號");
printf("%8s", "姓名");
printf("%8s", "英語");
printf("%8s", "數學");
printf("%10s", "C語言");
printf("%12s", "平均分");
printf("%10s", "總分");
putchar('\n');
for (i =0; i < 80; i++)
putchar('=');
putchar('\n');
for (i = 0; i< len; i++)
{
printf("%8d", data[i].no);
printf("%8s", data[i].name);
printf("%8.1lf", data[i].english);
printf("%8.1lf", data[i].math);
printf("%10.1lf", data[i].Programming);
printf("%12.1lf", data[i].mark_ave);
printf("%10.1lf", data[i].mark_tot);
putchar('\n');
}
for (i =0; i < 80; i++)
putchar('=');
putchar('\n');
printf("按回車鍵繼續.");
getchar(); /_存儲enter_/ getchar(); /_存儲輸入內容_/ }
/_--------------排序子程序------------_/
void sort(STUDENT _data, int len)
{
int i,j,k;
STUDENT temp;
for (i=0; i
{
for (k=i, j=i+1; j
if (data[k].mark_ave > data[j].mark_ave) k=j; if (k != i)
{
temp = data[i];
data[i] = data[k];
data[k] = temp;
}
}
printf("%s\n", "下面顯示排序結果,如果需要退出當前菜單請輸入 -1."); for(i=0;i
{
printf("%8d", data[i].no);
printf("%8s", data[i].name);
printf("%8.1lf", data[i].english);
printf("%8.1lf", data[i].math);
printf("%10.1lf", data[i].Programming);
printf("%12.1lf", data[i].mark_ave);
printf("%10.1lf", data[i].mark_tot);
putchar('\n');
}
int no=1;
while(no!=-1)
{
scanf("%d",&no);
}
}
/_--------------------查找子程序-----------------------_/
void find(STUDENT _data, int len)
{
int find_no, result;
int i;
int index=1;
while(index==1)
{
result=0;
printf("%s\n", "請輸入需要查找的學生的學號,退出當前菜單請輸入 -1.");
scanf("%d", &find_no);
if (find_no == -1) return; /_exit the fine sub program_/ while( data[result].no != find_no && result < len) result ++; if (result >= len )
{
printf("%s\n", "未查詢到相關信息");
index=1;
continue;
}
else
{
system("cls");
printf("%s\n", "查詢信息如下:");
for (i =0; i < 80; i++)
putchar('=');
putchar('\n');
printf("%8s", "學號");
printf("%8s", "姓名");
printf("%8s", "英語");
printf("%8s", "數學");
printf("%10s", "C語言");
printf("%12s", "平均分");
printf("%10s", "總分");
putchar('\n');
printf("%8d", data[result].no);
printf("%8s", data[result].name);
printf("%8.1lf", data[result].english);
printf("%8.1lf", data[result].math);
printf("%10.1lf", data[result].Programming);
printf("%12.1lf", data[result].mark_ave);
printf("%10.1lf", data[result].mark_tot);
putchar('\n');
for (i =0; i < 80; i++)
putchar('=');
putchar('\n');
index=1;
continue;
}
index=0;
}
}
/_-----------------插入子程序-------------_/
void insert(STUDENT _data, int _len)
{
int no, pos;
double english, math, Programming, mark_ave, mark_tot;
int i;
char name[MAX_NAME];
while(1)
{
printf("%s\n", "輸入新的記錄,退出當前菜單請輸入-1."); printf("%s\n", "格式:");
printf("%s\n", " 學號 姓名 英語 數學 C語言"); scanf("%d", &no);
if (no == -1) return; /_exit_/ data[_len].no = no;
scanf("%s %lf %lf %lf", name, &english, &math, &Programming);
mark_ave=(english+math+Programming)/3.0;
mark_tot=english+math+Programming;
pos = 0;
while ((data[pos].mark_ave < mark_ave) && (pos < _len) ) pos ++;
for (i = _len-1; i >= pos; i--)
data[i+1] = data[i];
data[pos].no = no;
strcpy(data[pos].name, name);
data[pos].english = english;
data[pos].math = math;
data[pos].Programming = Programming;
data[pos].mark_ave = mark_ave;
data[pos].mark_tot = mark_tot;
(_len)++;
}
}
void save(STUDENT _data, int len)//將數據保存到文件
{
int i;
FILE _fp;
fp=fopen("成績統計表.txt","w");
fprintf(fp,"%8s", "學號");
fprintf(fp,"%8s", "姓名");
fprintf(fp,"%8s", "英語");
fprintf(fp,"%8s", "數學");
fprintf(fp,"%10s", "C語言");
fprintf(fp,"%12s", "平均分");
fprintf(fp,"%10s\n", "總分");
fprintf(fp,"========================================================================\n");
putchar('\n');
for (i = 0; i< len; i++)
{
fprintf(fp,"%8d", data[i].no);
fprintf(fp,"%8s", data[i].name);
fprintf(fp,"%8.1lf", data[i].english);
fprintf(fp,"%8.1lf", data[i].math);
fprintf(fp,"%10.1lf", data[i].Programming);
fprintf(fp,"%12.1lf", data[i].mark_ave);
fprintf(fp,"%10.1lf\n", data[i].mark_tot);
}
fprintf(fp,"========================================================================\n");
fclose(fp);
printf("文件已保存到\"成績統計表.txt\"");
getchar();
getchar();
}
/_-----------主程序--------------_/
void main()
{
STUDENT data[MAXN];
int len = 0;
char sele;
paint();
scanf("%c", &sele);
while (sele != '0')
{
switch(sele)
{
case '1':
input(data, &len);
break;
case '2':
output(data, len);
break;
case '3':
sort(data, len);
break;
case '4':
find(data, len);
break;
case '5':
insert(data, &len);
break;
case '6':
save(data, len);
break;
default:
if (sele != '\n') printf("%s\n", "
break;
}
if (sele != '\n') paint();
scanf("%c", &sele);
} 輸入錯誤!");
}
C語言見習報告篇四:
第1章目的任務
1.1實訓目的
(1)鞏固C語言所學基本課程;
(2)提高C語言編程的綜合應用能力;
(3)學會軟件開發的基本方法以及C語言程序的編譯、調試方法。
1.2實訓任務
(1)掌握C語言中的基本數據輸入、輸出;
(2)熟練掌握C語言中的三種基本結構的使用;
(3)熟練使用C語言中的數組;
(4)熟練使用C語言中的函數;
(5)熟練使用C語言中的指針;
(6)熟練使用C語言中的結構體。
第2章主程序子程序
2.1主函數main
main()函數是C程序的主函數,也是入口函數,所有C程序的執行都從main開始至main結束。主函數使用了do…while語句和switch語句,在主函數中定義一個變量k,通過輸入k的值,實現輸入、輸出、修改、排序、查詢函數的調用以及程序的退出。
2.2output
定義一個整型變量i,用for循環(i=0;i<=10;i++;p++)i=1時,輸入第一個學生的學號、姓名、年齡、班級及三門課的成績,然后進行i++第二個學生同時指針下移,直到i<10時,結束循環,換行,結束循環,1~10個學生的所有信息就全部輸出循環。
2.3input
定義一個整型變量i。利用for循環(i=1;i<=10;i++;p++),當i=1時,輸入第一個學生的學號、姓名、年齡、班級、及三門課的成績,然后執行i++第二個學生的信息,同時指針下移,當輸入第10個學生的信息完成時,結束循環循環結束調用輸出函數output。
2.4xiugai
定義一個整型變量n,通過輸入n的值,利用scanf對數據進行輸入、printf對修改后的數據進行輸出,使用指針實現對具體項目的輸出。
2.5chaxun
定義一個整型變量n,利用指針。輸入學生序號,在屏幕上輸出相對應學生的信息。
2.6zongfen(平均分和總分)
利用for循環使用指針計算10名學生的總分和平均分。
2.7paixu
利用冒泡法通過for循環以及if條件語句實現對10名學生的總分按照從大到小的順序排列,對于字符類數據利用strcpy函數調換其順序。
第3章錯誤
1、學號的輸出為亂碼,原因:數據類型寫為“%d”與定義類型不一致,將其改為“%s”。
2、在輸入函數中出現警告:變量“j”在函數中定義但并未在input函數中使用,將“j”刪除。
3、在input函數中出現語法錯誤,將輸入法切換為英文輸入狀態輸入“:”。
4、在input函數中不出現學生序號,在后面添加“i+1“。
5、在paixu中出現語法錯誤,將if((((q+i)->sum)<((q+j)->sum)))改為if(((q+i)->sum)<((q+j)->s
C語言見習報告篇五:
一、實習目的
1。掌握在集成環境中編輯、編譯、連接和運行C程序的方法。
(1)運行TC
(2)啟動TC集成環境,輸入一個源程序,編譯并運行。
2。掌握單步執行、設置/去除斷點,觀察變量或表達式的值。
(3)在該程序中按CTRL+F7單步招待并在觀察窗口中查看變量和表達式的值。
(4)設置/去除斷點,繼續調試。
1、熟練掌握if.switch分支語句的使用。
2、熟練掌握for.while.do.while循環語句的使用。
3、熟練掌握函數的定義、說明、參數傳遞及嵌套和遞歸調用方法。
4、熟練掌握一維數組、二維數組、字符數組的定義、說明和使用方法。
熟練掌握結構體和指針的綜合應用鏈表的操作
二、實習地點
北京交通干部管理學院計算機系機房十三號.
三、實習成果
熟練掌握TC集成環境的使用方法。認真編寫實習報告和實習總結,描述實習操作和心得體會,總結在這次實習中的業務收獲,作出自我評價。熟練掌握并應用TC程序設計的各個知識點。掌握結構體和指針的聯合使用,學會鏈表的構造和常用操作方法,認真編寫實習日志和實習體會。并通過各種途徑查找所需資料,拓寬視野,培養自學能力。
四、實習心得
在短短一周的實習期間使我獲取了不少新知識也鞏固了許多老知識。我體會到了老師和同學們的熱心幫助,無論面對學習中多大的困難,同學們都會幫助你,老師也會幫助你,大家就像兄弟姐妹一樣。老師安排我們有具有的分工:
首先,在計算機機房里同學們積極的對C語言進行鞏固與實習,老師熱心的講解同學們提出的問題和實習過程中應該注意的事項和同學們的任何。老師把我們分為幾組,每一組十一個人,并且分配了具體的任務,在我們實習結束后每一組的同學都把自己組里的成果展示給大家一起分享,告訴大家編程的原理、方法等,使同學們既有動手能力,又能提高語言表達能力。
然后同學們把自到自己的小組里,大家具體分工,你編這道題,我編這道題……我們不會的地方就去問學習比較好一些的同學,或者去問老師,老師和同學們總是那么的熱心,只要你還不明白,不論你問多少次,老師和同學們都會耐心地給你細心的講解,直到講會為止。
最后我們把每天收獲到的知識和心得都以實習日志的形式寫好,最后交給老師。我們把自己的成果交給老師,就這樣,這次實習圓滿結束。
這次實習是有益的,它不僅讓我們學習到了C語言的知識,更讓我們學習到了同學們之間的那種團隊精神,為我以后踏入社會工作準備了很多良好的知識與經驗。
C語言見習報告篇六:
題目:從鍵盤輸入一組學生的姓名、課程、成績,編寫程序按從高到低的順序對成績排序,并能根據輸入的姓名,顯示該生的課程名稱、成績和名次。
1.2 實訓目的
[參考本文檔的說明,用一小段話說明小學期實訓的目的]
第2章 設計說明
2.1 題目選擇
[所選擇的題目具體內容。]
2.2 業務分析
[用流程圖描述業務流程,用文字說明流程以及數據結構的設計思路。]
第3章 系統設計
[要求在本章中給出類、屬性、方法的設計結果,或函數、數據結構的設計結果,可結合源程序進行說明。]
3.1模塊結構設計
[列出類命名、各屬性和方法命名、類型等,或函數聲明、數據類型定義等,并結合流程圖說明各部分的關聯關系]
3.2 主要程序源碼
[此部分裂成主要的程序源碼,并以文字說明各部分的關系。]
第4章 程序調試與運行
[此部分說明所使用的開發工具情況,以及對程序進行調試的方法和過程,要求以具體案例說明調試過程及結果。列出程序運行的輸入數據及輸出結果]
第5章 實訓總結
[用簡短文字說明此次綜合實訓的收獲與體會。]
C語言見習報告6篇相關文章:
★ c語言實習心得
而對字符可以寫為: char _ps; 不能寫為:
指針數組_數組名[數組長度]
10個整數,將其中最小的數與第一個
10個數;進行處理;輸出10
用于存放字符串的首地址。在這里用數組實現了輸入。
在這里用指針實現了將最小的數與第一個數對換,
把最大的數與最后一個數對換。
在最后進行輸出。 第七版塊:
實訓七屬于一個綜合類型的題目,他要求的比較高,必須在自己王權理解通透了課本知識以后才有可能理解這道題,并且進行修改完善。主要這道題本身是在VC環境下運行的,將其移植到Turbo C環境下運行,這其中牽扯到一些語法不同,在Turbo C中不可以運行,要進行慢慢調試。經過不懈的努力、修改,終于將其成功的在Turbo C環境下可以正常運行了。(詳見附錄)
五、結論 收獲
我的收獲:在本次實習中,我學到了很多實際有用的東西,而且基本上都是在課本上學不到的,并且也在實習中梳理了自己對C語言這門課程所學的所有內容,讓自己對C這門課程有了更進一步的認識,有了一個良好的基礎,為自己的以后打下了堅實基礎。從開頭到現在,所有的內容實習完了,上機實驗是學習程序設計語言必不可少的實踐環節,在 C語言靈活、簡潔中,更需要通過編程的實踐來真正掌握它。
歷時4天的《C語言程序設計》已經結束了,在這幾天編程的過程中感觸頗多,實訓編程的同時暴露出了許多我自身存在的問題,同時也對自身有了很大的提高。
首先,對我以前做題做事非常馬虎的毛病有了很大的改進,通過在這幾天編程的過程中的鍛煉,我現在做題比以前仔細多了,會小心翼翼地去看每一個地方,會仔細地檢查程序的每一個字母、標點,以及每個可能出錯的地方,更會特別仔細,生怕自己一不小心搞錯了,而導致整個程序都無法運行。
其次,在編程的過程當中彌補了我許多知識上的缺陷,弄清楚了我不懂的地方和似是而非的地方,使我及時補上了欠缺,為自己以后的人生道路打下了良好基礎,同時也讓我對每一件事都有了一個好的心態去對待它,更讓自己在編寫程序的過程中每時每刻都處于充足的狀態。
再次,通過幾天綜合實訓編程使我的知識形成了一個完整的框架結構,而不再是零散的知識個體,使我在使用時更加的方便,更加靈活,以前有好多題目要寫十行八行的,還有些地方弄得不是太懂,現在只需要五六行就可以搞定,而且還對于思路特別清晰、明確。
第四,在實習結束后,我對做完的習題檢查比再是一切的走馬觀花,而是仔細核對、認真檢查,和以前相比明顯改善了好多,以前自己對于檢查程序總是沒有耐心,不好好檢查,有問題總是找老師,相對于實習之后來說,有了很大的改善,自己不但可以坐下來耐心檢查,還能夠自己將程序調試成功,這對于現在的我來說是一個明顯的進步。
第五,通過實習改變了我做題時心煩氣燥的習慣,現在做題可以平和靜氣的完成。
第六,通過實習我的自制能力更強了,基本完全可以控制自己,避免外界的干擾,安心地完成自己的工作。
第七,在學習過程中,由于天氣炎熱,心里煩躁,同時也是每天都盯著頻幕看,腦袋都看大了,但是我卻一直堅持了下來,這對于我來說,也是一個非常好的習慣。這同時也是我的一個收獲。
第八,實訓過程中,充分發揮團隊協作精神,共同進步,幫助同學順利完成實訓課程,有困難一起解決,同時也使我在他們身上學到了很多東西。
總之,通過實習使我自身的知識體系得到鞏固、提高以及使團隊工作的能力得到鍛煉。
不足
我的不足:
首先,我的第一個,同時也是一個最大的缺點,自己對于理論知識掌握的還不是很通透,理解的不夠徹底,對于一些問題似似而非,給自己編寫程序的過程中帶來了很大的麻煩。
其次,我不能夠精心的去完成每一個程序,對于每個程序而言,都是馬馬虎虎,只要運行結果是對的,那就可以了。雖然我自己也知道這樣是不好的,但是自己就是不愿意去改,在經過實習之后雖然有所改善,但在我看來,改進的不是很大。
第三,自己做題時還有些馬虎,一些小的細節在編寫程序過程中不注意,只有在編譯連接是才可以發現、對其進行修改,對于一些小程序還不能實現一次就可以完成編譯連接。
第四,做題時自己不能心平氣和的去做。
第五,自己的子宅里不夠強,不能持之以恒的坐在自己的座位上編寫程序,
歇一會就要起來轉轉。
六、致謝
在此,我僅代表我自己,對老師您致以崇高的敬意和深深的感謝,沒有您,就沒有我那么多的收獲,您不辭辛苦,在這炎熱天氣里,放棄您的休息時間來為我們輔導,在輔導過程中,您更是盡心盡力,從來沒有少過一節課,更沒有過遲到早退,對我們是全程陪同,在我們實習中隨時出現問題,隨時解決。只要發現問題,您從來沒有說是不管過,從來沒有煩躁過,對我們提出的問題,也是耐心解決,一邊不懂,接著再講一邊,臉龐流下的汗水,您卻從來沒有在意過。對我們泥更是不計報酬的為我們服務,讓我們有一個好的學習環境,不用為自己遇到問題而煩惱,在這里我想對您說一聲:老師,您辛苦了!請接受您的學子的深深謝意與感激。
在這里,也對學校表示由衷的謝意,感謝學校為我們提供了良好的實習環境,讓我們在這炎熱的天氣里,能夠舒爽的坐在教室里實習,而不用操心任何問題,在這里,對我們學校表示謝意。
C語言見習報告三:
1.課程設計目的
了解基于C語言的軟件開發基本過程與方法,熟悉結構化程序設計的基本方法,了解計算機工作模式,掌握開發一個小型實用系統的基本方法,學會調試一個較長程序的基本方法,養成良好的程序設計習慣和嚴謹的工作態度,初步獲得應用編寫C語言程序來解決實際問題的能力。
2.問題需求分析
根據題目要求,由于要錄入、讀取、保存學生成績信息,因而要實現文件的輸入和輸出功能;要求用戶可以查詢各個學生的成績,并且可以添加學生成績信息等,因而要提供查找和添加功能;另外,還應提供鍵盤式選擇菜單以實現功能選擇。
3.系統設計
3.1數據結構
由于該系統涉及多個學生的成績存儲,因此,定義一個數據結構,用于存儲這些信息?,F僅對學生英語成績、數學成績、C語言成績進行統計管理。 建立以下數據結構:
typedef struct student
{
int no; //存儲學生學號 char name[MAX_NAME]; //存儲學生姓名 double english; //存儲學生英語成績 double math; //存儲學生數學成績 double Programming; //存儲學生C語言成績 double mark_ave; //平均成績 double mark_tot; //總成績
} STUDENT;
3.2總體軟件框架
3.3程序模塊設計
將學生成績管理系統劃分為以下幾個模塊:
1、顯示菜單模塊:用void paint()來實現
2、輸入初始的學生信息:輸入信息包括學生的姓名、學號以及學生的成績等相關信息;用函數void input(STUDENT _data, int _len)來實現此操作。
3、成績輸出模塊:輸出學生的信息以及成績,用函數void output(STUDENT _data, int len)來實現:通過學生的姓名來查看學生的相關成績。
4、排序模塊:用函數void sort(STUDENT _data, int len)來實現
5、成績查詢模塊:用void find(STUDENT _data, int len) 來實現,找到就輸出此學生全部信息。
6、插入模塊:用函數void insert(STUDENT _data, int _len)來實現,插入到合適的位置。
7、保存文件:用函數void save(STUDENT _data, int len)來實現,將信息保存到文件中,再關閉文件。
8、主函數:使用switch條件語句調用主菜單函數,選擇菜單中要選擇對象來執行不同的模塊。
4.編程實現
4.1
4.2將輸入的所有學生成績輸出
4.3成績排序模塊【流程圖】
4.4成績查詢模塊:【流程圖】
4.5成績插入模塊
4.6成績保存模塊
將所有學生的成績信息保存到成績統計表.txt中
4.7主函數【流程圖】
5.系統測試
運行開始:
選擇1輸入成績:
選擇2輸出成績:
選擇3按平均分排序:
選擇4查找(輸入學號1):
選擇5插入新數據:
選擇6保存:
選擇0退出
課程設計是培養學生綜合運用所學知識 ,發現,提出,分析和解決實際問題,鍛煉實踐能力的重要環節,是對我們的實際工作能力的具體訓練和考察過程.隨著科學技術發展的日新月異,當今計算機應用在生活中可以說得是無處不在。因此作為二十一世紀的大學來說掌握程序開發技術是十分重要的,而C語言又是最常見,功能最強大的一種高級語言,因此做好C語言課程設計是十分必要的。 回顧起此次課程設計,至今我們仍感慨頗多,的確,自從拿到題目到完成整個編程,從理論到實踐,在這幾天里,可以學到很多很多的東西,同時不僅可以鞏固了以前所學過的知識,而且學到了很多在書本上所沒有學到過的知識。通過這次課程設計使我們懂得了理論與實際相結合是很重要的,只有理論知識是遠遠不夠的,只有把所學的理論知識與實踐相結合起來,從理論中得出結論,從而提高自己的實際動手能力和獨立思考的能力。在設計的過程中遇到許多問題,可以說得是困難重重。這畢竟是第一次做,難免會遇到過各種各樣的問題,同時在設計的過程中發現了自己的不足之處,對一些前面學過的知識理解得不夠深刻,掌握得不夠牢固。通過這次課程設計之后,我們把前面所學過的知識又重新溫故了一遍。 通過學習《C語言課程設計》使我了解到C語言是一門實踐性很強的課程,以及C語言的基本語法規則.程序設計.以及解題的全過程,加深對C語言的了解,得到程序設計的基本方法和技巧的訓練,從而更加深一步的對知識的了解,真正能使C語言這個強有力的編程工具去解決實際問題。
7.附:關鍵源程序
#include
#include
#include
#define MAXN 35
#define MAX_NAME 256
typedef struct student //學生信息
{
int no;
char name[MAX_NAME];
double english;
double math;
double Programming;
double mark_ave;
double mark_tot;
} STUDENT;
/_---------------顯示信息子程序------------_/
void paint()
{
int i;
system("cls");
printf("%55s\n", "中國地質大學(武漢)學生成績管理系統\n");
for (i=0; i<80;i++)
putchar('=');
putchar('\n');
printf(" 1 輸入信息 2 輸出信息\n");
printf(" 3 按平均分排序 4 按學號查找\n");
printf(" 5 插入 6 保存到文件\n");
printf(" 0 退出\n");
for (i=0;i<=79;i++)
putchar('=');
putchar('\n');
printf("%s\n", "請輸入各操作對應的序號:");
}
/_-----------輸入信息子程序---------_/
void input(STUDENT _data, int _len)
{
int no;
putchar('\n');
printf("%s\n", "請輸入新的記錄,如果需要退出當前菜單請輸入-1.");
printf("%s\n", "格式:\n");
printf("%s\n", "學號 姓名 英語 數學 C語言");
putchar('\n');
scanf("%d", &no);
while(no != -1)
{
data[_len].no = no;
scanf("%s %lf %lf %lf", data[_len].name, &data[_len].english, &data[_len].math,&data[_len].Programming);
data[_len].mark_ave=(data[_len].english+data[_len].math+data[_len].Programming)/3.0;
data[_len].mark_tot=data[_len].english+data[_len].math+data[_len].Programming;
(_len)++;
scanf("%d", &no);
}
}
/_---------------輸出信息子程序---------------_/
void output(STUDENT _data, int len)
{
int i;
system("cls");
printf("%8s", "學號");
printf("%8s", "姓名");
printf("%8s", "英語");
printf("%8s", "數學");
printf("%10s", "C語言");
printf("%12s", "平均分");
printf("%10s", "總分");
putchar('\n');
for (i =0; i < 80; i++)
putchar('=');
putchar('\n');
for (i = 0; i< len; i++)
{
printf("%8d", data[i].no);
printf("%8s", data[i].name);
printf("%8.1lf", data[i].english);
printf("%8.1lf", data[i].math);
printf("%10.1lf", data[i].Programming);
printf("%12.1lf", data[i].mark_ave);
printf("%10.1lf", data[i].mark_tot);
putchar('\n');
}
for (i =0; i < 80; i++)
putchar('=');
putchar('\n');
printf("按回車鍵繼續.");
getchar(); /_存儲enter_/ getchar(); /_存儲輸入內容_/ }
/_--------------排序子程序------------_/
void sort(STUDENT _data, int len)
{
int i,j,k;
STUDENT temp;
for (i=0; i
{
for (k=i, j=i+1; j
if (data[k].mark_ave > data[j].mark_ave) k=j; if (k != i)
{
temp = data[i];
data[i] = data[k];
data[k] = temp;
}
}
printf("%s\n", "下面顯示排序結果,如果需要退出當前菜單請輸入 -1."); for(i=0;i
{
printf("%8d", data[i].no);
printf("%8s", data[i].name);
printf("%8.1lf", data[i].english);
printf("%8.1lf", data[i].math);
printf("%10.1lf", data[i].Programming);
printf("%12.1lf", data[i].mark_ave);
printf("%10.1lf", data[i].mark_tot);
putchar('\n');
}
int no=1;
while(no!=-1)
{
scanf("%d",&no);
}
}
/_--------------------查找子程序-----------------------_/
void find(STUDENT _data, int len)
{
int find_no, result;
int i;
int index=1;
while(index==1)
{
result=0;
printf("%s\n", "請輸入需要查找的學生的學號,退出當前菜單請輸入 -1.");
scanf("%d", &find_no);
if (find_no == -1) return; /_exit the fine sub program_/ while( data[result].no != find_no && result < len) result ++; if (result >= len )
{
printf("%s\n", "未查詢到相關信息");
index=1;
continue;
}
else
{
system("cls");
printf("%s\n", "查詢信息如下:");
for (i =0; i < 80; i++)
putchar('=');
putchar('\n');
printf("%8s", "學號");
printf("%8s", "姓名");
printf("%8s", "英語");
printf("%8s", "數學");
printf("%10s", "C語言");
printf("%12s", "平均分");
printf("%10s", "總分");
putchar('\n');
printf("%8d", data[result].no);
printf("%8s", data[result].name);
printf("%8.1lf", data[result].english);
printf("%8.1lf", data[result].math);
printf("%10.1lf", data[result].Programming);
printf("%12.1lf", data[result].mark_ave);
printf("%10.1lf", data[result].mark_tot);
putchar('\n');
for (i =0; i < 80; i++)
putchar('=');
putchar('\n');
index=1;
continue;
}
index=0;
}
}
/_-----------------插入子程序-------------_/
void insert(STUDENT _data, int _len)
{
int no, pos;
double english, math, Programming, mark_ave, mark_tot;
int i;
char name[MAX_NAME];
while(1)
{
printf("%s\n", "輸入新的記錄,退出當前菜單請輸入-1."); printf("%s\n", "格式:");
printf("%s\n", " 學號 姓名 英語 數學 C語言"); scanf("%d", &no);
if (no == -1) return; /_exit_/ data[_len].no = no;
scanf("%s %lf %lf %lf", name, &english, &math, &Programming);
mark_ave=(english+math+Programming)/3.0;
mark_tot=english+math+Programming;
pos = 0;
while ((data[pos].mark_ave < mark_ave) && (pos < _len) ) pos ++;
for (i = _len-1; i >= pos; i--)
data[i+1] = data[i];
data[pos].no = no;
strcpy(data[pos].name, name);
data[pos].english = english;
data[pos].math = math;
data[pos].Programming = Programming;
data[pos].mark_ave = mark_ave;
data[pos].mark_tot = mark_tot;
(_len)++;
}
}
void save(STUDENT _data, int len)//將數據保存到文件
{
int i;
FILE _fp;
fp=fopen("成績統計表.txt","w");
fprintf(fp,"%8s", "學號");
fprintf(fp,"%8s", "姓名");
fprintf(fp,"%8s", "英語");
fprintf(fp,"%8s", "數學");
fprintf(fp,"%10s", "C語言");
fprintf(fp,"%12s", "平均分");
fprintf(fp,"%10s\n", "總分");
fprintf(fp,"========================================================================\n");
putchar('\n');
for (i = 0; i< len; i++)
{
fprintf(fp,"%8d", data[i].no);
fprintf(fp,"%8s", data[i].name);
fprintf(fp,"%8.1lf", data[i].english);
fprintf(fp,"%8.1lf", data[i].math);
fprintf(fp,"%10.1lf", data[i].Programming);
fprintf(fp,"%12.1lf", data[i].mark_ave);
fprintf(fp,"%10.1lf\n", data[i].mark_tot);
}
fprintf(fp,"========================================================================\n");
fclose(fp);
printf("文件已保存到\"成績統計表.txt\"");
getchar();
getchar();
}
/_-----------主程序--------------_/
void main()
{
STUDENT data[MAXN];
int len = 0;
char sele;
paint();
scanf("%c", &sele);
while (sele != '0')
{
switch(sele)
{
case '1':
input(data, &len);
break;
case '2':
output(data, len);
break;
case '3':
sort(data, len);
break;
case '4':
find(data, len);
break;
case '5':
insert(data, &len);
break;
case '6':
save(data, len);
break;
default:
if (sele != '\n') printf("%s\n", "
break;
}
if (sele != '\n') paint();
scanf("%c", &sele);
} 輸入錯誤!");
}
C語言見習報告篇四:
第1章目的任務
1.1實訓目的
(1)鞏固C語言所學基本課程;
(2)提高C語言編程的綜合應用能力;
(3)學會軟件開發的基本方法以及C語言程序的編譯、調試方法。
1.2實訓任務
(1)掌握C語言中的基本數據輸入、輸出;
(2)熟練掌握C語言中的三種基本結構的使用;
(3)熟練使用C語言中的數組;
(4)熟練使用C語言中的函數;
(5)熟練使用C語言中的指針;
(6)熟練使用C語言中的結構體。
第2章主程序子程序
2.1主函數main
main()函數是C程序的主函數,也是入口函數,所有C程序的執行都從main開始至main結束。主函數使用了do…while語句和switch語句,在主函數中定義一個變量k,通過輸入k的值,實現輸入、輸出、修改、排序、查詢函數的調用以及程序的退出。
2.2output
定義一個整型變量i,用for循環(i=0;i<=10;i++;p++)i=1時,輸入第一個學生的學號、姓名、年齡、班級及三門課的成績,然后進行i++第二個學生同時指針下移,直到i<10時,結束循環,換行,結束循環,1~10個學生的所有信息就全部輸出循環。
2.3input
定義一個整型變量i。利用for循環(i=1;i<=10;i++;p++),當i=1時,輸入第一個學生的學號、姓名、年齡、班級、及三門課的成績,然后執行i++第二個學生的信息,同時指針下移,當輸入第10個學生的信息完成時,結束循環循環結束調用輸出函數output。
2.4xiugai
定義一個整型變量n,通過輸入n的值,利用scanf對數據進行輸入、printf對修改后的數據進行輸出,使用指針實現對具體項目的輸出。
2.5chaxun
定義一個整型變量n,利用指針。輸入學生序號,在屏幕上輸出相對應學生的信息。
2.6zongfen(平均分和總分)
利用for循環使用指針計算10名學生的總分和平均分。
2.7paixu
利用冒泡法通過for循環以及if條件語句實現對10名學生的總分按照從大到小的順序排列,對于字符類數據利用strcpy函數調換其順序。
第3章錯誤
1、學號的輸出為亂碼,原因:數據類型寫為“%d”與定義類型不一致,將其改為“%s”。
2、在輸入函數中出現警告:變量“j”在函數中定義但并未在input函數中使用,將“j”刪除。
3、在input函數中出現語法錯誤,將輸入法切換為英文輸入狀態輸入“:”。
4、在input函數中不出現學生序號,在后面添加“i+1“。
5、在paixu中出現語法錯誤,將if((((q+i)->sum)<((q+j)->sum)))改為if(((q+i)->sum)<((q+j)->s
C語言見習報告篇五:
一、實習目的
1。掌握在集成環境中編輯、編譯、連接和運行C程序的方法。
(1)運行TC
(2)啟動TC集成環境,輸入一個源程序,編譯并運行。
2。掌握單步執行、設置/去除斷點,觀察變量或表達式的值。
(3)在該程序中按CTRL+F7單步招待并在觀察窗口中查看變量和表達式的值。
(4)設置/去除斷點,繼續調試。
1、熟練掌握if.switch分支語句的使用。
2、熟練掌握for.while.do.while循環語句的使用。
3、熟練掌握函數的定義、說明、參數傳遞及嵌套和遞歸調用方法。
4、熟練掌握一維數組、二維數組、字符數組的定義、說明和使用方法。
熟練掌握結構體和指針的綜合應用鏈表的操作
二、實習地點
北京交通干部管理學院計算機系機房十三號.
三、實習成果
熟練掌握TC集成環境的使用方法。認真編寫實習報告和實習總結,描述實習操作和心得體會,總結在這次實習中的業務收獲,作出自我評價。熟練掌握并應用TC程序設計的各個知識點。掌握結構體和指針的聯合使用,學會鏈表的構造和常用操作方法,認真編寫實習日志和實習體會。并通過各種途徑查找所需資料,拓寬視野,培養自學能力。
四、實習心得
在短短一周的實習期間使我獲取了不少新知識也鞏固了許多老知識。我體會到了老師和同學們的熱心幫助,無論面對學習中多大的困難,同學們都會幫助你,老師也會幫助你,大家就像兄弟姐妹一樣。老師安排我們有具有的分工:
首先,在計算機機房里同學們積極的對C語言進行鞏固與實習,老師熱心的講解同學們提出的問題和實習過程中應該注意的事項和同學們的任何。老師把我們分為幾組,每一組十一個人,并且分配了具體的任務,在我們實習結束后每一組的同學都把自己組里的成果展示給大家一起分享,告訴大家編程的原理、方法等,使同學們既有動手能力,又能提高語言表達能力。
然后同學們把自到自己的小組里,大家具體分工,你編這道題,我編這道題……我們不會的地方就去問學習比較好一些的同學,或者去問老師,老師和同學們總是那么的熱心,只要你還不明白,不論你問多少次,老師和同學們都會耐心地給你細心的講解,直到講會為止。
最后我們把每天收獲到的知識和心得都以實習日志的形式寫好,最后交給老師。我們把自己的成果交給老師,就這樣,這次實習圓滿結束。
這次實習是有益的,它不僅讓我們學習到了C語言的知識,更讓我們學習到了同學們之間的那種團隊精神,為我以后踏入社會工作準備了很多良好的知識與經驗。
C語言見習報告篇六:
題目:從鍵盤輸入一組學生的姓名、課程、成績,編寫程序按從高到低的順序對成績排序,并能根據輸入的姓名,顯示該生的課程名稱、成績和名次。
1.2 實訓目的
[參考本文檔的說明,用一小段話說明小學期實訓的目的]
第2章 設計說明
2.1 題目選擇
[所選擇的題目具體內容。]
2.2 業務分析
[用流程圖描述業務流程,用文字說明流程以及數據結構的設計思路。]
第3章 系統設計
[要求在本章中給出類、屬性、方法的設計結果,或函數、數據結構的設計結果,可結合源程序進行說明。]
3.1模塊結構設計
[列出類命名、各屬性和方法命名、類型等,或函數聲明、數據類型定義等,并結合流程圖說明各部分的關聯關系]
3.2 主要程序源碼
[此部分裂成主要的程序源碼,并以文字說明各部分的關系。]
第4章 程序調試與運行
[此部分說明所使用的開發工具情況,以及對程序進行調試的方法和過程,要求以具體案例說明調試過程及結果。列出程序運行的輸入數據及輸出結果]
第5章 實訓總結
[用簡短文字說明此次綜合實訓的收獲與體會。]
C語言見習報告6篇相關文章:
★ c語言實習心得
