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