毛光光考试

来源:百度知道 编辑:UC知道 时间:2024/07/04 06:37:12
第三部分 信息安全技术专题实验(第16、17、18周)——补充讲义
实验10 信息加密与解密——4学时,第16周
1、列换位密码
将明文分割成N列的分组形式。例如:明文是guangzhou is a beautiful city,按照密钥N=4,最后不全的组用任意符号填充。
加密过程如下:
第一步,排列
1234
guangzhouisabeautifulcity
第二步,打断
1234
guan
gzho
uisa
beau
tifu
lcit
y###
第三步,产生密文
ggubtlyuzieic#ahsafi#noauut#
/////////////////////////
#include <iostream.h>
#include <string.h>
#define N 4
void main()
{ int m,i,j;
char p1[80],p2[20][N],p3[N][20];
char pstr[]="guangzhouisabeautifulcity";
//用符号'#'填充明文
m=(strlen(pstr)/N+1)*N;
for(i=0;i<strlen(pstr);i++)
p1[i]=pstr[i];
for(i=strlen(pstr);i<m;i++)
p1[i]='#';
//打断
m=m/N;
for(i=0;i<m;i++)
for(j=0;j<N;j++)
p2[i][j]=p1[i*N+j];
//列换位,产生密文
for(i=0;i<N;i++)
for(j=0;j<m;j++)
p3[i][j]=

利用产生随机数的编程技术,产生一个随机系统48个100到199之间的“需求量”随机数,并按间距为10统计各“需求量”区间的数据个数。------填空题
#include "iostream.h"
#include "stdlib.h"
#include "time.h"
void out_rand()
{
int a[48],i,k;for(i=0;i<48;i++) a[i]=0;
srand(time(0));
for(i=0;i<48;i++)
{
k=(199-100+1)* rand()/RAND_MAX+100;
a[(k-100)/10]++; //统计个数
}
for(i=100;i<200;i+=10)
{
cout<<i<<"----"<<i+9<<"的数据个数: "<<a[(i-100)/10]<<endl;
}
}
void main()
{
int n;
while(1)
{
cout<<"1----产生随机数; 2----退出系统"<<endl;
cin>>n;
if(n==1) out_rand();//函数调用
if(n==2) break;
}
}

从键盘输入10个学生的“英文名”,请用“选择排序法”对其进行从小到大并输出。
提示:C/C++中,比较两个字符串的大小:strcmp(str1,str2),复制字符串:strcpy(str1,str2),头文件是:string.h

#include "iostream.h"
#include &q