程序报告设计
题目:加密解密处理
程序设计报告的电子文档(B10080128程序设计.doc )
一.老师对作业要求。
1:对学生课程设计两周的纪律及提交内容的要求:
(1)    规定上机的时间内不得无故缺勤,有事需要向指导老师书面请假;
(2)    上机时禁止玩游戏,屡教不改者,实习成绩可为不及格;
(3)    每人手头准备一至两本C/C++的有关工具书,上机前作好充分的准备,包括事先写好主要算法的程序
代码以保证充分利用上机的时间调试程序;
(4)    同组可以讨论思路,但是程序要自己完成,不可抄袭,若完全抄袭别人的,实习成绩
可为不及格;
(5)    实习的最后阶段认真完成实习报告的电子文档。报告内容不得少于15页。
(6)    每个学生最后提交的材料:
压缩文件一个,起名为:学号名_题目名.rar(如:B********_学生管理系统.rar)。该压缩文件中包含下列
几个文件:程序设计报告的电子文档(起名为:学号_程序设计.doc)、源程序文件(起名为:学号名_题目
名.cpp,如:B06020127_学生管理系统.cpp)、原始数据文件(如:stud.dat)、编译链接后得到的可执行
文件(起名为:学号名_题目名.exe)
(7)请同学独立完成报告,若发现两份报告一模一样,则两人都按不及格论处,请各位同学珍惜自己的版权
,也请指导老师严格把关。
附2:上机时间:每天上午8:00——11:20
附3:成绩的评定
根据学生平时的上机出勤情况、为上机所作的准备情况、上机时的表现、程序的完成情况、报告的完成情况
、验收答辩时的表现等综合打分。等级为:优秀、良好、中等、及格、不及格。
附4:课程设计报告具体内容要求
学生管理系统
(题目格式:宋体,3号,加粗,居中对齐)
一、    课题内容和要求(格式:宋体,4号,加粗,两端对齐)
该部分可参考前面给出的问题描述再加以细化一些
(正文格式:宋体,小4号,不加粗,两端对齐,1.5倍行距)
二、需求分析(格式:宋体,4号,加粗,两端对齐)
在该部分中叙述每个模块的功能要求
(正文格式:宋体,小4号,不加粗,两端对齐,1.5倍行距)
概要设计  (格式:宋体,4号,加粗,两端对齐)
在此说明每个部分的算法设计说明(可以是描述算法的流程图),每个程序中使用的存储结构设计说明(如
果指定存储结构请写出该存储结构的定义,如果用面向对象的方法,应该给出类中成员变量和成员函数原型
声明)。
(正文格式:宋体,小4号,不加粗,两端对齐,1.5倍行距)
四、源程序代码  (格式:宋体,4号,加粗,两端对齐)
各个算法实现的源程序(可以是一组源程序,每个功能模块采用不同的函数实现),源程序要按照写程序的
规则来编写。要结构清晰,重点函数的重点变量,重点功能部分要加上清晰的程序注释。
(正文格式:宋体,小4号,不加粗,两端对齐)
五、测试数据及其结果分析(格式:宋体,4号,加粗,两端对齐)
(正文格式:宋体,小4号,不加粗,两端对齐,1.5倍行距)
六、调试过程中的问题(格式:宋体,4号,加粗,两端对齐)
每个模块设计和调试时存在问题的思考(问题是哪些?问题如何解决?),以及算法的改进设想。
(正文格式:宋体,小4号,不加粗,两端对齐,1.5倍行距)
七、课程设计总结(格式:宋体,4号,加粗,两端对齐)
总结可以包括 : 程序设计过程的收获、遇到的问题,遇到问题解决问题过程的思考、程序调试能力的思考,
对该课程组织和考核方式的建议等。
(正文格式:宋体,小4号,不加粗,两端对齐,1.5倍行距)
            原始数据文件(stud.dat)
课题内容和要求
1.编写一个对字符文件(由数字或字母组成)进行加密解密的程序。可以将所需要的内容(整个文件或者输入的一行字符)加密,也可以将存储的加密文件翻译回来。例如加密时可以将选取内容的每个字符依次反复加上”4963287312”中的数字,如果范围超过ASCII码值的032(空格)—122(‘z’),则进行模运算(既N%122)。解密与加密的顺序相反。
2、部分要求
(1)从键盘输入要进行加密的一行字符串或者需要加密的文件名。
(2)显示菜单:
*********************************
1.设置加密方法
2.加密
3.解密
4.退出
*********************************
(3)选择菜单,进行相应的操作。加密方法是设置一加密字符串以及对文件的哪些部分进行加密;加密是将原始文件加密并保存到文件中;解密是将加了密的文件还原并保存到文件中,同时应比较与原始文件的一致性;显示是将文件在屏幕上显示出来,供人工校对。
(4)定义原始文件、加密文件和还原文件
3、其他要求
(1)变量、函数命名符合规范。
(2)注释详细:每个变量都要求有注释说明用途;函数有注释说明功能,对参数、返回值也要以注释的形式说明用途;关键的语句段要求有注释解释。
(3)程序的层次清晰,可读性强。
4、需要掌握的知识
    (1)如何读写文件
    (2)如何对字符进行加减操作,并保证加减后的数值处于某一范围之内 (模运算)
(3)c语言写入txt文件了解加解密的基本原理
需求分析
模块分析:
(1)在屏幕上显示文件 void printtxt()
      用于将原始文件,加密文件,解密文件,的内容显示在屏幕上,方便检验程序是否正确执行。在此函数中要以输入方式打开三个文件。
(2)加密void encode()
    对原始文件整个或部分字符串加密,并将加密后的内容写入上。加密时,每个字符依次反复加上”4963287312”中的数字,如果范围超过ASCII码值的032(空格)—122(‘z’),则进行模运算(即N%122).
例如:加密the
(t)116+4,(h)104+9,(e)101+6
变为xqk
(3)解密void decode()
      对加密后的进行解密,并将解密后的内容写入文件中。解密过程与加密过程的顺序正好相反,即从第一个字符开始,每个字符依次反复减去”4963287312”中的数字,若执行减法后得到一个负数,则把这个负数加122,即 (N+122), 其中N为负数。