① c程序的運行環境和運行一個c程序的方法實驗報告書
實驗目的 (1)了解所用的計算機系統的基礎操作方法,學會獨立使用該系統。 (2)了解在該系統上如何編輯、編譯、連接和運行一個C程序。 (3)通過運行簡單的C程序,初步了解C源程序的特點。 二、實驗內容 1.檢查所用的計算機系統是否已安裝了C編譯系統並確定它所在的子目錄。如果是在Windows操作系統下使用Turbo C編譯器,可以按以下步驟進行操作: ①單擊Windows桌面上的「開始」按鈕,在菜單中單擊「查找(F)」,在其右面的下拉菜單中單擊「文件或文件夾(F)」。屏幕上出現「查找」窗口。 ②在「名稱」框中輸入文件名「tc.exe」,單擊「開始查找」按鈕,系統即自動在指定的范圍內尋找所需要文件,如果找到,就會顯示出文件路徑(例如:C:\lib\tc或c:\tc)。 ③注意:在「搜索」框中應說明搜索范圍,如使「搜索」欄中的內容為「C:\」,表示從根目錄開始尋找,即搜索整個C盤。 2.建立用戶自己的子目錄 ①利用「Windows資源管理器」在磁碟(如D盤)上建立自已的文件夾。 ②利用DOS命令md在磁碟上建立自己的子目錄。 3.進入TC工作環境 第一種方法; ①單擊桌面上的「開始」按鈕,從菜單中選擇「程序」,單擊它然後在其下拉菜單中選擇「MS-DOS」,屏幕上出現MS-DOS窗口。 ②用DOS命令cd,使當前目錄改變為tc.exe所在的子目錄(例如:C:\lib\tc)。 ③在tc的子目錄下輸入tc,按回車鍵進入tc的工作環境。 第二種方法: 用滑鼠雙擊「我的電腦」圖標,進入C盤根目錄,在C盤根目錄下找到tc.exe文件所在的文件夾(如C盤下的lib文件夾下的tc文件夾),在文件夾中找到tc.exe文件,雙擊滑鼠進入TC的工作環境。 4.熟悉Turbo C集成環境 ①了解和熟悉編輯(Edit)窗口和信息(Message)窗口的作用。試一下能否向信息窗口輸入程序。按功能鍵F5,觀察它有什麼作用,再按一次F5,再觀察它有什麼作用。按F6,觀察它有什麼作用;再按一次F6,再觀察它有什麼作用。(參見第一部分的1.1節) ②按功能鍵F10,並按回車鍵,觀察「File」菜單,了解它們的作用和方法。用鍵盤上的「→」鍵,分別選中Edit、Run、Compile、Project、Options、Debug、Break/watch,觀察它們的菜單,大致上了解它們的作用,以後用到時再深入了解。 ③選擇File菜單中的New並按回車鍵,在編輯窗口中隨意輸入幾行字元,觀察窗口頂部左端line和col後面數字的變化。 5.編輯並運行一個簡單的程序 ①再選擇File菜單中的New並按回車鍵,使編輯窗口變成空白。 ②輸入下面的程序 main( ) { printf("* * * * *\n"); printf(" Hello.\n"); printf("* * * * *\n"); } ③按功能鍵F9進行編譯和連接,觀察屏幕上顯示的編譯信息。如果出現「出錯信息」,則應找出原因並改正之,再進行編譯。 ④如果編譯無錯誤,按Ctrl和F9鍵使程序運行,按Alt和F5鍵,切換到用戶屏,觀察運行結果。 ⑤按任一鍵回到TC窗口,將程序命令為ex1.c保存在自已的子目錄下。(參見第一部分1.2節的內容) 6.編輯並運行另一個C程序 ①再選擇File→New,使編輯窗口變成空白。 ②輸入以下程序 main( ) { int a,b,sum; a=150;b=200; sum=a+b; printf("sum is %d\n",sum); } ③按F9進行編譯,仔細分析編譯信息窗口和Message窗口,可能顯示有多個錯誤,逐個修改,直到不出現錯誤。 ④運行程序,分析運行結果。 ⑤將程序命名為ex2.c,保存到自己所建的子目錄下。 7.編輯並運行一個需要在運行時輸入數據的程序 ①清空編輯窗口,輸入下面的程序。 main( ) { int a,b, max; scanf("%d%d",&a,&b); if(a>b) max=a; else max=b; printf("%d",max); } ②編輯並運行,注意按Ctrl和F9運行後,先從鍵盤輸入整數2和5,然後按回車鍵,再按Alt和F5鍵,觀察運行結果。 ③將程序中的第3行改為: int a;b;max; 再進行編譯,觀察其結果。 ④將程序第5、6兩行合並為一行,即 if(a>b) max=a ; else max=b ; 進行編譯和運行,分析結果。 將程序命名為ex3.c保存在用戶自己的子目錄下。
麻煩採納,謝謝!
② C++的程序設計的實驗報告
實驗(一)實驗時間 實驗地點403實驗內容從鍵盤輸入三個整數,輸出三個數中最大值與最小值。實驗目的熟悉Visual C++ 6.0的調試環境,掌握C++工程文件的創建、添加C++源程序文件及工程文件編譯、調試、運行方法和途徑;掌握C++輸入流對象「cin」通過提取運算符「>>」實現鍵盤輸入及C++輸出流對象「cout」通過插入運算符「<<」實現屏幕輸出的思想及基本用法。演算法描述:#include "stdafx.h"#include<iostream>using namespace std;double max(double n, double m){ if(n>=m) return n; else return m;}double min(double n, double m){ if(n>=m) return m; else return n;} int main(){ double a,b,c,k,j,h,x; cout<<"請輸入三個數值:"; cin>>a>>b>>c; k=max(a,b);h=min(a,b); j=max(a,c);x=min(a,c); cout<<"max="<<max(j,k); cout<<"min="<<min(h,x);}運行結果: 實驗(一)實驗時間 實驗地點403實驗內容輸出三角形的面積及周長,三角形的邊長從鍵盤鍵入實驗目的熟悉Visual C++ 6.0的調試環境,掌握C++工程文件的創建、添加C++源程序文件及工程文件編譯、調試、運行方法和途徑;掌握C++輸入流對象「cin」通過提取運算符「>>」實現鍵盤輸入及C++輸出流對象「cout」通過插入運算符「<<」實現屏幕輸出的思想及基本用法演算法描述:#include "stdafx.h"#include<iostream>#include "math.h"using namespace std;double compare(double a,double b,double c){ double x,y; x=a+b; if(a>=b) y=a-b; else y=b-a; if((y<c)&&(x>c)) return 1; else return 0;}int main(){ double a,b,c,L,S,U; cout<<"請輸入三個數值:"; cin>>a>>b>>c; if(compare(a,b,c)!=1){ cout<<"不能構成三角形"; } else{ L=a+b+c; U=L*(L/2-a)*(L/2-b)*(L/2-c)/2; S=sqrt(U); cout<<"L="<<L<<"S="<<S;}}運行結果: 實驗(一)實驗時間 實驗地點403實驗內容用引用型參數編寫一函數,將一維數組中的最大值、最小值和平均值返回給主調函數。實驗目的認識C++函數對C函數特性的提升,掌握引用型變數做函數的參數、函數參數默認值的設置、函數模板及函數的重載,從而對多態性形成初步的概念。 演算法描述:/ C++實驗二1.cpp : 定義控制台應用程序的入口點。//#include "stdafx.h"#include<iostream>#include<vector>using namespace std;double average(vector<double> A){ double sum=0; for(int i=0;i<A.size();i++){ sum=A[i]+sum; } return (sum/A.size());}void max_and_min(vector<double> a){ double max; int k=a.size(); for(int i=0;i<k;i++) {for(int j=0;j<i;j++)</p><p> {</p><p> if(a[j]>a[i])</p><p> {</p><p> max=a[j];a[j]=a[i];a[i]=max;</p><p> } } } for(int n=0;n<k;n++)cout<<a[n]<<" ";cout<<"max="<<a[k-1]<<endl;cout<<"min="<<a[0]<<endl;}int main(){ int n; cout <<"輸入個數:\n"; //輸入數組個數 cin>>n; double *array1=new double [n]; cout <<"輸入數組:\n"; for(int x=0;x<n;x++){ cin>>array1[x]; } vector<double> aa(array1,array1+n); max_and_min(aa); cout<<"ave="<<(average(aa))<<endl; for(int i=0;i<sizeof(array1)/sizeof(array1[0]);++i) cout<<" "<<array1[i]<<" "; cout<<"\n";}運行結果:
③ 編譯原理實驗報告
#include<stdio.h>
void main()
{
int m=0,n=0,n1=0,n2=0,n3=0,zg,fzg,flag;
int bz[7]=;/*狀態改變控制,1 表示可以改變狀態zt值,0 表示不可以*/
int zt[7]=;/*狀態值,2表示未定狀態,1表示 是,0表示 否*/
char temp[100]="\0";/*用於求first集*/
char z[7];/*非總結符*/
char z1[7];/*總結符*/
char z2[7]="\0";/*gs[]文法中出現的標記個數的輔助字元 01234*/
char gs[100]="\0";/*文法,按順序排成字元串*/
printf("請依次輸入非終結符(不超過7個):");
gets(z);
while(z[m]!='\0')
fzg=m;//zg是非終結符個數
while(n<m)
//生成01234輔助字元
printf("您輸入了:");
puts(z);
fflush(stdin);
printf("請依次輸入終結符(不超過7個):");
gets(z1);
while(z1[n1]!='\0')
zg=n1;
printf("您輸入了:");
puts(z1);
fflush(stdin);
printf("按照正確格式輸入所有文法(總長度不超過100格式如下):");
printf("如果文法為(字元'k'表示空):\n");
printf("S-->AB S-->bC A-->k A-->b\n");
printf("輸入:0SAB0SbC1Ak1Ab\n");
printf(" (注:數字01234表示第一二三四個非終結符)\n");
gets(gs);
fflush(stdin);
printf("您輸入了:");
puts(gs);
m=0;
//對於輸入文法字元串的轉換,將每個文法式左部去除
while(gs[m]!='\0')
{
n=m;
if(gs[m]>='0'&&gs[m]<='9')
{
m++;
while(gs[m]!='\0')
{
gs[m]=gs[m+1];
m++;
}
//gs[m-1]='\0';
}
m=++n;
}
m=0;
//puts(gs);
/*情況一,直接判定是 形如: (A-->k) */
while(gs[m]!='\0')
{
if(gs[m]=='k')
{
zt[gs[m-1]-48]=1;
bz[gs[m-1]-48]=0;
}
m++;
}
/*情況二,直接判定--否 形如: (D-->aS ,D-->c) */
for(n=0;n<fzg;n++)
{
if(bz[n]==1)
{
m=0;
n2=0;
while(gs[m]!='\0')
{
if(z2[n]==gs[m])
{
if(gs[m+1]>=z1[0]&&gs[m+1]<=z1[n1-1])
zt[n]=0;
else //gs[m+1] 是非終結符n2做標記
}
//跳出循環,無法解決該情況,推到下面情況三
m++;
}
if(n2!=99) //完成所有掃描,未出現非終結符,得出結論zt[n]=0.bz[n]=0不允許再改變zt[n]
}
}
/*情況三,最終判定*/
do
{
flag=0;
for(n=0;n<fzg;n++)
{
if(bz[n]==1) //未得到判定
{ m=0;
while(gs[m]!='\0')
{
if(gs[m]==z2[n]) //判定gs[m]是輔助字元0123
{
m++;
while(gs[m]>='A'&&gs[m]<='Z')
{
n1=0;
for(n2=0;n2<fzg;n2++) //循環查找是gs[m]哪個非終結符
{
if(gs[m]==z[n2])
{
if(zt[n2]==1) //這個非終結符能推出空
zt[n]=1;
else if(bz[n2]==1) //這個非終結符 現在 不能推出空,但它的狀態可改即它最終結果還未判定
else
//設 m1 做標記供下一if參考
break; //找到gs[m]是哪個非終結符,for循環完成任務,可以結束
}
}
if(n1==99) break;
m++;
}
}
m++;
}
if(zt[n]==1) bz[n]=0;
if(bz[n]==0) flag=1;//對應for下的第一個if(zt[n]==2)
}
}
}while(flag);
printf("結果是:\n");
for(m=0;m<5;m++)
{
switch(zt[m])
{
case 0:printf("%c---否\n",z[m]);break;
case 1:printf("%c---是\n",z[m]);break;
case 2:printf("%c---未定\n",z[m]);break;
}
}
/*
puts(gs);
puts(zt);
puts(z);
puts(z1);
puts(z2);
printf("%d,,,%d",fzg,zg);
*/
//下面求first集
//下面求first集
for(n=0;n<fzg;n++)
m=0;n=0;n1=0;n2=0;
while(gs[n]>='0'&&gs[n]<='9')
{
for(;m<fzg;m++)
{
if(n2!=m)
n1=0; //m=n2用於第二次以後的for循環中還原上次m的值
if(gs[n]==z2[m])
{
while(gs[n+1]>'9')
{
if(n1==0)
//如果是第一個直接保存
//不是第一個,先與字元數組中其它字元比較,沒相同的才保存
else if(gs[n]>='a'&&gs[n]<='z'&&gs[n+1]>='A'&&gs[n+1]<='Z') //gs[n]是終結符 且 gs[n+1]是非終結符
;//什麼也不做,程序繼續n++,掃描下一個gs[n]
else
{
for(n3=0;n3<=n1;n3++)
{
if(temp[m*13+n3]==gs[n+1])
break;
}
if(n3>n1) //for循環結束是因為n3而不是break
}
n++;
}
break; //break位於if(gs[n]==z2[m]),對於gs[n]已找到z2[m]完成任務跳出for循環
}
}
n2=m; //存放該for循環中m的值
n++;
}
//進一步處理集除去非終結符
m=0;n=0;n1=0;n2=0;
for(m=0;m<fzg;m++)
{
if(flag!=m)
n1=0; //m=flag用於第二次以後的for循環中還原上次m的值
while(temp[m*13+n1]!='\0')
{
while(temp[m*13+n1]>='A'&&temp[m*13+n1]<='Z') //搜索非終結符
{
for(n=0;n<fzg;n++) //確定是哪個非終結符
{if(temp[m*13+n1]==z[n])
break;
}
while(temp[m*13+n1]!='\0') //從temp[n*13+n1]開始每個字元依次往前移動一
n1--;
while(temp[n*13+n2]!='\0') //把z[n]對應的first加入temp[m*13+n1]這個first中,每個字元依次加在最後
{
for(n3=0;n3<n1;n3++) //循環判定是否有相同的字元
{
if(temp[m*13+n3]==temp[n*13+n2])
break;
}
if(temp[n*13+n2]=='k'&&zt[m]==0) //那些不能推出 空,但是因為要加入 其他非終結符的first集 而可能含有 空
n2++;
else if(n3>=n1) //for循環結束是因為n3而不是break ,即無相同字元
else n2++;
}
n1=0;
n2=0;
}
n1++;
}
flag=m; //存放該for循環中m的值
}
//非終結符的first集輸出
m=0;n1=0;
for(m=0;m<fzg;m++)
{
n1=0;
printf("非終結符 %c 的first集是: ",z[m]);
while(temp[m*13+n1]!='\0')
{
printf("%c",temp[m*13+n1]);
n1++;
}
printf("\n");
}
}
④ 編譯程序 顯示所以水仙花數的實驗報告。
#include<iostream>
using namespace std;
void main()
{
int a,b,c;
for(int x=100;x<1000;x++)
{
a=x/100;
b=(x%100)/10;
c=x%10;
if(a*a*a+b*b*b+c*c*c==x)
cout<<x<<endl;
else
continue;
}
}
⑤ 求助c語言上機實驗報告怎麼寫
實驗目的:1.初識vc
6.0上機環境,學會建立工程、建立單文件和多文件程序,正確進行編譯、鏈接並運行程序,查找並修改簡單的語法錯誤;
2.通過編程熟悉c語言源程序的編程風格,正確進行源代碼的單行注釋。
3.掌握用const定義符號常量以及定義內聯函數,比較與普通宏定義的區別。
實驗內容:看看你自己要做什麼實驗,根據實驗,把題目寫上去就行了。
實驗操作:把程序寫上去。
實驗儀器:vc
6.0
pc機
實驗結論:運行出結果,寫上去就行了。
⑥ C語言程序設計實驗報告怎麼寫啊
通過本試驗初步培養計算機邏輯解題能力。熟練掌握賦值語句和if語句的應用;掌握switch多路分支語句和if嵌套語句的使用
⑦ c語言程序設計實驗報告
五、 課程設計小結心得體會
1設計思想
1)、設定一個一維數組,可先按員工序號設定每位員工的工資
2)、利用While語句和Prinft語句完成用戶菜單的設計
功能為:第1項 設為員工編號和工資數據
第2項 設為修改員工工資數據
第3項 設為查詢員工工資數據
第4項 設為結束系統
3)、當用戶選擇1、2項時,需輸入員工編號,所以需要設計編號校正功能,如果出錯可輸出「The error employe number」
4)、當選擇2時,進行工資數據的修改,並將新數據存回該員工的工資數組中
5)、利用for循環中判斷語句,將用戶工資數與數組中的工資數進行比較,如相同則輸出,將計數器加1,如此下去,直到把整個數組遍歷一遍
6)、判斷計數器是否為0, 是0表示找不到相符的工資,如果不為0,則輸出共查出幾比相符的工資
以上當然裡面也涉及了「函數的模塊化」理念,可以避免但需要重復列印頭文件時重復編寫列印信頭的語句。像這樣的程序是多見的,這樣不但降低了程序還發效率,而且耗時浪費資源「共用體」的使用簡化了程序的「復雜」性,正如(4)中,學號與姓名同時表示一個人,但在函數使用了「共用體」,從而程序的簡單可以便於糾錯,查找問題,避免了代碼的重復,這樣就給編譯時帶來了一定的難度與「量」的繁雜。一般不採取這樣的做法,力求「簡單、明了、清晰」。