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

本文档详细介绍了沈阳航空航天大学计算机学院学生的一份C语言课程设计报告,该设计实现了一个从HTML文件中提取电子邮件地址的程序。程序包含分析、提取保存和主模块,能判断文件格式,提取符合user@格式的邮件地址并保存到指定文件。在调试过程中解决了字符串输入、保存、行号计数和文件指针使用等问题。程序运行时,用户通过菜单选择操作,可以查看提取的邮件地址。
摘要由CSDN通过智能技术生成

沈阳航空航天大学

课 程 设 计 报 告

课程设计名称:C语言课程设计

课程设计题目:邮件地址提取程序

院(系):计算机学院

专 业:班 级:

学 号:

姓 名:

指导教师:

完成日期:2011年03月18日

目 录

第1章 概要设计2

1.1题目的内容与要求2

1.2总体结构2

第2章 详细设计3

2.1主模块3

2.2分析模块4

2.3提取保存模块4

第3章调试分析7

第4章使用说明8

参考文献10

附 录(程序清单)11

第1章 概要设计

1.1题目的内容与要求

内容:设计一个简单的程序,把指定HTML文件中的电子邮件地址提取出来,并保存到文件中。

要求:

1) 读入一个HTML文件,分析文件格式,把文件中的电子邮件地址提取出来,并保存到指定文件中;

2)符合user@格式的字符串为电子邮件地址,@和.是必不可少的,要注意二者的位置;

3)保存时首行为HTML文件名,随后为原电子邮件地址在HTML文件中的行号,然后是邮件地址;

4)采用VC环境进行调试运行。

1.2总体结构

本程序主要分为三个模块:分析模块、提取保存模块、主模块。分析模块是进行判断文件是否存在、文件格式以及文件是否为空,提取保存模块是将文件中的电子邮件地址进行提取并保存到指定文件中,主模块为使用系统菜单调用前两个模块来运行程序。功能模块图如图1.1所示:

图1.1 功能模块图

第2章 详细设计

2.1主模块

控制整个程序的运行,将菜单操作用于一个循环中,用户需根据提示选择要进行的操作,用户输入1后进行调用分析模块和提取保存模块,输入2后推出循环并结束程序运行,若输入其他字符将提示用户输入有误并请用户重新输入。流程如图2.1所示。

图2.1 主模块流程图

2.2分析模块

需要用户输入要打开的文本文件名,系统将会判断文件是否存在并判断文件中是否为空,如果文件存在并不为空将继续运行程序,否则系统将提示“输入有误,请重新输入”。流程图如2.2所示:

图2.2 显示模块流程图

2.3提取保存模块

系统将提示用户再次输入要打开的文本文件名,然后提示用户输入要保存电子邮件地址的文件名,然后系统将会把每一行中的字符串输入到字符串数组中,系统将先判断这个字符串数组中是否有@,如果有@将继续判断整个字符串数组是否由数字、小写字母、@和.组成。如果是由这些组成将继续判断@前是否是数字、小写字母并且判断.是在@后面且二者不相邻。以上都满足时系统将会把用户打开的文件名、邮件地址在原文件中的行号以及这个满足条件的字符串数组保存到用户输入的指定的文件中。若以上的判断条件不能都满足时系统将自动进行对下一行的字符串进行判断,直到文件为空时将会停止判断并关闭用户所打开的文件且此模块的功能也结束了。流程图如2.3所示:

图2.3 提取保存模块流程图

调试分析

(1)问题1

问题描述:字符串无法输入到数组中

问题分析:由于未将数组定义为字符串数组,导致类型不同无法输入。

解决方法:将数组定义为字符串数组后,使用fgetc循环读入每一行的字母输到字符串数组中。

(2)问题2

问题描述:无法将提取出的电子邮件地址保存到另一个文件中

问题分析:由于使用了goto语句,没有执行关闭文件这一语句就返回继续判断下一行是否为电子邮件地址,没有及时保存。

解决方法:先执行关闭语句,然后再执行goto语句继续判断下一行是否为电子邮件地址。

(3)问题3

问题描述:第二次保存时的行号无法正确写入文件中,在第一次基础上累加了。

问题分析:定义的行号计数的整型变量为全局变量,导致程序第二次运行继续累加。

解决方法:将全局变量改变为局域变量,并且在判断每一行结束时都进行加加。

(4)问题4

问题描述:分析文件的函数结束不能继续进行提取函数中对文件中字符串的提取

问题分析:不能重复使用分析函数中的文件指针去进行提取函数的操作,导致程序无法执行。

解决方法:在提取函数中再次进行“输入你要打开的文件名”,然后进行提取。

使用说明

运行操作及结果:

开始运行程序时,在屏幕上将出现如图4.1所示:

图4.1菜单图

若选择1,在屏幕上将出现如图4.2所示

图4.2执行1操作图

若继续,在屏幕上将出现如图4.3所示:

图4.3 提取出的邮件地址图

若继续,在屏幕上将出现如图4.4所示页面:

图4.6 菜单图

若选择2,在屏幕上将出现如图4.5所示页面:

图4.5

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值