c语言课程设计邮件,C语言课程设计--邮件地址提取程序

62e50291a81fc54b507f33cb80033297.gif C语言课程设计--邮件地址提取程序

(17页)

db06a31c804161e47fda7627ca1802ae.gif

本资源提供全文预览,点击全文预览即可全文预览,如果喜欢文档就下载吧,查找使用更方便哦!

9.90 积分

沈阳航空航天大学 课课 程程 设设 计计 报报 告告 课程设计名称:C 语言课程设计语言课程设计 课程设计题目:邮件地址提取程序 院(系):计算机学院 专 业:班 级: 学 号: 姓 名: 指导教师: 完成日期:2011年03月18日 沈阳航空航天大学课程设计报告 1 目目 录录 第第 1 章章 概要设计概要设计.2 1.1 题目的内容与要求2 1.2 总体结构2 第第 2 章章 详细设计详细设计.3 2.1 主模块3 2.2 分析模块4 2.3 提取保存模块4 第第 3 3 章章调试分析调试分析7 第第 4 4 章章使用说明使用说明8 参考文献参考文献.10 附附 录(程序清单)录(程序清单).11 沈阳航空航天大学课程设计报告 第 1 章 概要设计 2 第 1 章 概要设计 1.1 题目的内容与要求题目的内容与要求 内容:设计一个简单的程序,把指定 HTML 文件中的电子邮件地址提取出来,并 保存到文件中。 要求: 1) 读入一个 HTML 文件,分析文件格式,把文件中的电子邮件地址提取出来, 并保存到指定文件中; 2)符合 user@company.com 格式的字符串为电子邮件地址,@和.是必不可少的, 要注意二者的位置; 3)保存时首行为 HTML 文件名,随后为原电子邮件地址在 HTML 文件中的行号, 然后是邮件地址; 4)采用 VC 环境进行调试运行。 1.2 总体结构总体结构 本程序主要分为三个模块:分析模块、提取保存模块、主模块。分析模块是 进行判断文件是否存在、文件格式以及文件是否为空,提取保存模块是将文件中 的电子邮件地址进行提取并保存到指定文件中,主模块为使用系统菜单调用前两 个模块来运行程序。功能模块图如图 1.1 所示: 邮件地址提取 分 析 模 块 提 取 保 存 模 块 主 模 块 图图 1.1 功能模块图功能模块图 主 模 块 沈阳航空航天大学课程设计报告 第 2 章 详细设计 3 第 2 章 详细设计 2.1 主模块主模块 控制整个程序的运行,将菜单操作用于一个循环中,用户需根据提示选择要 进行的操作,用户输入 1 后进行调用分析模块和提取保存模块,输入 2 后推出循 环并结束程序运行,若输入其他字符将提示用户输入有误并请用户重新输入。流 程如图 2.1 所示。 开始 char c; While(1) 菜单 输入c 判断是否输入1 调用分析函数 调用提取函数 判断是否输入2 exit(0)输入有误 结束 N N Y Y 图图 2.1 主模块流程图主模块流程图 沈阳航空航天大学课程设计报告 第 2 章 详细设计 4 2.2 分析模块分析模块 需要用户输入要打开的文本文件名,系统将会判断文件是否存在并判断文件 中是否为空,如果文件存在并不为空将继续运行程序,否则系统将提示“输入有 误,请重新输入” 。流程图如 2.2 所示: FILE *fa; 输入文件名 fa==NULL Y N 结束 打开文件 开始 输入有误 图图 2.2 显示模块流程图显示模块流程图 2.3 提取保存模块提取保存模块 系统将提示用户再次输入要打开的文本文件名,然后提示用户输入要保存 电子邮件地址的文件名,然后系统将会把每一行中的字符串输入到字符串数组中, 系统将先判断这个字符串数组中是否有@,如果有@将继续判断整个字符串数组 是否由数字、小写字母、@和.组成。如果是由这些组成将继续判断@前是否是数 沈阳航空航天大学课程设计报告 第 2 章 详细设计 5 字、小写字母并且判断.是在@后面且二者不相邻。以上都满足时系统将会把用户 打开的文件名、邮件地址在原文件中的行号以及这个满足条件的字符串数组保存 到用户输入的指定的文件中。若以上的判断条件不能都满足时系统将自动进行对 下一行的字符串进行判断,直到文件为空时将会停止判断并关闭用户所打开的文 件且此模块的功能也结束了。流程图如 2.3 所示: 开始 再次输入您 要打开的文件 输入你要保存 邮件地址的文件 文件是否为空 fh: 将获取的字母赋给ch 用ch获取的字母赋给数组str[i] int i=0,k=0,j,l=0;char a[50],b[50] 如果str[i]不等于‘\n’ 将‘\0’赋给数组 j=i-1 j是否大于0 k是否小于i 如果str[k]不等于@ K++; N j--; Y Y Y N N N N i++; Y Y Y N 3 2 文件是否为空 1 Y Y 沈阳航空航天大学课程设计报告 第 2 章 详细设计 6 判断每行中str[j]是 否是字母或数字或@或. end: 关闭文件 结束 j # include void fenxi() { FILE *fa; char a[50]; jx:printf(“\n\t\t 请输入您要打开的文件: “); scanf(“%s“,a); fa=fopen(a,“r“); if(fa==NULL) { printf(“\t\t\t 此文件不存在“); goto jx; } getchar(); } void tiqu() { FILE *fa,*fb; char ch;int i=0,j,k=0,l=1; char str[200]=““,c[200]=““, a[50],b[50]; printf(“\t\t 请再次输入您要打开的文件: “); scanf(“%s“,a); fa=fopen(a,“r“); printf(“\n\t\t 您要保存邮件地址的文件: “); 沈阳航空航天大学课程设计报告 12 scanf(“%s“,b); fb=fopen(b,“w“); if(fb==NULL) { printf(“The file can not open“); exit(0); } printf(“HTML 文件名 行号 电子邮件地址\n“); fprintf(fb,“HTML 文件名 行号 电子邮件地址\n“); while(!feof(fa)) { fh:ch=fgetc(fa); if(!feof(fa)) { str[i]=ch; if(str[i]!='\n') i++; else break; } } str[i]='\0'; for(j=i-1;j0;j--) { for(;k='a' else {i=k=0; l++; goto fh; } } c[j]='\0'; if(c[0]!='@' fprintf(fb,“ “); printf(“%s “,a); fprintf(fb,“%d “,l); printf(“%d “,l); 沈阳航空航天大学课程设计报告 14 fputs(c,fb); printf(“%s\n“,c); fprintf(fb,“\n“); l++; if(feof(fa)) { goto end; } else i=k=0; goto fh; } else { i=k=0; l++; goto fh; } } } end:fclose(fb); fclose(fa); getchar(); } void main() { char c; while(1) 沈阳航空航天大学课程设计报告 15 { to: printf(“\n\n\n\n\n\t\t\t\t 电子邮件地址提取主菜单\t\t\t\t\n“); printf(“\t\t****************************************************\n“); printf(“\t\t\t------------输入 1 运行程序------\n“); printf(“\t\t\t------------输入 2 退出程序------\n“); printf(“\t\t****************************************************\n“); printf(“\t\t 请输入您要执行的操作: “); go: scanf(“%c“, switch(c) { case '1':fenxi();tiqu(); getchar(); system(“cls“); goto to; case '2': exit(0); default : printf(“\t\t 您输入有误,请重新输入: “); scanf(“%c“, goto go; } } } 沈阳航空航天大学课程设计报告 16 课程设计总结:课程设计总结: 通过此次 C 语言课程设计,让我知道原来我们身边许多东西离我们并不 遥远,有很多东西是我们是靠我们不断探索创造出来的。我们生活的进步,是 靠使用知识不断来改变的。只有我们努力的学习科学文化知识,才能创造出高 度文明的社会。 然而,以前并没有意识到这些,导致知识没有学习的十分扎实。使得此次 C 语言课程设计遇到了一些麻烦,但是,在指导老师和同学的帮助下,此次课 设完成了。以前并没有做过这类东西,所以刚发下任务书时以为它很难,是不 能完成的,但在随后的慢慢理解中发现其实并不是想像中的那么那么难。只要 自己努力的分析问题就会发现一些突破点,这样在入手去做就会简单一些。上 学期的学习中并没有编写过这么长的程序代码,也没有这么多的要求,通常做 的都是一些简单程序,没有意识到自己有这么多的不足。通过这次课程设计让 我知道自己在哪些面还缺少很多知识,要进快的补上。使自己的 C 语言知识增 多,以后再遇到问题可以自己独立的解决。这次得课设让我把上学期一不扎实 的知识弄懂了,而且还复习了一遍上学期 C 语言课本,使我对一些代码有了新 的认识,知道了它们的使用方法。 总之,这次课程设计给了我很大帮助,让我学到了一些新的东西,也体会 到了如何独立完任务。 指导教师评语: 指导教师(签字): 年 月 日 课程设计成绩 关 键 词: 语言 课程设计 邮件地址 提取 程序

524d6daf746efaa52c3c71bbfe7ba172.gif  天天文库所有资源均是用户自行上传分享,仅供网友学习交流,未经上传用户书面授权,请勿作他用。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值