1. 程式人生 > >第八週--串--專案四--字串加密--

第八週--串--專案四--字串加密--

*計算機控制工程學院
*班級:計156-2
*姓名:陳飛
*問題及程式碼:
[cpp] view plain copy print?
#include <stdio.h>  
#include "sqString.h"  
  
SqString A,B; //用於儲存字元對映表  
  
SqString EnCrypt(SqString p)  
{  
    int i=0,j;  
    SqString q;  
    while (i<p.length)  
    {  
        for (j=0; p.data[i]!=A.data[j]; j++); //迴圈條件少加了&&j<A.length  
        if (j>=p.length)            //在A串中未找到p.data[i]字母  
            q.data[i]=p.data[i];  
        else                        //在A串中找到p.data[i]字母  
            q.data[i]=B.data[j];  
        i++;  
    }  
    q.length=p.length;  
    return q;  
}  
  
SqString UnEncrypt(SqString q)  
{  
    int i=0,j;  
    SqString p;  
    while (i<q.length)  
    {  
        for (j=0; q.data[i]!=B.data[j]; j++);//迴圈條件少加了&&j<B.length  
        if (j>=q.length)            //在B串中未找到q.data[i]字母  
            p.data[i]=q.data[i];  
        else                    //在B串中找到q.data[i]字母  
            p.data[i]=A.data[j];  
        i++;  
    }  
    p.length=q.length;  
    return p;  
}  
  
int main()  
{  
    SqString p,q;  
    StrAssign(A,"abcdefghijklmnopqrstuvwxyz");  //建立A串  
    StrAssign(B,"ngzqtcobmuhelkpdawxfyivrsj");  //建立B串  
    char str[MaxSize];  
    printf("\n");  
    printf("輸入原文串:");  
    gets(str);                                  //獲取使用者輸入的原文串  
    StrAssign(p,str);                           //建立p串  
    printf("加密解密如下:\n");  
    printf("  原文串:");  
    DispStr(p);  
    q=EnCrypt(p);                               //p串加密產生q串  
    printf("  加密串:");  
    DispStr(q);  
    p=UnEncrypt(q);                         //q串解密產生p串  
    printf("  解密串:");  
    DispStr(p);  
    printf("\n");  
    return 0;  
}  


一個文字串可用事先編制好的字元對映表進行加密。例如,設字元對映表為:

 abcdefghijklmnopqrstuvwxyz
ngzqtcobmuhelkpdawxfyivrsj

則字串“lao he jiao shu ju jie gou”被加密為“enp bt umnp xby uy umt opy”。 
設計一個程式,實現加密、解密演算法,將輸入的文字進行加密後輸出,然後進行解密並輸出。 


相關推薦

----專案--字串加密--

*計算機控制工程學院 *班級:計156-2 *姓名:陳飛 *問題及程式碼: [cpp] view plain copy print? #include <stdio.h> #include "sqString.h" SqString A,B; //

專案4-字串加密

/*   *Copyright  (c)2017,煙臺大學計算機與控制工程學院       *All rights reservrd.       *作者:趙楷文  *完成時間:2017年12月14日       *版本號:v1.0  *問題描述:  一個文

專案4-字串加密

#include <stdio.h> #include "sqString.h" SqString A,B; //用於儲存字元對映表 SqString EnCrypt(SqString p) { int i=0,j; SqString q; while (i<p.

專案-字串加密

/*      Copyright (c)2015,煙臺大學計算機與控制工程學院      All rights reserved.      檔名稱:第8周專案4-字串加密.cpp      作    者:李叢叢      完成日期:2015年10月24日   

專案字串加密

/* * Copyright (c) 2015, 煙臺大學計算機與控制工程學院 * All rights reserved. * 檔名稱: SqString.cpp,SqString.h * 作者:鞏凱強 * 完成日期:2015年10月25日 * 版本號:codeblock

專案3-順序演算法】

/*   *Copyright  (c)2017,煙臺大學計算機與控制工程學院       *All rights reservrd.       *作者:趙楷文  *完成時間:2017年1

專案3-順序演算法

採用順序儲存方式儲存串,實現下列演算法並測試:   (1)試編寫演算法實現將字串S中所有值為c1的字元換成值為c2的字元:  void Trans(SqString *&s, char c1, char c2);  (2)試編寫演算法,實現將已知字串所有字元倒過來重新排列。如ABCDEF改為FEDCB

專案2

/*   *Copyright  (c)2017,煙臺大學計算機與控制工程學院       *All rights reservrd.       *作者:趙楷文  *完成時間:2017年12月14日       *版本號:v1.0  *問題描述: 定義鏈串的

專案三1)——分數類中的運算子過載.

/* *煙臺大學計算機學院學生 *All right reserved. *檔名稱*煙臺大學計算機學院學生 *All right reserved. *檔名稱:分數類中的運算子過載 *作者:王洪海 *完成日期:2013年4月20日 *版本號:v1.0 *對任務及求解方法的描

專案4-字串加密

標頭檔案:#ifndef SqString_H_INCLUDED #define SqString_H_INCLUDED #define MaxSize 100 //最多的字元個數 typedef struct { char data[MaxS

專案4--字串加密

問題及程式碼: /* *Copyright(c) 2015, 煙臺大學計算機學院 *All rights reserved. *檔名稱:字串加密.cpp *作 者:杜文文 *完成日期:2015年 10月 30日 *問題描述:一個文字串可用

--專案4-字串加密

問題描述及程式碼: /* 檔名稱:第8周專案4-字串加密.cpp 作 者:劉春彤 完成日期:2016年10月20日 版 本 號:v1.

專案4-字串加密

問題及程式碼: /* * Copyright (c) 2016, 煙臺大學計算機與控制工程學院 * All rights reserved. * 檔名稱:Cube007.cpp * 作 者:劉小楠 * 完成日期:2016年10月20日 * * 問題描述:

專案4 字串加密

#include <stdio.h> #include "sqString.h" SqString A,B; //用於儲存字元對映表 void StrAssign(SqString &s,char cstr[]) //字串常量cstr賦給串s { int i; for

專案 String類的構造

問題及程式碼: /* *Copyright (c)2014,煙臺大學計算機與控制工程學院 *All rights reserved. *檔名稱:Project.cpp *作 者:chenqin. *完成日期:2015年4月29日 *版 本 號:v1.0 * *問題描述

專案----分數類和整形術的四則運算

/* * 程式的版權和版本宣告部分 * Copyright (c)2013, 煙臺大學計算機學院學生 * All rightsreserved. * 檔名稱: object.cpp * 作者:趙曉晨 * 完成日期: 2013年04月20日 * 版本號: v1.0 * 輸入描

專案訓練2

/*   *Copyright (c) 2016,煙臺大學計算機學院   *All rights reserved.   *檔名稱 :   *作    者 : 王璵璠 *完成日期 : 2016年4月28號   *版 本 號 : v1.0  *   問題描述: 陣列做資料成員

專案三----分數類中的運算子過載

/* * 程式的版權和版本宣告部分 * Copyright (c)2013, 煙臺大學計算機學院學生 * All rightsreserved. * 檔名稱: object.cpp * 作者:趙曉晨 * 完成日期: 2013年04月20日 * 版本號: v1.0 * 輸入描

專案一の任務三----擴充套件功能,使之能與double型資料進行運算

/* * 程式的版權和版本宣告部分 * Copyright (c)2013, 煙臺大學計算機學院學生 * All rightsreserved. * 檔名稱: object.cpp * 作者:趙曉晨 * 完成日期: 2013年04月18日 * 版本號: v1.0 * 輸入描

專案三(1) 分數類中的運算子過載

問題及程式碼: /* * Copyright (c) 2015, 煙臺大學計算機學院 * All rights reserved. *檔名稱:test.cpp * 作 者:曾建強 * 完成日期:2015年5月14日 * 版 本 號:v1.0 * * 問題描述:實現分數