C语言文件加密解密及单词统计程序.doc

(10页)

本资源提供全文预览,点击全文预览即可全文预览,如果喜欢文档就下载吧,查找使用更方便哦!

15.9 积分

 高级语言程序设计 课程设计学 院 计算机工程学院 班 级 计 算1014 姓 名 学 号 成 绩 指导老师 汪志华 2011年 6 月 30 日高级语言程序设计课程设计报告一、 设计目的: 通过课程设计,学会把相关的理论知识和实际应用相结合,锻炼了独立实践的能力;学会了查阅与设计相关资料的能力。二、 设计内容:课题题目:使用C语言设计程序,产生如下界面,1-5对应不同功能,若不用汉字,可用拼音或英文表示。**************************************************************** ** 1--输入 2--加密 3--解密 4--显示 5—统计 0--退出 * * **************************************************************** 请选择(0--5):1. 退出系统。2. 输入信息,并写入数据文件。3. 对给定的文件进行加密。4. 对给定的文件进行解密。5. 显示文本文件的内容。6. 统计某单词在文件中出现的次数。三、 设计思想:(1)程序中由主函数中引用函数,实现了结构化设计的思想,保证思路清晰。程序中大量使用文件操作,配合各种复合语句的相互嵌套,使用自顶向下、逐步求精逐步开发设计。具体思想:1、采用main主函数构造框架,再实现各个函数的调用。在主函数中,利用switch语句实现对各个项目的的函数调用。并且利用到清屏函数实现调用函数后的界面的清洁性。这样程序具易读性,并且使用起来的界面效果较好。2、主函数中的各个调用函数的设计。gs、shuru、mi、、xianshi 、tongji分别实现主菜单调用、输入、加密、解密、显示、统计单词数的功能。2.1主菜单函数: void gs(void);显示基本菜单界面边界,不易使主函数看起来庞大,简单的打印输出即可设计。2.2输入函数: void shuru(void); 利用文件的操作,用getchar函数从键盘读取数据,再用fputc函数将数据存放到文件中即可实现。2.3加密解密函数: void mi(void);先读取原文件数据,将源文件数据经过特定条件转换后存放到另外一个文件(比如名为“jiami.txt”)中去。加密过程,即将读取(可使用fgetc函数)文件的字符根据特定表达式转化为另外字符实现加密。存到另一个文件(“123.txt”) 后关闭文件,最后利用remove、rename两个函数实现删除原文件,将另一个文件(“123.txt”)命名为原文件名。这样就剩一个加解密的文件。2.4显示函数 void show(void);利用文件的操作,用fgetc函数从文件读取数据,再用putchar函数将数据显示到屏幕即可实现。2.5计单词数函数 void tongji(void);从文件中读取字符串,存到数组中。接着从字符串中读取一个的英文单词,出来与要找的单词比较(可用strcmp函数),定义一个计数的变量实现单词出现次数。但是由于英文单词大写与小写都是同一个词,由此可以统一将所有字符用tolower函数转换为小写字母。在取单词过程中,可以利用islower函数判断取得的字符释是否是小字母。如果是则一直存到另一个字符数组,直到不是字母则可以暂停读取。获得的一个数组所代表的字符串就是读出的一个单词,马上将单词同统计的词比较计算。比较结束则继续读取下一个字符,重新存放字母到字符数组,一直做上面步骤到读取结束。最后显示打印要查找的单词总个数。(2)程序源文件#include#include#include#includevoid gs(void); //显示表头void shuru(FILE *,char []); //输入文本于所操作文件void mi(FILE *,int,char []); //加密和解密的函数void xianshi(FILE *); //显示文件中的内容void tongji(FILE *,int); //统计文件中的某个单词的总数main(){ int x; char m,name[20]; FILE *p; gs(); //显示刚开始时的表头 printf("请输入你选择的序号:\n"); scanf("%d",&x); while(x) { printf("请输入要操作的文件名(如:a.txt):\n"); scanf("%s",name); if(x!=1) //判断文件的打开方式 if((p=fopen(name,"r+"))==NULL) { printf("不能打开文件!\n"); exit(0); } if(x==1) if((p=fopen(name,"w"))==NULL) { printf("不能打开文件!\n"); exit(0); } switch(x) { case 1: shuru(p,name); break; case 2: mi(p,x,name); break; case 3: mi(p,x,name); break; case 4: xianshi(p); break; case 5: tongji(p,x); break; case 6: tongji(p,x); break; } flushall(); printf("继续选择?(y/n)\n"); scanf("%c",&m); if(m=='n') break; system("cls"); gs(); //对每次清屏后显示表头 printf("请输入你选择的序号:\n"); scanf("%d",&x); } exit(0);}void gs() //表头函数{ int i,j; for(i=1;i<=5;i++) { if(i==1||i==5) for(j=1;j<=78;j++) printf("*"); if(i==2||i==4) for(j=1;j<=78;j++) { if(j==1||j==78) printf("*"); else printf(" "); } if(i==3) printf("* 1--输入 2--加密 3--解密" " 4--显示 5--单词统计 6--各词统计 0--退出 *"); printf("\n"); }}void shuru(FILE *wj,char a[20]) { char c; printf("请输入文本:\n"); while((c=getchar())!=EOF) fputc(c,wj); fclose(wj);}void mi(FILE *wj,int i,char a[20]){ char c; FILE *mi; if((mi=fopen("123.txt","w+"))==NULL) { printf("不能打开文件!\n"); exit(0); } while(!feof(wj)) { fscanf(wj,"%c",&c); if(i==2) fputc(c+1,mi); if(i==3) fputc(c-1,mi); } if(i==2) printf("已成功加密!\n"); if(i==3) printf("已成功解密!\n"); fclose(wj); fclose(mi); flushall(); remove(a); rename("123.txt",a);}void xianshi(FILE *wj){ int i; char a[100]; for(i=0;!feof(wj);i++) { fscanf(wj,"%c",&a[i]); printf("%c",a[i]); } fclose(wj);}void tongji(FILE *wj,int y){ int i,j=0,k=0,l=0,n,m=0,e[20]={0},s; char b[20][50]={' '},c[20][50],d[100]={' '},f[50]; for(s=0;!feof(wj);s++) { fscanf(wj,"%c",&d[s]); d[s]=tolower(d[s]); } for(i=0;i

 天天文库所有资源均是用户自行上传分享,仅供网友学习交流,未经上传用户书面授权,请勿作他用。

c语言文件加密解密单词统计,C语言文件加密解密及单词统计程序.doc相关推荐

  1. 统计文件中有多少个单词amp;c语言实现

    假设文件中的单词都是字母的组合,且单词间用空格或者"."区分. 实验环境:Dev-C++ #include<stdio.h> #include<stdlib.h& ...

  2. C语言实现DES,3DES以及基于3DES的文件加密系统

    C语言实现3DES文件加密系统 DES算法 密钥操作 明文操作 3DES算法 C语言代码实现 代码效果展示 DES算法 DES(数据加密标准)是一种分组密码.明文,密文和密钥的分组长度都是64位. D ...

  3. rsa加解密算法报告c语言,RSA加密解密算法c语言程序Word版

    <RSA加密解密算法c语言程序Word版>由会员分享,可在线阅读,更多相关<RSA加密解密算法c语言程序Word版(5页珍藏版)>请在人人文库网上搜索. 1.传播优秀Word版 ...

  4. C语言二叉树字符统计,C语言实现二叉树-利用二叉树统计单词数目

    昨天刚参加了腾讯2015年在线模拟考: 四道大题的第一题就是单词统计程序的设计思想: 为了记住这一天,我打算今天通过代码实现一下: 我将用到的核心数据结构是二叉树: (要是想了解简单二叉树的实现,可以 ...

  5. python输入一个英文句子、统计单词个数_C语言编程求一个英文句子中的单词数和最长单词的位置、长度及输出这个单词。c++编程 从键盘输入一个英文...

    C语言编程求一个英文句子中的单词数和最长单词的位置.长度及输出这个单词. c++编程 从键盘输入一个英文 www.zhiqu.org     时间: 2020-11-23 我刚做了一关于英文句子里面每 ...

  6. python凯撒密码加密写入文件_Python用户名密码登录系统(MD5加密并存入文件,三次输入错误将被锁定)及对字符串进行凯撒密码加解密操作...

    #-*- coding: gb2312 -*-#用户名密码登录系统(MD5加密并存入文件)及对字符串进行凯撒密码加解密操作#作者:凯鲁嘎吉 - 博客园 http://www.cnblogs.com/k ...

  7. ibe加密原理_ibe 基于身份的IBE加密源代码,采用C++语言编写,能够运行。 Crypt_De algrithms 解密 238万源代码下载- www.pudn.com...

    文件名称: ibe下载 收藏√  [ 5  4  3  2  1 ] 开发工具: Visual C++ 文件大小: 3128 KB 上传时间: 2014-06-08 下载次数: 8 详细说明:基于身份 ...

  8. 通过MapReduce统计每个单子在每个文件中出现的次数(FileSplit的使用),单词作为key,所在文本和次数作为value进行统计

    代码如下: package cn.toto.bigdata.mr.index;import java.io.IOException;import org.apache.hadoop.conf.Conf ...

  9. delphi7aes加密解密与java互转_跨语言(java vs python vs nodejs)的RSA加解密问题探讨

    多次被问到这样的问题: java服务端的rsa加密操作已经完成,返回一个16进制的字符串给python平台,但是在python进行私钥解密的时候发现行不通.... 前端python加密,后端用java ...

最新文章

  1. spell_picture3.1版本windows上手动拼图的软件的升级
  2. 深度学习(十三)caffe之训练数据格式
  3. python自定义全局异常_Django 自定义404 500等错误页面的实现
  4. 庖丁解牛TLD(一)——开篇
  5. 编译时类型 和运行时类型的 区别(1)
  6. ubuntu启动php-fpm_ubuntu安装php-fpm+xdebug
  7. C语言课程设计火车订票系统存储结构设计,火车售票系统(数据结构课设)
  8. 大牛写的Openstack虚拟机创建细节
  9. JavaScript生成树形菜单(递归算法)
  10. 24点自动出题,可打印,A4排版
  11. 微信小程序————样式
  12. js区分单击双击,双击不会触发单击事件
  13. python 活体检测_基于Python+Keras+OpenCV实现实时人脸活体检测 | 文末送书
  14. STM32单片机-汇编指令2
  15. 软件测试 (1)软件测试基础/理论知识储备
  16. java实现QQ、微信等第三方账号登陆
  17. 2023年南京大学细胞生物学考研考情与难度、参考书及上岸前辈经验
  18. 从双非到北大中科院上交/夏令营保研经历
  19. 汇编quad_ARM汇编(2)(指令)
  20. SAP PP T-Code

热门文章

  1. 生成jni的android.mk,Android Studio 3.5版本JNI生成SO文件详解
  2. 《深入理解 Spring Cloud 与微服务构建》第九章 熔断器 Hystrix
  3. 【LeetCode】剑指 Offer 04. 二维数组中的查找
  4. Java的四种引用方式
  5. window snmp服务开启及测试
  6. [Codeforces1132G]Greedy Subsequences——线段树+单调栈
  7. ADC内设与外设的区别
  8. 杠杠做的全屏随鼠标滚动显示图片,类似于PPT效果
  9. Infragistics.NetAdvantage.WinForm.2012.v2 ComboBoxEditor的小Bug
  10. python selenium list index out of range