西电c语言课程设计报告.docx

上传人:b****2 文档编号:1578676 上传时间:2023-05-01 格式:DOCX 页数:14 大小:62.44KB
下载 相关 举报
西电c语言课程设计报告.docx_第1页
第1页 / 共14页
西电c语言课程设计报告.docx_第2页
第2页 / 共14页
西电c语言课程设计报告.docx_第3页
第3页 / 共14页
西电c语言课程设计报告.docx_第4页
第4页 / 共14页
西电c语言课程设计报告.docx_第5页
第5页 / 共14页
西电c语言课程设计报告.docx_第6页
第6页 / 共14页
西电c语言课程设计报告.docx_第7页
第7页 / 共14页
西电c语言课程设计报告.docx_第8页
第8页 / 共14页
西电c语言课程设计报告.docx_第9页
第9页 / 共14页
西电c语言课程设计报告.docx_第10页
第10页 / 共14页
西电c语言课程设计报告.docx_第11页
第11页 / 共14页
西电c语言课程设计报告.docx_第12页
第12页 / 共14页
西电c语言课程设计报告.docx_第13页
第13页 / 共14页
西电c语言课程设计报告.docx_第14页
第14页 / 共14页
亲,该文档总共14页,全部预览完了,如果喜欢就下载吧!
下载资源
资源描述

西电c语言课程设计报告.docx

《西电c语言课程设计报告.docx》由会员分享,可在线阅读,更多相关《西电c语言课程设计报告.docx(14页珍藏版)》请在冰点文库上搜索。

西电c语言课程设计报告.docx

西电c语言课程设计报告

 

西安电子科技大学

程序设计基础课程设计报告

所在分组13组

学生姓名黄辉、肖峰

许云松、平措朗杰

学生班级1518021

任课教师王勇

报告日期2016.6.8

 

目录

目录2

1.课程设计题目2

2.程序设计思路2

3.功能模块图2

4.数据结构设计2

5.算法设计2

6.程序代码2

7.程序运行结果2

8.编程中遇到的困难及解决方法2

9.总结心得及建议2

10.组内成员分工和贡献评价2

1.课程设计题目

文件加密解密软件设计(对称)

2.程序设计思路

1了解问题。

先了解整体软件运行流程,将所有功能分块,比如:

菜单设计、加密解密主程序、密码修改功能、最终调试。

2初步设计

将每个分块下发给组员,组员进行粗略的程序编译,再根据各分块难度不同增减任务量。

3编写代码

组员将各自代码编译完成,并确保独立运行成功。

4程序整合、调试

将各分块整合,编译运行,尝试输入多组数据,测试结果是否与预期相同。

如果不同,那么查找问题并修改代码。

最终形成合格的程序。

3.功能模块图

3.数据结构设计

没开数据结构课不会写。

现学现写也来不及了〒_〒

4.算法设计

同4。

6.程序代码

#include

#include

#include

#include//清屏函数的头文件

voidf1(void);//主界面函数

voidrode(int);//返回菜单函数

intsystem(constchar*string);//清屏函数声明

voidf2(void);//声明f2

voidf3(void);

voidf4(void);//开始时得解开密码函数

intmima=123456,n;//全局变量

voidmain()

{

inta,i,b;

a=mima;

b=3;

printf("此程序设置了初始密码!

请输入6位数字密码:

\n");

for(i=0;i<3;i++)//三次输入密码机会

{

scanf("%d",&n);

if(a==n)//密码输入正确

{

printf("进入\n");

system("cls");//清屏函数

f1();//调用f1函数

}

else//密码输入错误

{

if(b-1==0)

exit(0);//退出

printf("密码好像不太对哦,就剩下%d次机会了!

\n",b-1);

b=b-1;

}

}

}

voidf1()//主界面函数

{

chars;//定义S,即操作选项

printf("******************************文本加密软件**************************\n");

printf("*************************************************\n");

printf("**作者**\n");

printf("**肖峰**\n");

printf("**许云松**\n");

printf("**黄辉**\n");

printf("**平措朗杰**\n");

printf("*************************************************\n");

printf("*请从下面的菜单中选择你要进行的操作*\n");

printf("*a.文件加密*\n");

printf("*b.文件解密*\n");

printf("*c.更改密码*\n");

printf("*z.退出系统*\n");

printf("******************************文本加密软件**************************\n");

s=getche();

if(s=='a')

{

system("cls");//清屏

f2();//调用函数f2

}

if(s=='b')

{

system("cls");//清屏

f3();//调用函数f3

}

if(s=='c')

{

system("cls");//清屏

f4();//调用函数f4

}

if(s=='z')

exit(0);//退出系统

}

voidrode(intk)//返回菜单函数

{

charc;//定义c,即操作选项

printf("接下来你希望干什么啊\n");

printf("a.继续当前菜单\nb.回到主菜单\n");

c=getch();

if(c=='b')

{

system("cls");//清屏

f1();//调用f1函数

}

if(c=='a')

{

if(k==2)

f2();

if(k==3)

f3();

if(k==4)

f4();

}

}

voidf2()

{

FILE*fp1,*fp2;

charf1[20],f2[20],p[6];

registercharch;

inti=0,j;

printf("输入加密文件:

");

scanf("%s",f1);

if((fp1=fopen(f1,"r"))==NULL)

{

printf("\n文件无法打开!

请返回");

rode

(2);

}

else

{

printf("\n输入密钥:

");

scanf("%s",p);

j=strlen(p);

printf("\n输入加密后的文件:

");

scanf("%s",f2);

if((fp2=fopen(f2,"w"))==NULL)

{

printf("\n文件无法打开!

");

rode

(2);

}

else

{

while(j>=0)

{

ch=fgetc(fp1);

while(!

feof(fp1))

{

fputc(ch^p[i>=j?

i=0:

i++],fp2);

ch=fgetc(fp1);

}

j--;

}

printf("加密成功!

\n");

fclose(fp1);

fclose(fp2);

rode

(2);

}

}

}

voidf3()

{

FILE*fp1,*fp2;

charf1[20],f2[20],p[6];

registercharch;

inti=0,j;

printf("输入解密文件:

");

scanf("%s",f1);

if((fp1=fopen(f1,"r"))==NULL)

{

printf("\n文件无法打开!

请返回");

rode(3);

}

else

{

printf("\n输入密钥:

");

scanf("%s",p);

j=strlen(p);

printf("\n输入解密后的文件:

");

scanf("%s",f2);

if((fp2=fopen(f2,"w"))==NULL)

{

printf("\n文件无法打开!

");

rode(3);

}

else

{

while(j>=0)

{

ch=fgetc(fp1);

while(!

feof(fp1))

{

fputc(ch^p[i>=j?

i=0:

i++],fp2);

ch=fgetc(fp1);

}

j--;

}

printf("解密成功!

\n");

fclose(fp1);

fclose(fp2);

rode(3);

}

}

}

voidf4()

{

intpas,ch,h=3,t,j;

printf("重置密码前必须验证原密码。

请输入6位数字原密码:

");

for(j=0;j<3;j++)//三次输入密码机会

{

scanf("%d",&t);

if(mima==t)//密码输入正确

{

while

(1)

{

while

(1)

{

printf("请输入新密码:

");

scanf("%d",&pas);

if(pas>99999&&pas<1000000)//密码为六位数

break;

else//密码非六位数

{

printf("输入格式不正确,请输入六位数字\n");

continue;

}

}

printf("请再次输入新密码:

");

scanf("%d",&ch);

if(pas==ch)//两次新密码输入一致

break;//跳出循环

else//两次新密码输入不一致

{

printf("两次新密码输入不一致\n");

continue;

}

}

printf("恭喜你,密码修改成功\n");

mima=pas;//修改全局变量密码

rode(4);//调用rode函数

}

else//密码输入错误

{

if(h-1==0)

exit(0);//退出

printf("抱歉,密码错误,您还有%d次机会:

",h-1);

h=h-1;

}

}

}

7.程序运行结果

挺成功的,完全符合标准

8.编程中遇到的困难及解决方法

按时间顺序来说吧。

1思考不周全,比如忘记必须是六位密码,忘记设置变量等。

2整合的困难,因为组员各自负责自己的分块,单独运行成功,但放到整个函数中会碰到变量形式、名称不统一,没有考虑与主函数的衔接等,方法就是一点点改…

3细节不注意,导致修改特别困难,比如字符输入选择了getchar而不是gerche,因为对getchar理解不够,直到昨天晚上才找到了问题。

还有套用函数调用时,没有将调用语句放到整个函数最后,导致运行调用函数后,这个函数后边的语句也运行了,诸如此类,数不胜数。

9.总结心得及建议

通过这个简单的程序,我们认识到了自己所学浅薄,基础很差,加上没有经验,搞得一团糟,从这个程序身上,我们体会到了细心的重要,体会到了修改程序的枯燥,走出了编程的第一步。

建议么,人傻还是要多读书啊,多学学知识才能在广大程序员中占位脚跟!

10.组内成员分工和贡献评价

分工:

黄辉:

提出大体思路,设计主菜单,参与程序修改。

许云松:

编写密码修改程序,参与程序修改,写总结报告。

肖峰:

编写加密解密程,参与程序修改。

平措朗杰:

编写次菜单程序。

贡献评价(百分比):

许云松:

32%

黄辉:

30%

肖峰:

30%

平措朗杰:

8%

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

当前位置:首页 > 工作范文 > 行政公文

copyright@ 2008-2023 冰点文库 网站版权所有

经营许可证编号:鄂ICP备19020893号-2