الفريق العربي للبرمجةأرشيف المنتديات · 2000 – 2023
نسخة أرشيفية للقراءة فقط — التسجيل والمشاركة مغلقان، والمحتوى محفوظ كما كان.

برنامج شفرة قيصر .. احتاج الى تعديل بسيط عليه

بدأه msb2012 في 3 يناير 2011 · 12 رد · 4,419 مشاهدة · في JavaSE
مشاركة: واتساب X فيسبوك تيليجرام
#1 صاحب الموضوع

السلام عليكم

يا اخوان انا لدي برنامج شفرة قيصر Caesar Cipher

و احتاج الى تعديل عليه

لان هناك ايرورز (أخطاء)

أتمنى منكم (كخبراء) النظر الى الديزاين و السورس و البحث عن الاخطاء و حذف ما يتسحق الحذف و اضافة ما يستحق الاضافه

واذا كان هناك اي تعديل لا مانع لدي

الأهم انني اريد البرنامج يعمل

ملاحظه: اذا عدلتم البرنامج ارجو رفعه لتحميله او على الاقل ارساله لي بالخاص

لا اريد كود و انسخه فهناك مشاكل كبيره بسبب النسخ

اريد ملف احمله و يفتح البرنامج على نت بينز

التحميل من هنا

http://www.m5zn.com/files-0103110801164t3dyx2cblhuq76ala-dsss.form

#2

لو سمحت ارفع هنا على المنتدى

وارفع ملفات جافا أو مشروع Netbeans كاملاً وليس ملف .form

تحياتي

حزمة المحرك الإصدارة 0.8

أي أحد يجد أني ظلمته فليراسلني

وبإذن الله لو كان له حق سيأخذه

728x90.png

#3

حاولت أن أرفع على المنتدى و لكن ذلك غير مسموح لي

#4

قوم بضغط الملف على هيئه zip or rar file

وارفع المشروع وليس الملفات التنفيذيه لانها لا تحتوى على كود

Software Developer
Mahmoudkelany.com


 

#5

عموما أنا ألغيت البرنامج السابق

ولدي حاليا برنامج بدون (فورم) فقط كلاس

وأريد منكم عمل شيئين (لأنني حاولت أن اقوم بهم دون جدوى)

1-في ميثود الانكربشن و الديكربشن بعد الوصول لحرف z يتم المواصله الى الرموز الاخرى. ولكن المطلوب هو ان يعود الى الحرف a و يبدأ من جديد. (بمعنى لو أدخلت z و اضفت 2 فالناتج يكون b)

سمعت انها تتم بعملية % و لكني لم أتمكن من عملها.

2-تحويل البرنامج من برنامج عادي الى برنامج له فورم والفورم متطلباته بسيطه (لأن ليس لدي خبره في الفورمز):

تكست فيلد لادخال النص

كومبو بوكس لاختيار الشفت و يكون من 1 الى 25

2 راديو بوتون 1 لانكربشن و الاخر ديكربشن

أعتقد ان البرنامج بسيط لخبراء مثلكم

عموما هذا هو الكود

/*
 * To change this template, choose Tools | Templates
 * and open the template in the editor.
 */

package enc;

import java.io.BufferedReader;
import java.io.IOException;
import java.io.InputStreamReader;
import java.util.Scanner;
import java.util.logging.Level;
import java.util.logging.Logger;

/**
 *
 * @author AzizRadwan
 */



public class f1 {
 private   int num =0;
 public void set(int x)
 {
 num = x;
 }
public char encryption(char ch)
{
return  (char) (ch + num);

}
public char decryption (char ch)
{
return  (char) (ch - num);

}


    /**
     * @param args the command line arguments
     */
    public static void main(String[] args) {
        // TODO code application logic here
        f1 m = new f1();
        String word = null  ,type  = null,encrypt ="" ;
        int key = 0;
        System.out.println("Enter the type of proccess you want");
InputStreamReader input = new InputStreamReader(System.in);
BufferedReader reader = new BufferedReader(input);
        try {
            type = reader.readLine();
        } catch (IOException ex) {
            Logger.getLogger(f1.class.getName()).log(Level.SEVERE, null, ex);
        }
            System.out.println("Set the Key");
            Scanner scan = new Scanner(System.in);
key = scan.nextInt();
m.set(key);



if (type.equalsIgnoreCase("encryption"))
{
            System.out.println("Enter the word that you want to encrypt ");

     input = new InputStreamReader(System.in);
 reader = new BufferedReader(input);
        try {
            word = reader.readLine();
        } catch (IOException ex) {
            Logger.getLogger(f1.class.getName()).log(Level.SEVERE, null, ex);
        }

 for(int i=0;i<word.length();i++)
 {

     encrypt = encrypt + m.encryption(word.charAt(i));

 }
      System.out.println("the result is "+encrypt);

}
else if (type.equalsIgnoreCase("decryption"))
{
            System.out.println("Enter the word that you want to deccrypt ");

     input = new InputStreamReader(System.in);
 reader = new BufferedReader(input);
        try {
            word = reader.readLine();
        } catch (IOException ex) {
            Logger.getLogger(f1.class.getName()).log(Level.SEVERE, null, ex);
        }

 for(int i=0;i<word.length();i++)
 {

     encrypt = encrypt + m.decryption(word.charAt(i));
 }
      System.out.println("the result is "+encrypt);

}



    }
}
#6

ان شاء الله البرنامج سهل

لكن نريد منك التنفيذ وعرض المحاوله الخاصه بك

ونقوم بالتعديل عليها بناء على ذكرك للخطأ

لاننا لن نقوم بحل الاسئله نحن نساعد فى حلها

بالنسبه للسوال الاول

هتستخدم الـ ASCII code الخاص بالاحرف

(عمال افتكر انا عملت النظام دا فين افتكرت انه كان فى الـ TopCoder )

ازاى تعرفه انظر هذه الصوره

ascii.gif

او هذه الصوره

ascii-table1.gif

انما بالنسبه للـ GUI حاول تشتغل فيه ووابحث فى المنتدى هنا عن الحلول والامثله

اعرض ما يواجهك من اخطاء ان لم تجد لها حل بالبحث فى المنتدى

بالتوفيق

تم تعديل هذه المشاركة بواسطة Mahmoud Kelany في 4 يناير 2011 في 00:40

Software Developer
Mahmoudkelany.com


 

#7

قمت بهذا التغيير

 for(int i=0;i<word.length();i++)
 {

    // encrypt = encrypt + m.encryption(word.charAt(i));

     int num1 = (int)word.charAt(i);
if(key >= 27)
							key = key % 26;
						if( word.charAt(i) + key > 90)
							 num1 += key - 26;
						else num1 += key;
						encrypt += (char)num1;

      System.out.println("the result is "+encrypt);

}

ولكن ظهرت أخطاء في الريزولت

#8

طبعا هيطلع لك خطا

فين استخدامك للـ ASCII code اللى قولت لك عليه

انت دلوقتى بتعمل %26 على حسب تفكيرى انك بتقسم على عدد الحروف

لا طبعا

انا قولت لك هتستخدم الـ ASCII ودا اللى هتعمل على اساسه % (باقى القسمه) بس باقى القسمه عليه

فكر وشوف

المفروض تعمل داله يكون شكلها كدا

public String encode(String in , int shift ){
String out ;
 // your code here 
// change the out object by the shift
retrun out;
}

وكذلك داله الـ decode بنفس النظام

بحيث تكون داله تستدعيها فى اى وقت وغير مرتبطه باى شىء اخر مستقله بذاتها

تم تعديل هذه المشاركة بواسطة Mahmoud Kelany في 4 يناير 2011 في 01:03

Software Developer
Mahmoudkelany.com


 

#9

الحمد لله تم تعديل الانكربشن بنجاح و تم التعديل بهذه الطريقه

for(int i=0;i<word.length();i++)
 {

    // encrypt = encrypt + m.encryption(word.charAt(i));

     int num1 = (int)word.charAt(i);
if(key >= 97)
							key = key % 26;
						if( num1 + key > 122)
							 num1 += key - 26;
						else num1 += key;
						encrypt += (char)num1;



}
 System.out.println("the result is "+encrypt);
}
#10

حاليا لدي مشكله مع فيك التشفير decryption

حيث في بعض الاحيان تظهر أخطاء

for(int i=0;i<word.length();i++)
 {

    // encrypt = encrypt + m.encryption(word.charAt(i));

     int num1 = (int)word.charAt(i);
if(key >= 97)
		key = key % 26;
		if( num1 + key > 122)
		num1 -= key - 26;
		else num1 -= key;
		encrypt += (char)num1;

}
 System.out.println("the result is "+encrypt);

أعتقد ان الخطأ في الرموز + - حاولت قراءة الانكربشن و تقليده دون جدوى

#11

الحمد لله تم التعديل و حل الديكربشن بهذه الطريقه

for(int i=0;i<word.length();i++)
 {

    // encrypt = encrypt + m.encryption(word.charAt(i));

     int num1 = (int)word.charAt(i);
if(key >= 97)
		key = key % 26;
		if( num1 - key < 97)
		num1 -= key - 26;
		else num1 -= key;
		encrypt += (char)num1;

}
 System.out.println("the result is "+encrypt);

أتمنى منكم المساعده على تحويل البرنامج الى

GUI

#12

الحمد لله تم التصميم بنجاح

تم تعديل هذه المشاركة بواسطة msb2012 في 4 يناير 2011 في 03:23

#13

التشفير اللى انت عاوزه هيكون كدا

import java.util.Scanner;

/**
 *
 * @author AzizRadwan
 */
public class f1 {

	/**
 	*
 	* @param word
 	* @param shift
 	* @return encrypted word
 	*/
	public String encryption(String word, int shift) {
    	char ch[] = word.toCharArray();
    	StringBuffer sb = new StringBuffer();
    	for (int i = 0; i < ch.length; i++) {
        	int x = (ch + shift);
        	if (x < 65) {
            	x += 26;
        	} else if (x > 90) {
            	x -= 26;
        	}
        	sb.append((char) x);
    	}
    	return sb.toString();
	}

	/**
 	*
 	* @param word
 	* @param shift
 	* @return decryption word
 	*/
	public String decryption(String word, int shift) {
    	char ch[] = word.toCharArray();
    	StringBuffer sb = new StringBuffer();
    	for (int i = 0; i < ch.length; i++) {
        	int x = (ch - shift);
        	if (x < 65) {
            	x += 26;
        	} else if (x > 90) {
            	x -= 26;
        	}
        	sb.append((char) x);
    	}
    	return sb.toString();
	}

	/**
 	* @param args the command line arguments
 	*/
	public static void main(String[] args) {
    	Scanner scan = new Scanner(System.in);
    	f1 m = new f1();
    	String word = null, type = null, encrypt = "";
    	int key = 0;
    	System.out.println("Enter the type of proccess you want");
    	type = scan.nextLine();
    	System.out.println("Set the Key");
    	key = scan.nextInt();
    	if (type.equalsIgnoreCase("enc")) {
        	System.out.println("Enter the word that you want to encrypt ");
        	word = scan.next();
        	encrypt = m.encryption(word, key);
        	System.out.println("the result is " + encrypt);

    	} else if (type.equalsIgnoreCase("dec")) {
        	System.out.println("Enter the word that you want to deccrypt ");
        	word = scan.next();
        	encrypt = m.decryption(word, key);
        	System.out.println("the result is " + encrypt);
    	}
	}
}

Software Developer
Mahmoudkelany.com


 

مواضيع مشابهة

عدد الزوار حالياً

المتواجدون خلال آخر دقيقتين · يتحدّث كل ٣٠ ثانية

—الإجمالي—أعضاء مسجّلون—زوار بدون تسجيل

جارٍ التحقق من المتواجدين…