【C语言】多温度传感器大数据的分析与处理实验报告


实验目的:


一、从实验仪器测量数据并且记录在文本文档中

二、读取记录表的数据。

三、检查记录表中的温度是否符合标准。


实验步骤:


一、从实验仪器测量数据并且记录在文本文档中

根据实验仪器上的电路连接图连接相关路线读取相关数据,并且记录在文件中。

二、读取记录表的数据

在当前工程目录底下创建一个文本文档,将所测的数据(时间、温度、湿度)记录在文本文档中,如:



(一)记录表

通过程序运行将此文件的有限数据读出并显示在终端(运行在屏幕上),同时求温度的最大值与平均值。


三、检查记录表中的温度是否符合标准


另给一个标准表,即再创建一个文本文档,另给一组数据(时间、温度、湿度),同样也需要去读取标准表的数据,通过记录表与标准表在相等时间内的温度比较,检查记录表中的温度是否符合标准,若不合格,则输出记录表中不合格的温度以及对应时间。标准表如下:

(二)标准表


通过眼睛去比较记录表与标准表,如果规定在相等时间时两表中的温度差超过了2就不合格,那么我们一眼就知道记录表中最后两个数据不合格,那么就要把两个时间和温度对应输出到终端。结合二、三步骤的源代码,此源代码如下:

#include <stdio.h>
#include <stdlib.h>
#include <math.h>
#include <string.h>

#define MAX 100
#define TIME_LEN 10
#define temperature_LEN 5
#define humidity_LEN 5

#define CHECK_STAND 2.0
double check_failtem[30];
char check_failtime[20][20];
struct TXT
{
    char time[TIME_LEN];
    char temperature[temperature_LEN];
    char humidity[humidity_LEN];
}txt[30],check[30];
void print()
{
    printf("++++++++++++++++++++++\n");
    printf("1->读取记录表的数据\n");
    printf("2->读取标准表的数据\n");
    printf("3->求记录表温度的最大值\n");
    printf("4->求记录表温度的平均值\n");
    printf("5->检查某个时间下温度是否合格\n");
    printf("++++++++++++++++++++++\n");
    printf("\n请输入序号:");
}

void FileRead_Write()//读取记录表的数据
{
    FILE *pfread = fopen("C:/Users/SAMSUNG/Documents/Visual Studio 2013/Projects/txtchuanganqi2015_6_24/Debug/sulijuan.txt", "rb+");
    if (pfread == NULL)
    {
        perror("error");
        exit(EXIT_FAILURE);
    }
    printf("时间 温度 湿度\n");
    for (int i = 0; i < 5; i++)
    {
        fgets(txt[i].time, 5, pfread);
        fseek (pfread, 1, SEEK_CUR);
        fgets(txt[i].temperature, 5, pfread);
        fseek(pfread, 1, SEEK_CUR);
        fgets(txt[i].humidity, 6, pfread);
        fseek(pfread, 1, SEEK_CUR);
        printf("%s %s %s\n", txt[i].time, txt[i].temperature, txt[i].humidity);
    }
    printf("\n");
    fclose(pfread);
}
void FileRead_Stadard()//读取标准表的数据
{
    FILE *fcheck = fopen("C:/Users/SAMSUNG/Documents/Visual Studio 2013/Projects/txtchuanganqi2015_6_24/Debug/standardtemperature.txt", "rb+");
    printf("时间 温度 湿度\n");
    for (int i = 0; i < 5; i++)
    {
        fgets(check[i].time, 5, fcheck);
        fseek(fcheck, 1, SEEK_CUR);
        fgets(check[i].temperature, 5, fcheck);
        fseek(fcheck, 1, SEEK_CUR);
        fgets(check[i].humidity, 6, fcheck);
        fseek(fcheck, 1, SEEK_CUR);
        printf("%s %s %s\n", check[i].time, check[i].temperature, check[i].humidity);
    }
    printf("\n");
    fclose(fcheck);
}
void temperature_max(struct TXT txt[])//求记录表温度的最大值
{
    int i = 0;
    double n,max = 0.0;
    max = atof(txt[0].temperature);
    for (i = 1; i < 5; i++)
    {
         n = atof(txt[i].temperature);
         if (n>max)
         {
             max = n;
         }
    }
    printf("temperature_max = %f\n",max);
    printf("\n");
}
void temperature_avg(struct TXT txt[])//求记录表温度的平均值
{
    double m,sum = 0.0;
    int i;
    sum = atof(txt[0].temperature);
    for (i = 1; i <5; i++)
    {
        m = atof(txt[i].temperature);
        sum += m;
    }
    printf("temperature_avg = %f\n",sum/5);
    printf("%f", fabs(atof(check[3].temperature) - atof(txt[3].temperature)));
    printf("\n");
}
void Check_temperature(struct TXT txt[], struct TXT check[])//检查温度是否合格
{
    int i = 0,j = 0;
    for (i = 0; i<5;i++)
    {
        if (strcmp(txt[i].time, check[i].time) == 0)
        {
            if ((fabs(atof(check[i].temperature) - atof(txt[i].temperature))) > CHECK_STAND)
            {
                strcpy(check_failtime[i],txt[i].time);
                check_failtem[i] = atof(txt[i].temperature);
                printf("%s ", check_failtime[i]);
                printf("%f\n", check_failtem[i]);
                //fwrite(&(txt[i].temperature), sizeof(TXT), 1, pf);
            }
        }
    }
}
int main()
{
    int input;
    while (1)
    {
        print();
        scanf("%d", &input);
        switch (input)
        {
        case 1:
            FileRead_Write();
            break;
        case 2:
            FileRead_Stadard();
            break;
        case 3:
            temperature_max(txt);
            break;
        case 4:
            temperature_avg(txt);
            break;
        case 5:
            Check_temperature(txt, check);
            break;
        default:
            printf("序号无效\n");
            break;
        }
    }
    return 0;
}

解析一:用fopen打开创建的记录表,通过fgets操作文件指针一行一行地去读取时间、温度、湿度,并且放在一个数组里面,方便查找来进行运算。


解析二:将两个表里的数据都读出来放在两个不同的数组里面,通过操作数组对两个表的温度进行比较,当时间相同时才会进行温度的比较。


运行结果:

(一)从文件中读取记录表的数据

(二)在读取出的数据中求温度的最大值和平均值


(三)从文件中读取标准表的数据

(四)比较记录表和标准表,检查记录表中某个时间下的温度是否合格


实验总结:

(1)、电路必须连接正确,记录有限的相关数据。

(2)、在编写程序实现文件读取数据时,文件若创建在当前目录底下,则读取时可用相对路径打开文件,否则用绝对路径打开文件。


实验心得:

通过这次实验,我懂得了数据应该按照什么样的顺序去记录,才能从文件中正确地读取出来;以及对用程序去操作文件更了解了。

版权声明:本文为博主原创文章,未经博主允许不得转载。

时间: 2024-10-29 05:08:40

【C语言】多温度传感器大数据的分析与处理实验报告的相关文章

一站式大数据敏捷分析平台

OpenFEA是一站式大数据敏捷分析系统,融合了内存计算.集群运算.机器学习.交互分析.可视化分析等技术,涵盖数据收集.数据探索.构建模型.模型发布等功能,分析性能卓越,使用简便,无需复杂编程即可快速实现大数据分析,助力数据分析师激扬数据,塑造业务标杆.          数据收集         OpenFEA能够融合更多类型的数据来进行运算,支持关系型数据源. Hadoop数据源.数据文件.第三方数据源. 支持数据源与接口/格式的双向自定义机制.表示各种复杂结构或LOAD和STORE各类数据

北风网 零基础到数据(大数据)分析专家-首席分析师

详情请交流  QQ  709639943 00.北风网 零基础到数据(大数据)分析专家-首席分析师 00.快速上手JMeter 00.Jmeter 00.2017年Java web开发工程师成长之路 00.R语言速成实战 00.R语言数据分析实战 00.Python+Django+Ansible Playbook自动化运维项目实战 00.Java深入微服务原理改造房产销售平台 00.Python3入门机器学习 经典算法与应用 00.老司机学python篇:第一季(基础速过.机器学习入门) 00.

大数据案例分析

摘自https://www.cnblogs.com/ShaYeBlog/p/5872113.html 一.大数据分析在商业上的应用 1.体育赛事预测 世界杯期间,谷歌.百度.微软和高盛等公司都推出了比赛结果预测平台.百度预测结果最为亮眼,预测全程64场比赛,准确率为67%,进入淘汰赛后准确率为94%.现在互联网公司取代章鱼保罗试水赛事预测也意味着未来的体育赛事会被大数据预测所掌控. “在百度对世界杯的预测中,我们一共考虑了团队实力.主场优势.最近表现.世界杯整体表现和博彩公司的赔率等五个因素,这

要将大数据和分析转变为竞争优势,实现业务转型,必须做到这三点!

所谓大数据(Big Data)是指不使用随机分析法(抽样调查)的捷径,而是采用对所有数据进行分析处理.它代表着需要新处理模式才能具有更强的决策力.洞察力和流程优化能力的海量.高增长率和多样化的信息资产.大数据的特点:4V Volume(大量).Velocity(高速).Variety(多样).Value(价值). 大数据技术的战略意义不在于掌握庞大的数据信息,而在于对这些含有意义的数据进行专业化处理,通过提高对数据的"加工能力",来实现数据的"增值". 1.黑暗数据

在HDInsight中从Hadoop的兼容BLOB存储查询大数据的分析

在HDInsight中从Hadoop的兼容BLOB存储查询大数据的分析 低成本的Blob存储是一个强大的,通用的Hadoop兼容Azure存储解决方案无缝集成HDInsight.通过Hadoop分布式文件系统(HDFS)接口,完整的组件集合在HDInsight可以 在Blob存储数据的直接操作.在本教程中,学习如何建立一个容器的Blob存储,然后在里面处理的数据. 在BLOB存储中存储的数据能够用于计算的HDInsight集群被安全地删除,而不会丢失用户数据. 注意: 该ASV://语法中不支持

大数据可视化分析平台新应用:提升企业的数字营销策略

数字化时代,催生了不少社交媒体和搜索引擎公司.无论是国内还是国外乃至全球,社交媒体的势力愈加强大,与此也产生了大量的数据,成为大数据中的一部分.企业发展到一定地步,免不了大大小小的决策,这驱使着越来越多的企业选择商业智能产品——大数据可视化分析平台来合理利用它们积累的数据基础. 如今,从Facebook到Instagram,许多社交媒体渠道现在正在淹没在大量数据中.每天,超过400万小时的视频内容上传到YouTube,而每天有43亿条消息在Facebook网上发布. 随着可用于分析的数据量继续呈

开源大数据查询分析引擎现状

引言 大数据查询分析是云计算中核心问题之一,自从Google在2006年之前的几篇论文奠定云计算领域基础,尤其是GFS.Map-Reduce.Bigtable被称为云计算底层技术三大基石.GFS.Map-Reduce技术直接支持了Apache Hadoop项目的诞生.Bigtable和Amazon Dynamo直接催生了NoSQL这个崭新的数据库领域,撼动了RDBMS在商用数据库和数据仓库方面几十年的统治性地位.FaceBook的Hive项目是建立在Hadoop上的数据仓库基础构架,提供了一系列

一周实现大数据可视化分析——敏捷BI助艾瑞咨询集团实现互联网的大数据分析

相对传统分析方法,通过敏捷BI和Hadoop的互补,艾瑞咨询集团的业务效率获得数倍的提升:线下报告交付周期从3至4周缩短至小于1周,软件交付从半年缩短至一个月. 当前,一提到大数据人们就会想Hadoop,它似乎成为大数据的"代言人".不可否认,Hadoop在集群扩展性和成本上都有巨大的优势,但是,Hadoop并不适合做实时分析系统. 因此,很多企业都会利用Hadoop实现数据存储,再通过其他工具实现对大数据的高速捕获和实时分析.这里,我们将通过艾瑞咨询集团的一个真实案例,解读一下敏捷B

新零售大数据可视化分析系统搭建大数据系统解决方案

大数据可视化分析系统是什么?最贴切的例子就是,年底来了,各大软件都出了的年度账单.他们利用大数据分析系统,对每个用户进行了全面的分析,然后用文字的方式表达出来,以此方式又做了一次成功的营销. 其实每个行业都是需要大数据分析系统,不仅仅是可以做出年度账单,更多的是分析数据,发现问题,为公司做更好的规划.尤其是在新零售行业,无论是线上还是线下的销售每天都会产生大量数据,如何将这些大数据利用起来呢. 要知道营销的本质就是利用数据提高消费者购买转化率,促进成交总额的增长.通过融合线上线下的数据,生成消费