版權(quán)說(shuō)明:本文檔由用戶(hù)提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡(jiǎn)介
1、2008級(jí) lxc一、綜合設(shè)計(jì)題目:數(shù)組的各項(xiàng)基本操作。二、綜合設(shè)計(jì)分工說(shuō)明本實(shí)驗(yàn)由我一個(gè)人完成。 三、問(wèn)題概述 本實(shí)驗(yàn)要求編寫(xiě)出一個(gè)程序,它能反復(fù)實(shí)現(xiàn)數(shù)組里的幾個(gè)基本操作(輸入、輸出、排序、查找、插入、刪除);而且要盡可能的使用模塊化的程序設(shè)計(jì)方法,盡可能的體現(xiàn)c語(yǔ)言的風(fēng)格。四、問(wèn)題分析:本實(shí)驗(yàn)可先分功能模塊完成各個(gè)基本操作,再利用函數(shù)的調(diào)用實(shí)現(xiàn)程序的全部功能;各功能模塊的編寫(xiě)可在自己編寫(xiě)過(guò)的數(shù)組的基本操作的程序的基礎(chǔ)之上做些修改來(lái)實(shí)現(xiàn)。五、功能模塊描述及功能模塊圖:數(shù)組輸入輸出排序查找插入刪除每個(gè)功能模塊的功能:輸入:輸入數(shù)組里的各個(gè)元素輸出:輸出數(shù)組里的各個(gè)元素排序:將數(shù)組里的數(shù)從小到大
2、或從大到小進(jìn)行排序查找:判斷一個(gè)數(shù)是否是該數(shù)組中的一個(gè)數(shù)插入:向數(shù)組中插入一個(gè)數(shù)刪除:將數(shù)組中的一個(gè)數(shù)刪除掉六、每個(gè)功能模塊的算法描述及其實(shí)現(xiàn) :1. 輸入:函數(shù)的作用:輸入數(shù)組中的每一個(gè)元素;參數(shù):int a int n;返回值:無(wú);函數(shù)名,功能及實(shí)現(xiàn)方法:input; 運(yùn)用for語(yǔ)句實(shí)現(xiàn)輸入具體函數(shù)如下:void input(int a,int n)int i;for(i=0;i<n;i+)scanf("%d",&ai);2. 輸出:函數(shù)的作用:輸出數(shù)組中的每一個(gè)元素;參數(shù):int a int n;返回值:無(wú);函數(shù)名,功能及實(shí)現(xiàn)方法:output; 運(yùn)用f
3、or語(yǔ)句實(shí)現(xiàn)輸入具體函數(shù)如下:void output(int a,int n)int i;for(i=0;i<n;i+)printf("%d ",ai);printf("n"); 3. 排序:(1)函數(shù)的作用:將數(shù)組里的數(shù)從大到小排序參數(shù):int a int n;返回值:無(wú);函數(shù)名,功能及實(shí)現(xiàn)方法:f; 冒泡排序法具體函數(shù)如下:void f(int a,int n)int i,j,t;for(j=0;j<n-1;j+) for(i=0;i<n-1-j;i+) if(ai<ai+1) t=ai; ai=ai+1; ai+1=t; p
4、rintf("數(shù)組中各數(shù)從大到小的順序?yàn)? ");output(a,n);(2)函數(shù)的作用:將數(shù)組里的數(shù)從小到大排序參數(shù):int a int n;返回值:無(wú);函數(shù)名,功能及實(shí)現(xiàn)方法:f1; 冒泡排序法具體函數(shù)如下:void f1(int a,int n)int i,j,t;for(j=0;j<n-1;j+) for(i=0;i<n-1-j;i+) if(ai>ai+1) t=ai; ai=ai+1; ai+1=t; printf("數(shù)組中各數(shù)從小到大的順序?yàn)? ");output(a,n);4. 查找:函數(shù)的作用:判斷一個(gè)數(shù)x是否是該數(shù)
5、組中的一個(gè)數(shù)參數(shù):int a int n;返回值:無(wú);函數(shù)名,功能及實(shí)現(xiàn)方法:f2; 折半查找發(fā)具體函數(shù)如下:void f2(int a,int n)int i,j,k,x,l;f1(a,n);printf("請(qǐng)輸入要查找的一個(gè)整數(shù): ");scanf("%d",&x);l=0;i=0; j=n-1; while(i<=j&&l=0) k=(i+j)/2; if(x=ak)l=1;break;if(x>ak)i=k+1;if(x<ak)j=k-1; if(l=1)printf("找到n");
6、else printf("沒(méi)找到n");5. 插入:(1)函數(shù)的作用:向數(shù)組中插入一個(gè)數(shù)y(要求插入后數(shù)組中的所有數(shù)是按從小到大的順序排列的)參數(shù):int a int n;返回值:無(wú);函數(shù)名:f3; 功能及實(shí)現(xiàn)方法:查找y在數(shù)組中的位置,并標(biāo)記為k將數(shù)組中ak到an-1中的數(shù)整體后移一位將y 插入,使得ak=y具體函數(shù)如下:void f3(int a,int n)int i,k,y;f1(a,n);printf("請(qǐng)輸入要插入的一個(gè)整數(shù): ");scanf("%d",&y);if(y>an-1)k=n;for(i=0;i
7、<n;i+)if(y<ai)k=i;break;n+; for(i=n;i>k;i-)ai=ai-1; ak=y;printf("插入了你輸入的整數(shù)之后,數(shù)組中各數(shù)為: ");output(a,n);(2)函數(shù)的作用:向數(shù)組中插入一個(gè)數(shù)y(要求插入后數(shù)組中的所有數(shù)是按從大到小的順序排列的)參數(shù):int a int n;返回值:無(wú);函數(shù)名:f4; 功能及實(shí)現(xiàn)方法:查找y在數(shù)組中的位置,并標(biāo)記為k將數(shù)組中ak到an-1中的數(shù)整體后移一位將y 插入,使得ak=y具體函數(shù)如下:void f4(int a,int n)int i,k,y;f(a,n);printf(
8、"請(qǐng)輸入要插入的一個(gè)整數(shù): ");scanf("%d",&y);if(y<=an-1)k=n;for(i=0;i<n;i+)if(y>ai)k=i;break;n+; for(i=n;i>k;i-)ai=ai-1; ak=y;printf("插入了你輸入的整數(shù)之后,數(shù)組中各數(shù)為: ");output(a,n);6. 刪除:函數(shù)的作用:將數(shù)組中的一個(gè)數(shù)z刪除掉參數(shù):int a int n;返回值:無(wú);函數(shù)名:f5; 功能及實(shí)現(xiàn)方法:查找要?jiǎng)h除的數(shù)z的位置k將數(shù)組中ak+1到an-1中的數(shù)整體前移一位具體函
9、數(shù)如下:void f5(int a,int n)int i,k,z;printf("數(shù)組中現(xiàn)有的數(shù)是:");for(i=0;i<n;i+) printf("%d ",ai);printf("n");printf("請(qǐng)輸入要?jiǎng)h除的數(shù): ");scanf("%d",&z);for(i=0;i<n;i+) if(z=ai)k=i;for(i=k;i<n-1;i+) ai=ai+1;n-;printf("刪除了你輸入的整數(shù)之后,數(shù)組中各數(shù)為: ");outp
10、ut(a,n);7. 主函數(shù):調(diào)用各個(gè)函數(shù),反復(fù)實(shí)現(xiàn)數(shù)組的幾個(gè)基本操作;運(yùn)用while()實(shí)現(xiàn)多次循環(huán)調(diào)用;運(yùn)用if()、&&等選擇執(zhí)行的操作類(lèi)型;運(yùn)用system(“color 7c”);system(“pause”);system(“cls”)以及printf()對(duì)輸出界面進(jìn)行美化;具體函數(shù)如下:void main()int a500,n,m,r,x,i;system("color 7c");printf("請(qǐng)輸入數(shù)組中整數(shù)的個(gè)數(shù):");scanf("%d",&n);printf("請(qǐng)輸入數(shù)組中的
11、各數(shù)的值:");input(a,n);m=1;printf("請(qǐng)選擇數(shù)組中各數(shù)顯現(xiàn)的方式(1 為從小到大;2 為從大到?。?");scanf("%d",&r);while(m>0)system("cls");printf("n");printf(" ");printf("n"); printf(" ");printf("n"); printf(" ");printf("n"
12、); printf(" ");printf("n"); printf(" 1 排序 ");printf("n"); printf(" ");printf("n"); printf(" 2 查找 ");printf("n"); printf(" ");printf("n"); printf(" 3 插入 ");printf("n"); printf("
13、; ");printf("n"); printf(" 4 刪除 ");printf("n"); printf(" ");printf("n"); printf(" 0 退出 ");printf("n"); printf(" ");printf("n"); printf(" ");printf("n"); printf(" ");printf(&qu
14、ot;n"); printf(" ");printf("n"); printf("n"); printf(" 您數(shù)組里數(shù)有:"); if(r=1)f1(a,n);output(a,n);if(r=2)f(a,n);output(a,n);printf("n"); printf(" 請(qǐng)選擇你要執(zhí)行的操作:"); scanf("%d",&m);printf("n");if(r=1&&m=1)f1(a,n);
15、printf("數(shù)組中各數(shù)從小到大的順序?yàn)? ");output(a,n);system("pause");system("cls");if(r=1&&m=2)f1(a,n);f2(a,n);system("pause");system("cls");if(r=1&&m=3)f1(a,n);f3(a,n);n+;system("pause");system("cls");if(r=1&&m=4)f1(a,n)
16、;f5(a,n);n-;system("pause");system("cls");if(r=2&&m=1)f(a,n);printf("數(shù)組中各數(shù)從大到小的順序?yàn)? ");output(a,n);system("pause");system("cls");if(r=2&&m=2)f(a,n);f2(a,n);system("pause");system("cls");if(r=2&&m=3)f(a,n);f
17、4(a,n);n+;system("pause");system("cls");if(r=2&&m=4)f(a,n);f5(a,n);n-;system("pause");system("cls");七、源程序清單:本實(shí)驗(yàn)由我一個(gè)人完成,程序附最后。八、測(cè)試數(shù)據(jù)及結(jié)果:本程序經(jīng)我反復(fù)測(cè)試,均能反復(fù)實(shí)現(xiàn)任意多個(gè)數(shù)的排序、均能實(shí)現(xiàn)反復(fù)查找、反復(fù)插入、反復(fù)刪除(包括從大到小和從小到大)。由于測(cè)試數(shù)據(jù)太多,下面只附部分測(cè)試數(shù)據(jù):執(zhí)行程序后提示:請(qǐng)輸入數(shù)組中整數(shù)的個(gè)數(shù):輸入:6(回車(chē))出現(xiàn)提示:請(qǐng)輸入數(shù)組中各
18、數(shù)的值:輸入:12 9 33 78 6 125 (回車(chē))出現(xiàn)提示:請(qǐng)選擇數(shù)組中各數(shù)顯示的方式(1 為從小到大;2 為從大到?。狠斎耄? (回車(chē))出現(xiàn)提示: 1 排序 2 查找 3 插入 4 刪除 0 退出 你數(shù)組里數(shù)有:6 9 12 33 78 125 請(qǐng)選擇你要執(zhí)行的操作:輸入:1(回車(chē))出現(xiàn)提示: 1 排序 2 查找 3 插入 4 刪除 0 退出 你數(shù)組里數(shù)有:6 9 12 33 78 125 請(qǐng)選擇你要執(zhí)行的操作:1數(shù)組中各數(shù)從小到大的順序?yàn)椋? 9 12 33 78 125請(qǐng)按任意鍵繼續(xù)按任意鍵后出現(xiàn)提示: 1 排序 2 查找 3 插入 4 刪除 0 退出 你數(shù)組里數(shù)有:6 9 12
19、 33 78 125 請(qǐng)選擇你要執(zhí)行的操作:輸入:2(回車(chē))出現(xiàn)提示: 1 排序 2 查找 3 插入 4 刪除 0 退出 你數(shù)組里數(shù)有:6 9 12 33 78 125 請(qǐng)選擇你要執(zhí)行的操作:2請(qǐng)輸入要查找的一個(gè)整數(shù):輸入:125(回車(chē))出現(xiàn)提示: 1 排序 2 查找 3 插入 4 刪除 0 退出 你數(shù)組里數(shù)有:6 9 12 33 78 125 請(qǐng)選擇你要執(zhí)行的操作:2請(qǐng)輸入要查找的一個(gè)整數(shù): 125找到請(qǐng)按任意鍵繼續(xù)其它的操作也和上面的類(lèi)似執(zhí)行完其它操作后,按任意鍵會(huì)出現(xiàn)如下界面: 1 排序 2 查找 3 插入 4 刪除 0 退出 你數(shù)組里數(shù)有:6 9 12 33 78 125 請(qǐng)選擇你要執(zhí)
20、行的操作:輸入: 0(回車(chē))出現(xiàn)提示: 1 排序 2 查找 3 插入 4 刪除 0 退出 你數(shù)組里數(shù)有:6 9 12 33 78 125 請(qǐng)選擇你要執(zhí)行的操作:0press any key to continue.此時(shí)按任意鍵退出!九、總結(jié)和體會(huì):通過(guò)綜合實(shí)驗(yàn)的設(shè)計(jì),我能更好的運(yùn)用所學(xué)知識(shí)進(jìn)行編程了;在這個(gè)過(guò)程中,我的綜合分析、解決問(wèn)題的能力也得到了提高。在做綜合實(shí)驗(yàn)的過(guò)程中也遇到了很多問(wèn)題,起初總覺(jué)得很難解決,后來(lái)通過(guò)問(wèn)同學(xué)和老師把很多問(wèn)題都解決了。這讓我明白了:什么問(wèn)題都不是想象的那么難的,只要你愿意去解決它,你就一定能解決.還有一點(diǎn)值得一提的是:最初時(shí),通過(guò)我的反復(fù)編寫(xiě),我編寫(xiě)的程序已能
21、反復(fù)的實(shí)現(xiàn)排序、查找、插入、刪除;但我的程序還是不是很完美,而且我根本沒(méi)有想到把輸出的界面美化一下,后來(lái)是老師給了我指點(diǎn),我很快就對(duì)我的程序進(jìn)行了美化,美化后的輸出界面比先得程序好看了很多! 做完簡(jiǎn)單的美化后,我又進(jìn)一步的完善了我的程序(實(shí)現(xiàn)雙向的各種操作)從這個(gè)問(wèn)題中我深刻的明白了一個(gè)道理:只要我們?cè)敢忾_(kāi)動(dòng)我們的腦筋,我們什么都可以實(shí)現(xiàn)!在那之后,我也有了很多新的想法來(lái)讓我的程序變的更加完美. 但由于時(shí)間原因,我還沒(méi)能去實(shí)現(xiàn)那些想法,我會(huì)利用假期的時(shí)間去實(shí)現(xiàn),我相信那一定又會(huì)是我的思維的一次提高十、源程序 #include"stdio.h"#include"st
22、dlib.h"void input(int a,int n)int i;for(i=0;i<n;i+)scanf("%d",&ai);void output(int a,int n)int i;for(i=0;i<n;i+)printf("%d ",ai);printf("n"); void f(int a,int n)int i,j,t;for(j=0;j<n-1;j+) for(i=0;i<n-1-j;i+) if(ai<ai+1) t=ai; ai=ai+1; ai+1=t; vo
23、id f1(int a,int n)int i,j,t;for(j=0;j<n-1;j+) for(i=0;i<n-1-j;i+) if(ai>ai+1) t=ai; ai=ai+1; ai+1=t; void f2(int a,int n)int i,j,k,x,l;f1(a,n);printf("請(qǐng)輸入要查找的一個(gè)整數(shù): ");scanf("%d",&x);l=0;i=0; j=n-1; while(i<=j&&l=0) k=(i+j)/2; if(x=ak)l=1;break;if(x>ak)i
24、=k+1;if(x<ak)j=k-1; if(l=1)printf("找到n"); else printf("沒(méi)找到n");void f3(int a,int n)int i,k,y;f1(a,n);printf("請(qǐng)輸入要插入的一個(gè)整數(shù): ");scanf("%d",&y);if(y>=an-1)k=n;for(i=0;i<n;i+)if(y<ai)k=i;break;n+; for(i=n;i>k;i-)ai=ai-1; ak=y;printf("插入了你輸入的整
25、數(shù)之后,數(shù)組中各數(shù)為: ");output(a,n);void f4(int a,int n)int i,k,y;f(a,n);printf("請(qǐng)輸入要插入的一個(gè)整數(shù): ");scanf("%d",&y);if(y<=an-1)k=n;for(i=0;i<n;i+)if(y>ai)k=i;break;n+; for(i=n;i>k;i-)ai=ai-1; ak=y;printf("插入了你輸入的整數(shù)之后,數(shù)組中各數(shù)為: ");output(a,n);void f5(int a,int n)in
26、t i,k,z;printf("請(qǐng)輸入要?jiǎng)h除的數(shù): ");scanf("%d",&z);for(i=0;i<n;i+) if(z=ai)k=i;for(i=k;i<n-1;i+) ai=ai+1;n-;printf("刪除了你輸入的整數(shù)之后,數(shù)組中各數(shù)為: ");output(a,n);void main()int a500,n,m,r,x,i;system("color 7c");printf("請(qǐng)輸入數(shù)組中整數(shù)的個(gè)數(shù):");scanf("%d",&am
27、p;n);printf("請(qǐng)輸入數(shù)組中的各數(shù)的值:");input(a,n);m=1;printf("請(qǐng)選擇數(shù)組中各數(shù)顯現(xiàn)的方式(1 為從小到大;2 為從大到?。?");scanf("%d",&r);while(m>0)system("cls");printf("n");printf(" ");printf("n"); printf(" ");printf("n"); printf(" &qu
28、ot;);printf("n"); printf(" ");printf("n"); printf(" 1 排序 ");printf("n"); printf(" ");printf("n"); printf(" 2 查找 ");printf("n"); printf(" ");printf("n"); printf(" 3 插入 ");printf(&qu
29、ot;n"); printf(" ");printf("n"); printf(" 4 刪除 ");printf("n"); printf(" ");printf("n"); printf(" 0 退出 ");printf("n"); printf(" ");printf("n"); printf(" ");printf("n"); printf(" ");printf("n"); printf(" ");printf("n"); printf("n&
溫馨提示
- 1. 本站所有資源如無(wú)特殊說(shuō)明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶(hù)所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁(yè)內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒(méi)有圖紙預(yù)覽就沒(méi)有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫(kù)網(wǎng)僅提供信息存儲(chǔ)空間,僅對(duì)用戶(hù)上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)用戶(hù)上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對(duì)任何下載內(nèi)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請(qǐng)與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶(hù)因使用這些下載資源對(duì)自己和他人造成任何形式的傷害或損失。
最新文檔
- 贛南醫(yī)學(xué)院《安裝工程施工技術(shù)》2023-2024學(xué)年第一學(xué)期期末試卷
- 贛南師范大學(xué)科技學(xué)院《邏輯推理證明》2023-2024學(xué)年第一學(xué)期期末試卷
- 電氣培訓(xùn)課件題目
- 贛東學(xué)院《控制系統(tǒng)建模與仿真B》2023-2024學(xué)年第一學(xué)期期末試卷
- 甘孜職業(yè)學(xué)院《公司戰(zhàn)略與風(fēng)險(xiǎn)管理》2023-2024學(xué)年第一學(xué)期期末試卷
- 甘肅政法大學(xué)《水污染控制工程(一)設(shè)計(jì)》2023-2024學(xué)年第一學(xué)期期末試卷
- 鐵塔安全培訓(xùn)課件
- 七年級(jí)道德與法治上冊(cè)第三單元師長(zhǎng)情誼第六課師生之間第二框師生交往教案新人教版
- 三年級(jí)數(shù)學(xué)上冊(cè)教材梳理數(shù)與代數(shù)新人教版
- 三年級(jí)科學(xué)上冊(cè)第三單元人與動(dòng)物5動(dòng)物世界教案首師大版1
- 2024年高等教育法學(xué)類(lèi)自考-00229證據(jù)法學(xué)考試近5年真題附答案
- 科技成果技術(shù)成熟度評(píng)估規(guī)范
- 安徽省合肥市一六八中2025屆高二生物第一學(xué)期期末教學(xué)質(zhì)量檢測(cè)試題含解析
- 醫(yī)院后勤管理作業(yè)指導(dǎo)書(shū)
- 六年級(jí)下冊(cè)心理健康教育教案-8 男女生交往小鬧鐘遼大版
- 【課件】第五單元化學(xué)反應(yīng)的定量關(guān)系新版教材單元分析九年級(jí)化學(xué)人教版(2024)上冊(cè)
- 國(guó)庫(kù)資金支付管理辦法
- 中醫(yī)調(diào)理理療免責(zé)協(xié)議書(shū)模板
- 《列那狐的故事》導(dǎo)讀課 教學(xué)設(shè)計(jì)-2024-2025學(xué)年統(tǒng)編版語(yǔ)文五年級(jí)上冊(cè)
- 小學(xué)二年級(jí)語(yǔ)文(人教版)下冊(cè)生字筆順
- 2024 錦綸深度報(bào)告:消費(fèi)升級(jí)帶動(dòng)需求增長(zhǎng)原材料國(guó)產(chǎn)化促進(jìn)產(chǎn)能釋放
評(píng)論
0/150
提交評(píng)論