10大3张苏阳 27.docx

上传人:b****5 文档编号:12119180 上传时间:2023-04-17 格式:DOCX 页数:9 大小:43.18KB
下载 相关 举报
10大3张苏阳 27.docx_第1页
第1页 / 共9页
10大3张苏阳 27.docx_第2页
第2页 / 共9页
10大3张苏阳 27.docx_第3页
第3页 / 共9页
10大3张苏阳 27.docx_第4页
第4页 / 共9页
10大3张苏阳 27.docx_第5页
第5页 / 共9页
点击查看更多>>
下载资源
资源描述

10大3张苏阳 27.docx

《10大3张苏阳 27.docx》由会员分享,可在线阅读,更多相关《10大3张苏阳 27.docx(9页珍藏版)》请在冰豆网上搜索。

10大3张苏阳 27.docx

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

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 党团工作 > 入党转正申请

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

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