Just nu i M3-nätverket
Jump to content

Hjälp en nybörjare med en java uppgift


soso

Recommended Posts

Hej

 

Jag är helt nybörjare i java och vill ha hjälp med en lösningen till uppgiften.

 

uppgiften:

Du skall skriva ett program för dechiffrering av fem krypterade texter, med nr = 1, 2, 3, 4 och 5.

Texterna innehåller bara de 26 stora bokstäverna A–Z och blanktecken.

Chiffreringsmetod: Chiffret är ett cykliskt förskjutningschiffer där varje bokstav förskjuts 1-26

steg beroende på en nyckel bestående av ett ord med 5 bokstäver. Nyckeln upprepas efter 5

chiffrerade bokstäver. Blanktecken chiffreras inte utan står kvar oförändrade.

Exempel:

Nyckel: COULD

klartext: R A Z Z I A T O N I G H T

+ C O U L D C O U L D C O U

chiffertext: U P U L M D I J Z M J W O

Observera att efter W, X, Y, Z följer A, B, C, D

Följande satser kan användas för omvandling mellan en bokstav och bokstavens plats i alfabetet:

index = letter - 'A'; // letter=='C' ger index=2

letter = (char) (index+'A'); // index==2 ger letter='C'

Fyra klasser med följande specifikationer är givna:

Specifikation av klassen Key:

/** Skapar en nyckel */

Key();

/** Tar reda på bokstav nummer index (0..4) i nyckeln */

char getLetter(int index);

Specifikation av klassen TestCase:

/** Skapar ett objekt med fem olika klartexter, med nr 1 till 5.

Till varje klartext finns motsvarande chiffertext. */

TestCase();

/** Returnerar klartext nr nbr */

String getClearText(int nbr);

/** Returnerar chiffertext nr nbr */

String getCryptoText(int nbr);

Specifikation av klassen TextWindow:

/** Skapar ett fönster med namnet title i vilket man kan lägga

textvyer */

TextWindow(String title);

/** Lägger in textvyn view nedanför tidigare utlagda textvyer */

void addView(TextView view);

/** Väntar tills användaren har klickat på en musknapp i fönstret */

void waitForMouseClick();

Specifikation av klassen TextView:

/** Skapar en textvy med rubriken headline och plats för rows rader

med text och width tecken i varje rad.

En textvy syns inte förrän den läggs i ett fönster (se addView

i klassen TextWindow). */

TextView(String headline, int rows, int width);

/** Visar texten text i textvyn. Ev. tidigare innehåll raderas. */

void displayText(String text);

Du skall själv implementera en klass med följande specifikation:

Specifikation av klassen Decryptographer:

/** Skapar ett objekt för dechiffrering där nyckeln key används */

Decryptographer(Key key);

/** Dechiffrerar texten text och returnerar klartexten */

String decrypt(String text);

Vid dekrypteringen behöver du använda Javas standardklass StringBuilder, dvs ett strängobjekt

vars innehåll kan modifieras. Följande metoder i klassen StringBuilder kan vara lämpliga att

använda:

/** Skapar en tom strängbuffert */

StringBuilder();

/** Lägger till tecknet c efter de existerande tecknen i bufferten */

StringBuilder append(char c);

/** Skapar ett String-objekt med samma innehåll som denna

strängbuffert */

String toString();

Du skall skriva en klass med en main-metod som dechiffrerar de fem chiffertexterna en efter en.

Programmet skall först visa chiffertext nr 1, din klartext och den korrekta klartexten i tre

delfönster med rubrikerna ”Chiffertext”, ”Min klartext”, ”Korrekt klartext”. Efter musklick skall

motsvarande texter för klartext nr 2 visas, osv.

De givna klasserna Key, TestCase, TextWindow och TextView importeras med:

import se.lth.cs.p.inl1.*;

import se.lth.cs.p.inl1.nbr8.*;

 

Jag är tacksam om någon hjälper mig med det!

 

Link to comment
Share on other sites

Har du skrivit någon kod? Vad har du fastnat på?

Du kommer nog inte att få en lösning härifrån däremot så kan du få ledtrådar till lösningen.

Link to comment
Share on other sites

Archived

This topic is now archived and is closed to further replies.



×
×
  • Create New...