收藏 分享(赏)

程序设计及应用课程设计.doc

上传人:精品资料 文档编号:8414566 上传时间:2019-06-25 格式:DOC 页数:12 大小:638.64KB
下载 相关 举报
程序设计及应用课程设计.doc_第1页
第1页 / 共12页
程序设计及应用课程设计.doc_第2页
第2页 / 共12页
程序设计及应用课程设计.doc_第3页
第3页 / 共12页
程序设计及应用课程设计.doc_第4页
第4页 / 共12页
程序设计及应用课程设计.doc_第5页
第5页 / 共12页
点击查看更多>>
资源描述

1、程序设计及应用课程设计2015 2016 学年第三学期院(系) 信息工程与自动化学院 专 业 自动化 学 号 201510401308班 级 自动化 153 学生姓名 张超 设计时间 2016 年 9 月 5 日指导教师 线岩团 1.设计题目:题目 7:文件加密 文件的传输会有明文和密文的区别,明文发送是不安全的,用一个程序实现发送文件的加密和解密操作。加密算法,密钥设计由同学自己选择现有的加密解密算法或是自己设计。要求:(1 )对文件的字符根据加密算法,实现文件加密。 (2 )对操作给出必要的提示。(3 ) 对存在的 file1.txt 文件,必须先打开,后读写,最后关闭。加密后的文件放在

2、file2.txt。 (4 )解密文件保存在 file3.txt 中。2.设计目的:文件的传输会有明文和密文的区别,明文发送是不安全的,易遭到黑客拦截。现要求编写一个程序实现文本文件的加密和解密操作。3. 要求:(1 )用户可选择是“加密文件”还是“解密文件”操作;(2 )加密文件:用户输入明文文件名(待加密文件,该文件必须在磁盘存在)和密文文件名(加密后目标文件) ,系统能够打开明文源文件,每次读取源文件单个字节(直至读到文件结束) ,并与用户输入的密钥通过异或运算进行加密,加密后存入目标文件中;(3 )解密文件:用户输入密文文件名(待解密文件,该文件必须在磁盘存在)和明文文件名(解密后目标

3、文件) ,系统能够打开密文源文件,每次读取源文件单个字节(直至读到文件结束) ,并与用户输入的密钥通过异或运算进行解密,解密后存入目标文件中。一、 设计思路和分析过程/*采用结构化程序设计思想,把系统的功能划分为哪几个模块,为实现每个功能模块设计了哪些函数及函数的作用说明*/程序分为三个模块:主函数菜单模块、 “加密文件”模块、 “解密文件”模块。“加密文件”模块对应 void fun1()、 “解密文件”模块对应 fun2()。Fun1()实现“加密文件” ,根据要加密文件内容与 key异或得到加密文件,并保存的第二个程序中去形成新的加密文件。fun2()计算“解密文件” ,根据要解密文件内

4、容与 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 targe

5、t 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,*f

6、p2;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(

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 fun3()FILE *fp;char ch,filename50;printf(“Please enter the file name:“);gets(filename);if(fp=fopen(

8、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.

9、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 文件五、课程设计总结经过 2 个礼拜的程序设计学习,很大程度上的让我更深刻的理解的 C 语言在实际上的运用,及其灵活。尤其在文件的存储和结构体模块,大大加强了我对概念和小细节的理解和把握。同时也让我知道的编程的艰辛,以后的路任重而道远。总之,这次课程设计让我收益非浅。对我将来的学习很有帮助。

展开阅读全文
相关资源
猜你喜欢
相关搜索
资源标签

当前位置:首页 > 企业管理 > 管理学资料

本站链接:文库   一言   我酷   合作


客服QQ:2549714901微博号:道客多多官方知乎号:道客多多

经营许可证编号: 粤ICP备2021046453号世界地图

道客多多©版权所有2020-2025营业执照举报