数据结构实验报告-文本串加密与解密程序
合集下载
相关主题
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
经过一学期的C语言学习,对C语言编程有了一定的认识,在做这个程序设计的时期,刚开始感觉自己无从下手,不知道该怎么开始,很茫然。之后我查阅各种资料,无论是书本上的,还是网上的,只要是我认为有价值的,我都认真看,分析。接着,我就在一张白纸上列出了自己的思路。终于在两周的时间内完成了学生信息管理系统这一项目。当程序运行结果看到自己所想达的要求界面时感到很欣慰,虽然只是一个小的项目,但是却是自己第一次完成的一个完整项目,我也从中学到了很多书本知识不能体现的东西,对C语言也有了更深一步的认识与了解。
通过这次的程序设计,我发现自己平时对于编程实际操作的匮乏,没有把书本上的知识真正的掌握牢固,仍然有许多的问题考虑不全面。我相信,在今后的编程道路上,我一定会更加仔细认真,积累经验,成为一名合格的程序员。
数据结构与算法
数据结构与算法III达成毕业要求指标点
达成情况自评等级
5-完全达成;4-达成;3-基本达成;2-未达成;1-完全未达成
str[i]=p1[str[i]-'a'];
2.2.2
总体描述:加密串解密后形成原文串
解密算法描述
for(int i=0; i<len; i++) //字符串解密过程
str[i]=p2[str[i]-'a'];
3
(宋体,字体小四号,行距20磅)
3.1
描述数据的存储的定义。
int n;
char str[10000];
char str[10000];
for(int i=0; i<26; i++)
{
p1[s1[i]-'a']=s2[i];//加密过程映射
p2[s2[i]-'a']=s1[i];//解密过程映射
}
cout<<"请输入您要操作的字符串:"<<endl;
cin>>str;
int len=strlen(str);
str[i]=p2[str[i]-'a'];
}
cout<<str<<endl;//输出操作后字符串
}
return 0;
}
程序设计实践报告评阅
序号
评阅内容
wenku.baidu.com权重系数
评定成绩
评分
1
报告格式是否规范,撰写是否认真
0.10
2
报告内容是否充实,有无详细的实习内容介绍
0.60
3
是否认真详细地总结了本次程序设计实践的收获和体会
}
return 0;
}
4
4.1
通过字母映射表
通过字母映射表
4.2
总结
(详细总结了本次程序设计实践的收获和体会)
本系统是采用C语言技术开发的,由于在这个阶段中,基本是处于边学习边实践的状态,基础知识还不是很牢靠,加之自身水平原因,程序还是有许多不足之处。,比如界面模块做的不够好、实现的功能不够完整、界面需要更精确的美化。
while(cin>>n&&n)
{
if(n==1)
{
for(int i=0; i<len; i++) //字符串加密过程
str[i]=p1[str[i]-'a'];
}
if(n==2)
{
for(int i=0; i<len; i++) //字符串解密过程
str[i]=p2[str[i]-'a'];
}
cout<<str<<endl;//输出操作后字符串
数据结构与算法III教学大纲的能力指标点
本实习
对该项能力指标点的具体体现(需说明在文档的第几页以及基本内容)
达成情况自评
3-1能根据需求确定设计目标,提出合理的解决方案。
4-2能够实现仿真实验或测试方案,并对仿真、测试或实验结果进行分析和解释,通过信息综合得出有效的结论,并用于调整系统或功能单元模块参数。
{
p1[s1[i]-'a']=s2[i];//加密过程映射
p2[s2[i]-'a']=s1[i];//解密过程映射
}
cout<<"请输入您要操作的字符串:"<<endl;
cin>>str;
int len=strlen(str);
cout<<"加密请输入1,解密请输入2,退出操作请输入0:"<<endl;
则字符串“encrypt”被加密为“tkzwsdf”。编写一个程序exp4-4.cpp,将输入的文本串加密后输出,然后进行解密并输出。
2
2.1
2.2
(基于数据的逻辑结构,描述各个功能模块所需完成的具体工作)
2
总体描述:输入原文串,经过加密形成加密串
流程图:
加密模块流程图
加密算法描述
for(int i=0; i<len; i++) //字符串加密过程
附录
参考程序:
(CourierNew,5号,行距20磅)
#include <iostream>
#include <cstdio>
#include <cstring>
using namespace std;
char s1[30]= {'a','b','c','d','e','f','g','h','i','j','k','l','m','n','o','p','q','r','s','t','u','v','w','x','y','z'};
0.10
4
报告是否附有相关附录
0.20
程序设计实践报告评阅成绩
2、程序设计实践综合成绩评定:
序号
考核内容
权重系数
评定成绩
评分
1
考勤与纪律
0.1
2
程序实作
0.5
3
表达能力
0.1
4
程序设计实践报告
0.3
程序设计实践评定加权总分
总 成 绩:
指导教师:
年月日
char s2[30]= {'n','g','z','q','t','c','o','b','m','u','h','e','l','k','p','d','a','w','x','f','y','i','v','r','s','j'};
char p1[30],p2[30];
int main()
{
int n;
int len=strlen(str);
3.2
3.2.1
描述算法中需要定义的函数,并说明每个函数的作用及其应用的参数的含义。
3.2.2
1、程序流程图
通过字母映射表
通过字母映射表
2、函数定义
int main()
{
int n;
char str[10000];
for(int i=0; i<26; i++)
湘 潭 大 学
数据结构与算法实验报告
题目:
学院
专业班级
学号
学生姓名
指导教师
完成日期
1
1.1
目的:掌握串的应用算法设计。
1.2
内容:一个文本串可用事先给定的字母映射表进行加密。例如,设字母映射表为:
a b c d e f g h i j k l m n o p q r s t u v w x y z
n g z q t c o b m u h e l k p d a w x f y I v r s j
经过这一段时间的努力,收获了很多,在收获的同时也发现了很多的不足,回首论文的写作过程,得到了许多人的帮助,尤其是我的实训老师,在我论文的完成过程中给予了我许多的帮助和鼓励。在系统开发的两个月里,我受到了指导老师的细心指导,老师老师严谨的指导态度与深厚的理论知识都让我受益非浅,让我学到了很多的东西,无论是理论还是实践都使我的知识有很大的提高。通过本次实训,我掌握了C编程技能,对C语言有了较深的理解。比较全面的巩固了编程思想.也通过本次实训,使我懂得在在编程工作中,程序员的工作态度以及良好的习惯的重要性
cout<<"加密请输入1,解密请输入2,退出操作请输入0:"<<endl;
while(cin>>n&&n)
{
if(n==1)
{
for(int i=0; i<len; i++) //字符串加密过程
str[i]=p1[str[i]-'a'];
}
if(n==2)
{
for(int i=0; i<len; i++) //字符串解密过程
通过这次的程序设计,我发现自己平时对于编程实际操作的匮乏,没有把书本上的知识真正的掌握牢固,仍然有许多的问题考虑不全面。我相信,在今后的编程道路上,我一定会更加仔细认真,积累经验,成为一名合格的程序员。
数据结构与算法
数据结构与算法III达成毕业要求指标点
达成情况自评等级
5-完全达成;4-达成;3-基本达成;2-未达成;1-完全未达成
str[i]=p1[str[i]-'a'];
2.2.2
总体描述:加密串解密后形成原文串
解密算法描述
for(int i=0; i<len; i++) //字符串解密过程
str[i]=p2[str[i]-'a'];
3
(宋体,字体小四号,行距20磅)
3.1
描述数据的存储的定义。
int n;
char str[10000];
char str[10000];
for(int i=0; i<26; i++)
{
p1[s1[i]-'a']=s2[i];//加密过程映射
p2[s2[i]-'a']=s1[i];//解密过程映射
}
cout<<"请输入您要操作的字符串:"<<endl;
cin>>str;
int len=strlen(str);
str[i]=p2[str[i]-'a'];
}
cout<<str<<endl;//输出操作后字符串
}
return 0;
}
程序设计实践报告评阅
序号
评阅内容
wenku.baidu.com权重系数
评定成绩
评分
1
报告格式是否规范,撰写是否认真
0.10
2
报告内容是否充实,有无详细的实习内容介绍
0.60
3
是否认真详细地总结了本次程序设计实践的收获和体会
}
return 0;
}
4
4.1
通过字母映射表
通过字母映射表
4.2
总结
(详细总结了本次程序设计实践的收获和体会)
本系统是采用C语言技术开发的,由于在这个阶段中,基本是处于边学习边实践的状态,基础知识还不是很牢靠,加之自身水平原因,程序还是有许多不足之处。,比如界面模块做的不够好、实现的功能不够完整、界面需要更精确的美化。
while(cin>>n&&n)
{
if(n==1)
{
for(int i=0; i<len; i++) //字符串加密过程
str[i]=p1[str[i]-'a'];
}
if(n==2)
{
for(int i=0; i<len; i++) //字符串解密过程
str[i]=p2[str[i]-'a'];
}
cout<<str<<endl;//输出操作后字符串
数据结构与算法III教学大纲的能力指标点
本实习
对该项能力指标点的具体体现(需说明在文档的第几页以及基本内容)
达成情况自评
3-1能根据需求确定设计目标,提出合理的解决方案。
4-2能够实现仿真实验或测试方案,并对仿真、测试或实验结果进行分析和解释,通过信息综合得出有效的结论,并用于调整系统或功能单元模块参数。
{
p1[s1[i]-'a']=s2[i];//加密过程映射
p2[s2[i]-'a']=s1[i];//解密过程映射
}
cout<<"请输入您要操作的字符串:"<<endl;
cin>>str;
int len=strlen(str);
cout<<"加密请输入1,解密请输入2,退出操作请输入0:"<<endl;
则字符串“encrypt”被加密为“tkzwsdf”。编写一个程序exp4-4.cpp,将输入的文本串加密后输出,然后进行解密并输出。
2
2.1
2.2
(基于数据的逻辑结构,描述各个功能模块所需完成的具体工作)
2
总体描述:输入原文串,经过加密形成加密串
流程图:
加密模块流程图
加密算法描述
for(int i=0; i<len; i++) //字符串加密过程
附录
参考程序:
(CourierNew,5号,行距20磅)
#include <iostream>
#include <cstdio>
#include <cstring>
using namespace std;
char s1[30]= {'a','b','c','d','e','f','g','h','i','j','k','l','m','n','o','p','q','r','s','t','u','v','w','x','y','z'};
0.10
4
报告是否附有相关附录
0.20
程序设计实践报告评阅成绩
2、程序设计实践综合成绩评定:
序号
考核内容
权重系数
评定成绩
评分
1
考勤与纪律
0.1
2
程序实作
0.5
3
表达能力
0.1
4
程序设计实践报告
0.3
程序设计实践评定加权总分
总 成 绩:
指导教师:
年月日
char s2[30]= {'n','g','z','q','t','c','o','b','m','u','h','e','l','k','p','d','a','w','x','f','y','i','v','r','s','j'};
char p1[30],p2[30];
int main()
{
int n;
int len=strlen(str);
3.2
3.2.1
描述算法中需要定义的函数,并说明每个函数的作用及其应用的参数的含义。
3.2.2
1、程序流程图
通过字母映射表
通过字母映射表
2、函数定义
int main()
{
int n;
char str[10000];
for(int i=0; i<26; i++)
湘 潭 大 学
数据结构与算法实验报告
题目:
学院
专业班级
学号
学生姓名
指导教师
完成日期
1
1.1
目的:掌握串的应用算法设计。
1.2
内容:一个文本串可用事先给定的字母映射表进行加密。例如,设字母映射表为:
a b c d e f g h i j k l m n o p q r s t u v w x y z
n g z q t c o b m u h e l k p d a w x f y I v r s j
经过这一段时间的努力,收获了很多,在收获的同时也发现了很多的不足,回首论文的写作过程,得到了许多人的帮助,尤其是我的实训老师,在我论文的完成过程中给予了我许多的帮助和鼓励。在系统开发的两个月里,我受到了指导老师的细心指导,老师老师严谨的指导态度与深厚的理论知识都让我受益非浅,让我学到了很多的东西,无论是理论还是实践都使我的知识有很大的提高。通过本次实训,我掌握了C编程技能,对C语言有了较深的理解。比较全面的巩固了编程思想.也通过本次实训,使我懂得在在编程工作中,程序员的工作态度以及良好的习惯的重要性
cout<<"加密请输入1,解密请输入2,退出操作请输入0:"<<endl;
while(cin>>n&&n)
{
if(n==1)
{
for(int i=0; i<len; i++) //字符串加密过程
str[i]=p1[str[i]-'a'];
}
if(n==2)
{
for(int i=0; i<len; i++) //字符串解密过程