数据结构课程设计
设计题目: 栈的应用(数据加密)
课题设计
目的与
设计意义
1、课题设计目的:
(1)掌握栈的建立,置空,进栈,出栈,了解栈的特性:栈是一种特殊的线性表。其特殊性在于限定插入和删除数据元素只能在线性表的一端进行。进行插入和删除的一端是浮动端,通常被称为栈顶,并用一个栈顶指针指示;而另一端是固定端,通常被称为栈底。
(2)通过栈的特殊性,实现进制的转换
(3)通过对储存在计算机的数据的ASCII码值进行特定的数值转换,
从而实现数据的加密
(4)对加密后的密文按照特定的密钥进行进制转换,转换成明文
2、课题设计意义:ASCII码标准的单字节字符编码方案,用于基于文本的数据。ASCII 码使用指定的 7 位或 8 位二进制数组合来表示 128 或 256 种可能的字符。标准 ASCII 码使用 7 位二进制数来表示所有的大写和小写字母,数字 0 到 9、标点符号,以及在美式英语中使用的特殊控制字符。通过对文本的ASCII码按照一定的规则(通过密钥来指定)进行数值转换,转换为密文,需要解密时,输入密文和密钥,将密文按照规则(通过密钥指定)转换为明文。通过对文本的加密,使得未授权的用户即使获得了已加密的信息,但因不知解密的方法,仍然无法了解信息的内容。
指导教师:余云
2012年 12 月 9 日
目录
第一章栈的基本概述 1
1
1
1
1
1
第二章需求分析 2
2
2
2
第三章概要设计 2
3
3
3
3
4
第四章详细设计 5
5
5
5
5
6
(十进制转为其他进制) 6
(将明文的ASCII转换为密文) 7
(将密文转换为明文) 7
8
9
9
10
,生成密文 10
,输入密文 11
,输入密钥 11
,生成明文 12
第五章总结 12
12
12
13
参考文献 13
附录1程序代码 13
第一章栈的基本概述
栈和队列是一种常见的数据结构,是两种非常重要的线性结构,也都是线性表,它们是操作受限的的线性表,有顺序栈、链式栈、链式队列和循环队列等形式。它们广泛应用在各种软件系统中。本题就是要用这些线性结构先完成基本的应用(数据的进制转换)再编写一个简易的文本加密系统,完成对文本的加密解密。
栈作为一种数据结构,是一种只能在一端进行插入和删除操作的特殊线性表。它按照后进先出的原则存储数据,先进入的数据被压入栈底,最后的数据在栈顶,需要读数据的时候从栈顶开始弹出数据(最后一个数据被第一个读出来)。栈具有记忆作用,对栈的插入与删除操作中,不需要改变栈底指针。
栈是允许在同一端进行插入和删除操作的特殊线性表。允许进行插入和删除操作的一端称为栈顶(top),另一端为栈底(bottom);栈底固定,而栈顶浮动;栈中元素个数为零时称为空栈。插入一般称为进栈(PUSH),删除则称为退栈(POP)。栈也称为后进先出表。
在计算机系统中,栈则是一个具有以上属性的动态内存区域。程序可以将数据压入栈中,也可以将数据从栈顶弹出。在i386机器中,栈顶由称为esp的寄存器进行定位。压栈的操作使得栈顶的地址增大,弹出的操作使得栈顶的地址减小。
栈在程序的运行中有着举足轻重的作用。最重要的是栈保存了一个函数调用时所需要的维护信息,这常常称之为堆栈帧或者活动记录。堆栈帧一般包含如下几方面的信息:
(1) 函数的返回地址和参数
(2)临时变量:包括函数的非静态局部变量以及编译器自动生成的其他临时变量。
第二章需求分析
将文本转换为ASCII码,并对这些ASCII按照一定的规则做进制转换
输入密钥,将密钥取平均值,并取整,生成的数为最后对文本加密的密钥
对密文按照一定的规律进行转换,转化为明文的ASCII码,将ASCII码转换为字符型输出
第三章概要设计
栈的应用(数据加密)课程设计,实验报告 来自淘豆网m.daumloan.com转载请标明出处.