




版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1、淮 海 工 学 院 计算机工程学院课程设计报告设计名称: C语言课程设计 选题名称: 简单加密/解密程序 姓 名: 学 号: 专业班级: 软件工程 系 (院): 计算机工程学院 设计时间: 2011.8.292011.9.9 设计地点: 软件工程实验室、教室 成绩:指导教师评语: 签名: 年 月 日1课程设计目的(1) 巩固和加深学生对C语言的基本知识的理解和掌握;(2) 掌握C语言编程和程序调试的基本技能;(3) 利用C语言进行简单软件设计的基本思路和方法;(4) 提高运用C语言解决实际问题的能力;(5) 掌握书写程序设计说明文档的能力。2课程设计任务与要求:任务设计题目从任务书所列选题表中
2、选取,每人1题。要求:1、在处理每个题目时,要求从分析题目的需求入手,进行合理的模块设计,定义正确函数和自定义数据类型(如结构体类型)、编制上机程序和上机调试等若干步骤完成题目,最终写出完整的分析报告。前期准备工作完备与否直接影响到后序上机调试工作的效率。在程序设计阶段应尽量利用已有的标准函数,加大代码的重用率。 2、设计的题目要求达到一定工作量(200行以上代码),并具有一定的深度。3、程序设计语言推荐使用C,程序书写规范,源程序需加必要的注释并且缩进一致。4、每位同学需提交可独立运行的程序;5、每位同学需独立提交设计报告书(每人一份),要求编排格式统一、规范、内容充实,不少于10页(代码不
3、算);6、课程设计实践作为培养学生动手能力的一种手段,单独考核。3课程设计说明书一 需求分析设计一个文件加密/解密程序,主要功能是支持简单的替换加密/解密,支持凯撒加密法(参见百度百科词条:凯撒加密法/view/.htm)和ROT13加密两种加密方法二 概要设计简单加密/解密程序加密解密主模块三 详细设计/*函数到时*/#include #include #include #include h.hextern char encrypt(char ch,int n);extern void menu();extern void logo();void m
4、ain()int i,n;char ch0,ch1;FILE *in,*out;char infile20,outfile20;logo();Sleep(3);/*等待3秒*/menu();ch0=getchar();while(ch0!=4) if(ch0=1)printf(nPlease input the infile:);scanf(%s,infile);/*输入需要加密的文件名*/if(in=fopen(infile,r)=NULL)printf(Can not open the infile!n);printf(Press any key to exit!n);getchar();
5、exit(0);printf(Please input the key:);scanf(%d,&n);/*输入加密密码*/printf(Please input the outfile:);scanf(%s,outfile);/*输入加密后文件的文件名*/if(out=fopen(outfile,w)=NULL)printf(Can not open the outfile!n);printf(Press any key to exit!n);fclose(in);getchar();exit(0);while(!feof(in)/*加密*/fputc(encrypt(fgetc(in),n)
6、,out);printf(nEncrypt is over!n);fclose(in);fclose(out);Sleep(1);if(ch0=2)printf(nPlease input the infile:);scanf(%s,infile);/*输入需要解密的文件名*/if(in=fopen(infile,r)=NULL)printf(Can not open the infile!n);printf(Press any key to exit!n);getchar();exit(0);printf(Please input the key:);scanf(%d,&n);/*输入解密密
7、码(可以为加密时候的密码)*/n=26-n;printf(Please input the outfile:);scanf(%s,outfile);/*输入解密后文件的文件名*/if(out=fopen(outfile,w)=NULL)printf(Can not open the outfile!n);printf(Press any key to exit!n);fclose(in);getchar();exit(0);while(!feof(in)fputc(encrypt(fgetc(in),n),out);printf(nDecrypt is over!n);fclose(in);f
8、close(out);Sleep(1);if(ch0=3)printf(nPlease input the infile:);scanf(%s,infile);/*输入需要解密的文件名*/if(in=fopen(infile,r)=NULL)printf(Can not open the infile!n);printf(Press any key to exit!n);getchar();exit(0);printf(Please input the outfile:);scanf(%s,outfile);/*输入解密后文件的文件名*/if(out=fopen(outfile,w)=NULL
9、)printf(Can not open the outfile!n);printf(Press any key to exit!n);fclose(in);getchar();exit(0);for(i=1;i=25;i+)/*暴力破解过程,在察看信息正确后,可以按Q或者q退出*/rewind(in);rewind(out);printf(=n);printf(The outfile is:n);printf(=n);while(!feof(in)ch1=encrypt(fgetc(in),26-i);putchar(ch1);fputc(ch1,out);printf(n=n);print
10、f(The current key is: %d n,i);/*显示当前破解所用密码*/printf(Press Q to quit and other key to continue.n);printf(=n);ch1=getchar();if(ch1=q|ch1=Q)/*按Q或者q时退出*/logo();printf(nGood Bye!n);fclose(in);fclose(out);Sleep(3);exit(0);printf(nForce decrypt is over!n);fclose(in);fclose(out);Sleep(1);menu();ch0=getchar()
11、; logo();printf(nGood Bye!n);Sleep(3);/*头文件*/#include #include #include #include /调用函数*/#include #include #include #include extern char encrypt(char ch,int n)/*加密函数,把字符向右循环移位n*/while(ch=A&ch=a&ch=z) return (a+(ch-a+n)%26); return ch;extern void menu()/*菜单,1.加密,2.解密,3.暴力破解,密码只能是数字*/printf(n=);printf(
12、n1.Encrypt the file);printf(n2.Decrypt the file);printf(n3.Force decrypt file);printf(n4.Quitn);printf(=n);printf(Please select a item:);return;extern void logo()return;四 设计与调试分析在做加密/解密程序设计时,我选用凯撒加密法和ROT13加密法,因为凯撒加密法的偏移量是3,而ROT13加密法的偏移量是13,二者十分相似,但对于凯撒加密法来说,26个英文字母的排列是最好的例子,也很易懂,对于ROT13来说,09是最好的例子,所
13、以二者结合,可以将加密/解密的程序完整化.而且用凯撒加密法和ROT13加密法可以很方便定义数据类型,自定义数据类型是一个文件的开头,引导整个程序的开始,所以我们结合C程序设计教程,可以很容易自定义数据类型,并且编写程序。五 用户手册运行程序之前,先在主函数所在的文件夹中创建3个文本文件:文本1 (1.txt),文本2(2.txt),文本3(3.txt)。选择1 ,回车,在所弹出的对话框中输入文本1.txt,回车,再输入所设的加密密码。如图在上一步所执行的程序基础上,打回车,会弹出以下对话框。在上一步弹出的对话框中输入3,回车,再输入文本3.txt,回车,最后在出现的对话框中输入123。如图在上
14、一步完成后,继续打回车,就会弹出如下对话框输入Q,回车,弹出对话框如下按任意键退出/结束程序。六 测试成果4.课程设计心得 上个学期我们学习了C语言这门课程,这个学期,学校就开设了课程设计,让我们学以致用,更加熟悉C语言的应用过程。刚开始拿到课程设计的题目的时候,根本就是无从下手。对于拿到的这份报告书也是一头雾水,中间有很多环节都不知道是什么意思。而且,在上个学期学习C语言的时候,觉得自己学习的也不是很好,有很多中间的知识都没有理解得很透彻,懵懵懂懂的,最后也是为了应付期末考试,并没有真正地理解C语言中的某些语法的应用什么的,所以就很害怕最后会交不出作业。听了老师的讲解,回来了以后就翻书,复习
15、上个学期所学的C语言程序设计,把基础的知识都看了一遍,特别看了书上的文件的这一节的内容,因为我们这组要做的课程设计是文件的加密和解密,稍微有点熟悉以后,就开始了我们这么课程的设计。一开始我们是想整个程序都是自己编出来的,可是编写的过程中,遇到了很多的问题,有好多的程序凭我们还是编写不出来的,后来在网上查找了一些文件加密解密方面的资料,为我们的编写的程序做了一些补充。网上有很多这方面的资料,很丰富,给我们的课程设计提供了很多方便。虽然有些网上的东西不能全部照搬照抄,但是可以用来借鉴一下,对我们程序的设计编写也有很大的帮助。众人拾柴火焰高,通过大家和网络的力量,能借鉴的尽量借鉴,然后再修改完善,增加自己的功能,做出自己的特色。就这样,我们的程序设计完成了。虽然,还有的地方不是很完善,但是心里面还是很高兴,这里面有我们的劳动成果。通过这次课程设计,我学到了很多东西,在完成设计的过程中也遇到了很多问题,通过不断地查资料,向同学请教,使得大部分问题都得到了解决,并且在解决的过程中我也学到了很多的东西。而且在设计的过程中,让我学到了怎样和他人一起完成一件任务,以及在完成的过程中如何沟通。设计是要在一定的时间内完成的,在完成这个设计时,时间显然还是有些紧迫的,我想是没有合理安排好时间和开始态度不对所致。做完后,觉得合理安排时间很
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 北京签订工作合同范本
- 厂家销售锅炉合同范本
- 保安临时服务合同范本
- 合资砂场合同范例
- 古建圆柱采购合同范本
- 结算审计服务合同范本
- 传媒股东合同范本
- 出口木箱合同范本
- 出售住宅和厂房合同范本
- 合办活动协议合同范本
- 01-BUFR格式应用指南(试用版)
- 体育测量与评价04心肺功能的测量与评价
- 提高意识风险防范化解能力体会发言
- RB/T 089-2022绿色供应链管理体系要求及使用指南
- 2023年度危险作业安全监护手册
- 马克思主义哲学十讲
- 永磁同步电机地设计与电磁分析报告
- 催化材料智慧树知到答案章节测试2023年南开大学
- GB/T 9846.1-2004胶合板第1部分:分类
- GB/T 32685-2016工业用精对苯二甲酸(PTA)
- 部编优质课国家一等奖初中语文八年级下册《大道之行也》
评论
0/150
提交评论