C语言程序设计-文件加密.doc

上传人:灯火****19 文档编号:138000317 上传时间:2020-07-13 格式:DOC 页数:16 大小:322.50KB
返回 下载 相关 举报
C语言程序设计-文件加密.doc_第1页
第1页 / 共16页
C语言程序设计-文件加密.doc_第2页
第2页 / 共16页
C语言程序设计-文件加密.doc_第3页
第3页 / 共16页
C语言程序设计-文件加密.doc_第4页
第4页 / 共16页
C语言程序设计-文件加密.doc_第5页
第5页 / 共16页
点击查看更多>>
资源描述

《C语言程序设计-文件加密.doc》由会员分享,可在线阅读,更多相关《C语言程序设计-文件加密.doc(16页珍藏版)》请在金锄头文库上搜索。

1、C语言程序设计课程设计报告 学期: 2014-2015(1) 班级: 计科14-1 学号: 1060314014039 1060314014041 组员姓名: 张浩 刘润龙 指导教师: 李竹林 完成日期: 2014 年 12 月 文件加密与解密一 、设计目的: 通过对文件的加密保护与解密,使我们能更好的掌握好高级语言程序,从而了解对程序设计的基本概念和方法,进而学会利用C语言解决一般应用问题,并为后续的专业学习奠定基础。同时增强同学们之间的团队合作精神,使我们更好的融入社会,将来成为社会有用之才!二 、 设计内容:将某一已知文件的内容(仅限于英文字母)以字符形式读出,根据密钥(用户从键盘输入)

2、将对应字符进行移位操作即可,解密时移动相反。例如:加密:设原文为abcdef,密钥为5,则有abcdef每个字母按字母表向后移动5位(注:z后接a)可得到密文(乱码)fghijkl;对该文件解密:文件内容为fghijk1,密钥为5,则有fghijk1每个字母向前移动5位(注a后接z),可得到原文abcdef。三 、设计安排:第一阶段:选择课程设计的题目 第二阶段:搜寻有关课程设计的资料,查阅相关的书籍第三阶段:开始编写C语言程序 第四阶段:完成C语言程序的编写,开始撰写C语言课程设 计报告 第五阶段:完成C语言课程设计报告的撰写四 、组员分工: 文件的加密、解密程序部分由张浩同学负责。课程设计

3、报告,资料查询和程序调试修改由刘润龙同学负责,最后共同总结学习体会与心得。五 、总体方案的设计思想及说明: 1.主要思想: 为由总到分,由上到下的逐级分配任务的思想。通过主函数调用各个被调用的函数,再由被调用函数通过多个循环嵌套的使用实现各自的功能,最终达到程序的要求。2.程序说明:(1)主函数其中包括:输入函数input(),加密函数jiami(),解密函数jiemi(),显示函数show(),。(2) 输入函数中:while(c=getchar()!=EOF)的使用能提示使用者结束的命令,并且通过fputc(c,fp)把一个字符c写到由文件指针fp指定的磁盘文件上。 (3)加密函数中:先定

4、义两个指针,将输入的文件内容通过fputc(c+1,fp1);进行加密并保存到fp1所指定的文件上。(4) 解密函数中:在进入解密系统时,需先输入解密密码,然后在打开文件进行文件里内容解密。根据加密时对每个文件内容的加密操作,所以解密时只需按照相同方法反操作即可。六 、源程序:#include#include#include#include#include#defineN30/*文件名字符串数组大小*/#defineM30/*解密码字符串数组大小*/#defineE500/*数组大小*/voidmenu(void);/*主菜单*/voidinput(void);/*输入数据的函数*/voidj

5、iami(void);/*对输入数据加密的函数*/voidjiemi(void);/*对已加密内容进行解密的函数*/voidshow(void);/*显示内容的函数*/intjudge(void);/*判断是否要继续的函数*/charcode=2011810063;/*设置进入解密系统所需的密码*/main()intnum;while(1) menu(); flushall();scanf(%d,&num);switch(num)case0:printf(n);exit(0);case1:system(cls);input();break;case2:system(cls);jiami();b

6、reak;case3:system(cls);jiemi();break;case4:system(cls);show();break;case5:system(cls);count1();break;case6:system(cls);count2();break;default:printf(nt输入错误,请按规范重新输入!);break; getch();/*等待数据输入,使界面停留*/ voidmenu(void)printf(nnnnt*n);printf(t*n);printf(t*1-输入2-加密3-解密4-显示 0-退出*n);printf(t*n);printf(t*n);p

7、rintf(nnt0.退出系统。n);printf(t1.输入信息,并写入文本文件。n);printf(t2.对给定的文件进行加密。n);printf(t3.对给定的文件进行解密。n);printf(t4.显示文本文件的内容。n);printf(nt请选择(0-4):);voidinput(void)intn=1;FILE*fp;charc,fnameN;while(n)printf(n请输入文件名:n);scanf(%s,fname);if(fp=fopen(fname,w)=NULL)printf(文件打不开!n);exit(0); Elseprintf(请输入文件内容:(若结束请按ctr

8、l+z)n);while(c=getchar()!=EOF)/*输入文件的内容,以ctrl+z结束*/fputc(c,fp);fclose(fp); printf(文档输入并保存成功!n);printf(n若继续创建文档,请输Y或y.);n=judge();/*退出解密系统*/ voidjiami(void) intn=1;FILE*fp,*fp1;charc,fnameM;while(n)printf(n请输入要加密的文件名称:n);scanf(%s,fname);if(fp=fopen(fname,r)=NULL) printf(n无法打开文件!n若重新输入,请输Y或y.); n=judg

9、e(); /退出if(fp1=fopen(jiami.txt,w)=NULL)printf(无法打开文件!n);exit(0);while(c=fgetc(fp)!=EOF)/*按ctrl+z结束*/ fputc(c+1,fp1);/加密putchar(c+1);fclose(fp1);fclose(fp);remove(fname);/*删除被加密的原文件*/rename(jiami.txt,fname);/*加密后的文件名更改为原文件名*/printf(n文档加密并保存成功!n);printf(nn是否继续加密?若继续请按Y或y.n);n=judge(); /*退出*/voidjiemi(

10、void) intn=1; FILE*fp,*fp1; charc,fnameM,code1M;while(n)printf(n请输入进入解密系统所需密码:);scanf(%s,code1);if(strcmp(code1,code)=0)/*比较字符串大小是否相等*/ while(n)printf(n请输入要解密的文件名:);scanf(%s,fname);if(fp=fopen(fname,r)=NULL) printf(n文件打不开n); exit(0); if(fp1=fopen(jiemi.txt,w)=NULL) printf(无法打开文件!n); exit(0); while(c=fgetc(fp)!=EOF) fputc(c-1,fp1);/*解密*/ putchar(c-1);

展开阅读全文
相关资源
相关搜索

当前位置:首页 > 学术论文 > 管理论文

电脑版 |金锄头文库版权所有
经营许可证:蜀ICP备13022795号 | 川公网安备 51140202000112号