版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1、C+程序读取HTML文件中的数据摘要C+语言作为一种计算机语言,它是在C语言基础上发展起来的,是真正的面向对象编程语言,它的功能强大,本文简要介绍了利用C+语言中的MFC类库编程间接读取HTML文件中的数据的实现过程。本次设计先要建立一个HTML文件,HTML语言可以用多种软件编写,本文选择用写字板编写并建立了一个HTML文件,这是此次设计当中需要被MFC类库读取的文件。由于MFC类库难以直接读取HTML文件中的数据,所以要以EXCEL为桥梁将它们连接起来。所以选择先建立EXCEL与MFC类库之间的联系,用MFC打开EXCEL表格,然后用EXCEL表格读取HTML文件中的数据,再用MFC类库中
2、的类编程读取EXCEL文件中的数据,最终间接达到用C+程序读取HTML文件中的数据的目的。关键词:HTML文件 数据 EXCEL MFC类库目 录一系统设计总说明.2 1.1设计目的. 21.2设计要求. 2 1.3设计内容. 3 1.4变量命名规则.3 1.5主要类和函数.31.6系统功能简介.5二C+语言课程设计报告. 5 2.1 需求分析. 5 2.1.1 功能需求分析 . 5 2.1.2 环境需求分析 . 6 2.2 概要设计. 7 2.2.1 系统功能模块图 . 7 2.2.2 程序流程图 . 7 2.3 详细设计. 9 2.3.1 设计原理 . 9 2.3.2 基础知识简介 . 9
3、 2.3.3 系统界面 . 17 2.4 调试与操作说明. 18三、设计总结. 20参考文献. 21一系统设计总说明1.1设计目的 C+课程设计是信息管理与信息系统专业的重要实践性课程。课程设计为学生提供了一个手脑并用、独立实践的机会。目的在于培养学生分析问题和解决问题的能力,将课本的理论知识与实际应用问题进行有机结合,提高学生程序设计、程序调试及项目开发能力。 通过本课程设计的实践,全面总结C+课程学习中的数据类型、程序结构、数组、函数、指针、结构体等基本概念,掌握其使用方法。培养使用面向过程的程序设计方法编写计算机程序的能力。 课题的目的主要是考查学生对C+语言的综合编程能力的掌握,培养学
4、生的分析问题和解决问题的能力及逻辑思维能力。该课题主要考察学生对函数、结构体,指针,文件等的操作,以及C+语言基本规则和算法的掌握,所以完成本课题要求学生较强的设计能力,特别是要具有综合应用能力。如何调程序也非常重要,通过这个程序可以学习到以前调试短程序没有的的经验。 1.2设计要求问题分析和任务定义:根据设计题目的要求,充分地分析和理解问题,明确问题要求做什么(而不是怎么做),限制条件是什么。概要设计:对问题描述中涉及的操作对象定义相应结构体,并按照以设计需要为中心的原则,确定各个结构体之间的关系。逻辑设计的结果应写出每个结构体抽象数据结构体型的定义(包括数据结构的描述和每个基本操作的功能说
5、明)、各个主要模块的算法,并画出模块之间的调用关系图。详细设计:定义相应的结构体并写出各函数的算法。在这个过程中,要综合考虑系统功能,使得系统结构清晰、合理、简单和易于调试,数据类型的实现尽可能做到数据封装,基本操作的规格说明尽可能做到明确具体。写出函数形式的算法框架。程序编码:把详细设计的结果进一步求精为程序设计语言程序,同时加入部分注解,使程序中逻辑概念清楚。程序调试与测试:能够熟练掌握调试工具的各种功能,设计测试数据确定疑点,通过修改程序来证实它或绕过它。调试正确后,认真整理源程序及其注释,形成格式和风格良好的源程序清单和结果。结果分析:程序运行结果包括正确的输入及输出结果。1.3设计内
6、容C+程序读取HTML文件中的数据1.4 变量命名规则 选择类名里的关键字或者以英文命名,例子如下:_Application app; Workbooks books; _Workbook book; Sheets sheets; _Worksheet sheet; Range range;CString strPathName; CFileDialog dlg; int row;1.5 主要类和函数类:_Application:Application 对象用于存储和访问来自任何页面的变量,类似于 session 对象。不同之处在于,所有的用户分享一个 Application 对象,而 ses
7、sion 对象和用户的关系是一一对应的。_Workbook:Workbook对象代表一个工作簿Workbooks:Workbooks集合对象则代表同一Excel进程中打开的所有工作簿对象。Sheets:sheets是当前活动表,每个是Sheet是一个工作簿,各个sheet就构成sheets,也就是工作表了。_Worksheet:Worksheet代表Excel工作表Worksheets:worksheets是指你当前非活动表。Worksheets集合对象代表代表Excel工作表的集合Range:Range()则是指一个区域,区域中可以是一个单元格,也可以是多个单元格。Font:规定文本的字体、
8、字体尺寸、字体颜色。函数功能:int CListCtrl:InsertColumn(int nCol, const LVCOLUMN* pColumn)作用是在列表视图控件中新插入一列。int CListCtrl:InsertItem( int nItem, LPCTSTR lpszItem, int nImage )用于MFC中CListCtrl控件加入列表项,只操作CListCtrl的第一列。void CRange: AttachDispatch(LPDISPATCH lpDispatch,BOOL bAutorelease =1) 操作EXCEL的函数,位于CRange类中,可以用来锁定
9、和读取EXCEL中的对应单元格。void CRange:ReleaseDispatch()释放接口。_Worksheet :GetUsedRange()求有效行BOOL CListCtrl:DeleteAllItems函数功能从列表视图控件删除所有项。void CWnd: SetRedraw( BOOL bRedraw = TRUE )应用程序调用SetRedraw以允许重画变化或防止变化被重画。这个成员函数设置或清除重画标志。当重画标志被清除时,在每次变化以后,内容不会更新,直到重画标志被设置才会重新绘出。void Invalidate( BOOL bErase = TRUE )该函数的作用
10、是使整个窗口客户区无效。窗口的客户区无效意味着需要重绘,例如,如果一个被其它窗口遮住的窗口变成了前台窗口,那么原被遮住的部分就是无效的,需要重绘。BOOL UpdateWindow(HWND hWnd)如果窗口更新的区域不为空,UpdateWindow函数通过发送一个WM_PAINT 消息来更新指定窗口的客户区。函数绕过应用程序的消息队列,直接发送WM_PAINT消息给指定窗口的窗口过程,如果更新区域为空,则不发送消息。Format:format是DOS系统的一种命令,format指令用于格式化磁盘,是一种高级格式化,对磁盘进行的格式编写程序。1.6系统功能简介用C+程序读取HTML文件中的数
11、据。二C+语言课程设计报告2.1 需求分析2.1.1 功能需求分析 本文中,C+程序读取HTML文件中的数据的过程是:要先创建一个EXCEL文件读取HTML文件中的数据,然后再用C+语言读取EXCEL文件。过程如图1所示:图1此过程间接达到了利用C+程序读取HTML文件中的数据的目的。它主要有三大模块:建立EXCEL文件;EXCEL文件读取HTML文件中的数据;C+程序读取EXCEL文件中的数据。(1) 建立EXCEL文件模块的主要功能是为了读取HTML文件,具体操作是:先获取EXCEL工作簿集合,再添加一个工作簿西安市EXCEL表格,最后设置为用户可控制。因为在实际生活中人们主要用EXCEL
12、来进行数据操作,且EXCEL可以读取网页数据又方便修改,所以为了方便操作,选择了EXCEL来作为枢纽,将C+程序与HTML文件联系起来。(2)EXCEL文件读取HTML文件中的数据模块主要功能是将C+程序难以读取的HTML文件转化为方便C+程序读取的EXCEL文件,此模块是在(1)建立了EXCEL文件的基础上进行,在EXCEL文件里操作的。具体操作是:点击菜单栏里的“数据”,再点击新出现的工具箱的左上角的“至网页”会弹出一个网页窗口,输入要读取的网页地址之后选择所需要的表格,最后点击“导入”保存就完成了HTML文件的读取,但此时的数据还在EXCEL上,还需要经过模块3才能将HTML文件中的数据
13、读到C+程序里。(3)C+程序读取EXCEL文件中的数据模块主要功能是将模块(2)中的EXCEL文件中的数据用C+程序读出来。具体操作:运行C+程序,会出现一个操作窗口,点击“读取Excel表格”,在弹出的窗口的文件名里找到之前保存的EXCEL表格,点击“打开”就可以成功将数据读入C+里。操作过程比较方便。2.1.2 环境需求分析 操作系统:Windows 7.0调试软件:Microsoft公司的Visual C+ 6.0、记事本采用技术:面向过程2.2 概要设计2.2.1 系统功能模块图本次设计主要有三大模块:建立EXCEL文件;EXCEL文件读取HTML文件中的数据;C+程序读取EXCEL
14、文件中的数据。其中建立EXCEL文件和C+程序读取EXCEL文件中的数据是在C+程序和记事本中进行的,而EXCEL文件读取HTML文件中的数据是在Excel中进行的。整个系统功能模块图如图2所示:图22.2.2 程序流程图 本次设计所编写的C+程序里的主要实现部分在CTestDlg类里,其中的成员函数OnOK的作用是实现MFC对Excel的读取,图3即为OnOK函数的程序流程图。开始i<nRows?j<=nColumnCount+1?建立接口i=2读取单元格j=1j+i+得到表格YN NY对m_list赋值更新CListCtrl释放excel结束图32.3 详细设计2.3.1 设计
15、原理C+程序读取HTML文件中的数据以C+程序和EXCEL操作交替进行,通过调用各个函数以及操作EXCEL,实现不同的功能。因为EXCEL本身具有读取网页数据的功能,所以可以直接利用EXCEL读取HTML文件中的数据,然后再利用C+程序读取EXCEL文件。要达到这一目的,首先要设置建立C+与EXCEL之间的联系并运用C+编程打开EXCEL。在C+中创建VC界面使操作简洁明了,VC界面中的每一个按键都有一个成员函数与之相对应,在成员函数里编写程序定义按键的功能。作为一个读取HTML文件数据的程序,这样的设计增大了程序的实用性。2.3.2 基础知识简介1、HTML表格及其分类:HTML表格通过属性
16、-值对来描述对象,内容为对象属性的单元格称为属性域,内容为属性对应值的单元格称为值域。在HTML表格中,表格由table元素标记,它由若干行元素(row)构成,每一行又由若干单元(cell)构成。这些单元可以表示表头信息的th元素,也可以是表示数据信息的td元素。单元可以跨越多个列或多个行,跨越的行、列数分别由th或td元素的rowspan与colspan属性指定。本文应用示例表格如图4所示:图4示例表格对应的HTML文档如下:<html><head><title>表格</title></head><body><ta
17、ble width="314" border="1"align="center"> <tr> <td width="75">姓名</td> <td width="86">班级</td> <td width="131">住址</td> </tr> <tr> <td>周三</td> <td>数学 1101</td> &l
18、t;td>西安碑林区</td> </tr> <tr> <td>李四</td> <td>数学 1101</td> <td>西安雁塔区</td> </tr> <tr> <td>王五</td> <td>数学 1101</td> <td>西安长安区</td> </tr></table></body></html>HTML表格结构比较复杂,从形式上可
19、以分为简单表格与复杂表格2类。其中,简单表格又可以分为3种:(1)行标题表(属性在前n行);(2)列标题表(属性在前m行);(3)行列标题表(属性分别在前n行与前m列)。本文所用示例表格即为简单表格中的行标题表。2、MFC中EXCEL相关类的添加(1)启动VC 6.0,打开新建对话框,新建一个MFC AppWizard(exe)工程,这里工程名设置为Test,点击“确定”;之后选择“基本对话框”,点击“完成”;最后再点击“确定”。所有过程如图5的3张图片所示:图5(2)进入MFC应用程序向导,选择基本对话框,直接点击完成,工程文件结构图如图6:图6(3)打开MFC ClassWizard窗口(
20、查看->建立类向导),选择Automation,单击Add Class按钮,选择From a type library.,弹出文件选择对话框可以在这里设置对话控制,将表中的控件直接拖入对话框即可。如图7所示:图7之后定位到Microsoft Office的安装目录,选择EXCEL.exe,确定后,弹出Confirm Classes窗口,选择列表中需要的类,单击OK按钮。过程及结果如图8所示: 图8 成功之后,工程文件结构图如图9所示:图9(4)返回编辑器,查看工程文件,可发现多了excel.h及excel.cpp两个文件;(5)打开stdafx.h头文件确保包含如图9头文件:图9(6)打
21、开Test.cpp文件,修改CTestApp:InitInstance(),加入如下代码:BOOL CTestApp:InitInstance()AfxEnableControlContainer();#ifdef _AFXDLLEnable3dControls();#elseEnable3dControlsStatic();#endifCTestDlg dlg;m_pMainWnd = &dlg;int nResponse = dlg.DoModal();if (nResponse = IDOK)else if (nResponse = IDCANCEL)return FALSE;为
22、保证编译时不产生重复定义错误,打开excel.h文件,在文件开始位置加入如下代码:#if !defined _HEAD_FILE_EXCEL_ #define _HEAD_FILE_EXCEL_相应的,在文件末尾加入:#endif到此,自动化工程建立完成,建立F7,看是否能通过编译。(7)选择ResourceView工作区,打开IDD_TEST_DIALOG,在对话框中添加一个按钮控件Button1,双击它,生成一个Button1 Click事件的处理函数;另一个按钮控件OnOK生成过程同上:void CTestDlg:OnButton1()/ TODO: Add your control n
23、otification handler code here(8)在OnButton1函数中添加代码:void CTestDlg:OnButton1() / TODO: Add your control notification handler code here_Application app; Workbooks books; _Workbook book; COleVariant covOptional(long)DISP_E_PARAMNOTFOUND, VT_ERROR); if( !app.CreateDispatch("Excel.Application") )
24、 this->MessageBox("无法创建Excel应用!"); return; books=app.GetWorkbooks(); /获取工作簿集合book=books.Add(covOptional); /添加一个工作簿app.SetVisible(TRUE); /显示Excel表格app.SetUserControl(TRUE);/设置为用户可控制2.3.3 系统界面 VC界面中列出了该程序的功能:创建Excel表格、读取Excel表格、取消、数据显示框。如图10:图102.4 调试与操作说明1、建立EXCEL文件:直接点击图8Test对话框的“创建Excel表格” ;2、EXCEL文件读取HTML文件中的数据:弹出一个Excel窗口,点击“数据”里的“自网站”,会出现一个窗口,见图11;数据自网站图11在地址里输入网站地址,找到所需要的表格点击导入,就可以将HTML文件中的数据读到Excel里。过程及结果如图12所示:图123、C+程序读取EXCEL文件中的数据点击图8中Test对话框的“读取Excel”,在弹出的窗口中选出需要打开的Excel文件,点击“打开”即能读出Excel里的数据,过程及结果如图13所示。图13三、设计总结通过这次课程设计,我拓宽了知识面,锻炼了能力,综合素质得到较大提高
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- GB/T 24513.1-2026金属和合金的腐蚀室内大气低腐蚀性分类第1部分:室内大气腐蚀性的测定与评价
- 安全监督研究院化工园区安全规划研究工作手册(标准版)
- 企业客户沟通训练方案
- 2026年医师资格预防医学综合题库含答案
- 2026年事业单位招聘面试真题含答案解析
- 2026年山东省地方病防治技能竞赛(理论知识)综合能力测试题及答案
- 2026年金属冶炼安全管理人员试题
- 2026年会计个税面试题及答案
- 生活垃圾焚烧发电项目水资源论证报告书
- 2026福建省榕圣建设发展有限公司(房建项目)招聘5人考试参考试题
- 黑龙江省龙东地区2025年初中学业水平考试地理真题(含答案)
- 新教材人教版七年级数学下学期期末模拟卷
- 管理经济学第8版
- 《煤矿重大事故隐患判定标准》(2026版)解读
- 2026-2030中国安检设备行业市场深度调研及发展趋势与投资价值研究报告
- 泌尿系造口护理专家共识(2026版)
- 2025河北省中考真题数学试题(解析版)
- 2026沪教版(新教材)小学数学二年级下册(全册)教案、教学计划及进度表新版
- 2026人教版三年级下册道德与法治期末复习知识点总结梳理+教材问答解答
- 2025福建厦漳泉城际铁路有限责任公司筹备组社会招聘10人笔试历年参考题库附带答案详解
- XX旅游发展公司管理制度汇编范本
评论
0/150
提交评论