版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
..程序设计及应用课程设计2015~2016学年第三学期院〔系〕信息工程与自动化学院专业自动化学号8班级自动化153学生超设计时间2016年9月5日指导教师线岩团1.设计题目:题目7:文件加密文件的传输会有明文和密文的区别,明文发送是不平安的,用一个程序实现发送文件的加密和解密操作。加密算法,密钥设计由同学自己选择现有的加密解密算法或是自己设计。要求:〔1〕对文件的字符根据加密算法,实现文件加密。〔2〕对操作给出必要的提示。〔3〕对存在的file1.txt文件,必须先翻开,后读写,最后关闭。加密后的文件放在file2.txt。〔4〕解密文件保存在file3.txt中。2.设计目的:文件的传输会有明文和密文的区别,明文发送是不平安的,易遭到黑客拦截。现要求编写一个程序实现文本文件的加密和解密操作。3.要求:〔1〕用户可选择是"加密文件〞还是"解密文件〞操作;〔2〕加密文件:用户输入明文文件名〔待加密文件,该文件必须在磁盘存在〕和密文文件名〔加密后目标文件〕,系统能够翻开明文源文件,每次读取源文件单个字节〔直至读到文件完毕〕,并与用户输入的密钥通过异或运算进展加密,加密后存入目标文件中;〔3〕解密文件:用户输入密文文件名〔待解密文件,该文件必须在磁盘存在〕和明文文件名〔解密后目标文件〕,系统能够翻开密文源文件,每次读取源文件单个字节〔直至读到文件完毕〕,并与用户输入的密钥通过异或运算进展解密,解密后存入目标文件中。一、设计思路和分析过程/*采用构造化程序设计思想,把系统的功能划分为哪几个模块,为实现每个功能模块设计了哪些函数及函数的作用说明*/程序分为三个模块:主函数菜单模块、"加密文件〞模块、"解密文件〞模块。"加密文件〞模块对应voidfun1()、"解密文件〞模块对应fun2()。Fun1()实现"加密文件〞,根据要加密文件容与key异或得到加密文件,并保存的第二个程序中去形成新的加密文件。fun2()计算"解密文件〞,根据要解密文件容与key异或得到解密文件,并保存的第二个程序中去形成新的解密后的文件。二、程序流程图三、程序代码#include<stdio.h>voidfun1(){FILE*fp1,*fp2;charkey,ch;charfilename1[50],filename2[50];printf("Pleaseinputorginalfilenamen:");menu21:gets(filename1);if((fp1=fopen(filename1,"rt"))==NULL){printf("%sopenError!",filename1);gotomenu21;}printf("Pleaseinputtargetfilenamen:");menu22:gets(filename2);if((fp2=fopen(filename2,"wt+"))==NULL){printf("%sopenError!",filename2);gotomenu22;}printf("Pleaseinputkey:");getche(key);printf("\n");while((ch=fgetc(fp1))!=EOF){ch=ch^key;fputc(ch,fp2);}fclose(fp1);fclose(fp2);printf("Decryptionsuccess!\n");}voidfun2(){FILE*fp1,*fp2;charkey,ch;charfilename1[50],filename2[50];printf("Pleaseinputorginalfilenamen:");menu21:gets(filename1);if((fp1=fopen(filename1,"rt"))==NULL){printf("%sopenError!",filename1);gotomenu21;}printf("Pleaseinputtargetfilenamen:");menu22:gets(filename2);if((fp2=fopen(filename2,"wt+"))==NULL){printf("%sopenError!",filename2);gotomenu22;}printf("Pleaseinputkey:");getche(key);printf("\n");while((ch=fgetc(fp1))!=EOF){ch=ch^key;fputc(ch,fp2);}fclose(fp1);fclose(fp2);printf("Decryptionsuccess!\n");}voidfun3(){ FILE*fp; charch,filename[50]; printf("Pleaseenterthefilename:"); gets(filename); if((fp=fopen(filename,"r"))==NULL) { printf("Can'topenthisfile!"); exit(0);} ch=fgetc(fp); while(ch!=EOF) { putchar(ch);ch=fgetc(fp); } fclose(fp);}main(){menu:printf("Plasechooseaoption:\n");printf("1.Encryptionafile.\n");printf("2.Decryptionafile.\n"); printf("3.Opentheencryptionfile.\n");printf("0.Exittheapplication.\n");switch(getch()){case'1':fun1();break;case'2':fun2();break;case'3':fun3();break;case'0':exit(0);}gotomenu;}四、程序的调试过程及运行结果最后的key无法获取,使得其加密的后文件,并未加密,而是实现复制功能。发生错误的原因:〔1〕由于把gets(filenmaen1);输成了getc(filenmaen1);(2)由于把getche(key);输成了getch(key);程序目录:文件加密:文件解密翻开加密文件加密解密tex
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 2024年规范化工程维修协议样本
- 2024年度防火涂料施工承包协议
- 2024公司股东股权转让协议
- 2024商业合作协议模板
- 2024届安徽省阜阳市第一中学高三高考全真模拟卷(七)数学试题
- 2024年专业建材购销协议格式
- 2023-2024学年重庆一中高三招生统考(二)数学试题模拟试卷
- 2024年幼儿照护服务协议范例
- 2024专业不锈钢定制加工协议范本
- 2024定制大客车租赁业务协议
- 十二指肠溃疡伴穿孔的护理查房
- 市场营销策划(本)-形考任务三(第八~十章)-国开(CQ)-参考资料
- 中信证券测评真题答案大全
- 部编版小学六年级道德与法治上册全册知识点汇编
- 数字时代的数字化政府
- 文旅推广短片策划方案相关7篇
- 2023-2024学年高中主题班会燃激情之烈火拓青春之华章 课件
- 中医药文化进校园-中医药健康伴我行课件
- 市政管道开槽施工-市政排水管道的施工
- 居住建筑户型分析
- 机电一体化职业生涯
评论
0/150
提交评论