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