




已閱讀5頁,還剩13頁未讀, 繼續(xù)免費閱讀
版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進行舉報或認領(lǐng)
文檔簡介
JAVA程序設計報告-集合的運算(交并差)學生: 學號: 專業(yè):信息工程(系統(tǒng)工程方向)院系:信息與控制學院實習時間:三周;指導老師:陳金輝 目錄實驗目的-試驗設計-實驗源程序-程序設計調(diào)試-不足及改進-如何美觀-第一章 程序設計目的本次課程設計報告主要是老師對學生綜合編程能力的一次評測,在掌握c,java語言的基礎上,學會自主的編制一些基本的程序。本次的實驗課題是對集合的運算進行實驗。在java平臺上開發(fā)出集合運算的程序。 第二章 程序設計思路一:集合的運算,我們要求的是集合的交并差。首先了解集合的交并差是如何讓運算的。掌握運算的思路才能把程序設計思路調(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集合中的所有的元素都找一遍,相同的元素的只將其賦一次值于第三集合里。主要思想是在集合差的基礎上,再做一次賦值運算就可以了,由于集合差的運算中,已經(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ù)類型后,還需為這個類型的對象定義相應的操作。分別是整形的,實型的,字符型的交并差的方法。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)容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
- 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. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- DB62T 4435-2021 沿黃灌溉區(qū)胡麻套種玉米栽培技術(shù)規(guī)程
- 營地選址規(guī)劃方案(3篇)
- 工廠設備改造方案(3篇)
- 租房小院整租方案(3篇)
- 工地護欄清洗方案(3篇)
- grpg面試題及答案
- 基礎護理學口腔護理課件
- 個貸轉(zhuǎn)型建設方案(3篇)
- 國際貿(mào)易跨境支付IDC機房租賃與全球市場拓展協(xié)議
- 景觀園林不銹鋼護欄設計施工一體化合同
- 2025年國家開放大學國開電大《管理學基礎》《當代中國政治制度》形考任務1-4及答案
- 2025ct技師上崗證考試試題及答案
- 臨床助理技能試題及答案
- 臨夏州臨夏市招聘專職社區(qū)工作者考試真題2024
- 4.《口語交際:新聞述評》高二語文下學期教學設計(高教版2023拓展模塊上冊)
- 鋼結(jié)構(gòu)安裝中的應急預案及安全措施
- 2024年福建省龍巖市長汀縣三洲鄉(xiāng)招聘社區(qū)工作者考前自測高頻考點模擬試題(共500題)含答案
- 高校學生資助誠信教育主題班會
- 《人體解剖生理學基礎》課件
- 人工智能第二版賁可榮習題解析答案
- 2024-2025西師大版一年級下冊數(shù)學期末考試卷及參考答案
評論
0/150
提交評論