C
实验名称:文件加密
院系: 通信与信息工程学院
班级: 通信工程1101班
成员: 田轩铭(组长)、陈亮、张晨华、高梦、程腾
日期:2012年6月25日—7月6日
设计题目:文件加密
一、本次课程设计的目的
    通过对文件的加密保护用户的私人隐私,使学生能更好的掌握好高级语言程序,从而了解对程序设计的基本概念和方法,进而学会利用C++语言解决一般应用问题,并为后续的专业学习奠定基础。同时增强同学们之间的团队合作精神,使学生更好的融入社会,将来成为社会有用之才!
二、设计要求张昊唯
1.要求打开一个源文件,按用户输入的密钥通过异或用算进行加密,加密后文件存入目标文件中。
2.要求开始时进行程序使用的鉴权,验证密码。
3.可以对程序原密码进行修改,对密钥进行修改。
恭祝新婚
  4.要求写出设计报告,报告中要求写出总体设计框架和详细程序分析。
  5.5-6名学生为一组,选出组长共同完成。在报告中各同学要明确写出自己所做的工作,并由组长认可评定。
  6.书写及设计方案均用A4纸打印以便统一装订成册,并且要求上交电子文本。
三、总体方案的设计及说明
文件加密主要可以分为两大部分:对文件的加密、解密程序和对改密码、改密钥程序。首先运行程序后会对用户进行一个鉴别,需要输入一个与程序事先设定好的密码才打开程序,输入错误次数最高为3次,此程序初始设定密码为123456,,所以输入超过6位的密码程序直接结束退出,输入单个字符字母和数字一样都可以最高输入3次错误,之后便系统自动退出,如输入2-6位字母则只可以输入2次错误系统自动退出,体现了其合理性对数字的高度识别性。
进入程序后该系统共有4个选项即:1.文件加密2.文件解密3.修改密码0.退出程序
用户可选择对应项进行使用及操作。并且进入系统后显示“Welcome”大字符,和相关设计者。进入程序可以对指定的文件进行加密和解密,对密钥进行修改,加密时密钥可由用户随机输入,方便记忆体现其人性化的设计,从而便于加密后记忆,针对了不同的使用人。
文件的加密、解密程序部分由陈亮、田轩铭同学负责。改密码、改密钥程序部分的程序由张晨华、程腾同学负责。课程设计报告和资料查询由田轩铭、高梦同学负责。 
四、程序流程图
五、程序运行结果
1.打开程序,输入密码进行鉴权
2.密码输入三次错误后
3.密码输入正确后,进入程序
4.对文件进行加密(可自行指定任意一个)
5.加密成功
加密后的文件不输入密钥打开则是乱码
原文件:
6.文件解密
解了密钥的文件打开如下
7.修改密码
输入错误2次后,最后一次输入正确并改密123678佟丽娅演过的电视剧
六、个人收获和体会
田轩铭(组长)  1107020123
通过这次的作业我觉得最大的收获是不仅把平时学习到的知识理解的更加透彻,而且使知识更加系统化,同时还把有些平时不太注意的小问题发现了出来,这不但有利于我学习C语言,而且对于我学习任何一门课程都是很有益处的。总之,做这份作业对于我们学习C语言有很大的帮助。
在做课程设计时,由于运用了很多新知识,新的方法,还有题目更加复杂,应用性更强,在编写过程中遇到了很多困难,幸好我们有团结的集体,通过大家的努力、配合,我们将问题逐个解决,最终成功的完成了作业,由于担任组长,我的领导能力得到了锻炼,对c语言有了进一步理解,这对我们工科学生来说意义是相当重大的,在此感谢我组同学的支持和老师的帮助和指导。
经过这次的学习、设计,我们学到了许多以前不懂的、难懂的知识。这真是锻炼人的好机会,我很喜欢这种应用性的学习。我要感谢我的老师、我的伙伴,你们使我懂得了许多、许多。
陈亮      1107020117 
沟通的技巧
在这次和同组人一起设计程序过程中,我深刻体会到一个人的力量是渺小的,只有大家同心协力,才能完成好一项工作。在设计统计块时,开始遇到了不少困难。例如:文件加密异或是什么?又如:在写程序时,因为对数组,指针不熟悉,而出现了不少错误。经过学习,讨论,最后克服了这些困难。经过这次设计,我对数组,指针的知识和使用又上了一个台阶。数组和指针那么地方便,它真是C语言的重点,精华所在。所以,在以后的学习中,我更应抓紧对指针的学习。
张晨华   1107020111陶帅
很高兴能有这样一个机会和同学一起完成一项任务,这其中有各种各样的问题,但通过大家一起讨论,并在老师的耐心辅导下,最终把那些问题都解决了。从中我学到了如何应对困难,如何与人合作。在最终完成作业的那一刻,我们心中都非常的高兴。
我想有了这样一次体验,在以后漫长的人生路上,我们在面对许多意想不到的困难与挫折时,我们会更从容的去面对。通过这次合作,我使自己的动手能力和与人沟通的能力得到了提高,这将使我在以后的的道路上走的更稳,收获更多。所以,我们应感谢老师的良苦
用心。本来我还不太赞成这种做法,但现在,我知道了,这是对的,是值的我们用心去做的。
同时我也知道了我们随时都要培养自己的动手能力,只有这样,才能更好的适应这个日新月异的飞速发展的社会。
高梦 1107020105               
C语言的确不太容易学,后来学了几节课,觉得也没什么,就是要记的东西比较多,每天都有新内容,记一记就可以了,但当老师布置了几个小作业之后,问题就出现了,单独拿出来每个东西我都略知一二,而让我把它们连接起来,做一个程序,那就难了,每次都是老师写好我们抄,一两次之后,通过对比,我发现这些程序之间有好多东西,都是共同的,变化的指示针对不同问题的处理方法,当然这要通过数学运算来完成,困难之处就是怎样把一个个问题用数学的方法表示出来,怎样表示更简便而已,我的数学还可以,这对我来说不成问题,因此我的信心又恢复了。
程腾  1107020129 
燃气热水器排名
虽然在工作中我们有分歧,有争吵但我们都很好的解决了问题,增进了友谊,锻炼了团结协作能力,受益匪浅。其中第一部分和第二部分有点难易失调,是我和组长共同完成,更加体现出了分工和协作的优点和重要性。
我对自己在这份作业中的表现特别满意,提出了很多很好的建议,事实表明那些建议确实起到了很好的作用。也加深了我对”= =”和”if”等的理解和操作,从实践中了解和体会到了C++的魅力和作用,也让我体会到大学学的东西的重要性。