ImageVerifierCode 换一换
格式:DOCX , 页数:19 ,大小:172.27KB ,
资源ID:6004123      下载积分:3 金币
快捷下载
登录下载
邮箱/手机:
温馨提示:
快捷下载时,用户名和密码都是您填写的邮箱或者手机号,方便查询和重复下载(系统自动生成)。 如填写123,账号就是123,密码也是123。
特别说明:
请自助下载,系统不会自动发送文件的哦; 如果您已付费,想二次下载,请登录后访问:我的下载记录
支付方式: 支付宝    微信支付   
验证码:   换一换

加入VIP,免费下载
 

温馨提示:由于个人手机设置不同,如果发现不能下载,请复制以下地址【https://www.bdocx.com/down/6004123.html】到电脑端继续下载(重复下载不扣费)。

已注册用户请登录:
账号:
密码:
验证码:   换一换
  忘记密码?
三方登录: 微信登录   QQ登录  

下载须知

1: 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。
2: 试题试卷类文档,如果标题没有明确说明有答案则都视为没有答案,请知晓。
3: 文件的所有权益归上传用户所有。
4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
5. 本站仅提供交流平台,并不能对任何下载内容负责。
6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

版权提示 | 免责声明

本文(《C语言程序设计》报告书.docx)为本站会员(b****6)主动上传,冰豆网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。 若此文所含内容侵犯了您的版权或隐私,请立即通知冰豆网(发送邮件至service@bdocx.com或直接QQ联系客服),我们立即给予删除!

《C语言程序设计》报告书.docx

1、C语言程序设计报告书淮 海 工 学 院 计算机工程学院课程设计报告设计名称: 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课程设计说明书一 需求分析设计一个文件加密/解密程序,主要功能是支持简单的替换加密/解密,支持凯撒加密法(参见XX百科词条:凯撒加密法二 概要设计三 详细设计/*函数到时*/#include #include #include #include h.hextern char encrypt(char ch,int n);extern void menu();extern void logo();void main() int i,n; char ch0,ch1; FILE *in,*out; char infile20

4、,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(); exit(0); printf(Please input the key:); s

5、canf(%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),out); printf(nEncrypt is ove

6、r!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); fc

8、lose(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(outf

9、ile,w)=NULL) 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(

10、ch1,out); printf(n=n); printf(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);

11、fclose(out); Sleep(1); menu(); ch0=getchar(); 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()/*

12、菜单,1.加密,2.解密,3.暴力破解,密码只能是数字*/ printf(n=); printf(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,二者十分

13、相似,但对于凯撒加密法来说,26个英文字母的排列是最好的例子,也很易懂,对于ROT13来说,09是最好的例子,所以二者结合,可以将加密/解密的程序完整化.而且用凯撒加密法和ROT13加密法可以很方便定义数据类型,自定义数据类型是一个文件的开头,引导整个程序的开始,所以我们结合C程序设计教程,可以很容易自定义数据类型,并且编写程序。五 用户手册运行程序之前,先在主函数所在的文件夹中创建3个文本文件:文本1 (1.txt),文本2(2.txt),文本3(3.txt)。选择1 ,回车,在所弹出的对话框中输入文本1.txt,回车,再输入所设的加密密码。如图在上一步所执行的程序基础上,打回车,会弹出以下

14、对话框。在上一步弹出的对话框中输入3,回车,再输入文本3.txt,回车,最后在出现的对话框中输入123。如图在上一步完成后,继续打回车,就会弹出如下对话框输入Q,回车,弹出对话框如下按任意键退出/结束程序。六 测试成果4.课程设计心得 上个学期我们学习了C语言这门课程,这个学期,学校就开设了课程设计,让我们学以致用,更加熟悉C语言的应用过程。刚开始拿到课程设计的题目的时候,根本就是无从下手。对于拿到的这份报告书也是一头雾水,中间有很多环节都不知道是什么意思。而且,在上个学期学习C语言的时候,觉得自己学习的也不是很好,有很多中间的知识都没有理解得很透彻,懵懵懂懂的,最后也是为了应付期末考试,并没

15、有真正地理解C语言中的某些语法的应用什么的,所以就很害怕最后会交不出作业。听了老师的讲解,回来了以后就翻书,复习上个学期所学的C语言程序设计,把基础的知识都看了一遍,特别看了书上的文件的这一节的内容,因为我们这组要做的课程设计是文件的加密和解密,稍微有点熟悉以后,就开始了我们这么课程的设计。一开始我们是想整个程序都是自己编出来的,可是编写的过程中,遇到了很多的问题,有好多的程序凭我们还是编写不出来的,后来在网上查找了一些文件加密解密方面的资料,为我们的编写的程序做了一些补充。网上有很多这方面的资料,很丰富,给我们的课程设计提供了很多方便。虽然有些网上的东西不能全部照搬照抄,但是可以用来借鉴一下

16、,对我们程序的设计编写也有很大的帮助。众人拾柴火焰高,通过大家和网络的力量,能借鉴的尽量借鉴,然后再修改完善,增加自己的功能,做出自己的特色。就这样,我们的程序设计完成了。虽然,还有的地方不是很完善,但是心里面还是很高兴,这里面有我们的劳动成果。通过这次课程设计,我学到了很多东西,在完成设计的过程中也遇到了很多问题,通过不断地查资料,向同学请教,使得大部分问题都得到了解决,并且在解决的过程中我也学到了很多的东西。而且在设计的过程中,让我学到了怎样和他人一起完成一件任务,以及在完成的过程中如何沟通。设计是要在一定的时间内完成的,在完成这个设计时,时间显然还是有些紧迫的,我想是没有合理安排好时间和开始态度不对所致。做完后,觉得合理安排时间很重要,否则,可能因为时间仓促而把原来可以做好的东西做的不好,应合理安排时间给各个环节。课程设计是培养学生综合运用所学知识,发现,提出,分析和解决实际问题,锻炼实践能力的重要环节,是对学生实际工作能力的具体训练和考察过程。通过这次课程通过这次课程设计之后,一定把以前所学过的知识重新温故。这次课程设计终于顺利完成了,在设计中遇到了很多编程问题,最后在老师的辛勤指导下,终于游逆而解。同时,在老师的身上我学得到很多实用的知识,在次我表示感谢!同时,对给过我帮助的所有同学和各位指导老师再次表示忠心的感谢! _

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1