大連理工程序設(shè)計(jì)第3次上機(jī)作業(yè)_第1頁
大連理工程序設(shè)計(jì)第3次上機(jī)作業(yè)_第2頁
大連理工程序設(shè)計(jì)第3次上機(jī)作業(yè)_第3頁
大連理工程序設(shè)計(jì)第3次上機(jī)作業(yè)_第4頁
大連理工程序設(shè)計(jì)第3次上機(jī)作業(yè)_第5頁
已閱讀5頁,還剩5頁未讀, 繼續(xù)免費(fèi)閱讀

下載本文檔

版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進(jìn)行舉報(bào)或認(rèn)領(lǐng)

文檔簡介

大連理工程序設(shè)計(jì)第3次上機(jī)作業(yè)?一、作業(yè)目標(biāo)本次上機(jī)作業(yè)旨在鞏固和拓展學(xué)生在程序設(shè)計(jì)方面的知識與技能。通過完成一系列具體的編程任務(wù),加深對編程語言的理解,提高編程邏輯思維能力,掌握常見算法和數(shù)據(jù)結(jié)構(gòu)的應(yīng)用,培養(yǎng)解決實(shí)際問題的能力。

二、作業(yè)內(nèi)容

任務(wù)一:簡單圖形繪制編寫程序,使用圖形庫(如EasyX)繪制一個(gè)簡單的圖形,如圓形、矩形或三角形,并填充指定顏色。

```cppinclude<graphics.h>

intmain(){initgraph(640,480);

//繪制圓形circle(320,240,100);floodfill(320,240,WHITE);

getch();closegraph();return0;}```

任務(wù)二:數(shù)據(jù)統(tǒng)計(jì)與分析從文件中讀取一組整數(shù)數(shù)據(jù),統(tǒng)計(jì)其中的最大值、最小值、平均值,并計(jì)算數(shù)據(jù)的方差。

```cppinclude<iostream>include<fstream>include<cmath>

usingnamespacestd;

intmain(){ifstreaminfile("data.txt");if(!infile){cout<<"無法打開文件"<<endl;return1;}

intnum,sum=0,count=0;intmax=INT_MIN,min=INT_MAX;doublevariance=0.0;

while(infile>>num){sum+=num;count++;if(num>max)max=num;if(num<min)min=num;}

doubleaverage=static_cast<double>(sum)/count;

infile.clear();infile.seekg(0,ios::beg);

while(infile>>num){variance+=pow(numaverage,2);}

variance/=count;

cout<<"最大值:"<<max<<endl;cout<<"最小值:"<<min<<endl;cout<<"平均值:"<<average<<endl;cout<<"方差:"<<variance<<endl;

infile.close();return0;}```

任務(wù)三:字符串處理輸入一個(gè)字符串,統(tǒng)計(jì)其中每個(gè)字符出現(xiàn)的次數(shù),并輸出出現(xiàn)次數(shù)最多的字符及其次數(shù)。

```cppinclude<iostream>include<string>include<map>include<algorithm>

usingnamespacestd;

intmain(){stringstr;cout<<"請輸入一個(gè)字符串:";getline(cin,str);

map<char,int>charCount;

for(charc:str){if(charCount.find(c)!=charCount.end()){charCount[c]++;}else{charCount[c]=1;}}

pair<char,int>mostFrequent=*max_element(charCount.begin(),charCount.end(),[](constpair<char,int>&a,constpair<char,int>&b){returna.second<b.second;});

cout<<"出現(xiàn)次數(shù)最多的字符:"<<mostFrequent.first<<endl;cout<<"出現(xiàn)次數(shù):"<<mostFrequent.second<<endl;

return0;}```

任務(wù)四:排序算法實(shí)現(xiàn)實(shí)現(xiàn)冒泡排序、選擇排序和插入排序算法,并對一組隨機(jī)生成的整數(shù)進(jìn)行排序,比較三種排序算法的執(zhí)行效率。

```cppinclude<iostream>include<cstdlib>include<ctime>

//冒泡排序voidbubbleSort(intarr[],intn){for(inti=0;i<n1;i++){for(intj=0;j<ni1;j++){if(arr[j]>arr[j+1]){inttemp=arr[j];arr[j]=arr[j+1];arr[j+1]=temp;}}}}

//選擇排序voidselectionSort(intarr[],intn){for(inti=0;i<n1;i++){intminIndex=i;for(intj=i+1;j<n;j++){if(arr[j]<arr[minIndex]){minIndex=j;}}if(minIndex!=i){inttemp=arr[i];arr[i]=arr[minIndex];arr[minIndex]=temp;}}}

//插入排序voidinsertionSort(intarr[],intn){for(inti=1;i<n;i++){intkey=arr[i];intj=i1;while(j>=0&&arr[j]>key){arr[j+1]=arr[j];j;}arr[j+1]=key;}}

voidprintArray(intarr[],intn){for(inti=0;i<n;i++){cout<<arr[i]<<"";}cout<<endl;}

intmain(){intn=10;intarr[10];

srand(time(0));for(inti=0;i<n;i++){arr[i]=rand()%100;}

cout<<"原始數(shù)組:";printArray(arr,n);

intarrCopy1[10],arrCopy2[10],arrCopy3[10];for(inti=0;i<n;i++){arrCopy1[i]=arr[i];arrCopy2[i]=arr[i];arrCopy3[i]=arr[i];}

clock_tstart1=clock();bubbleSort(arrCopy1,n);clock_tend1=clock();cout<<"冒泡排序后的數(shù)組:";printArray(arrCopy1,n);doubletime1=static_cast<double>(end1start1)/CLOCKS_PER_SEC;cout<<"冒泡排序時(shí)間:"<<time1<<"秒"<<endl;

clock_tstart2=clock();selectionSort(arrCopy2,n);clock_tend2=clock();cout<<"選擇排序后的數(shù)組:";printArray(arrCopy2,n);doubletime2=static_cast<double>(end2start2)/CLOCKS_PER_SEC;cout<<"選擇排序時(shí)間:"<<time2<<"秒"<<endl;

clock_tstart3=clock();insertionSort(arrCopy3,n);clock_tend3=clock();cout<<"插入排序后的數(shù)組:";printArray(arrCopy3,n);doubletime3=static_cast<double>(end3start3)/CLOCKS_PER_SEC;cout<<"插入排序時(shí)間:"<<time3<<"秒"<<endl;

return0;}```

三、作業(yè)總結(jié)通過本次上機(jī)作業(yè),同學(xué)們對程序設(shè)計(jì)有了更深入的理解和實(shí)踐。在簡單圖形繪制任務(wù)中,熟悉了圖形庫的使用,能夠?qū)?shù)學(xué)圖形通過代碼直觀呈現(xiàn)。數(shù)據(jù)統(tǒng)計(jì)與分析任務(wù)鍛煉了文件操作、數(shù)據(jù)處理和數(shù)學(xué)計(jì)算的能力,學(xué)會從文件中讀取數(shù)據(jù)并進(jìn)行綜合分析。字符串處理任務(wù)強(qiáng)化了對字符串的操作和映射關(guān)系的應(yīng)用,能夠高效統(tǒng)計(jì)字符出現(xiàn)次數(shù)。排序算法實(shí)現(xiàn)任務(wù)不僅掌握了三種基本排序算法的原理與代碼實(shí)現(xiàn),還通過實(shí)際運(yùn)行比較了它們的效率。

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
  • 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負(fù)責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

最新文檔

評論

0/150

提交評論