《2022年程序设计及应用课程设计 .pdf》由会员分享,可在线阅读,更多相关《2022年程序设计及应用课程设计 .pdf(12页珍藏版)》请在taowenge.com淘文阁网|工程机械CAD图纸|机械工程制图|CAD装配图下载|SolidWorks_CaTia_CAD_UG_PROE_设计图分享下载上搜索。
1、程序设计及应用课程设计2015 2016 学年第三学期院(系)信息工程与自动化学院专业自动化学号 201510401308 班级自动化153 学生姓名张超设计时间 2016 年 9 月 5 日指导教师线岩团名师资料总结 - - -精品资料欢迎下载 - - - - - - - - - - - - - - - - - - 名师精心整理 - - - - - - - 第 1 页,共 12 页 - - - - - - - - - 1.设计题目:题目 7:文件加密文件的传输会有明文和密文的区别,明文发送是不安全的,用一个程序实现发送文件的加密和解密操作。加密算法,密钥设计由同学自己选择现有的加密解密算法或
2、是自己设计。要求:(1)对文件的字符根据加密算法,实现文件加密。(2)对操作给出必要的提示。(3)对存在的 file1.txt 文件,必须先打开,后读写,最后关闭。加密后的文件放在file2.txt。(4)解密文件保存在file3.txt 中。2.设计目的:文件的传输会有明文和密文的区别,明文发送是不安全的,易遭到黑客拦截。现要求编写一个程序实现文本文件的加密和解密操作。3.要求:(1)用户可选择是“加密文件”还是“解密文件”操作;(2)加密文件:用户输入明文文件名(待加密文件,名师资料总结 - - -精品资料欢迎下载 - - - - - - - - - - - - - - - - - - 名
3、师精心整理 - - - - - - - 第 2 页,共 12 页 - - - - - - - - - 该文件必须在磁盘存在)和密文文件名(加密后目标文件) ,系统能够打开明文源文件, 每次读取源文件单个字节(直至读到文件结束),并与用户输入的密钥通过异或运算进行加密,加密后存入目标文件中;(3)解密文件:用户输入密文文件名(待解密文件,该文件必须在磁盘存在)和明文文件名(解密后目标文件) ,系统能够打开密文源文件, 每次读取源文件单个字节(直至读到文件结束),并与用户输入的密钥通过异或运算进行解密,解密后存入目标文件中。一、 设计思路和分析过程/* 采用结构化程序设计思想,把系统的功能划分为哪
4、几个模块,为实现每个功能模块设计了哪些函数及函数的作用说明 */ 程序分为三个模块: 主函数菜单模块、“加密文件” 模块、 “解密文件”模块。“加密文件”模块对应void fun1()、 “解密文件”模块对应 fun2()。Fun1()实现“加密文件”,根据要加密文件内容与key异或得到加密文件,并保存的第二个程序中去形成新的加密文件。fun2()计算“解密文件”,根据要解密文件内容与key名师资料总结 - - -精品资料欢迎下载 - - - - - - - - - - - - - - - - - - 名师精心整理 - - - - - - - 第 3 页,共 12 页 - - - - - -
5、- - - 异或得到解密文件,并保存的第二个程序中去形成新的解密后的文件。二、程序流程图名师资料总结 - - -精品资料欢迎下载 - - - - - - - - - - - - - - - - - - 名师精心整理 - - - - - - - 第 4 页,共 12 页 - - - - - - - - - 三、程序代码#include void fun1() FILE *fp1,*fp2; charkey,ch; char filename150,filename250; printf( Please input orginalfilenamen:); menu21: gets(filename
6、1); if(fp1=fopen(filename1,rt)=NULL) printf(%s open Error!,filename1);goto menu21; 名师资料总结 - - -精品资料欢迎下载 - - - - - - - - - - - - - - - - - - 名师精心整理 - - - - - - - 第 5 页,共 12 页 - - - - - - - - - printf( Please input target filenamen:); menu22: gets(filename2); if(fp2=fopen(filename2,wt+)=NULL) printf(%
7、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; 名师资料总结 - - -精品资料欢迎下载 - - - - - - - - - - - - - - - - - - 名师精心整理 - - - - - -
8、 - 第 6 页,共 12 页 - - - - - - - - - charkey,ch; char filename150,filename250; printf( Please input orginalfilenamen:); 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(
9、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); 名师资料总结 - - -精品资料欢迎下载 - - - - - - - - - - - - - - - - - - 名师精心整理 - - - - - - - 第 7 页,共 12 页 - - - - - - - - - fclose(fp1); fclose(f
10、p2); printf(Decryption success!n); void fun3() FILE *fp; charch,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() 名师资料总结 - - -精品资料欢迎下载 - - - -
11、 - - - - - - - - - - - - - - 名师精心整理 - - - - - - - 第 8 页,共 12 页 - - - - - - - - - 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
12、();break; case 3:fun3();break; case 0:exit(0); goto menu; 四、 程序的调试过程及运行结果最后的 key无法获取,使得其加密的后文件,并未加密,而是实现复制功能。发生错误的原因:(1)由于把 gets(filenmaen1);输成了 getc(filenmaen1);(2)由于把getche(key); 输成了 getch(key); 名师资料总结 - - -精品资料欢迎下载 - - - - - - - - - - - - - - - - - - 名师精心整理 - - - - - - - 第 9 页,共 12 页 - - - - - -
13、- - - 1. 程序目录:2. 文件加密:名师资料总结 - - -精品资料欢迎下载 - - - - - - - - - - - - - - - - - - 名师精心整理 - - - - - - - 第 10 页,共 12 页 - - - - - - - - - 3. 文件解密4. 打开加密文件名师资料总结 - - -精品资料欢迎下载 - - - - - - - - - - - - - - - - - - 名师精心整理 - - - - - - - 第 11 页,共 12 页 - - - - - - - - - 5. 加密解密 text 文件五、课程设计总结经过 2 个礼拜的程序设计学习,很大程度上的让我更深刻的理解的C语言在实际上的运用, 及其灵活。尤其在文件的存储和结构体模块,大大加强了我对概念和小细节的理解和把握。同时也让我知道的编程的艰辛,以后的路任重而道远。总之,这次课程设计让我收益非浅。对我将来的学习很有帮助。名师资料总结 - - -精品资料欢迎下载 - - - - - - - - - - - - - - - - - - 名师精心整理 - - - - - - - 第 12 页,共 12 页 - - - - - - - - -