_C语言编程实例

_C语言编程实例

ID:41032744

大小:137.03 KB

页数:41页

时间:2019-08-14

_C语言编程实例_第1页
_C语言编程实例_第2页
_C语言编程实例_第3页
_C语言编程实例_第4页
_C语言编程实例_第5页
资源描述:

《_C语言编程实例》由会员上传分享,免费在线阅读,更多相关内容在工程资料-天天文库

1、给文件加密的技术很多,其中又分为不同等级,以适合不同场合的需要.这里给出最简单的文件加密技术,即采用文件逐字节与密码异或方式对文件进行加密,当解密时,只需再运行一遍加密程序即可.  下面是一个实例程序,能对任意一个文件进行加密,密码要求用户输入,限8位以内(当然你可以再更改).程序有很好的容错设计,这是我们应该学习的./*Turbo2.0pass.givefileapassword!*/#include#include#include#includevoiddofile(char*in_fname,char*pwd,c

2、har*out_fname);/*对文件进行加密的具体函数*/voidmain(intargc,char*argv[])/*定义main()函数的命令行参数*/{charin_fname[30];/*用户输入的要加密的文件名*/charout_fname[30];charpwd[8];/*用来保存密码*/if(argc!=4){/*容错处理*/printf("In-fname:");gets(in_fname);/*得到要加密的文件名*/printf("Password:");gets(pwd);/*得到密码*/printf("Out-file:");gets(ou

3、t_fname);/*得到加密后你要的文件名*/dofile(in_fname,pwd,out_fname);}else{/*如果命令行参数正确,便直接运行程序*/scpy(in_fname,argv[1]);scpy(pwd,argv[2]);scpy(out_fname,argv[3]);dofile(in_fname,pwd,out_fname);}}/*加密子函数开始*/voiddofile(char*in_fname,char*pwd,char*out_file){FILE*fp1,*fp2;registercharch;intj=0;intj0=0;fp1=fopen(

4、in_fname,"rb");if(fp1==NULL){printf("cannotopenin-file.");exit(1);/*如果不能打开要加密的文件,便退出程序*/}fp2=fopen(out_file,"wb");if(fp2==NULL){printf("cannotopenorcreateout-file.");exit(1);/*如果不能建立加密后的文件,便退出*/}while(pwd[j0]);ch=fgetc(fp1);/*加密算法开始*/while(!feof(fp1)){fputc(ch^pwd[j>=j0?j=0:j],fp2);/*异或后写入

5、fp2文件*/ch=fgetc(fp1);}fclose(fp1);/*关闭源文件*/fclose(fp2);/*关闭目标文件*/}冒泡排序的算法分析与改进交换排序的基本思想是:两两比较待排序记录的关键字,发现两个记录的次序相反时即进行交换,直到没有反序的记录为止。 应用交换排序基本思想的主要排序方法有:冒泡排序和快速排序。冒泡排序1、排序方法 将被排序的记录数组R[1..n]垂直排列,每个记录R[i]看作是重量为R[i].key的气泡。根据轻气泡不能在重气泡之下的原则,从下往上扫描数组R:凡扫描到违反本原则的轻气泡,就使其向上"飘浮"。如此反复进行,直到最后任何两个气泡都是轻者

6、在上,重者在下为止。(1)初始 R[1..n]为无序区。(2)第一趟扫描 从无序区底部向上依次比较相邻的两个气泡的重量,若发现轻者在下、重者在上,则交换二者的位置。即依次比较(R[n],R[n-1]),(R[n-1],R[n-2]),…,(R[2],R[1]);对于每对气泡(R[j+1],R[j]),若R[j+1].key

7、趟扫描可得到有序区R[1..n]注意: 第i趟扫描时,R[1..i-1]和R[i..n]分别为当前的有序区和无序区。扫描仍是从无序区底部向上直至该区顶部。扫描完毕时,该区中最轻气泡飘浮到顶部位置R[i]上,结果是R[1..i]变为新的有序区。2、冒泡排序过程示例 对关键字序列为4938659776132749的文件进行冒泡排序的过程【参见动画演示】3、排序算法(1)分析 因为每一趟排序都使有序区增加了一个气泡,在经过n-1趟排序之后,有序区中就有n-1个气泡,而无序区

当前文档最多预览五页,下载文档查看全文

此文档下载收益归作者所有

当前文档最多预览五页,下载文档查看全文
温馨提示:
1. 部分包含数学公式或PPT动画的文件,查看预览时可能会显示错乱或异常,文件下载后无此问题,请放心下载。
2. 本文档由用户上传,版权归属用户,天天文库负责整理代发布。如果您对本文档版权有争议请及时联系客服。
3. 下载前请仔细阅读文档内容,确认文档内容符合您的需求后进行下载,若出现内容与标题不符可向本站投诉处理。
4. 下载文档时可能由于网络波动等原因无法下载或下载错误,付费完成后未能成功下载的用户请联系客服处理。