南京航空航天大学金城学院
《C语言程序设计》课程设计
实验报告
题目: 文件加密
班级:
学号:
姓名:
成绩:
指导教师:
完成日期: 年 月 日
目录
一、程序的主要功能
二、系统总框架图
三、各模块的功能
四、功能模块图
五、程序结构流程图
六、试验结果
七、编程体会
八、参考资料
九、附录:程序清单及源程序
一、程序的主要功能
(1)根据ASCII码表实现文件加密
(2)根据菜单提示进行操作选择
(3)自定义需要加密的文件和加密后的文件
(4)自定义需要解密的文件和解密后的文件
(5)解密需要一定的权限验证
二、系统总框架图
主函数
主函数
用户选择操作
用户选择操作
操作完成
操作完成
退出程序
退出程序
各模块的功能
jiami() //加密函数
jiemi() //解密函数
main() //主函数
功能模块图
退出返回菜单加密成功解密成功权限验证Jiemi()解密Jiami()加密菜单选择Main()主函数
退出
返回菜单
加密成功
解密成功
权限验证
Jiemi()解密
Jiami()加密
菜单选择
Main()主函数
程序结构流程图
输入需加密文件名输入需解密文件名退出结束加密成功开始解密成功权限验证菜单
输入需加密文件名
输入需解密文件名
退出
结束
加密成功
开始
解密成功
权限验证
菜单
试验结果
七、编程体会
知道了如何查询有关资料解决问题,利用现有ASCII码表实现简单文件加密。
八、参考资料
(1) season的博客:
(2)c语言中文网:
(3)CSDN博客频道:
九、附录:程序清单及源程序
#include
#include
jiami()
{
char c,filename[20],filename2[20];
FILE *fp1,*fp2;
printf("请输入待加密的文件名:");
scanf("%s",filename);
printf("请输入加密至文件名: ");
scanf("%s",filename2);
fp1=fopen(filename,"r");
fp2=fopen(filename2,"w");
if(fp1==NULL)
{
printf("打开文件失败!\n");
exit(0);
}
do
{
c=fgetc(fp1);
if(c>=32&&c<=126)
{
c=c-32;
c=126-c;
}
if(c!=-1)
fprintf(fp2,"%c",c);
}
while(c!=-1);
printf("加密成功!\n");
fclose(fp1);
fclose(fp2);
main();
}
jiemi()
{
char c,filename[20],filename2[20];
char yanzhengma[20];
FILE *fp3,*fp4;
printf("请输入待解密文件名:");
scanf("%s",filename);
printf("请输入解密至文件名:");
scanf("%s",filename2);
printf("请输入权限验证码:");
scanf("%s",yanzhengma);
if(fp3==NULL)
{
printf("打开文件失败!\n");
exit(0);
}
if(strcmp(yanzhengma,"0000")==0)
{
fp3=fopen(filename,"r");
fp4=fopen(filename2,"w");
do
{
c=fgetc(fp3);
if(c>=32&&c<=126)
{
c=126-c;
c=32+c;
}
if(c!=-1)
fprintf(fp4,"%c",c);
}
while(c!=-1);
}
else
{
printf("验证码错误!请退出重试:\n");
}
printf("解密成功!\n");