練習3-OOP請注意,實驗需要成功完成實驗2。創建一個名為lab3的新項目並添加以下類從lab3中的Lab 2:人類基因組庫B.NucleicAcid.java在本實驗中,我們將應用關聯和遏制。傳遞對象時實現關聯引用另一個類或對象的方法是從方法返回。包容是指將對象創建為實例另一個類中的變量。了解DNA(資料來源-https://www.my46.org/intro/what-is-dna )脫氧核糖核酸(DNA)由四個分子組成基本,縮寫為字母:●A =腺嘌呤●T =胸腺嘧啶●C =胞嘧啶●G =鳥嘌呤DNA的結構字母或基數已鏈接在一起使脫氧核糖核酸。DNA的兩條鍊是配對在一起並形成一個結構稱為雙螺旋。
第2頁
●腺嘌呤A總是與胸腺嘧啶T配對。●胞嘧啶C始終與鳥嘌呤G配對。雙螺旋的三維形狀看起來像扭曲的梯子。成對的鹼基(AT和CG)就像梯子的橫檔。遺傳學的語言只有四個字母(A,T,C和G)。這四個字母組合成三個字母的單詞(密碼子)。單詞組成“基因”,就像句子。每個句子都有重要的意義或故事要講。基因提供說明以保持你體內的細胞在做工作。基因被包裝到染色體DNA被組織成大約20,000個基因,並將基因包裝到染色體。你可以想到你的整個遺傳密碼百科全書,並將每個染色體作為單獨的捲。通常,一個人從他們的母親和父親的另一半。大多數人有23對染色體,共46條染色體。在這46條染色體中,兩條染色體確定嬰兒是否男女不限。性染色體稱為“ X”和“ Y”。大多數雄性有一條X染色體和一條Y染色體。最女性有兩個X染色體。除了兩性染色體,其他染色體稱為“常染色體”,編號為1-22。
第3頁
編寫一個叫做類DNA創造了DNA的兩條鏈螺旋線,實現為類型的對象的數組NucleicAcid。每條鏈將具有相同的大小。DNA類別應具有以下特性1.LtoRHelix是類型的對象的數組NucleicAcid。2.RtoLHelx是類型的對象的數組NucleicAcid。DNA類應通過以下方法創建:默認構造函數將屬性初始化為null。公共DNA()重載的構造函數公共DNA(字符串)接收包含核酸序列的字符串用字母“ A”,“ G”,“ T”和“ C”表示(例如“ ATGCCTAGGATCAG”)和1,使用數組向LtoRHelix填充相應的對象核酸。2.用互補的NucleicAcid對象填充RtoLHelix符合以下條件:一種。腺嘌呤A總是與胸腺嘧啶T配對。b。胞嘧啶C總是與鳥嘌呤G配對。例如●如果LtoRHelix中的索引值0包含A,則填充RtoHHelix索引值0應該包含T●如果LtoRHelix中的索引值1包含C,則填充RtoHHelix索引值1應該包含G
第4頁
公共無效LtoRHelixpopulate(字符串)對於輸入字符串ATGCCTAGGATCAG,對其進行解析並針對每個核酸酸(如A,T,G或C)創建NucleicAcid類型的對象在對象LtoRHelix的數組中。該方法可以在重載的構造的公共DNA(字符串鏈) -字符串charAT()解析字符串名稱鏈中的字符。公共無效print()用這種方法,遍歷每個索引值並打印以下序列的每個核酸的特性對象:●LtoRHelix和●RtoLHelixhttps://www.news-medical.net/life-sciences/START-and-STOP-密碼子asp.x公共無效的highestMolarMass()用這種方法打印指數值和最高的摩爾質量遍歷以下對像數組後的核酸:●LtoRHelix和●RtoLHelix公共無效totalDensity()用這種方法打印所有核酸的總密度在以下對像數組中:●LtoRHelix和●RtoLHelix編寫一個名為DNADriver的驅動程序類並測試所有方法與以下字符串1.AGCCTAGGATCAG2.AGCCTAGGATCTAGGATCAG
第5頁
3.AGCCTATAGGATCAG4.AAAGCCTAGGATAGGATCAG5.AAAGCCTCTGAGAGTAGGATCAG
請各位大大幫幫忙
以下是實驗2的題目既有的程式內容:
作業/實驗2-OOP第1部分-人類基因組課程遺傳學是關於頭髮顏色,眼睛等性狀的研究顏色和疾病風險從父母給孩子。您的遺傳密碼已在基因組(您的遺傳密碼),由一種化學物質組成稱為DNA(脫氧核糖核酸),幾乎被儲存在您體內的每個細胞。人類的基因組= 1人類基因組中的基因= 20000您體內的細胞(3 美國赤字)= 75至100萬億。(就我而言,考慮到我的身體,大概是200萬億質量 )人類細胞中的染色體= 46。面向對象編程是一種允許映射對象(物理或虛擬)之間的關係使能創建解決複雜問題的思維機(包括AI / ML的使用),這將需要人類花費很長時間解決。在這個過程中,我們將嫁給兩個人,以產生美麗結果。畢竟,COVID-19是一場危機,我們程序員可以通過了解人類的DNA可能有助於解決它病毒並找到殺死病毒的DNA。這樣做編程的一種是生物信息學的一個分支。在本實驗(以及後續系列)中,我們將開始解決這個問題。
第2頁
適用的概念:創建一個類和幾個對象(在您的個人家庭中)在其中我們可以開始定義自己的基因組的藍圖。設計一個HumanGenome持有下面的類信息:基因組名稱,基因組中的基因數,染色體,您體內的細胞數量。適當寫方法(構造函數,getter和setter。通過編寫創建三個程序的程序來演示該類此類的更多實例(使用迪斯尼人物)。您可以使用掃描儀在每個對像中填充信息類。請不要使用任何個人信息作為該項目。使用以下命令提交類圖,測試運行和代碼(.java文件)您提交的文件,必須包含以下Java文件。HumanGenome.java-包含屬性,構造函數和如上所述的屬性。同時創建一個print()方法將每個屬性的值打印為值名稱對使用printf()分隔行。GenomeInput.java包含使用Scanner的輸入方法用於數據輸入並返回HumanGenome實例。添加驅動器(在GenomeInput類main方法)是調用輸入法3次以創建三個實例人類基因組。HumanGenome屬性的可能輸入值財產名稱值1值2值3
第3頁
基因組名稱“人類鮑勃”“人類的莎莉”“人類斯里蘭卡”基因數目200002000020000染色體數464646細胞數(萬億)7612075請創建一個zip文件並提交一個附件對於這一部分。第2部分-創建核酸就我們的目的而言,這是DNA和用於創建DNA或RNA的RNA。創建一個名為類NucleicAcid具有以下屬性1.名稱2.化學式3.摩爾質量4.密度編寫適當的方法(構造函數,getter和setter)。還創建一個print()方法,將每個屬性的值打印為值名稱對使用printf()在單獨的行中。創建可實例化以下核酸的驅動程序演示課程。胞嘧啶化學式-C4H5N3O摩爾質量-111.10 g / mol密度-1.55 g / cm3(計算得出)腺嘌呤化學式C5H5N5摩爾質量135.13克/摩爾密度1.6 g / cm3(計算得出)鳥嘌呤化學式C5H5N5O摩爾質量151.13克/摩爾
第4頁
密度2.200 g / cm3(計算得出)胸腺嘧啶化學式C5H6N2O2摩爾質量126.115 g·mol-1密度1.223 g cm−3(計算得出)尿嘧啶化學式C4H4N2O2摩爾質量112.08676克/摩爾密度1.32 g / cm3使用以下命令提交類圖,測試運行和代碼(.java文件)您提交的文件,必須包含以下Java文件。NucleicAcid.java-包含屬性,構造函數和如上所述的屬性。同時創建一個print()方法將每個屬性的值打印為值名稱對使用printf()分隔行。GenoNucleicAcid.java(類似於Driver程序) -包含使用輸入法掃描儀進行數據輸入並返回一個NucleicAcid實例。(使用陳述的數據以上用於實例化核酸)。請創建一個zip文件並提交一個附件對於這一部分。***************************************************** ********Java編碼標準編寫課程時:●類名應以大寫字母開頭。●課堂應始終公開●必須包括默認構造函數。●所有實例變量(屬性)必須是私有的●所有方法都必須公開或受保護●類解剖-實例變量,靜態變量,構造函數,getter和setter,實例方法,靜態方法。■--instance變量■-靜態變量■-建設者
第5頁
■-實例方法■---- getters / setters■----業務方法(計算)■- - 打印()■--static方法-通常更新static變量[將不會用於更新■實例變量]-因為靜態方法可以無需創建對象即可使用。●驅動程序(其中包含main()的類)應獨立存在類。●每個類都必須有一個可以打印實例變量的值-必須為System.out.printf。●每個.java文件一個類
HumanGenome.java
public class HumanGenome
{
private String genomeName;
private int numberOfGenes, numberOfChromosomes, numberOfCells;
public HumanGenome(String name, int genes, int chromosomes, int cells){
genomeName = name;
numberOfGenes = genes;
numberOfChromosomes = chromosomes;
numberOfCells = cells;
}
public String getGenomeName(){
return genomeName;
}
public int getNumberOfCells(){
return numberOfCells;
}
public int getNumberOfChromosomes(){
return numberOfChromosomes;
}
public int getNumberOfGenes(){
return numberOfGenes;
}
public void setGenomeName(String name){
genomeName = name;
}
public void setNumberOfCells(int cells){
numberOfCells = cells;
}
public void getNumberOfChromosomes(int chromosomes){
numberOfChromosomes = chromosomes;
}
public void setNumberOfGenes(int genes){
numberOfGenes = genes;
}
public void print(){
System.out.println("\nHuman genome details");
System.out.printf("Genome Name : %s\n", genomeName);
System.out.printf("Number of genes : %d\n", numberOfGenes);
System.out.printf("Number of chromosomes : %d\n", numberOfChromosomes);
System.out.printf("Number of cells (Trillions): %d\n", numberOfCells);
}
}
GenomeInput.java
import java.util.Scanner;
public class GenomeInput
{
public static HumanGenome input(){
Scanner sc = new Scanner(System.in);
String genomeName;
int numberOfGenes, numberOfChromosomes, numberOfCells;
System.out.println("\nEnter Human genome details");
System.out.print("Genome Name : ");
genomeName = sc.nextLine();
System.out.print("Number of genes : ");
numberOfGenes = sc.nextInt();
System.out.print("Number of Chromosomes : ");
numberOfChromosomes = sc.nextInt();
System.out.print("Number of Cells (Trillions): ");
numberOfCells = sc.nextInt();
return new HumanGenome(genomeName,numberOfGenes,numberOfChromosomes,numberOfCells);
}
public static void main(String[] args) {
System.out.println("Human genome test run");
HumanGenome MickeyMouse = input();
HumanGenome DonaldDuck = input();
HumanGenome Elsa = input();
MickeyMouse.print();
DonaldDuck.print();
Elsa.print();
}
}