河北工业大学数据挖掘实验报告
- 格式:doc
- 大小:527.00 KB
- 文档页数:43
数据挖掘实验报告一、引言。
数据挖掘作为一种从大量数据中发现隐藏模式和信息的技术,已经被广泛应用于各个领域。
本实验旨在通过对给定数据集的分析和挖掘,探索其中潜在的规律和价值信息,为实际问题的决策提供支持和参考。
二、数据集描述。
本次实验使用的数据集包含了某电商平台上用户的购物记录,其中包括了用户的基本信息、购买商品的种类和数量、购买时间等多个维度的数据。
数据集共包括了10000条记录,涵盖了近一年的购物数据。
三、数据预处理。
在进行数据挖掘之前,我们首先对数据进行了预处理。
具体包括了数据清洗、缺失值处理、异常值处理等步骤。
通过对数据的清洗和处理,保证了后续挖掘分析的准确性和可靠性。
四、数据分析与挖掘。
1. 用户购买行为分析。
我们首先对用户的购买行为进行了分析,包括了用户购买的商品种类偏好、购买频次、购买金额分布等。
通过对用户购买行为的分析,我们发现了用户的购买偏好和消费习惯,为电商平台的商品推荐和营销策略提供了参考。
2. 商品关联规则挖掘。
通过关联规则挖掘,我们发现了一些商品之间的潜在关联关系。
例如,购买商品A的用户80%也会购买商品B,这为商品的搭配推荐和促销活动提供了依据。
3. 用户价值分析。
基于用户的购买金额、购买频次等指标,我们对用户的价值进行了分析和挖掘。
通过对用户价值的评估,可以针对不同价值的用户采取个性化的营销策略,提高用户忠诚度和购买转化率。
五、实验结果。
通过对数据的分析和挖掘,我们得到了一些有价值的实验结果和结论。
例如,发现了用户的购买偏好和消费习惯,发现了商品之间的关联规则,发现了用户的不同价值等。
这些结论为电商平台的运营和管理提供了一定的参考和决策支持。
六、结论与展望。
通过本次实验,我们对数据挖掘技术有了更深入的理解和应用。
同时,也发现了一些问题和不足,例如数据质量对挖掘结果的影响,挖掘算法的选择和优化等。
未来,我们将继续深入研究数据挖掘技术,不断提升数据挖掘的准确性和效率,为更多实际问题的决策提供更有力的支持。
数据挖掘实验报告实验原理
数据挖掘是从大规模数据中挖掘出有价值的信息或知识的过程。
数据
挖掘的核心任务是基于数据发现隐藏在数据背后的模式、关联、趋势和异常,以便支持决策过程。
1.数据预处理:首先需要对原始数据进行清洗、去噪、去重和格式化
处理。
这一步骤的目的是为了减少数据的冗余性和噪声,提高数据的质量。
2.数据集划分:将清洗后的数据集划分为训练集和测试集。
训练集用
于构建数据挖掘模型,测试集用于评估模型的性能。
3.特征选择:选择最具有代表性和区分性的特征变量,以提高数据挖
掘算法的效果和效率。
特征选择可以通过统计方法、信息论方法和机器学
习方法来实现。
4.模型构建:根据实验任务的要求和数据的特点,选择合适的数据挖
掘算法来构建模型。
常用的数据挖掘算法包括聚类、分类、关联规则、异
常检测和预测等。
5.模型评估:通过评估模型在测试集上的性能指标来评估模型的质量。
常用的性能指标包括准确率、召回率、F1值和ROC曲线等。
6.结果分析:对挖掘结果进行解释和分析,以获取有用的信息和知识。
可以通过可视化工具和统计分析方法对挖掘结果进行展示和解释。
在实验过程中,需要选择合适的数据集、算法和评估指标,制定合理
的实验方案,并进行实验验证和结果分析。
同时,还需要掌握数据挖掘工
具和编程技巧,以便能够灵活地应用各种数据挖掘算法和方法。
总之,数据挖掘实验是通过实践应用数据挖掘技术,挖掘数据中隐藏的有用信息和知识的过程。
通过实验,可以深入理解数据挖掘的原理和方法,提高数据分析和解决实际问题的能力。
第1篇一、实验概述本次数据挖掘实验以Apriori算法为核心,通过对GutenBerg和DBLP两个数据集进行关联规则挖掘,旨在探讨数据挖掘技术在知识发现中的应用。
实验过程中,我们遵循数据挖掘的一般流程,包括数据预处理、关联规则挖掘、结果分析和可视化等步骤。
二、实验结果分析1. 数据预处理在实验开始之前,我们对GutenBerg和DBLP数据集进行了预处理,包括数据清洗、数据集成和数据变换等。
通过对数据集的分析,我们发现了以下问题:(1)数据缺失:部分数据集存在缺失值,需要通过插补或删除缺失数据的方法进行处理。
(2)数据不一致:数据集中存在不同格式的数据,需要进行统一处理。
(3)数据噪声:数据集中存在一些异常值,需要通过滤波或聚类等方法进行处理。
2. 关联规则挖掘在数据预处理完成后,我们使用Apriori算法对数据集进行关联规则挖掘。
实验中,我们设置了不同的最小支持度和最小置信度阈值,以挖掘出不同粒度的关联规则。
以下是实验结果分析:(1)GutenBerg数据集在GutenBerg数据集中,我们以句子为篮子粒度,挖掘了林肯演讲集的关联规则。
通过分析挖掘结果,我们发现:- 单词“the”和“of”在句子中频繁出现,表明这两个词在林肯演讲中具有较高的出现频率。
- “and”和“to”等连接词也具有较高的出现频率,说明林肯演讲中句子结构较为复杂。
- 部分单词组合具有较高的置信度,如“war”和“soldier”,表明在林肯演讲中提到“war”时,很可能同时提到“soldier”。
(2)DBLP数据集在DBLP数据集中,我们以作者为单位,挖掘了作者之间的合作关系。
实验结果表明:- 部分作者之间存在较强的合作关系,如同一研究领域内的作者。
- 部分作者在多个研究领域均有合作关系,表明他们在不同领域具有一定的学术影响力。
3. 结果分析和可视化为了更好地展示实验结果,我们对挖掘出的关联规则进行了可视化处理。
通过可视化,我们可以直观地看出以下信息:(1)频繁项集的分布情况:通过柱状图展示频繁项集的分布情况,便于分析不同项集的出现频率。
实验一数据预处理一、实验目的1、熟悉 VC++编程工具和完全数据立方体构建、联机分析处理算法。
2、浏览拟被处理的的数据,发现各维属性可能的噪声、缺失值、不一致性等,针对存在的问题拟出采用的数据清理、数据变换、数据集成的具体算法。
3、用 VC++编程工具编写程序,实现数据清理、数据变换、数据集成等功能。
4、调试整个程序获得清洁的、一致的、集成的数据,选择适于全局优化的参数。
5、写出实验报告。
二、实验原理1、数据预处理现实世界中的数据库极易受噪音数据、遗漏数据和不一致性数据的侵扰,为提高数据质量进而提高挖掘结果的质量,产生了大量数据预处理技术。
数据预处理有多种方法:数据清理,数据集成,数据变换,数据归约等。
这些数据处理技术在数据挖掘之前使用,大大提高了数据挖掘模式的质量,降低实际挖掘所需要的时间。
2、数据清理数据清理例程通过填写遗漏的值,平滑噪音数据,识别、删除离群点,并解决不一致来“清理”数据。
3、数据集成数据集成将数据由多个源合并成一致的数据存储,如数据仓库或数据立方体。
4、数据变换通过平滑聚集,数据概化,规范化等方式将数据转换成适用于数据挖掘的形式。
5、数据归约使用数据归约可以得到数据集的压缩表示,它小得多,但能产生同样(或几乎同样的)分析结果。
常用的数据归约策略有数据聚集、维归约、数据压缩和数字归约等。
三、实验内容和步骤1、实验内容1、用VC++编程工具编写程序,实现数据清理、数据变换、数据集成等功能,并在实验报告中写出主要的预处理过程和采用的方法。
2、产生清洁的、一致的、集成的数据。
3、在试验报告中写明各主要程序片段的功能和作用。
2、实验步骤1)仔细研究和审查数据,找出应当包含在你分析中的属性或维,发现数据中的一些错误、不寻常的值、和某些事务记录中的不一致性。
2)进行数据清理,对遗漏值、噪音数据、不一致的数据进行处理。
例如:1、日期中的缺失值可以根据统一的流水号来确定。
2、购买的数量不能为负值。
数据挖掘实验报告数据挖掘是一门涉及发现、提取和分析大量数据的技术和过程,它可以揭示出隐藏在数据背后的模式、关系和趋势,对决策和预测具有重要的价值。
本文将介绍我在数据挖掘实验中的一些主要收获和心得体会。
实验一:数据预处理在数据挖掘的整个过程中,最重要的一环就是数据预处理。
数据预处理包括数据清洗、数据集成、数据转换和数据规约等步骤,目的是为了提高数据的质量和可用性。
首先,我对所使用的数据集进行了初步的观察和探索。
发现数据集中存在着一些缺失值和异常值。
为此,我使用了一些常见的缺失值处理方法,如均值替代、中值替代和删除等。
对于异常值,我采用了离群值检测和修正等方法,使得数据在后续的分析过程中更加真实可信。
其次,我进行了数据集成的工作。
数据集合并是为了整合多个来源的数据,从而得到更全面和综合的信息。
在这个过程中,我需要考虑数据的一致性和冗余情况。
通过采用数据压缩和去重等技术,我成功地完成了数据集成的工作。
接着,我进行了数据转换的处理。
数据转换是为了将原始的数据转换成适合数据挖掘算法处理的形式。
在这个实验中,我采用了数据标准化和归一化等方法,使得不同属性之间具备了可比性和可计算性,从而便于后续的分析过程。
最后,我进行了数据规约的操作。
数据规约的目的在于减少数据的维数和复杂度,以提高数据挖掘的效果。
在这个阶段,我采用了主成分分析和属性筛选等方法,通过压缩数据集的维度和减少冗余属性,成功地简化了数据结构,提高了挖掘效率。
实验二:关联规则挖掘关联规则挖掘是数据挖掘中常用的一种方法,它用于发现数据集中项集之间的关联关系。
在这个实验中,我使用了Apriori算法来进行关联规则的挖掘。
首先,我对数据进行了预处理,包括数据清洗和转换。
然后,我选择了适当的最小支持度和最小置信度阈值,通过对数据集的扫描和频繁项集生成,找出了数据集中的频繁项集。
接着,我使用了关联规则挖掘算法,从频繁项集中挖掘出了具有一定置信度的关联规则。
在实验过程中,我发现挖掘出的关联规则具有一定的实用性和可行性。
数值分析实验报告指导老师:宛艳萍姓名:班级:学号:实验三 复化辛卜生法,龙贝格法1.实验名称:复化辛卜生法,龙贝格法2.实验目的1)通过实际计算体会各种方法的精确度。
2)会编写用复化辛卜生、龙贝格算法求定积分的程序。
3.算法描述1)用复化辛卜生法计算积分 dxx I ⎰+=12)1/(1算法:复化辛卜生公式为S n =h/6∑∑+-=+++)]()2/(4)([11k k kn k x f h x f xf ,计算过程为:1.令,/)(n a b h -= ),2/(1h a f s +=;02=s2.对1,,2,1-=n k计算),2/(11h kh a f s s +++=)(22kh a f s s ++=3.))(24)((6/21b f s s a f h s +++= 。
2)龙贝格算法计算dxxI ⎰+=102)1/(156e ε=-算法)((12/12∑-=++=n k k n n n x f h T T ;/)(n a b h n -= n k h k x )2/1(2/1+=+)(3/122n n n n T T T S -+= )_(15/122n n n n S S S C +=)(63/122n n n n C C C R -+=用事后估计法控制精度2|5e -6n n R R -< 。
4.源程序:1)/* 用复化辛卜生公式求积分 */ #include "stdio.h" float fx(float x){double f;f=1.0/(1.0+x*x); return f; } double fs(int n){double a=0.0,b=1.0,h,s,s1,s2=0; int i;h=(b-a)/n; s1=fx(a+h/2); for(i=1;i<n;i++){s1=s1+fx(a+i*h+h/2); s2=s2+fx(a+i*h);}s=(h/6.0)*(fx(a)+fx(b)+4*s1+2*s2);return s;}void main(){printf("实验三复化辛卜生法计算机112 耿向飞学号:112434\n");printf("s(2)=%lf\ns(4)=%lf\ns(8)= %lf",fs(2),fs(4),fs(8));}2)/* 龙贝格法 */#include "stdio.h"#include "math.h"#define E 2.71828182//被积函数f(x)double fx(double x){double f;f=1/(1+x*x);return f;}//梯形公式求tndouble tx(int n){double s3=0.0,h,t,b=1.0,a=0.0;int i;h=(b-a)/n;for(i=1;i<n;i++)s3=s3+fx(i*h);t=(h/2)*(fx(a)+fx(b)+2*s3);return t;} double s(int n){double s;s=tx(2*n)+(1.0/3.0)*(tx(2*n)-tx(n ));return s;}double c(int n){double c;c=s(2*n)+(1.0/15.0)*(s(2*n)-s(n)) ;return c;}double r(int n){double r;r=c(2*n)+(1.0/63.0)*(c(2*n)-c(n)) ;return r;}void main(){double rr,pp;int n=1;rr=r(n);pp=r(2*n)-r(n);printf("实验三龙贝格法计算机112 耿向飞学号:112434\n");printf("结果为:%.15lf 误差小于等于: %.15lf",rr,pp);}5.运行结果1)复化辛卜生公式2)龙贝格算法6.对算法的理解与分析:复化辛卜生公式和龙贝格算法适用于求数值积分,而且都能提高计算积分的精度龙贝格算法其实是在复化辛卜生公式递推的基础之上生成的一种精度高,而且收敛速度也较快的一种算法。
数据挖掘实验报告一、实验目的本次数据挖掘实验的主要目的是深入了解数据挖掘的基本概念和方法,并通过实际操作来探索数据中潜在的有价值信息。
二、实验环境本次实验使用了以下软件和工具:1、 Python 编程语言,及其相关的数据挖掘库,如 Pandas、NumPy、Scikitlearn 等。
2、 Jupyter Notebook 作为开发环境,方便进行代码编写和结果展示。
三、实验数据实验所使用的数据来源于一个公开的数据集,该数据集包含了关于_____的相关信息。
具体包括_____、_____、_____等多个字段,数据量约为_____条记录。
四、实验步骤1、数据预处理首先,对原始数据进行了清洗,处理了缺失值和异常值。
对于缺失值,根据数据的特点和分布,采用了平均值、中位数或删除等方法进行处理。
对于异常值,通过箱线图等方法进行识别,并根据具体情况进行了修正或删除。
接着,对数据进行了标准化和归一化处理,使得不同特征之间具有可比性。
2、特征工程从原始数据中提取了有意义的特征。
例如,通过计算某些字段的均值、方差等统计量,以及构建新的特征组合,来增强数据的表达能力。
对特征进行了筛选和降维,使用了主成分分析(PCA)等方法,减少了特征的数量,同时保留了主要的信息。
3、模型选择与训练尝试了多种数据挖掘模型,包括决策树、随机森林、支持向量机(SVM)等。
使用交叉验证等技术对模型进行了评估和调优,选择了性能最优的模型。
4、模型评估使用测试集对训练好的模型进行了评估,计算了准确率、召回率、F1 值等指标,以评估模型的性能。
五、实验结果与分析1、不同模型的性能比较决策树模型在准确率上表现较好,但在处理复杂数据时容易出现过拟合现象。
随机森林模型在稳定性和泛化能力方面表现出色,准确率和召回率都比较高。
SVM 模型对于线性可分的数据表现良好,但对于非线性数据的处理能力相对较弱。
2、特征工程的影响经过合理的特征工程处理,模型的性能得到了显著提升,表明有效的特征提取和选择对于数据挖掘任务至关重要。
时间序列的模型法和数据挖掘两种方法比较分析研究实验目的:通过实验能对时间序列的模型法和数据挖掘两种方法的原理和优缺点有更清楚的认识和比较.实验内容:选用1952-2006年的中国GDP,分别对之用自回归移动平均模型(ARIMA) 和时序模型的数据挖掘方法进行分析和预测,并对两种方法的趋势和预测结果进行比较并给出解释.实验数据:本文研究选用1952-2006年的中国GDP,其资料如下日期国内生产总值(亿元)日期国内生产总值(亿元) 2006-12-312094071997-12-3174772 2005-12-311830851996-12-312004-12-311365151995-12-312003-12-311994-12-312002-12-311993-12-312001-12-311992-12-312000-12-31894041991-12-311999-12-31820541990-12-311998-12-31795531989-12-311988-12-311969-12-311987-12-311968-12-311986-12-311967-12-311985-12-311966-12-311868 1984-12-3171711965-12-311983-12-311964-12-311454 1982-12-311963-12-311981-12-311962-12-311980-12-311961-12-311220 1979-12-311960-12-311457 1978-12-311959-12-311439 1977-12-311958-12-311307 1976-12-311957-12-311068 1975-12-311956-12-311028 1974-12-311955-12-31910 1973-12-311954-12-31859 1972-12-311953-12-31824 1971-12-311952-12-31679 1970-12-31表一国内生产总值(GDP)是指一个国家或地区所有常住单位在一定时期内生产活动的最终成果。
数据挖掘实验报告心得实验背景数据挖掘是一门研究如何从大量数据中发现潜在模式,并进行预测和分析的技术。
在本次实验中,我们学习了数据挖掘的基本概念、常用算法和工具,通过实际操作了解了数据挖掘的流程和方法。
实验过程本次实验我们选择了一个实际的数据集进行挖掘分析。
首先,我们需要对数据进行清洗和预处理,包括去除缺失值、处理异常值等。
接下来,我们应用聚类算法对数据进行分组,根据不同的特征对数据进行聚类,找出数据中的相似性和差异性。
然后,我们应用分类算法对数据进行预测和分类,通过已知的特征预测未知的特征。
最后,我们对实验结果进行评估和分析,对挖掘到的模式和规律进行解释和应用。
实验收获通过本次实验,我深刻认识到了数据挖掘在现代信息时代的重要性和作用。
数据挖掘可以帮助我们从庞杂的数据中提取有用的信息和知识,对问题进行预测和决策。
在实验过程中,我们学会了如何选择合适的数据集、如何进行数据清洗和预处理、如何应用各种挖掘算法等。
这些技能对于我们日后的工作和学习都非常有帮助。
另外,通过实验,我也对数据挖掘的实际应用有了更深入的了解,例如在金融领域进行风险评估、在医疗领域进行疾病预测等。
这些应用可以优化我们的生活和工作,提高效率和精确度。
实验挑战在实验过程中,我也遇到了一些挑战和困难。
首先,对于初学者来说,学习数据挖掘的理论和算法需要一定的时间和耐心。
数据挖掘领域的知识非常庞杂和深入,需要不断地学习和实践才能掌握。
其次,对于复杂的数据集,如何选择合适的特征和算法也是一个难点。
不同的数据集和问题可能需要不同的处理方法和算法,需要我们有一定的经验和敏锐的洞察力。
此外,在实验过程中,由于数据集的不完整或异常,可能出现预测结果不准确的情况,需要我们进行进一步的调整和优化。
实验展望数据挖掘是一个非常有挑战和前景的领域,未来可以应用在更多的领域和行业。
随着技术的不断发展和数据量的不断增加,数据挖掘的应用前景将更加广阔。
例如,在智能城市建设中,可以通过数据挖掘挖掘交通流量和人流密度等信息来优化城市资源配置和交通管理。
数据挖掘实验报告数据挖掘实验报告引言:数据挖掘是一门涉及从大量数据中提取有用信息的技术和方法。
在当今信息爆炸的时代,数据挖掘在各个领域中扮演着重要的角色。
本实验旨在通过应用数据挖掘技术,探索数据中的隐藏模式和规律,以提高决策和预测的准确性。
一、数据收集与预处理在数据挖掘的过程中,数据的质量和完整性对结果的影响至关重要。
在本次实验中,我们选择了某电商平台的销售数据作为研究对象。
通过与数据提供方合作,我们获得了一份包含订单信息、用户信息和商品信息的数据集。
在数据预处理阶段,我们对数据进行了清洗、去重和缺失值处理。
清洗数据的目的是去除噪声和异常值,以确保数据的准确性。
去重操作是为了避免重复数据对结果的干扰。
而缺失值处理则是填补或删除缺失的数据,以保证数据的完整性。
二、数据探索与可视化数据探索是数据挖掘的重要环节,通过对数据的分析和可视化,我们可以发现数据中的潜在关系和规律。
在本次实验中,我们使用了数据可视化工具来展示数据的分布、相关性和趋势。
首先,我们对销售数据进行了时间序列的可视化。
通过绘制折线图,我们可以观察到销售额随时间的变化趋势,从而判断销售业绩的季节性和趋势性。
其次,我们对用户的购买行为进行了可视化分析。
通过绘制柱状图和饼图,我们可以了解用户的购买偏好和消费习惯。
三、数据挖掘建模在数据挖掘建模阶段,我们选择了关联规则和聚类分析两种常用的数据挖掘技术。
关联规则分析用于发现数据集中的频繁项集和关联规则。
通过关联规则分析,我们可以了解到哪些商品经常被一起购买,从而为销售策略的制定提供参考。
在本次实验中,我们使用了Apriori算法来挖掘频繁项集和关联规则。
通过设置支持度和置信度的阈值,我们筛选出了一些有意义的关联规则,并对其进行了解释和分析。
聚类分析用于将数据集中的对象划分为不同的组,使得同一组内的对象相似度较高,而不同组之间的相似度较低。
在本次实验中,我们选择了K-means算法进行聚类分析。
通过调整聚类的簇数和距离度量方式,我们得到了一些具有实际意义的聚类结果,并对不同簇的特征进行了解读和解释。
实验一数据预处理一、实验目的1、熟悉 VC++编程工具和完全数据立方体构建、联机分析处理算法。
2、浏览拟被处理的的数据,发现各维属性可能的噪声、缺失值、不一致性等,针对存在的问题拟出采用的数据清理、数据变换、数据集成的具体算法。
3、用 VC++编程工具编写程序,实现数据清理、数据变换、数据集成等功能。
4、调试整个程序获得清洁的、一致的、集成的数据,选择适于全局优化的参数。
5、写出实验报告。
二、实验原理1、数据预处理现实世界中的数据库极易受噪音数据、遗漏数据和不一致性数据的侵扰,为提高数据质量进而提高挖掘结果的质量,产生了大量数据预处理技术。
数据预处理有多种方法:数据清理,数据集成,数据变换,数据归约等。
这些数据处理技术在数据挖掘之前使用,大大提高了数据挖掘模式的质量,降低实际挖掘所需要的时间。
2、数据清理数据清理例程通过填写遗漏的值,平滑噪音数据,识别、删除离群点,并解决不一致来“清理”数据。
3、数据集成数据集成将数据由多个源合并成一致的数据存储,如数据仓库或数据立方体。
4、数据变换通过平滑聚集,数据概化,规化等方式将数据转换成适用于数据挖掘的形式。
5、数据归约使用数据归约可以得到数据集的压缩表示,它小得多,但能产生同样(或几乎同样的)分析结果。
常用的数据归约策略有数据聚集、维归约、数据压缩和数字归约等。
三、实验容和步骤1、实验容1、用 VC++编程工具编写程序,实现数据清理、数据变换、数据集成等功能,并在实验报告中写出主要的预处理过程和采用的方法。
2、产生清洁的、一致的、集成的数据。
3、在试验报告中写明各主要程序片段的功能和作用。
2、实验步骤1)仔细研究和审查数据,找出应当包含在你分析中的属性或维,发现数据中的一些错误、不寻常的值、和某些事务记录中的不一致性。
2)进行数据清理,对遗漏值、噪音数据、不一致的数据进行处理。
例如:1、日期中的缺失值可以根据统一的流水号来确定。
2、购买的数量不能为负值。
3)进行数据集成和数据变换和数据归约,将多个数据源中的数据集成起来,减少或避免结果数据中的数据冗余或不一致性。
并将数据转换成适合挖掘的形式。
例如:1、进行完数据清理后发现购买数量、销售价格、总额是相互关联的项可以去掉总额。
2、三个流水表日期的格式不一样应统一成相同的日期格式。
3、门号和 pos 机一样,可以去掉一个。
4、附加:同一购物篮的商品序号应该是顺序递增的。
四、实验结果源程序:#include <iostream>#include <string>#include <fstream>#include <algorithm>using namespace std;class Sales{public:string serial;int market;int posno;string date;int sn;int id;float num;float price;float total;void print(){cout<<serial<<" "<<market<<" "<<posno<<" "<<date<<" "<<sn<<" "<<id<<" "<<num<<" "<<price<<" "<<total<<endl;}};int main(){ofstream outfile("fl.txt",ifstream::app);if (!outfile){cout<<"open error!"<<endl;exit(1);}char name[50];ifstream infile;cout<<"输入要打开的txt文件名:1019.txt,1020.txt,1021.txt"<<endl;//int N=3;//for (int k=0;k<N;k++)//{//cout<<"输入要打开的第"<<k+1<<"个文件名"<<endl;cin>>name;infile.open(name,ios::in);//ifstreaminfile("1019.txt",ios::in);cin.clear();/*string contents;*/if (infile.fail()){cout<<"error open!"<<endl;}//ofstream outfile("fl.txt",ofstream::app);//ofstream outfile("fl.txt",ios::out);//if (!outfile)//{//cout<<"open error!"<<endl;//exit(1);//}Sales sal[13000];int sal_size=0;while (!infile.eof()){infile>>sal[sal_size].serial>>sal[sal_size].market>>sal[sal_size] .posno>>sal[sal_size].date>>sal[sal_size].sn>>sal[sal_size].id>>sal[sal_size].num>>sal[sal_si ze].price>>sal[sal_size].total;sal_size++;}cout<<"文档"<<name<<"的长度是:"<<sal_size<<endl;//char Tc;//Tc=getchar();//cout<<Tc<<endl;int I;for (int i=0; i<sal_size;i++){//sal[i].print();if (sal[i].num<0){sal[i].num=-sal[i].num;}sal[i].date.assign(sal[i].serial,0,8);outfile<<sal[i].serial<<"\t"<<sal[i].market<<"\t"<<sal[i].date<<" \t"<<sal[i].sn<<"\t"<<sal[i].id<<"\t"<<sal[i].num<<"\t"<<sal[i].price<<endl;I=i;}cout<<"文档fl.txt的长度是:"<<sal_size<<"\t"<<I<<endl;char TTc;cin>>TTc;//TTc=getchar();cout<<TTc<<endl;infile.close();//}outfile.close();return 0;}运行结果:实验二数据立方体与联机分析处理构建一、实验目的1、熟悉 VC++编程工具和基本数据立方体构建、联机分析处理算法。
2、建立一致的高质量的关系型数据库。
3、在建立的数据库基础上建立基本数据立方体。
4、写出实验报告。
二、实验原理1、关系型数据库关系数据库,是创建在关系模型基础上的数据库,借助于集合代数等数学概念和方法来处理数据库中的数据。
关系模型由关系数据结构、关系操作集合、关系完整性约束三部分组成。
2、数据立方体一种多维数据模型,允许以多维对数据建模和观察。
它由维和事实定义。
维是一个单位想要的透视或实体。
每个维可以有一个与人相关联的表,称为维表,它进一步描述维,如 item 维的维表包含属性 Name、time、type 等。
事实:多维数据模型围绕诸如销售这样的主题组织,主题用事实表示,事实是数值度量的。
3、OLAP 操作上卷:沿着一个维的概念分层向上攀升或通过维归约在数据立方体上进行聚集。
下钻:上卷的逆操作,可能过沿维的概念分层向下或引入附加的维来实现。
切片:在给定的数据立方体的一个维上进行选择,导致一个子立方体。
就是数据立方体的某一层数据。
切换:在两个或多个维上选择,定义子立方体。
就是数据立方体某一层数据中的某一块。
4、数据仓库的设计选取待建模的商务处理:都有哪些商务过程,如订单、发票、发货、库存、记账管理、销售或一般分类账。
选取商务处理的粒度:对于商务处理,该粒度是基本的,在事实表中是数据的原子级,如单个事务、一天的快照等。
选取用于每个事实表记录的维:典型的维是时间、商品、顾客、供应商、仓库、事务类型和状态。
选取将安放在每个事实表记录中的度量:典型的度量是可加的数值量,如dollars_sold 和 units_sold。
三、实验容和步骤1、实验容(1)、用 VC++编程工具编写程序,建立关系型数据存储结构,建立数据立方体,并在实验报告中写出主要的过程和采用的方法。
建立的数据立方体的维度为 3,分别是商品大类、商店编号和时间。
具体要求:1、建立三个存储表格(txt 文件)分别存储 1019、1020、1021 的数据;2、每个 txt 文件横向为商品大类(商品 ID 前五位)10010 油、10020 面制品、10030 米和粉、10088 粮油类赠品;3、每个 txt 纵向为日期 13-19 这一个星期表中存储的值为总销售额。
(2)、进行简单的 OLAP 数据查询具体要求:能查出 2020 商店 10010 油类商品 13 日总的销售额;能计算出 2020 商店 10030 米和粉总的销售额;能查询出指定商店指定种类商品的销售额;(附加题)2、实验步骤(1)仔细研究和审查数据,找出应当包含在你分析中的属性或维去掉不需要的数据。