⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 dnasequence.java

📁 JAVA编程 SSD3 UNIT1完全答案 满分作业!! CMU经典课程
💻 JAVA
字号:
/**
 * This class represents a DNA sequence of nucleotides 'A', 'T', 'C' and 'G'
 * as a sequence of characters in a {@link String} object.
 *
 * @author  刘永东
 * @version  1.0.0
 */
public class DNASequence  {

	/* Contains the sequence of nucleotides. */
	private String  sequence;

	/* Contains the number of nucleotide A */
	private int numberOfA;

	/* Contains the number of nucleotide T */
	private int numberOfT;

	/* Contains the number of nucleotide C */
	private int numberOfC;

	/* Contains the number of nucleotide G */
	private int numberOfG;

	/**
	 * Test driver for class DNA.
	 *
	 * @param args  not used.
	 */
	public static void  main(String[] args)  {

		String s = "ATTATCGGGGTAA";
		DNASequence dnaSequence = new DNASequence(s);

		if ((dnaSequence.getNumberOfA() == 4)
				&& (dnaSequence.getNumberOfT() == 4)
				&& (dnaSequence.getNumberOfC() == 1)
				&& (dnaSequence.getNumberOfG() == 4)) {
			System.out.println("Test case 1:  get methods passed\n");
		} else {
			System.out.println("Test case 1:  get methods failed !!!\n");
		}

		if (dnaSequence.twoConsecutive('T')) {
			System.out.println("Test case 2: method twoConsecutive passed\n");
		} else {
			System.out.println(
				"Test case 2: method twoConsecutive failed !!!\n");
		}

		if (dnaSequence.twoConsecutive('A')) {
			System.out.println("Test case 3: method twoConsecutive passed\n");
		} else {
			System.out.println(
				"Test case 3: method twoConsecutive failed !!!\n");
		}

		if (dnaSequence.twoConsecutive('C')) {
			System.out.println("Test case 4: method twoConsecutive passed\n");
		} else {
			System.out.println(
				"Test case 4: method twoConsecutive failed !!!\n");
		}
	}

	/**
	 * Constructs a DNASequence object that represents the sequence
	 * of nucleotides indicated by the chars in the string argument
	 * and counts the occurrences of each nucleotide in the sequence.
	 *
	 * @param initialSequence  a string with the initial sequence of nucleotides.
	 */
	public  DNASequence(String initialSequence)  {

		sequence = initialSequence;
		countNucleotides();
	}

	/*
	 * Counts the occurrences of each nucleotide in the DNA sequence and then
	 * updates the values of the variables numberOfA, numberOfT, numberOfC, and
	 * numberOfG .
	 */
	private void  countNucleotides()  {
/**
		int numberOfA = 0;
		int numberOfT = 0;
		int numberOfC = 0;//error
		int numberOfG = 0;
*/
		int index = 0;

		while (index < sequence.length()) {

			char nucleotide = sequence.charAt(index);

			if (nucleotide == 'A') {
				numberOfA++;
			} else if (nucleotide == 'T') {
				numberOfT++;
			} else if (nucleotide == 'C') {
				numberOfC++;
			} else if (nucleotide == 'G') {
			//	numberOfC++;//error
				numberOfG++;
			}
			index++;
		}

		return;
	}

	/**
	 * Obtains the number of occurrences of nucleotide A in the sequence.
	 *
	 * @return  the number of occurrences of nucleotide A.
	 */
	public int  getNumberOfA( )  {

		return numberOfA;
	}

	/**
	 * Obtains the number of occurrences of nucleotide T in the sequence.
	 *
	 * @return  the number of occurrences of nucleotide T.
	 */
	public int  getNumberOfT( )  {

		return numberOfT;
	}

	/**
	 * Obtains the number of occurrences of nucleotide C in the sequence.
	 *
	 * @return  the number of occurrences of nucleotide C.
	 */
	public int  getNumberOfC( )  {

		return numberOfC;
	}

	/**
	 * Obtains the number of occurrences of nucleotide G in the sequence.
	 *
	 * @return  the number of occurrences of nucleotide G.
	 */
	public int  getNumberOfG( )  {

		return numberOfG;
	}

	/**
	 * Checks if the nucleotide specified by the argument occurs in two
	 * consecutive locations in the DNA sequence.
	 *
	 * @param input a char that represent the nucleotide.
	 * @return  true if the specified nucleotide occurs two
	 *          consecutive locations in the sequence. 
	 *          Returns false otherwise.
	 */
	public boolean  twoConsecutive(char input)  {

		int index = 1;

		while (index < sequence.length() ) {//error

			int indexOfFirstNucleotide = index - 1;

			char firstNucleotide = sequence.charAt(indexOfFirstNucleotide);
			char secondNucleotide = sequence.charAt(index);

			if ((firstNucleotide == input) && (secondNucleotide == input)) {//error

				return true;

			}
			index++;
		}

		return false;
	}
}

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -