




版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1、C语言程序设计文件加密解密程序报告设计题目: 加密解密处理程序设计报告的电子文档(B1OO8O128程序设 计.doc )一.老师对作业要求。1:对学生课程设计两周的纪律及提交内容的要求:(1)规定上机的时间内不得无故缺勤,有事需要向指导老师书面请假;(2)上机时禁止玩游戏,屡教不改者,实习成绩可为不及格;(3)每人手头准备一至两本C/C+的有关工具书,上机前作好充分的准备,包括事先写好主要算法的程序代码以保证充分利用上机的时间调试程序;(4)同组可以讨论思路,但是程序要自己完成,不可抄袭,若完全抄袭别人的,实习成绩可为不及格;(5)实习的最后阶段认真完成实习报告的电子文档。报告内容不得少于1
2、5页。(6)每个学生最后提交的材料:压缩文件一个,起名为:学号名勇目名.rar (如:B06020127学生管理系统.rar)。该压缩文件中包含下列几个文件:程序设计报告的电子文档(起名为:学号一程序设计.doc)、 源程序文件(起名为:学号名一题目名.cpp,如:B06020127.学生管理系统.cpp)、原始数据文件(如:stud.dat).编译链接后得到的可执行文件(起名为:学号名_题目名.exe)(7)请同学独立完成报告,若发现两份报告一模一样,则两人都按 不及格论处,请各位同学珍惜自己的版权,也请指导老师严格把关。附2:上机时间:每天上午8: 0011: 20附3:成绩的评定根据学生
3、平时的上机出勤情况、为上机所作的准备情况、上机时的表现、程序的完成情况、报告的完成情况、验收答辩时的表现等综合打分。等级为:优秀、良好、中等、及格、 不及格。附4:课程设计报告具体内容要求学生管理系统(题目格式:宋体,3号,加粗,居中对齐)一、 课题内容和要求(格式:宋体,4号,加粗,两端对齐)该部分可参考前面给出的问题描述再加以细化一些(正文格式:宋体,小4号,不加粗,两端对齐,L5倍行距)二、需求分析(格式:宋体,4号,加粗,两端对齐)在该部分中叙述每个模块的功能要求(正文格式:宋体,小4号,不加粗,两端对齐,L5倍行距)概要设计 (格式:宋体,4号,加粗,两端对齐)在此说明每个部分的算法
4、设计说明(可以是描述算法的流程图),每个程序中使用的存储结构设计说明(如果指定存储结构请写出该存储结构的定义,如果用面向对象的方法, 应该给出类中成员变量和成员函数原型声明)。(正文格式:宋体,小4号,不加粗,两端对齐,L5倍行距)四、源程序代码(格式:宋体,4号,加粗,两端对齐)各个算法实现的源程序(可以是一组源程序,每个功能模块采用不同 的函数实现),源程序要按照写程序的规则来编写。要结构清晰,重点函数的重点变量,重点功能部分要加 上清晰的程序注释。(正文格式:宋体,小4号,不加粗,两端对齐)五、测试数据及其结果分析(格式:宋体,4号,加粗,两端对齐)(正文格式:宋体,小4号,不加粗,两端
5、对齐,1.5倍行距)六、调试过程中的问题(格式:宋体,4号,加粗,两端对齐)每个模块设计和调试时存在问题的思考(问题是哪些?问题如何解 决?),以及算法的改进设想。(正文格式:宋体,小4号,不加粗,两端对齐,L5倍行距) 七、课程设计总结(格式:宋体,4号,加粗,两端对齐) 总结可以包括:程序设计过程的收获、遇到的问题,遇到问题解决 问题过程的思考、程序调试能力的思考,对该课程组织和考核方式的建议等。(正文格式:宋体,小4号,不加粗,两端对齐,L5倍行距)原始数据文件(stud.dat)课题内容和要求.编写一个对字符文件(由数字或字母组成)进行加密解密的程序。可以将 所需要的内容(整个文件或者
6、输入的一行字符)加密,也可以将存储的加密文件 翻译回来。例如加密时可以将选取内容的每个字符依次反复加上“ 4963287312” 中的数字,如果范围超过ASCII码值的032(空格)一122( z),则进行模运算(既 N%122) o解密与加密的顺序相反。2、部分要求(1)从键盘输入要进行加密的一行字符串或者需要加密的文件名。(2)显示菜单: I I I I I I I I I I I I I I I I I I I I I I I I I I I I I I I I I L设置加密方法.加密.解密.退出 1 | 4 4 4 | 1 | 4 4 4 | 1 | 4 4 4 | 1 | 4 4
7、4 | 1 (3)选择菜单,进行相应的操作。加密方法是设置一加密字符串以及对文件 的哪些部分进行加密;加密是将原始文件加密并保存到文件中:解密是将加了密 的文件还原并保存到文件中,同时应比较与原始文件的一致性;显示是将文件在 屏幕上显示出来,供人工校对。(4)定义原始文件sourse. txt、加密文件result, txt和还原文件recall. txt3、其他要求(1)变量、函数命名符合规范。(2)注释详细:每个变量都要求有注释说明用途;函数有注释说明功能,对 参数、返回值也要以注释的形式说明用途;关键的语句段要求有注释解释。(3)程序的层次清晰,可读性强。4、需要掌握的知识(1)如何读写
8、文件(2)如何对字符进行加减操作,并保证加减后的数值处于某一范围之内(模 运算)(3) 了解加解密的基本原理需求分析模块分析:(1)在屏幕上显示文件void printtxt ()用于将原始文件sourse. txt,加密文件result. txt,解密文件recall, txt, 的内容显示在屏幕上,方便检验程序是否正确执行。在此函数中要以输入方式打 开三个文件。(2)加密 void encode()对原始文件sourse. txt整个或部分字符串加密,并将加密后的内容写入result, txt o加密时,每个字符依次反复加上“ 4963287312”中的数字,如果 范围超过ASCH码值的0
9、32(空格)一122( z),则进行模运算(即N%122).例如:加密the(t)116+4, (h)104+9, (e)101+6变为xqk(3)解密 void decode()对加密后的result, txt进行解密,并将解密后的内容写入recall. txt 文件中。解密过程与加密过程的顺序正好相反,即从第一个字符开始,每个字符 依次反复减去” 4963287312”中的数字,若执行减法后得到一个负数,则把这个 负数加122,即(N+122),其中N为负数。例如:把xqk解密(x) 120-4 (q)111-9 (k) 107-6变为the(4)设置加密方法void set ()由键盘输
10、入,进行加密方法的设置,主要由输出输入语句组成,目的是为 了方便人机交流。(5)显示菜单: I I I I I I I I I I I I I I I I I I I I I I I I I I I I I I I I I .设置加密方法.加密.解密.退出 I I I I I I I I I I I I I I I I I I I I I I I I I I I I I I I I I (6)加密方法川结构表示struct password/*加密方法*/char ps10;/*加密字符串*/long wd;/*加密的字节数*/;概要设计C语言程序设计文件加密解密C语言程序设计文件加密解密st
11、ruct password/*加密方法*/.加密程序的设计:开始,以输出方式打开加密文件,以输入方式打开原始文件,判断文件是否为空, 若为空,对字符串进行加密:定义for循环,判断i值是否小于字符串的长度, 是则进行加密运算,即将字符所对应的ASCALL码加上加密字符串所对应的数 字减去48,得到的就是加密后的字符,如果范围超过ASCII码值的032(空格) 122( z),则进行模运算(即N%122),将加密后的文字写入加密文件,关闭 打开的两个文件,屏幕显示加密成功。如果文件不为空,则对文件中字符加密, 加密过程与上述加密过程相似。.解密程序的设计:开始,以输出方式打开解密密文件,以输入方
12、式打开加密文件,对加密后的文 件中的字符串进行解密:定义for循环,判断i值是否小于字符串的长度,是则 进行加密运算,即将字符所对应的ASCALL码减去加密字符串所对应的数字加 上48,得到的就是解密后的字符,若执行减法后得到一个负数,则把这个负数 加122,即(N+122),其中N为负数。将解密后的文字写入解密文件,关闭打开 的两个文件,屏幕显示解密成功。.显示程序的设计:以输入方式打开原始文件,加密文件,解密文件,将文件中进行的字符串读入 到屏幕上,方便读者进行比较。编译连接后得到可执行文件(B10080128加密解密 处理.exp)源程序代码#include#include#includ
13、e char ps10 ;/*加密字符串*/long wd;/*加密的字节数*/);struct password password; 定义一个加密方法结构变量char s100;void set()加密方法设置函数(printf (n输入加密字符串:”);scanf(%s,password, ps);printf (n输入加密字节数:“);scanf (ld”, password, wd);getchar ();system(pause);/*按任意键继续,使界面整洁*/void printtxt ()/*显示显示原始文件和解密文件函数*/(/*以读方式打开文件*/FILE *source
14、= fopen (source, txt”, ; 打开原始文件FILE result = fopen(result. txt, r);FILE recall = fopen(recall, txt”, rt); 打开解密文件char c;临时字符存储变量if (source = NULL )文件存在性判断printf (不存在 source, txt 文件n);exit(O);if(result = NULL )(printf (不存在 result, txt 文件n);exit(0);if (recall = NULL ) 文件存在性判断(printf (不存在 recall, txt 文件
15、n);exit (0);c = fgetc(source); 先从原始文件读出一个字符,若不是文件结尾,则文 件内容非空if(c =EOF) 文件内容为空,输出加密字符(printf (n 加密字符:);printf(%sn”,s);)else文件非空,输出原始文件(printf (n 原始文件:);printf(%c,c);while(c=fgetc(source) != EOF) 文件非空调用判断)printf(n);printf(n 解密文件:);while(c=fgetc(result) != EOF) 文件非空,输出解密文件 printf(%c, c);printf(Xn);prin
16、tf CXn);printf (n 解密文件:);while(c=fgetc(recall) != EOF) 文件非空,输出解密文件 printf(%c, c);printf (rT);/*下面是文件关闭操作*/fclose(source);/fclose(result);fclose(recall);system(pause);/*力口密*/void encode ()int m, n=strlen (password, ps), i, flag = 1; /m 存储加密字符长度,n 存储 加密字符串,i为临时变量char N, w;char c,C;临时字符存储变量FILE result
17、= fopen(result. txt,wt); 以写方式打开 result。 txt文件FILE *source = fopen(sourse. txt, wt);/以写方式打开 sourceo txt文件if (result = NULL ) 文件非空容错处理(printf (不存在 result, txt 文件n);exit(O);/ofstream out (result. txt,z);if (source = NULL ) 文件非空容错处理(printf (不存在 source, txt 文件n);flag = 0;/ ifstream fw(sourse. txt);/ifstr
18、eam fs(s, ios:nocreate);if (flag = 1) C = fgetc(source);先得到一个文件内容if (flag = 0 II C=EOF )判断文件是否为空,为空的话,对输入字符加密(printf(请输入要加密的字符串:n);scanf(s, s);m=strlen(s) ;/*对输入的字符串加密*/fprintf (source, %s, s); 将输入字符输出至source文件中for(i=0;im;i+) static int a=0;if (a122)N二N%122;)fputc (N, result); 将加密内容输出入result中a+;)els
19、e fputc (si, result);将加密内容输出入 result 中)else 文件非空,对文件加密(w=C+password, ps0%n-48;fputc (w, result);将加密结果输出至result文件中for( i=0;(c=fgetc(source) EOF;i+)(static int a=1;if(a122)N = N%122;/* 模运算*/fputc(N, result); /out. put(N);a+;else fputc(N, result);)PrintfCn 加密成功! n);关闭文件fclose (result);fclose (source);s
20、ystem(pause);)void decode ()/*解密*/(FILE * recall = fopen(recall. txt,wt);/*以写方式打开文件*/FILE * result = fopen(result. txt, rt) ;/*以读方式打开文件*/char c, N; 临时变量int n=strlen (password, ps), i ; n存储加密字符串长度,i为临时变量文件存在性判断if(result = NULL )(printf (不存在 result. txt 文件n);exit(O);if(recall = NULL )(printf (不存在 resu
21、lt. txt 文件n);exit(0);for( i=0; (c=fgetc (result) != EOF; i+) 对加密文件进行译码static int a=0;if (apassword. wd) (N=c-(password, psa%n-48);if(N0)(N= (N+122) %122;/* 模运算*/fputc(N, recall); else (if (N0) fputc C z, recall); 将解密结果输出至 recall 文件 else fputc(N, recall);) a+;else fputc(N, recall) ;/printf(n 解密成功! n)
22、;关闭文件 fclose (result); fclose(recall); system(pause);)void cmptxt ()/水比较解密文件和原始文件的一致性,一致输出 原字符,不一致输出*/ 在程序中没有调用/*以读方式打开文件*/FILE *source = fopen(sourse. txt,rt); 打开原始文件 /FILE *result = fopen(result. txt, r);FILE recall = fopen(recall. txt,rt); 打开解密文件 char c,d; 临时字符存储变量if (source = NULL )文件存在性判断(print
23、f (不存在 source, txt 文件n); exit(O); /* if(result = NULL ) ( printf (不存在 result, txt 文件n); exit(O);*/if(recall = NULL ) 文件存在性判断 (printf (不存在 recall, txt 文件n); exit(O);)c = fgetc(source); 先从原始文件读出一个字符,若不是文件结尾,则文 件内容非空d = fgetc (recall); 先从解密文件读出一个字符,若不是文件结尾,则文件内容非空if(c =EOF) 文件内容为空,输出加密字符(printf (读文件错误!
24、 n);exit(0);if(d =E0F) 文件内容为空,输出加密字符(printf (读文件错误! n);exit(0);printf (文件比较:);if (c = d)(printf (飞c”, c);else printf(一);while(c=fgetc(source) != EOF & (c=fgetc(source) != EOF) 文件 非空调用判断(if (c = d)(printf (飞c”, c);else printf(一);printf Cn,z);/*下面是文件关闭操作*/ fclose(source);/fclose(result);fclose(recall)
25、;system(pause);)voidmenu () 主菜单printf (zn*n,z);printf(l.设置加密方法n);printf (2.加密n);printf (3.解密n);printf (4 .显示文件n);printf (5.退出n);printf(zn*nz);printf (请选择:);void main()int a=0;/*FILE *fl = f open (source. txt,wt); 创建文件FILE *f2 = fopen(result. txt,wt);FILE *f3 = fopen(recall. txt,wt);fclose(fl) ; fclo
26、se(f2) ;fclose(f3) ; / 关闭文件*/ menu ();while (a!=5)(scanf(%d, &a);switch(a)(调用设置加密方法函数清楚屏幕上的字符,是屏幕更整洁调用加密函数调用解密函数显示原始文件与目标文件set ();system(cis);menu() ; break;encode();system(cls);menu() ; break;decode();system (cls);menu() ; break;printtxt ();system(cls);menu() ; break;printf (n 谢谢使用!nn); break;default:printf(n输入错误请再次输入n);system(cls);menu() ; break;)六、测试数据及其结果分析测试数据记录:请输入需要加密的内容:the东木 东木L设置加密方法.加密.解密.显示文件.退出木木木木请选择:1输入加密字符串:496输入加密字节数:3请按任意键继续木木木木
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 杭州酒店式公寓租赁合同范本
- 初中数学利用三角形全等测距离+教案2024-2025学年北师大版(2024)数学七年级下册
- 锅炉结垢不停炉在线除垢新技术-彻底解决锅炉结垢热效率低问题
- 2025年度国库知识考试测试题库附答案(共140题)
- 《婴幼儿行为观察与记录》 项目三任务一思考与练习答案
- 李芳的劳动合同争议
- 2025土地征收委托合同
- 节能设备租赁合同标准范本
- 第一章第三节地球的自转 教学设计 -2023-2024学年商务星球版七年级地理上册
- 2025年购销合同-亚光绿板中置液晶显示器安装与调试服务协议(教装科技股份有限公司)
- 网络传播概论(第5版)课件 第5、6章 智能时代与智能传播走向、网络传播与网络空间中的人
- 黑龙江省机关事务管理局所属事业单位招聘笔试真题2023
- 不紧绷的人生读书笔记
- 百融云创风险决策引擎V5产品操作手册
- DB22-T5143-2023城镇道路薄层罩面技术标准
- 《中国心力衰竭诊断和治疗指南2024》解读(总)
- 中学生心理咨询记录30篇汇编
- 电缆维修施工合同范本
- 核医学科感染防控技术指南
- 中国成人ICU镇痛和镇静治疗指南
- DZ∕T 0033-2020 固体矿产地质勘查报告编写规范(正式版)
评论
0/150
提交评论