


免费预览已结束,剩余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. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 2025年广咨国际环聚英才、绿动未来招聘考前自测高频考点模拟试题及答案详解(典优)
- 2025年马鞍山和县安徽和州城市建设集团有限公司二季度招聘5人模拟试卷及一套答案详解
- 2025年上半年齐齐哈尔医学院附属第二医院公开招聘编制内工作人员20人模拟试卷附答案详解(模拟题)
- 2025年宝鸡石油机械有限责任公司春季招聘(10人)考前自测高频考点模拟试题及1套完整答案详解
- 2025江西景德镇陶瓷大学科研助理岗位招聘11人模拟试卷及答案详解(全优)
- 2025湖南湘西凤凰县直机关事业单位公开选调工作人员40人考前自测高频考点模拟试题及答案详解(历年真题)
- 2025金华兰溪市尚轩殡仪服务有限公司招聘5人考前自测高频考点模拟试题完整答案详解
- 2025内蒙古巴彦淖尔市临河区第三人民医院招聘部分人员3人模拟试卷及完整答案详解1套
- 2025贵州省卫生健康委员会“银龄计划”(引进退休高级医疗卫生人才)模拟试卷及1套完整答案详解
- 2025内蒙古锡林浩特市内蒙古北方人才集团招聘10人模拟试卷及一套参考答案详解
- 公路工程技术创新管理制度
- 2023年“达人英才计划”引才考试真题
- 河北省承德市隆化县第二中学2023-2024学年九年级上学期期中考试物理试题(无答案)
- 蜗牛与黄鹂鸟(课件)人音版音乐二年级上册
- 3.1水循环课件高一地理人教版(2019)必修一+
- DB11∕1450-2017 管道燃气用户安全巡检技术规程
- JTG G10-2016 公路工程施工监理规范
- 《电力生产统计技术导则 第2部分供用电统计》
- 模板施工智能化技术应用
- 检验科运用PDCA循环降低检验标本的丢失率和不合格率
- 化学(基础模块)中职PPT完整全套教学课件
评论
0/150
提交评论