10大3张苏阳 27.docx
- 文档编号:12119180
- 上传时间:2023-04-17
- 格式:DOCX
- 页数:9
- 大小:43.18KB
10大3张苏阳 27.docx
《10大3张苏阳 27.docx》由会员分享,可在线阅读,更多相关《10大3张苏阳 27.docx(9页珍藏版)》请在冰豆网上搜索。
10大3张苏阳27
苏州技师学院
信息工程系
课程设计报告
2010—2011学年第二学期
课程名称C语言课程设计
设计题目《文件加密》
学生姓名张苏阳
学号27
专业班级信息工程系10-3班
指导教师潘毅
2011年6月21日
目录
1.设计任务书………………………………………………………2
1.1题目与要求……………………………………………2
1.2本程序涉及的知识点…………………………………2
2.功能设计……………………………………………2
2.1算法设计……………………………………2
2.2部分模块流程图………………………………………2
3.程序代码设计…………………………………………4
3.1输入函数………………………………………………4
3.2输出函数………………………………………………5
4.C程序设计总结…………………………………………6
5.致谢………………………………………………………6
参考文献……………………………………………………6
1.设计任务书
1.1题目与要求
我计划写文件加密,某公司采用电话传递数据,数据是四位的整数,在传递过程中是加密的,加密规则如下:
每位数字都加上5,然后用和除以10的余数代替该数字,再将第一位和第四位交换,第二位和第三位交换。
通过本课程设计,深入了解dos及其目录文件系统,并初步具备完成大型汇编程序的能力,巩固汇编语言知识,提高学生理论与实践相结合的
能力。
1.2本程序涉及的知识点
structpassword /*加密方法*/{charps[10]; /*加密字符串*/longl; /*加密间隔字节数*/longwd;} /*加密的字节数*/加密voidencode();解密voiddecode();文件比较voidcmptxt();
2.功能设计
2.1算法设计
1、本程序实现的功能要求:
利用if语句完成所示的主菜单。
建立程序框架
显示当前目录文件名
显示文件内容
进行文件加密
显示加密文件内容
2、进入第一步出现如下信息:
分析设计要求,熟悉相关知识
第二步:
建立程序框架,每个字符命令对应一个子程序
第三步:
依次编写各子程序汇编语言代码
第四步:
汇编,连接,调试。
2.2、部分模块流程图
2.程序代码设计
3.1输入函数
改文件名
提示:
oldfilename:
键入文件全名,若该文件存在,则
提示:
newfilename:
键入新文件全名后,磁盘文件改名;
若不存在,则提示:
filenotfound!
显示文件内容
提示:
filename:
键入文件全名,若该文件不存在,则提示:
filenotfound!
;若该文件存在,显示该文件内容。
加密文件内容
提示:
filename:
键入文件全名,若该文件不存在,则提示:
filenotfound!
;若该文件存在,则提示:
s-code:
,键入密码(
数字或ascll码),提示:
newfilename:
键入新文件全名后,
将文件内容顺序与密码进行异或操作,异或后的文件内容存
入新文件。
显示加密文件内容
提示:
filename:
键入文件全名,若该文件不存在,则提示:
filenotfound!
;若该文件存在,则提示:
s-code:
,键入密码,
显示该文件内容与密码异或后的内容。
退出程序,返回dos提示符状态。
#include
#include
#include
#include
structpassword/*加密方法*/
{
charps[10];/*加密字符串*/
longl;/*加密间隔字节数*/
longwd;/*加密的字节数*/
}password;
char*s=newchar[100];
voidset()
{
cout< "; cin>>password.ps; cout< "; cin>>password.l; cout< "; cin>>password.wd; } voidprinttxt()/*显示文件*/ { ifstreamfs1(s,ios: : nocreate);//以输入方式打开文件 ifstreamfs2("result.txt"); ifstreamfs3("recall.txt"); charc; cout< "; if(! fs1) { cout< } else { while(fs1.get()) cout< } cout< cout< "; while(fs2.get()) cout< cout< cout< "; while(fs3.get()) cout< cout< fs1.close();//关闭文件 fs2.close(); fs3.close(); } voidencode()/*加密*/ { intn=strlen(password.ps); charN; charc; ofstreamout("result.txt"); ifstreamfs(s,ios: : nocreate); if(! fs) //文件为空则为对字符串s进行加密 { intm=strlen(s); for(inti=0;i { if(i%password.l==0) { staticinta=0; if(a { N=s[i]+password.ps[a%n]-48; if(N>122) { N=N%122; } out.put(N); a++; } elseout.put(s[i]); } elseout.put(s[i]); } } else//文件非空,为对文件进行加密 { for(inti=0;fs.get();i++) { if(i%password.l==0) { staticinta=0; if(a { N=c+password.ps[a%n]-48; if(N>122) { N=N%122; } out.put(N); a++; } elseout.put(N); } elseout.put(N); } } cout< "< out.close(); fs.close(); } voidcmptxt()/*文件比较*/ { ifstreamfs1(s,ios: : nocreate); ifstreamfs2("recall.txt"); charc1,c2; if(! fs1) //fs1文件空,为对字符串和fs2之间比较 { for(inti=0;s[i];i++) { fs2.get(c2); if(s[i]! =c2) //若出现不同的字符则解密失败 { cout< 解密失败! "< 4.C程序设计总结 本程序在刚开始调试时有许多错误,但在我的努力及同学的帮助下都被一一克服,现在在操作本程序时可根据提示进行相关操作,能正确输出结果。 在刚开始的几次调试中曾经出现过密码不能输入的情况;不能输入过多的密码情况;还有不能识别密码等情况。 经过我的努力及同学的帮助,这些问题得到克服,并且使程序的功能也得到了一定的完善。 现在它能对出错的题目发出报警声,并且给出正确答案。 最后还能分别输出对错的题数及所得分数。 在这次设计过程中,不仅复习课本上所学知识,还通过查资料、问同学学到了课本上没有的知识。 从而启发我,要想写好程序,在写好课本知识的同时还需要多读和专业有关的一些书籍,同时还需要多动脑子,尽量把所学的知识综合起来应用,力争写出完美的程序。 除此之外,我还得到了一些有用的教训: 写程序时必须要细心,不能输错一个字符标点,就连全角半角也得注意。 在修改时要有耐心,编译出错后必须逐个错误去改正,绝不能心急浮躁,否则修改之后还会有新的错误。 5.致谢 能够完成这次课程设计必须感谢C语言课程老师潘毅(是他教会了我C语言这门课程)、林亚洲同学(他帮我修改了几处重要错误,同时启发我完善了该程序的功能)。 参考文献 (1)、 (2)、贾宗璞、许合利,C语言程序设计,江苏: 中国矿业大学出版社,2007.6
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 10大3 张苏阳 27 10
![提示](https://static.bdocx.com/images/bang_tan.gif)