c语言课程设计-文件加密解密(含源代码)
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
C
语
言
课
程
设
计
实
验
报
告
实验名称:文件加密解密
院系:软件学院
学号:
日期:2012年9月3日—9月17日
一:设计题目
1:设计图形用户界面。
2:对文件进行加密并对加密文件进行保存。
3:对加密了的文件进行解密。
二:设计过程
设计过程中遇到的困难和解决方法:
1:不能很好地理解题意(通过老师的讲解)。
2:不知道如何设计加密解密程序(通过翻阅书籍和上网查找资料)
过程:
首先通过学习老师提供的资料了解大致的设计过程并懂得运用一些以前没有学习过的c语言。先利用文本文件设计出加密解密的主要过程并能运行。知道如何运用fopen将原文件打开并用fread将原文件内容读出来,然后进行加密设计并将加密的数据用fwrite写进指定的文件中并保存。然后读出加密的文件并解密并保存。最后在写出的程序中加入图形用户界面,运用window,box,gotoxy等进行设计。
三:源代码
#include
#include
#include
#include
#include
#include
#define key_down 80
#define key_up 72
#define key_esc 1
#define key_enter 28
#define SIZE 1
void box(int startx,int starty,int high,int width);
int get_key();
char buf[20*20*4];
/*/////////////////////////////////////////////////////////////
///////////////////////////////////////////////////////////////加密解密 */
void fun(char *list,char *sd) /*加密过程*/
{
FILE *fp1,*fp2;
char buf[1000]; /*文件临时存放处*/
register int ch;
fp1=fopen("e:\list.txt","r"); /*用可读方式打开文件*/
fp2=fopen("e:\sd.txt","w"); /*用可写方式创建一个文件*/
if(fp1==NULL)
{
printf("cannot open file\n");
exit(1);
}
if(fp2==NULL)
{
printf("cannot build file\n");
exit(1);
}
ch=fgetc(fp1); /*读出打开文件的光标处的一个字符*/
while(!feof(fp1)) /*读出的字符不是最后的字符*/
{
ch=ch<<1; /*加密方法*/
fputc(ch,fp2); /*加密的字符存放在指定的地方*/
ch=fgetc(fp1);
}
rewind(fp2); /*将光标移动到第一个字符前面*/
fread(buf,sizeof(buf),1,fp2); /*从文件的当前位置开始中读取buf中存放的数据*/
printf("%s",buf);
/*fclose(fp1);
fclose(fp2); */
}
void man(char *sd,char *ds) /*解密过程*/
{
/*int n=0; */
FILE *fp2,*fp3;
register int fh;
char buf1[1000];
fp2=fopen("e:\sd.txt","rb"); /*用可读方式打开文件*/
fp3=fopen("e:\ds.txt","wb"); /*用可写方式创建一文件*/
if(fp2==NULL)
{
printf("cannot open file\n");
exit(1);
}
if(fp3==NULL)
{
printf("cannot build file\n");
exit(1);
}
fh=fgetc(fp2); /*从光标处读出一个字符*/
while(!feof(fp2)) /*当读出的字符到达最后一个则停止*/
{
fh=fh>>1; /*解密方式*/
fputc(fh,fp3); /*解密的字符存放在指定的地方*/
fh=fgetc(fp2);
}
fread(buf1,sizeof(buf1),1,fp3); /*读出buf1中所存放的数据*/ printf("%s",buf1);
}
void main()
{ int k;
char *f[]={"jiami","jiemi"}; /**界面的形式/
int key,y;
int j,q;
char list[300];
char sd[300];
char ds[300];
char ch,fh;
char buf[1000];
char buf1[1000];
FILE *fp1;