回 帖 发 新 帖 刷新版面

主题:[讨论]高手!请进....

[color=008000]嗯 ~我是一个VC的初学者,在这我向VC高手们请教下面几个问题,希望高手们能够帮帮我~指导一下我~在此先谢高手了[/color]

   

[color=FF0000]  一、编写一个对数据进行加密的程序,数据是由五位整数构成的。要求如下:
   1、自动产生五位0~9的数字作为随机数,这个五位数相互之间不能相同。
   2、将每位数字按降序排序,然后将每位数字加上5,再用和除以10的余数代替该数字。
   3、将数据逆序存储。
   4、打印原文和加密后的数据。[/color]

[em3]
用VC写....

回复列表 (共1个回复)

沙发

#include <iostream>
#include <list>
#include <time.h>
using namespace std;

bool check_RandomArry(int* pArry, int nData)
{
    for (int i = 0; i < 6; i++)
    {
        if (nData == pArry[i])
        {
            return false;
        }
    }
    return true;
}
int GetRandomData()
{
    srand(time(NULL));
    int nArray[6] = {0};
    int nTempRandomData = 0;
    for (int i = 0; i < 5; )
    {
        nTempRandomData = (int(rand()*0.1 + rand()*0.01 + rand())) % 10;
        
        if (!check_RandomArry(nArray, nTempRandomData))
        {
            continue;
        }
        nArray[i] = nTempRandomData;
        i++;
    }

    char pstrArray[6] = {0};
    //itoa(nArray, pstrArray, 10);
    for (int i = 0; i < 5; i++)
    {
        sprintf(&pstrArray[i], "%d", nArray[i]);
    }

    int nRandomData = atoi(pstrArray);
    return nRandomData;
}

bool sort_(int a, int b)
{
    return (a > b ? true : false);
}

int AddSecret(int nRandData)
{
    list<int> m_list;
    char strArry[6] = {0};
    sprintf(strArry, "%d", nRandData);
    char ch;
    for (int i = 0; i < 5; i++)
    {
        ch = strArry[i];
        m_list.push_back(atoi(&ch));
    }
    m_list.sort(sort_);

    int nResData[6] = {0};
    int i = 4;
    list<int>::iterator it = m_list.begin();
    for (; it != m_list.end(); it++, i--)
    {
        (*it) += 5;
        (*it) %= 10;
        nResData[i] = (*it);
    }

    for (int i = 0; i < 5; i++)
    {
        sprintf(&strArry[i], "%d", nResData[i]);
    }

    return atoi(strArry);
}

int main(int argc, char* argv[])
{
        int nRandomData = GetRandomData();
    int nSecretData = AddSecret(nRandomData);
    printf("Random data: %d\n", nRandomData);
    printf("After Add Secret data: %d\n", nSecretData);

        return 0;
}

我来回复

您尚未登录,请登录后再回复。点此登录或注册