C語言實習報告範文
C語言實習報告
設計報告
一, 實驗目的:
透過上機實習,熟練掌握迴圈語句、選擇語句、指標以及結構體的運用技巧。在實習中透過實際操作,編寫程式,發現問題,最後解決問題,提升對c語言實用性的理解,在實踐中鞏固各知識點。
C語言是一種計算機程式設計語言。它既具有高階語言的特點,又具有組合語言的特點,上機實習可以幫助我們更好地理解這種結構式的中級語言以及其各式各樣的資料型別和高效率的運算程式,為我們進一步學習C++打下堅實基礎。
同時,在實習過程中,透過互相發現問題,共同解決問題,不僅鍛鍊了我們的合作能力,而
且也讓我們發現了一些自己的個人誤區以及其他人容易犯的錯誤,從而在今後的學習中更加謹慎,達到事半功倍的效果;透過詢問老師,也讓我們養成了不恥下問的好習慣,這將很有利於以後的學習。
閒樂-一個人閒。不如大家一塊兒樂/retype/zoom/9861aabdfd0a79563c1e72ad?pn=2&x=0&y=0&raww=312&rawh=443&o=jpg_6_0_______&type=pic&aimh=443&md5sum=5742db4fcffa47783d15ae929b606fc2&sign=17301cfe1e&zoom=&png=276-8578&jpg=0-25354" target="_blank">點此檢視
<透過冒泡法對陣列進行排序>
<測試時由於迴圈語句迴圈次數的錯誤導致部分資料沒有排序,修改for語言中的條件即可除錯成功>
2,程式:
#includeint main() { int a[11],i,j,t,b,c,temp1,temp2,temp3; //定義一個數組a[11],用以存放學生的成績 printf("從鍵盤輸入10個學生成績: "); for(i=0;i<10;i++)scanf("%d",&a[i]);//輸入10個學生成績 for(i=0;i<9;i++)for(j=0;j<9-i;j++) if(a[j]<a[j+1]) {t=a[j];a[j]=a[j+1];a[j+1]=t;} //採用冒泡法,將學生成績按照從高到低進行排序
printf("10個學生成績陣列: "); for(i=0;i<10;i++)printf("%5d",a[i]);
printf(" "); printf("再輸入一個學生的成績 ");
scanf("%d",&b); //再輸入一個學生的成績c=a[9]; if(b<c)//將此成績按照排序規律插入原學生成績陣列a[10]=b; else {for(i=0;i<10;i++) {if(a[i]<b) {temp1=a[i];a[i]=b; for(j=i+1;j<11;j++) {temp2=a[j];a[j]=temp1;temp1=temp2; }break; } } }
printf("11個學生成績陣列: "); for(i=0;i<11;i++) printf("%5d",a[i]);printf(" ");
for(i=0;i<5;i++) {temp3=a[i];a[i]=a[10-i];a[10-i]=temp3; }
printf("排好序的成績單進行反序存放為: ");
for(i=0;i<11;i++) printf("%5d",a[i]);printf(" ");return 0; }
3,執行結果:
//輸入11個學生成績 //排好序的成績單進行反序存放 //輸出反序存放後的`學生成績陣列
C語言實訓報告
課題名稱: 通訊錄管理系統
專 業:計算機資訊管理
班 級:09信管(1)班
學 號:
姓 名:
指導教師:
2010 年 7 月 1 日
目 錄
1 課程設計目的??????????????????? 1
2 課程設計題目??????????????????? 1
3 課程設計報告內容????????????????? 1
4 結論??????????????????????? 10
5 結束語?????????????????????? 10
6 參考書目????????????????????? 10
7 程式執行????????????????????? 10
8 附錄:(源程式清單)???????????????? 12
一、課程設計題目
《通訊錄管理系統》
二、實訓目的
(1)掌握結構化程式設計的基本方法,基本掌握面向物件程式設計的基本思路和方法。
(2)掌握C的基本概念和基礎知識。
(3)透過訓練能夠讀懂較為複雜的C語言源程式並具備基本C語言程式設計的能力。
(4)熟練掌握各種常用類的定義,繼承,檔案的應用,為更好的理解面向物件打下更好的基礎。
(5)透過實訓,培養自己編寫、除錯、分析大型應用程式的能力。
(6)掌握面向物件的基本原理,提高學生綜合程式設計的能力。
(7)培養自己獨立解決問題,查詢資料的能力。同學之間相互幫助,相互交流,相互合作的團隊精神。
(8) 培養自己良好的學習興趣,獨立的程式設計風格。
(9) 透過實訓檢查自己學習上的不足,達到熟練掌握C語言的基本知識和技能。
三、課程設計報告內容
3.1功能要求
該系統執行在DOS環境下,人機介面為命令列文字介面。完成的任務是對若干人的通訊錄資訊進行管理,且資料儲存到檔案中。
實現的主要功能是:
? 新增:增加一個或幾個人的通訊錄資訊。
? 刪除:刪除已輸入的通訊錄資訊。
? 查詢:根據輸入的姓名查詢通訊錄資訊。
? 修改:根據輸入的姓名修改通訊錄資訊。
? 顯示:輸出所有通訊錄資訊。
3.2 設計環境
所使用的語言採用標準C,開發工具選用在Windows環境下的C-free、Win-TC或者Visual C++ 6.0。
3.3 資料結構
本系統是對通訊錄的資訊進行管理,通訊錄記錄的資訊採用C的結構體資料型別描述,定義如下:
struct ren /*定義個人資料結構體型別*/
{
char name[10];/*姓名*/
int age; /*年齡*/
char tel[12]; /*電話號碼*/
char city[20];/*城市 */
char units[30] ; /*所在單位*/
char note[20]; /*備註*/
};
3.4實現方法及主要演算法分析
(1)主介面的設計:主介面採用文字選單的形式,各功能呼叫透過選單進行選擇。採用迴圈處理,以便執行完某項處理後,仍可選擇其他項處理。在迴圈內先顯示提示資訊,然後讀取使用者輸入,使用switch語句對使用者的輸入進行判斷,分別呼叫相應的模組,當某模組結束後再次回到文字選單,直到使用者選擇結束程式選單,才退出迴圈,從而退出系統。
(2) 外部檔案的型別:檔案採用的二進位制的檔案,對檔案的讀寫採用順序檔案的方式,並使用fread和fwrite等函式對檔案進行操作。
(3)清屏函式:一般由上一級選單螢幕進入下一級選單螢幕或由下一級選單螢幕返回上一級選單螢幕都需要清除螢幕原來顯示的內容。同時在呼叫程式的過程中,記錄需要清屏的位置,然後修改程式碼,加入clrscr()函式清屏。
(4)提示資訊:一般的輸入與輸出需有相應的提示資訊,以增加使用者的互動性,增加輸出的可讀性,以幫助使用者使用程式。
(5)設定顏色:textbackground()、textcolor()函式設定背景和前景顏色
(6)游標定位:gotoxy(列,行); 游標定位
3.5模組設計
根據功能要求,本系統為五大主要模組,具體模組如表所示。
表 通訊錄管理管理系統的模組
3.6處理流程
c語言實訓報告
C課程設計
一、課程設計目的
《C語言課程設計》是資訊類專業的重要實踐性課程。目的在於學習完《C語言程式設計》課程後進行的一次全面的綜合練習。透過課程設計,一方面可以結合課程的教學內容循序漸進地進行設計方面的實踐訓練,另一方面,在參與一系列子專案的實踐過程中,還能提高如何綜合運用所學知識解決實際問題的能力,以及獲得相關專案管理和團隊合作等眾多方面的具體經驗。為後續課程:面向物件程式設計、Visual C++,資料結構,軟體工程,軟體技術基礎等奠定必要的實踐基礎。
設計目的如下:
1、進一步培養學生結構化程式設計的思想,加深對高階語言基本語言要素和控制結構的理解。
2、針對C語言中的重點和難點內容進行訓練,獨立完成有一定工作量的程式設計任務,同時強調好的程式設計風格。
3、掌握C語言的程式設計技巧和上機除錯程式的方法。
4、掌握程式設計中的常用演算法。
二、課程設計題目及要求
1、基礎訓練題目
1.1基礎
1.1.1寫出下面程式的輸出結果。
1)#include
main( )
{
int x;
x=-3+4*5-6;printf(“%d ”,x);
x=3+4%5-6; printf(“%d ”,x);
x=-3*4%4-6/5; printf(“%d ”,x);
x=(7+6)%5/2; printf(“%d ”,x);
}
2)# include
main()
{
int x=5;
int y=6;
int z=7;
printf(" %d %d %d %d %d %d %d ",x>y,y>x,x!=y,x==z-2,x=x-2,x>=z,x<=z);
}
3 ) #include
main()
{
int x=0,y=-1,z=1;
printf("%d,%d,%d,%d,%d,%d",x&&y,x||y,y&&z,y||z,x&y,x|y);
}
1.2順序結構
1)已知三角形的底和高,求三角形的面積
法一、 #include
main()
{
float a,b;
scanf("a=%f,b=%f",&a,&b);
printf("MJ=%.2f",(a*b)/2.0);
}
法二、 #include
main()
{
float a,b,s;
scanf("a=%f,b=%f",&a,&b);
s=a*b/2;
printf("s=%.1f",s);
}
2)若已知某銀行一年定期的存款年利率,輸入存款額,計算三年後本利之和並輸出。 年利率rate,存款期n,存款本金capital,本利之和deposit。
#include
#include
main()
{
int n=3;
double rate=0.02;
double capital;
double deposit;
printf("Please ente capital:");
scanf("%lf",&capital);
deposit=capital*pow(1+rate,n);
printf("deposit=%.2f ",deposit);
}
#define N 3 改4
#define RATE 0.02 改0..01
#include
#include
main()
{
double capital;
double deposit;
printf("Please ente capital:");
scanf("%lf",&capital);
deposit=capital*pow(1+RATE,N);
printf("deposit=%.2f ",deposit);
}
改
1.3選擇結構
1)輸入四個整數,要求按大小順序輸出
# include
main()
{
int a,b,c,d,t;
printf("please input 四個整數 ");
scanf("%d%d%d%d ",&a,&b,&c,&d);
if(a<b)
{t=a;a=b;b=t;}
if(a<c)
{t=a;a=c;c=t;}
if(a<d)
{t=a;a=d;d=t;}
if(b<c)
{t=b;b=c;c=t;}
if(b<d)
{t=b;b=d;d=t;}
if(c<d)
{t=c;c=d;d=t;}
printf("%d %d %d%d ",a,b,c,d);
}
# include
main()
{
int a,b,c,d,t;
printf("please input 四個整數 ");
scanf("%d%d%d%d ",&a,&b,&c,&d);
if(a<b)
{t=a;a=b;b=t;}
if(a<c)
{t=a;a=c;c=t;}
if(a<d)
{t=a;a=d;d=t;}
if(b<c)
{t=b;b=c;c=t;}
if(b<d)
{t=b;b=d;d=t;}
if(c<d)
{t=c;c=d;d=t;}
printf("%d %d %d%d ",a,b,c,d);
getch();
}
2)編寫程式實現:輸入一個百分制成績。要求書出成績的等級‘A? ?B? ?C? ?D? ?E?,90分以上為 ?A?,81~89分為 ?B?,70~79為 ?C?,60~69為 ?D?,60分一下為 ?E?。
#include
main()
{
int x;
printf("Please chengji: ");
scanf("%d",&x);
if(x>=90)
{
printf("A ");