Skip to content

oron11/Enigma-project

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

3 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

תרגיל בקורס ג'אווה ואינטרנט מגישים: אורון כהן [email protected]

הפעלת התוכנית

התפריט הראשי – בתחילת התוכנית מופיעה למשתמש כל האפשרויות של התפריט הראשי וכך מופיע בכל שלב של התכנית. המשתמש יכול להפעיל את האפשרויות ההגיוניות באותו סדר, לא יכול להגדיר קוד סודי לפני שהוגדרה המכונה, ולא יכול להראות סטטיסטיקות, פירוט, שמירה של המכונה מבלי שהוגדרה מכונה. כמו כן לא יכול לעבד קלט לפני שהוגדרה המכונה וקוד סודי חוקי.

  1. Read enigma machine details from xml file - באפשרות זו על השחקן יהיה להזין את ה-Path של הקובץ ה xml במחשב. אם המשתמש לא הכניס קובץ xml או שהקובץ לא נמצא, תינתן לו אפשרות נוספת להכניס את הקובץ באם ירצה בכך. במקרה של תקלה לוגית בקובץ המשתמש יקבל הודעת שגיאה והמערכת תחזור לתפריט הראשי.

  2. Show enigma machine's specification - באפשרות זו השחקן יקבל פירוט מלא של המכונה כפי שהוגדר בתרגיל.

  3. Define manually secret code for the enigma machine - באפשרות זו השחקן יגדיר את הקוד הסודי של המכונה, אם הוגדרה מכונה, שלב אחרי שלב. בשלב הראשון יכניס את המיקום הראשוני ומספר המזהה של הרוטורים לפי הסדר. בשלב השני יכניס את התו הראשוני של כל רוטור באותו סדר כמו מקודם. בשלב השלישי יכניס את המספר הרפלקטור. בכל שלב אם המשתמש יכניס ערך שגוי, המערכת תיתן למשתמש הזדמנות נוספת מבלי להרוס את מה שהכניס עד כה.

  4. Define random secret code for the enigma machine - באפשרות זו המערכת תגריל קוד סודי, אם הוגדרה מכונה.

  5. Process input in the enigma machine – באפשרות זו המערכת תעבד קלט מהמשתמש אם הוגדרה מכונה וקוד סודי. אם תקבל תו שאינו מהאלף בית המוגדר במכונה, המכונה תתריע על כך ותשאל את המשתמש אם ירצה להכניס קלט שוב.

  6. Reset current secret code in the enigma machine – באפשרות זו המערכת תאפס את הקוד הסודי הנוכחי המוגדר במכונה לצורה שהוגדרה בתחילת השימוש בו אם קיים קוד סודי בשימוש של המכונה.

  7. Show history and statistics of the enigma machine- באפשרות זו המערכת תציג את ההיסטוריה והסטטיסטיקה של המכונה אם הוגדרה, מיקומי הרוטורים וממוצע כללי של כל ההודעות שעברו במכונה. אם קיימים קודים סודיים שהיו בשימוש תציג עבור כל קוד בסדר שהוגדרו בו את היסטורית העיבוד של ההודעות שעברו בו ומשך הזמן שלקח לעבד בננו שניות.

  8. Write enigma machine to a file – באפשרות זו המכונה, אם הוגדרה, תיכתב לתוך קובץ בינארי שהמשתמש יכניס את השם שלו ובכך אפשר יהיה לקרוא את הקובץ הזה ולשחזר את המכונה במלואה.

  9. Read enigma machine from a file - באפשרות זו המערכת תקבל מהמשתמש את שם הקובץ בו נשמרה המכונה מבעוד מועד לפי שלב 8 והמערכת תעדכן את המכונה כולל קוד סודי וכולל כל ההיסטוריה שלה, אם המערכת לא מצאה את הקובץ תינתן למשתמש אפשרות נוספת להכניס את שם הקובץ אם ירצה בזאת.

רשימת בונוסים שמומשו:

  1. מימוש מכונת אניגמה – המכונה מומשה במלואה, עם המחלקות הנוספות הדרושות לה כגון Secret, Rotor, Reflector והמחלקה MachineBuilder שבונה אותה. הUI עובד ישירות עם המכונה ומקבל ממנה את כל המידע שהמשתמש ביקש.

  2. שמירה וטעינה של מצב נתון של המכונה – כמו שרשום באופציות 8 ו 9 לעיל, יש אפשרות לשמור את המצב הקיים של המכונה במקום כלשהו במחשב באופציה 8, ואחר כך אפשר לקרוא את הקובץ הזה באופציה 9 מבלי לאבד שום מידע, להמשיך בדיוק באותו מצב שהיינו כששמרנו את המכונה.

  מחלקות עיקריות להלן המחלקות העיקריות בתוכנית (לפי Package):

UI EnigmaUI – המחלקה האחראית על ממשק המשתמש בתוכנית, התכנית מתחילה במתודה run. תחילה מוצג למשתמש במסך הראשי שמכיל את כל הפקודות האפשריות שפורטו לעיל, המשתמש צריך להכניס את מספר הפקודה הרצויה לביצוע. הבדיקות קלט במחלקה זו הן בצורה השטחית ביותר, כל שאר הבדיקות תקינות עוברות לצד הלוגי של המערכת. אם קרתה בעיה בקלט, המחלקה הזו תציג למשתמש את הסיבה לתקלה ובמקרים מסוימים תיתן למשתמש אפשרות נוספת להכניס קלט אחרת נחזור לתפריט הראשי ושוב יוצגו הפקודות וכך הלאה.

Logic EMachine MachineBuilder המחלקה האחראית על בניית המכונה מקובץ ה xml שהמשתמש סיפק. המחלקה בונה ובודקת את תקינות הקלט של הקובץ בהתאם למה שהוגדר בתרגיל שזה כולל תקינות האלף בית, תקינות מספר רוטורים בשימוש, תקינות הרוטורים והרפלקטורים.

EnigmaMachine המחלקה העיקרית במשחק שאחראית לבניית הקוד הסודי מהמשתמש, מכילה את כל הרוטורים והרפלקטורים שהוגדרו מהקובץ xml, אחראית על עיבוד הקלט מהמשתמש, להצגת ההיסטוריה בתחום של המכונה ולשמירה וטעינה של המכונה מהמימוש בונוס מקובץ. מכילה בנוסף את רשימת כל הקודים הסודיים שהוגדרו במכונה.

Secret מחלקה שאחראית על עיבוד כל תו בנפרד מהקלט מהמשתמש, מחזיקה לכל קוד סודי בנפרד את היסטוריית ההודעות ויודעת להציג בעצמה את כל הסטטיסטיקה שלה וגם את הקוד עצמו לפי איך שתואר בתרגיל בדרישה 5.2.5.

Exceptions בpackage זה נמצאות בעיקר מחלקות exceptions ספציפיות למכונת אניגמה ולבנייה שלה.

About

No description, website, or topics provided.

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages