程序设计及应用课程设计_第1页
程序设计及应用课程设计_第2页
程序设计及应用课程设计_第3页
免费预览已结束,剩余10页可下载查看

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

;.程序设计及应用课程设计2015 2016 学年第三学期院(系)信息工程与自动化学院专业自动化学号201510401308班级自动化 153学生姓名张超设计时间2016 年 9 月 5 日指导教师线岩团;.;.1. 设计题目:题目 7:文件加密文件的传输会有明文和密文的区别,明文发送是不安全的,用一个程序实现发送文件的加密和解密操作。加密算法,密钥设计由同学自己选择现有的加密解密算法或是自己设计。要求:(1) 对文件的字符根据加密算法,实现文件加密。(2) 对操作给出必要的提示。(3) 对存在的 file1.txt文件,必须先打开,后读写, 最后关闭。加密后的文件放在file2.txt 。(4) 解密文件保存在file3.txt中。2. 设计目的:文件的传输会有明文和密文的区别,明文发送是不安全的,易遭到黑客拦截。现要求编写一个程序实现文本文件的加密和解密操作。3. 要求:(1) 用户可选择是“加密文件”还是“解密文件”操作;(2) 加密文件:用户输入明文文件名(待加密文件, 该文件必须在磁盘存在)和密文文件名(加密后目标 文件),系统能够打开明文源文件, 每次读取源文件单个字节(直至读到文件结束) ,并与用户输入的密钥通过异或运算进行加密,加密后存入目标文件中;(3) 解密文件:用户输入密文文件名(待解密文件,该文件必须在磁盘存在)和明文文件名(解密后目标 文件),系统能够打开密文源文件, 每次读取源文件单个字节(直至读到文件结束) ,并与用户输入的密钥通过异或运算进行解密,解密后存入目标文件中。一、 设计思路和分析过程/* 采用结构化程序设计思想,把系统的功能划分为哪几个模块,为实现每个功能模块设计了哪些函数及函数的作用说明 */程序分为三个模块: 主函数菜单模块、“加密文件” 模块、“解密文件”模块。“加密文件”模块对应void fun1()、“解密文件”模块对应 fun2()。fun1()实现“加密文件”,根据要加密文件内容与key 异或得到加密文件,并保存的第二个程序中去形成新 的加密文件。;.fun2()计算“解密文件”,根据要解密文件内容与key异或得到解密文件,并保存的第二个程序中去形成新的解密后的文件。二、程序流程图三、程序代码#includevoid fun1()file *fp1,*fp2; char key,ch;char filename150,filename250;printf( please input orginal filenamen:); menu21:gets(filename1); if(fp1=fopen(filename1,rt)=null)printf(%s open error!,filename1);goto menu21;.printf( please input target filenamen:); menu22:gets(filename2); if(fp2=fopen(filename2,wt+)=null)printf(%s open error!,filename2);goto menu22;printf( please input key:); getche(key);printf(n); while(ch=fgetc(fp1)!=eof)ch=chkey; fputc(ch,fp2);fclose(fp1); fclose(fp2);printf(decryption success!n);void fun2()file *fp1,*fp2;char key,ch;char filename150,filename250; printf( please input orginal filenamen:); menu21:gets(filename1); if(fp1=fopen(filename1,rt)=null)printf(%s open error!,filename1);goto menu21;printf( please input target filenamen:); menu22:gets(filename2); if(fp2=fopen(filename2,wt+)=null)printf(%s open error!,filename2);goto menu22;printf( please input key:); getche(key);printf(n); while(ch=fgetc(fp1)!=eof)ch=chkey; fputc(ch,fp2);fclose(fp1); fclose(fp2);printf(decryption success!n);void fun3()file *fp;char ch,filename50;printf(please enter the file name:); gets(filename); if(fp=fopen(filename,r)=null)printf(cant open this file!); exit(0);ch=fgetc(fp); while(ch!=eof)putchar(ch);ch=fgetc(fp);fclose(fp);main()menu:printf(plase choose a option:n); printf(1.encryption a file.n); printf(2.decryption a file.n);printf(3.open the encryption file.n); printf(0.exit the application.n);switch(getch()case 1:fun1();break;case 2:fun2();break;case 3:fun3();break;case 0:exit(0);goto menu;四、 程序的调试过程及运行结果最后的 key 无法获取,使得其加密的后文件,并未加密,而是实现复制功能。发生错误的原因:(1)由于把 gets(filenmaen1);输成了 getc(filenmaen1);(2)由于把getche(key);输成了 getch(key);.1. 程序目录:2. 文件加密:3. 文件解密4. 打开加密文件5. 加密解密 text 文件五、课程设计

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

最新文档

评论

0/150

提交评论