Just nu i M3-nätverket
Gå till innehåll

Hjälp en nybörjare med en java uppgift


soso

Rekommendera Poster

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!

 

Länk till kommentar
Dela på andra webbplatser

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.

Länk till kommentar
Dela på andra webbplatser

Arkiverat

Det här ämnet är nu arkiverat och är stängt för ytterligare svar.

×
×
  • Skapa nytt...