文件移位加密与解密.docx
河南理工大学计算机科学与技术学院课程设计报告20102011学年第一学期课程名称设计题目学生姓名学号专业班级指导教师2011年01月08日目录封面O1 设计任务书03 功能设计03 结构流程图05 程序实现代码05 程序设计总结08 个人总结12 致谢13 参考文献13课程设计任务书题目文件移位加密与解密设1)文件加密;2)文件解密。计目的备注:将某一已知文件的内容(仅限于英文字母)以字符形式读出,根据密钥(用户从键盘输入)将对应字符进行移位操作即可,解密时移动相反。例如:加密:设原文为abcdef,密钥为5,则有abcdef每个字母按字母表向后移动5们(注:Z后接a)可得到密文(乱码)fghijk1;对该文件解密:文件内容为fghijk1,密钥为5,则有fghijk1每个字母向前移动5位(注a后接z),可得到原文abcdefo涉及知识点文件指针,文件的读/写,出错检测,分支控制,循环控制,强制类型转换,ASCI码表,MS-DOS字符窗口下执行程序。功能设计设计目的本课程设计的目的是为了保证个人数据资料不被他人非法窃取使用,保护个人的隐私及重要文件!功能描述本程序主要是对已知文件(为英文字符)通过一定的算法将其转换成非本身的其他英文字母以达到文件加密的目的。整个系统由以下几大功能模块组成。1 .主控选择模块此模块是主程序操作界面,供用户进行选择。用户可选择执行加密或解密操作。2 .加密模块加密模块主要是完成对文件的加密操作。从外部文件中读入任意一个文件并将它加密并显示出来!3 .解密模块解密模块是完成对文件的解密工作,将密文转换为可被识别的明文。从外部文件中读入任意一个文件并将它解密并显示出来!结构流程图程序实现代码#inc1ude<iostream.h>#inc1ude<stdio.h>#inc1ude<std1ib.h>#defineMIOOOM,方便以后改变预设一个指定文件大小的数字voidmain()FI1E*fp;charch,TEXTM;随意改变/M的数值可以根据文件的大小intch1,n,key;cout<<<<end1;文件移位加密与解密COUt<<”请将加密(解密)文件复制至“文件移位加密与解密”文件夹中,且该文件为纯文本格式。"<<end1;whi1e(1)CoUt<<”请输入文件名:"<<end1;软件使用帮助和支持cin>>TEXT;if(fp=fopen(TEXT,',r',)=NU11)(cout<<openfi1efai1<<end1;exit(O);)COUt<<"请输入密码:<<end1;cin>>key;key=key%26;COUt<<”加密请输入1,解密请输入2<<end1;cin>>n;if(n=1)n=1时,执行加密算法CoUt<<”加密结果:n;whi1e(ch=fgetc(fp)!=EOF)/加密文件内容为A-Zch=ch+key;if(ch>,Z,)ch=ch-26;ch1=(int)ch+key;if(ch1>122)ch=(char)(ch1-26);e1sech=(char)ch1;cout<<ch;)cout<<end1;n=0;fc1ose(fp);e1seif(n=2)(CoUt<<"解密结果:”;whi1e(ch=fgetc(fp)!=EOF)(if(ch>='A'&&ch<=,Z,)(ch=ch-key;if(ch<,A,)ch=ch+26;)if(ch>=,a,<fech<=,z,)(ch=ch-key;if(ch<,a,)ch=ch+26;n=2时,执行解密算法/解密文件内容为A-Z解密文件内容为a-zcout<<ch;)cout<<end1;n=0;fc1ose(fp);cout<<end1;cout<<end1;cout<<end1;cout<<)-感谢您的使用,欢迎再次使用-"<<end1;程序设计总结文件移位解密:1 .运行程序后,如图本:T'C:UsersyujianfengDesktop文口密与解Debug幽口需与解密.exe"卜将加密(解密)文件复制至“文腾雪/新文件夹中,且该文件为纯文本格式消k输入文件名:I2 .输入文件名(此程序附带文件默认为(Un)COde.txt),如图示:B7"C:UsersyujianfengDesktop文44Sb密与解格DebUgZ口密与解畜文件移位加密与解密请将加密(解密)文件复制至“文梓海莅加密与解密”文件夹中,且该文件为纯文本格式。请输入文件名:<un>code.txt请输入密码:3.输入密码,如图示:4.选择解密,如图示:文件移位加密1运行程序后,如图示:T'C:UsersyujianfengDesktop文口密与解?Debug幽口需与解密.exe"卜将加密(解密)文件复制至“文腾雪/新文件夹中,且该文件为纯文本格式消k输入文件名:I2 .输入文件名(此程序附带文件默认为(Un)COde.txt),如图示:'C:UsersyujianfengDesktop文口密与解软DebUg收彳谣与解密.exe"请将加密(解密)文件复制至“IiS“文件夹中,且该文件为纯文本格式。B请输入文件名:I<un>code.txt请输入密祖I:半:3 .输入密码,如图示:"C:UsersyujianfengDesktop文口空与解DebugV期口密与解密.exe"文件移位力口密与解密请将加密(解密)文件复制至“文阳多莅加密与解密”文件夹中,且该文件为纯文本格式。J请输入文件名:I<un>code.txt请输入密码:加密请输入工,解密请输入2:半:4 .选择加密,如图示:,D:学习计算机ACM程序设计文件移位加密与解软DebUg收限位加密与解密.exe文平-移位力口密与解密、青将加密(解密)文件复制至“文褐多卷加密写解密”文件夹中,且该文件为纯文本格式。请输入文件名:<un>code.txt卡输入密码:加密请输入1,解密请输入2:1加密结果:Upqxstu士以、感谢您的使用,欢迎再次使用请输入文件名:半:个人总结正如早年瑞士联邦技术学院沃思博士所提出的那个著名的公式:”程序=算法+数据结构”,我在本次程序设计中深刻的体会到了算法的重要性。当数次尝试确定算法后,对算法的高级语言实现变得同等重要。在实际的编程过程中,那些语法错误多次影响到编译的通过,而这些错误正是我在平常学习中忽略的,比如运算符的优先级等。通过此次程序设计,我将课本上的理论知识与实际有机的结合起来,既加深了自己对C+知识的理解和掌握,也锻炼了自己的分析解决实际问题的能力和创新意识。由于受到自己专业知识的限制,这次设计的程序有很多缺陷,比如界面不够美观,功能不够完善等。在接下来的学习生活中,我应该加强专业知识的学习,力争自己有个大的提高。致谢:衷心感谢姜国权老师的指导衷心感谢同学们的帮助参考文献:1广树建王车玉琪,新编C/C+程序设计教程,华南理工大学出版社2贾宗璞许合利,C语言程序设计,中国矿业大学出版社3郭继展郭勇苏辉,程序算法与技巧精选,机械工业出版社