1、 年 月 日1课程设计目的(1)巩固和加深学生对C语言的基本知识的理解和掌握;(2)掌握C语言编程和程序调试的基本技能;(3)利用C语言进行简单软件设计的基本思路和方法;(4)提高运用C语言解决实际问题的能力;(5)掌握书写程序设计说明文档的能力。2课程设计任务与要求:任务设计题目从任务书所列选题表中选取,每人1题。要求:1、在处理每个题目时,要求从分析题目的需求入手,进行合理的模块设计,定义正确函数和自定义数据类型(如结构体类型)、编制上机程序和上机调试等若干步骤完成题目,最终写出完整的分析报告。前期准备工作完备与否直接影响到后序上机调试工作的效率。在程序设计阶段应尽量利用已有的标准函数,加
2、大代码的重用率。2、设计的题目要求达到一定工作量(200行以上代码),并具有一定的深度。3、程序设计语言推荐使用C,程序书写规范,源程序需加必要的注释并且缩进一致。4、每位同学需提交可独立运行的程序;5、每位同学需独立提交设计报告书(每人一份),要求编排格式统一、规范、内容充实,不少于10页(代码不算);6、课程设计实践作为培养学生动手能力的一种手段,单独考核。3课程设计说明书一 需求分析设计一个文件加密/解密程序,主要功能是支持简单的替换加密/解密,支持凯撒加密法(参见XX百科词条:凯撒加密法二 概要设计三 详细设计/*函数到时*/#include stdlib.htime.h#includ
3、e 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,outfile20; logo(); Sleep(3);/*等待3秒*/ menu(); ch0=getchar(); while(ch0!=4) if(ch0=1 printf(nPlease input the infile:); scanf(%s,infile);/*输入需要加密的文件名*/ if(in=fo
4、pen(infile,r)=NULL) printf(Can not open the infile!nPress any key to exit! getchar(); exit(0); Please input the key:%d,&n);/*输入加密密码*/Please input the outfile:,outfile);/*输入加密后文件的文件名*/ if(out=fopen(outfile,wCan not open the outfile! fclose(in); while(!feof(in)/*加密*/ fputc(encrypt(fgetc(in),n),out);nE
5、ncrypt is over! fclose(in); fclose(out); Sleep(1); 2/*输入需要解密的文件名*/*输入解密密码(可以为加密时候的密码)*/ n=26-n;/*输入解密后文件的文件名*/feof(in)nDecrypt is over!3 for(i=1;i/调用函数*/extern char encrypt(char ch,int n)/*加密函数,把字符向右循环移位n*/ while(chA&chZ return (+(ch-+n)%26);az return ch;extern void menu()/*菜单,1.加密,2.解密,3.暴力破解,密码只能是
6、数字*/n=n1.Encrypt the filen2.Decrypt the filen3.Force decrypt filen4.QuitnPlease select a item: return;extern void logo()四 设计与调试分析在做加密/解密程序设计时,我选用凯撒加密法和ROT13加密法,因为凯撒加密法的偏移量是3,而ROT13加密法的偏移量是13,二者十分相似,但对于凯撒加密法来说,26个英文字母的排列是最好的例子,也很易懂,对于ROT13来说,09是最好的例子,所以二者结合,可以将加密/解密的程序完整化.而且用凯撒加密法和ROT13加密法可以很方便定义数据类型
7、,自定义数据类型是一个文件的开头,引导整个程序的开始,所以我们结合C程序设计教程,可以很容易自定义数据类型,并且编写程序。五 用户手册运行程序之前,先在主函数所在的文件夹中创建3个文本文件:文本1 (1.txt),文本2(2.txt),文本3(3.txt)。选择1 ,回车,在所弹出的对话框中输入文本1.txt,回车,再输入所设的加密密码。如图在上一步所执行的程序基础上,打回车,会弹出以下对话框。在上一步弹出的对话框中输入3,回车,再输入文本3.txt,回车,最后在出现的对话框中输入123。在上一步完成后,继续打回车,就会弹出如下对话框输入Q,回车,弹出对话框如下按任意键退出/结束程序。六 测试
8、成果4.课程设计心得 上个学期我们学习了C语言这门课程,这个学期,学校就开设了课程设计,让我们学以致用,更加熟悉C语言的应用过程。刚开始拿到课程设计的题目的时候,根本就是无从下手。对于拿到的这份报告书也是一头雾水,中间有很多环节都不知道是什么意思。而且,在上个学期学习C语言的时候,觉得自己学习的也不是很好,有很多中间的知识都没有理解得很透彻,懵懵懂懂的,最后也是为了应付期末考试,并没有真正地理解C语言中的某些语法的应用什么的,所以就很害怕最后会交不出作业。听了老师的讲解,回来了以后就翻书,复习上个学期所学的C语言程序设计,把基础的知识都看了一遍,特别看了书上的文件的这一节的内容,因为我们这组要
9、做的课程设计是文件的加密和解密,稍微有点熟悉以后,就开始了我们这么课程的设计。一开始我们是想整个程序都是自己编出来的,可是编写的过程中,遇到了很多的问题,有好多的程序凭我们还是编写不出来的,后来在网上查找了一些文件加密解密方面的资料,为我们的编写的程序做了一些补充。网上有很多这方面的资料,很丰富,给我们的课程设计提供了很多方便。虽然有些网上的东西不能全部照搬照抄,但是可以用来借鉴一下,对我们程序的设计编写也有很大的帮助。众人拾柴火焰高,通过大家和网络的力量,能借鉴的尽量借鉴,然后再修改完善,增加自己的功能,做出自己的特色。就这样,我们的程序设计完成了。虽然,还有的地方不是很完善,但是心里面还是
10、很高兴,这里面有我们的劳动成果。通过这次课程设计,我学到了很多东西,在完成设计的过程中也遇到了很多问题,通过不断地查资料,向同学请教,使得大部分问题都得到了解决,并且在解决的过程中我也学到了很多的东西。而且在设计的过程中,让我学到了怎样和他人一起完成一件任务,以及在完成的过程中如何沟通。设计是要在一定的时间内完成的,在完成这个设计时,时间显然还是有些紧迫的,我想是没有合理安排好时间和开始态度不对所致。做完后,觉得合理安排时间很重要,否则,可能因为时间仓促而把原来可以做好的东西做的不好,应合理安排时间给各个环节。课程设计是培养学生综合运用所学知识,发现,提出,分析和解决实际问题,锻炼实践能力的重要环节,是对学生实际工作能力的具体训练和考察过程。通过这次课程通过这次课程设计之后,一定把以前所学过的知识重新温故。这次课程设计终于顺利完成了,在设计中遇到了很多编程问题,最后在老师的辛勤指导下,终于游逆而解。同时,在老师的身上我学得到很多实用的知识,在次我表示感谢!同时,对给过我帮助的所有同学和各位指导老师再次表示忠心的感谢! _
copyright@ 2008-2022 冰豆网网站版权所有
经营许可证编号:鄂ICP备2022015515号-1