haskell代写: ANUC1110 Assignment 2

ANUC1110 – Semester 1 – 2018 Assignment 2

ANUC1110-Introduction to Software Systems Assignment 2- Semester 1 – 2018
Due date: 7:00pm, 29 May 2018

This assignment will count for 15% of the final grade. Below you will find the specifications.

Instructions:

  • This assignment must be done in groups of two.
  • Your report must include Assignment Cover Sheet providing the details of this assignment including student IDs. The report submission includes an electronic copy uploaded to Wattle and a hard copy handed in to the teacher during the lecture time in week 14 (29 / 05 / 2018).
  • For the program, you are required to commit and push your works to your created GitLab repo for each task completion. Details of the tasks are in the Mark distributions sections.
  • Late submission of assessment tasks without an extension are penalised at the rate of 10% of the possible marks available per working day or part thereof. Late submission of assessment tasks is not accepted after 10 working days after the due date, or on or after the date specified in the course outline for the return of the assessment item.
  • Plagiarism will attract academic penalties in accordance with the ANU guidelines. Good luck and enjoy the time you will spend on this assignment

1

ANUC1110 – Semester 1 – 2018 Assignment 2

General specifications:

Students are expected to demonstrate their understanding on the principles of software decomposition by creating multiple classes and applying complicated data structures such as Collections and relevant algorithms completion of the Caesar Cipher Creator.

You are required to:

  1. 1)  Log in GitLab, create a project named: yourname-assignment2.
  2. 2)  Set the Visibility Level as Private and then add the teacher, Ray Lau (u4561496) and Yujia Zhang (u6075459), as Reporter.
  3. 3)  Open Eclipse, import the Anuc1110-Assignment2 project from your forked Anuc1110-Assignment 2 project.
  4. 4)  In Eclipse, create a JavaFx project named Caesar Cipher Creator.

Program specifications:

Caesar cipher is one of the simplest encryption techinques. It was first used by Julius Casear, who used an alphabet with left shift of three.

(Source: https://en.wikipedia.org/wiki/Caesar_cipher)
For this assignment, you are required to create a Caesar Ciphar Creator by

using the encryption/ decryption principle.

2

ANUC1110 – Semester 1 – 2018 Assignment 2

  • ➢  Start GUI:
  • ➢  The user can enter the message in the input area. The program should accept both upper and lower-case letters. The user can directly enter the message or open it from a text file by clicking File -> Open.
    Note: the user should be able to choose the file to open rather than using absolute path.

3

ANUC1110 – Semester 1 – 2018 Assignment 2

  • ➢  The user can select either Encryption or Decryption. The Encryption should be selected by default.
  • ➢  A key Number must be entered. This value is the shift amount. A shift of zero means that no encryption / decryption is performed as each letter is replaced by itself. A positive number means shift right during encryption and left during decryption. A negative number means shift left during encryption and right during decryption. Your program should verify that the key is a valid input when the Start button is pressed. E.g. if a user enters nothing or non-integer values, an error message should be displayed.

4

ANUC1110 – Semester 1 – 2018 Assignment 2

  • ➢  All of the encrypted / decrypted message should be displayed in the output area with the exact corresponding position. All alphabetic characters should be replaced by their encrypted/decrypted equivalents. Any other characters (including digits) should be left unmodified.
  • ➢  Given an encrypted message without knowing the Key Number. The app is able to crack the message and display the decrypted message in the output area.

5

ANUC1110 – Semester 1 – 2018 Assignment 2

➢ The encrypted / decrypted message can be saved as a txt file.
Note: Again, the user should be able to choose the location to save the file rather than using absolute path.

6

ANUC1110 – Semester 1 – 2018 Assignment 2

Mark allocations:

Task 1: (2 marks) • Draw the GUI

Task 2: (16 marks)

  • Encrypt / Decrypt the message with given Key Number when “Start” button ispressed. Appropriate error message / warning should be displayed if Key

    Number is empty. (3 marks)

  • Crack the encrypted message correctly without using Key Number when the“Crack” button is pressed. (8 marks)
  • Open the file for encryption / decryption / crack. The user should be able tochoose the file to open rather than using absolute path. (2 marks)
  • Save the encrypted / Decrypted message. The user should be able to choosethe location to save the file. (2 marks)
  • Clear the content when” Clear” button is pressed (1 mark)Overall: (12 marks)
  1. 1)  GitLab works: (2 marks)
  2. 2)  Implementations:(6marks)
    1. a)  Using good data structure and relevant algorithm (2 marks)
    2. b)  Explanation on the design for the cracking task (2 marks).
    3. c)  The program style and quality of comments (1 mark)
    4. d)  Commit and push of your created Gitlab repo for each task completion, forexample, GUI creation, add event handler, … (1 mark)
  3. 3)  Team work contributions. (1 mark)a) Clearly demonstration of work load distribution and overall contribution in

    percentage

  4. 4)  Report quality (3 marks)

7

ANUC1110 – Semester 1 – 2018 Assignment 2

Bonus: (5 marks)
1) Use your imagination and make the GUI fancier and nicer (2 marks)
2) Instead of crack the Caesar cipher, you can try to decode other types of cipher,

such as Vigenere Cipher and Modern Cipher (5 marks)

Assignment submissions:
Your submission needs to include the program via GitLab and a report that includes:

1) Assignment Cover Sheet (available on the courses Wattle site). 2) The report that details your project including:

  1. a)  Structure of your project and its classes.
  2. b)  Report of how each part of your project has been done. For example, how each button is constructed, how to encrypt/ decrypt the message, and how to crack the encrypted message without using Key Number.
  3. c)  Screen shots of the running program for each major function.

The report is required to be submitted on Wattle by the due date (7:00pm, 29 May 2018 ) and a hard copy of it needs to be handed in to the teacher on the due date in the classroom. One report per group.
Note: Failed to submit the report (either the electronic or hard copy) will apply 5 mark deduction out of your possible assignment result.

3) If you have used external resources for your assignment, you have to cite the source in both GUI and your report.

8