已閱讀5頁,還剩13頁未讀, 繼續(xù)免費閱讀
版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進行舉報或認領(lǐng)
文檔簡介
JAVA程序設(shè)計報告-集合的運算(交并差)學生: 學號: 專業(yè):信息工程(系統(tǒng)工程方向)院系:信息與控制學院實習時間:三周;指導(dǎo)老師:陳金輝 目錄實驗?zāi)康?試驗設(shè)計-實驗源程序-程序設(shè)計調(diào)試-不足及改進-如何美觀-第一章 程序設(shè)計目的本次課程設(shè)計報告主要是老師對學生綜合編程能力的一次評測,在掌握c,java語言的基礎(chǔ)上,學會自主的編制一些基本的程序。本次的實驗課題是對集合的運算進行實驗。在java平臺上開發(fā)出集合運算的程序。 第二章 程序設(shè)計思路一:集合的運算,我們要求的是集合的交并差。首先了解集合的交并差是如何讓運算的。掌握運算的思路才能把程序設(shè)計思路調(diào)試出來。1:集合的交 對于給定的兩個集合,要求出給定的兩個集合的交集,交集和就是將其中都相同的元素找出來,將之放入第三個集合里,輸出第三集合里的元素。如A=1,2,3,4;B=2,4,5,6; C=AB; C=2,4;需要中間變量C需要定義新的數(shù)組,int C=new int20; 2:集合的差 對于給定的兩個集合,集合的差就是找出A集合中不同于B集合里面的元素,并將之存入第三集合C中,同樣也需要引入第三集合,但是尋找A集合中不同于集合B中的方法不是很容易想到。需要先定義一個標記,從標記入手,依次尋找。將在下一章中重點介紹。A=1,2,3,4;B=2,4,5,6;,;3:集合的并 對于給定的兩個集合,集合的并就是將A集合與B集合中的所有的元素都找一遍,相同的元素的只將其賦一次值于第三集合里。主要思想是在集合差的基礎(chǔ)上,再做一次賦值運算就可以了,由于集合差的運算中,已經(jīng)找到了中異于中的元素,然后再將中的元素再賦值于第三集合就可以了。A=1,2,3,4;B=2,4,5,6;,;,;二:主要思想:以數(shù)組的形式來代替集合,通過數(shù)組的運算來進行集合的運算。首先定義數(shù)組,再在數(shù)組中進行定義一個類,再定義成員變量,構(gòu)造成員方法,成員方法是對數(shù)組也就是集合來進行操作的一種手段。由于是直接賦值了,我們找不到類。我們需要先進行定義一個類NewMain A=new NewMain();A.Aarray=c; A.Barray=d;通過地址調(diào)用來完成對數(shù)組的調(diào)用以及修改,因為我們不僅需要對整形數(shù)組進行交并差的運算,還要對實型數(shù)組,字符型數(shù)組進行運算。為了美化和方便程序,為了能實現(xiàn)一個友好的人機界面,就必須以多種方法的形式出現(xiàn)在你的java程序中。之前,我也試過了將多個函數(shù)模塊寫在主方法中,發(fā)現(xiàn)了如下問題:1. 在主方法中要用來存儲第A,B中相異的元素的第三集合需要定義很多,和比較的中間變量也比較多。使程序看起來一是冗雜,而是出現(xiàn)問題很多,很難進行調(diào)試。2. 難以實現(xiàn)用戶的自主性,因為在同一個主方法中,所有的函數(shù)都是按照順序從上往下執(zhí)行的不能選擇性的跳過。這就增加函數(shù)的選擇的難度。所以想到用多方法定義集合運算,在個定義了一個抽象的數(shù)據(jù)類型后,還需為這個類型的對象定義相應(yīng)的操作。分別是整形的,實型的,字符型的交并差的方法。public static void intjihe();public void charjihe(char Aarray,char Barray)等等。其中三種集合的操作都是一樣的。只是在形式上以及操作類型上出現(xiàn)一些細微的差別。但是算法本質(zhì)上沒有很大的差別。初始時想通過找到A,B集合中的A異于B的元素于是編出java函數(shù)代碼。for(i=0;iAarray.length;i+) for(j=0;jBarray.length;j+) if(Aarrayi!=Barrayj) Carray.k+=Aarrayi;結(jié)果發(fā)現(xiàn)這段函數(shù)根本實現(xiàn)不了其所期望的功能,根本原因在于他只是找到一個與B中第一個不一樣的元素就輸出,終止了操作。其結(jié)果肯定是不行的。以下附上正確的源代碼:outer: for(i=0;iAarray.length;i+) for(j=0;jBarray.length;j+) if(Aarrayi=Barrayj) continue outer; Carrayk+=Aarrayi;這是在函數(shù)還標記了一個位置好讓函數(shù)在找到不同的元素,還能繼續(xù)遍歷下一個元素直至找到A中所有的元素不同于B的元素,能實現(xiàn)我們的目的。下面附上完整和美化后的函數(shù)源代碼(函數(shù)的功能標記注釋):import java.util.Scanner;public class NewMain static int Aarray; static int Barray;/*定義成員變量*/ static char Darray;/=a,b,c,d;/進行函數(shù)的測試 static char Earray;/=c,h,j; static double Garray; static double Harray;public static void intjihe()/整形集合的運算方法int Carray=new int20;int Darray=new int20;/開辟中間函數(shù)的空間 int i,j,k=0,l,t=0,m,n,r=0,b; outer: for(i=0;iAarray.length;i+) for(j=0;jBarray.length;j+) if(Aarrayi=Barrayj) continue outer;/如果找到相同的返回函數(shù)頭 繼續(xù)做 Carrayk+=Aarrayi; t=k; /找到相同的符號(字母,數(shù)字,實型): /System.out.println(t=+t);/用于檢查t是否進行正確操作 if(t=0) System.out.print(該集合的差集為空集); else System.out.println(集合減的結(jié)果是 :); System.out.println(); System.out.print(A-B=); System.out.print( ); for(int g=0;gt;g+) System.out.print(Carrayg+ ,);/輸出集合減的結(jié)果 System.out.print( ); for(j=0;jBarray.length;j+) Carrayk+=Barrayj; /System.out.println(k);/*檢測k賦值多少即是找到A,B中相同的數(shù)字多少*/ System.out.println(); System.out.println(); System.out.print(集合并的結(jié)果是:); System.out.println(); System.out.print(AuB=); System.out.print( ); for(l=0;lk;l+) System.out.print(Carrayl+ ; ); System.out.print( ); System.out.println(); System.out.println();/換行 用于美化 for(m=0;mAarray.length;m+) for(n=0;nBarray.length;n+) if(Aarraym=Barrayn) Darrayr+=Aarraym; if(r=0) System.out.print(集合沒有交集 !請重新檢查輸入是否合法!); else System.out.print(集合交的結(jié)果:);/輸出集合交的結(jié)果 System.out.print(AB=:); System.out.println(); System.out.print(AB=); System.out.print( ); for(b=0;br;b+) System.out.print(Darrayb+, ); System.out.print( ); public void charjihe(char Aarray,char Barray)/字符型集合運算的方法 int i,j,k=0,l,t=0,m,n,r=0,b; char Carray=new char20; char Darray=new char20; outer: for(i=0;iAarray.length;i+) for(j=0;jBarray.length;j+) if(Aarrayi=Barrayj) continue outer;/如果找到相同的返回函數(shù)頭 繼續(xù)做 Carrayk+=Aarrayi; t=k; /System.out.println(t=+t); if(t=0) System.out.print(該集合的差集為空集); System.out.println(集合減的結(jié)果是:); System.out.println(); System.out.print( ); for(int g=0;gt;g+) System.out.print(Carrayg+ ,); System.out.print( ); for(j=0;jBarray.length;j+) Carrayk+=Barrayj; /System.out.println(k);/*檢測k賦值多少即是找到A,B中相同的數(shù)字多少*/ System.out.println(); System.out.println(); System.out.print(集合并的結(jié)果是:);/找到不相同的目標后,把另外一個數(shù)組的元素調(diào)進去 System.out.println(); System.out.println(); System.out.print( ); for(l=0;lk;l+) System.out.print(Carrayl+; ); System.out.print( ); System.out.println(); System.out.println(); for(m=0;mAarray.length;m+) for(n=0;nBarray.length;n+) if(Aarraym=Barrayn) Darrayr+=Aarraym; if(r=0) System.out.print(集合沒有交集 !請重新檢查輸入是否合法!); else System.out.print(AB交集的結(jié)果是 :); System.out.print(AB=:); System.out.println(); System.out.println(); System.out.print( ); for(b=0;br;b+) System.out.print(Darrayb+, ); System.out.print( ); public void doublejihe(double Aarray,double Barray)/double型數(shù)據(jù)處理 int i,j,k=0,l,t=0,m,n,r=0,b; double Darray=new double20; double Carray=new double20; outer: for(i=0;iAarray.length;i+) for(j=0;jBarray.length;j+) if(Aarrayi=Barrayj) continue outer; Carrayk+=Aarrayi; t=k; /尋找異于B中的數(shù) /System.out.println(t=+t);/用于檢查t是否進行正確操作 if(t=0) System.out.print(該集合的差集為空集); else System.out.println(集合減的結(jié)果是:); System.out.println(); System.out.print( ); for(int g=0;gt;g+) System.out.print(Carrayg+ ,); System.out.print( ); for(j=0;jBarray.length;j+)/轉(zhuǎn)移操作 Carrayk+=Barrayj; System.out.println(); System.out.println(); System.out.print(AB并的結(jié)果是:); System.out.println(); System.out.println(); System.out.print( ); for(l=0;lk;l+) System.out.print(Carrayl+; ); System.out.print( ); System.out.println(); System.out.println(); for(m=0;mAarray.length;m+) for(n=0;nBarray.length;n+) if(Aarraym=Barrayn) Darrayr+=Aarraym; if(r=0) System.out.print(集合沒有交集 !請重新檢查輸入是否合法!); else System.out.print(集合交的結(jié)果是:); System.out.print(AB=:); System.out.println(); System.out.println();
溫馨提示
- 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)方式做保護處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負責。
- 6. 下載文件中如有侵權(quán)或不適當內(nèi)容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 2025年度泥漿外運承包合同(含廢棄物處理設(shè)施運營管理)4篇
- 2025年農(nóng)藥市場分析及營銷策劃服務(wù)合同3篇
- 2025版泥工精細施工技術(shù)承包合同3篇
- 二零二五版排水設(shè)施設(shè)計與咨詢合同4篇
- 2025年度木板行業(yè)人才培養(yǎng)與交流合作合同3篇
- 2025年度醫(yī)療廢物處理及回收服務(wù)合同4篇
- 2025年度木結(jié)構(gòu)工程綠色施工技術(shù)指導(dǎo)合同3篇
- FIDIC合同條件中的紅皮書是指
- 2025年度木屑廢棄物資源化利用合同4篇
- 2025年租賃房屋租賃合同解除后責任承擔協(xié)議3篇
- 鹽酸??颂婺崤R床療效、不良反應(yīng)與藥代動力學的相關(guān)性分析的開題報告
- 消防設(shè)施安全檢查表
- 組合結(jié)構(gòu)設(shè)計原理 第2版 課件 第6、7章 鋼-混凝土組合梁、鋼-混凝土組合剪力墻
- 建筑公司資質(zhì)常識培訓(xùn)課件
- 旅居管家策劃方案
- GB/T 26316-2023市場、民意和社會調(diào)查(包括洞察與數(shù)據(jù)分析)術(shù)語和服務(wù)要求
- 春節(jié)值班安全教育培訓(xùn)
- 帶狀皰疹護理查房
- 平衡計分卡-化戰(zhàn)略為行動
- 幼兒園小班下學期期末家長會PPT模板
- 幼兒教師干預(yù)幼兒同伴沖突的行為研究 論文
評論
0/150
提交評論