(完整word版)电子系c语言程序设计加密解密
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
课程设计报告
课程设计名称: C语言程序设计
指导教师:
学生:
学号:
学院:电子信息工程学院
完成时间: 2011年9月27日
嘉应学院电子信息工程学院
1
C语言课程设计说明书
目录
1 需求分析 (1)
2总体设计 (2)
3详细设计 (3)
3.1 换位加密流程图 (3)
3.2 换位解密流程图 (4)
3.3 替代加密流程图 (5)
3.4 替代解密流程图 (6)
4调试与测试 (8)
5测试结果 (8)
6附录 (11)
I
1 需求分析
问题描述(实验指导书中已经给出)
①数据的输入和输出;要求使用文件操作。文件(明文,仅限于英文字母)存放在某一已知文本文件中,加密后的文件(密文)存放在另一文件中。
②换位加密和解密:
加密:根据密钥(即移位位数,用户从键盘输入)将对应字符进行移位操作,输出密文;解密:输入密文后再输入移位位数则可输出明文;
③凯撒加密和解密:
加密:根据密钥(即移位位数,用户从键盘输入)将对应字符进行移位操作,输出密文;解密:输入密文后再输入移位位数则可输出明文;
④统计单词的个数;
⑤退出。
2总体设计
(程序设计总流程图,可以画带流程线的流程图)
此处只需要写出一个流程图就可以了,就是总的那个流程图,请规范的画图。不需要分出2.1和2.2.
开始
welcome()
caidan()
transpen( ); transpde(
)
caesaren(
)
caesarde() mingwent miwentongji(byebye()
3详细设计
(各模块功能说明,如函数功能、入口及出口参数说明,函数调用关系描述等
这块大家问题最多了,这里不是写程序代码,而是写流程图里面各个主要函数的作用,函数之间关系的说明。
以第1题为例,此处应为:
3.1 换位加密流程图
流程图
(对流程图加以说明。可以把关键语句放在此处,加以注释说明) 建立mingwen.txt 和miwen.txt 文件
输入密钥n
输入明文到数组r
k=strlen(r)j 计算数组r 长度
for i=0 to k
关闭并保存mingwen.txt 文件
打开mingwen.txt 文件
space(h,r) 将明文去空格并放到数组h 中
m=strlen(h) 计算数组h 长度
m%n==0
是 否
hang=m/n hang=m/n+1 j=0
for i=0 to hang for i=m to hang*n
z=0
fputc(r[i],mingwen) 将明文存放到mingwen.txt
文件中
for j=0 to n h[i]='a'+j j++
for i=0 to hang
zl[i][j]=h[z] z++ for j=o to n
zl[i][j]=h[z]
z++
for i=0 to n
for j=0 to hang
he[z]=zl[j][i]
输出he[z]
z++
fputc(zl[j][i],miwen)
fclose() 关闭并保存mingwen.txt文件
fclose() 关闭并保存miwen.txt文件
清屏返回菜单
3.2 换位解密流程图
流程图
(对流程图加以说明。可以把关键语句放在此处,加以注释说明)建立mingwen.txt和miwen.txt文件
输入密钥n
输入明文到数组r
k=strlen(r)j 计算数组r长度
for i=0 to k
fputc(r[i],miwen) 将密文存放到miwen.txt文件
中
关闭并保存miwen.txt文件
打开miwen.txt文件
space(h,r) 将明文去空格并放到数组h中
m=strlen(h) 计算数组h长度
m%n==0
是 否
hang=m/n hang=m/n+1 j=0
for i=0 to n for i=m to hang*n
z=0
for i=0 to hang
fclose(mingwen) 关闭并保存mingwen.txt 文件
fclose(miwen) 关闭并保存miwen.txt 文件
清屏 返回菜单
3.3 替代加密流程图
流程图
(对流程图加以说明。可以把关键语句放在此处,加以注释说明)
建立mingwen.txt 和miwen.txt 文件
ch=getchar() 接收回车字符
Ch=getchar() 开始输入明文
当ch!='\n'
fclose(mingwen)) 关闭并保存mingwen.txt 文件
for j=0 to hang h[i]='a'+j j++
for i=0 to n
zl[i][j]=h[z] z++ for j=o to hang
zl[i][j]=h[z]
z++
for j=0 to n
he[z]=zl[j][i]
输出he[z]
z++
fputc(zl[j][i],mingwen)
fputc(ch,mingwen) 将明文放到mingwen.txt 文件中
ch=getchar()