题目: 某班有同学100人,现要从两个数据源汇总学生数据。第一个数据源在数据库中,第二个数据源在txt文件中,两个数据源课程存在缺失、冗余和不一致性,请用C/C++/Java程序实现对两个数据源的一致性合并以及每个学生样本的数值量化。

· 数据库表:ID (int), 姓名(string), 家乡(string:限定为Beijing / Guangzhou / Shenzhen / Shanghai), 性别(string:boy/girl)、身高(float:单位是cm))、课程1成绩(float)、课程2成绩(float)、…、课程10成绩(float)、体能测试成绩(string:bad/general/good/excellent);其中课程1-课程5为百分制,课程6-课程10为十分制。

· txt文件:ID(string:6位学号),性别(string:male/female)、身高(string:单位是m))、课程1成绩(string)、课程2成绩(string)、…、课程10成绩(string)、体能测试成绩(string:差/一般/良好/优秀);其中课程1-课程5为百分制,课程6-课程10为十分制。

参考:
数据库中Stu表数据
ID Name City Gender Height C1 … C10 Constitution
1 Sun Beijing boy 160 87 9 good
2 Zhu Shenzhen girl 177 66 8 excellent
… … … … … … … … …

student.txt中
ID Name City Gender Height C1 。。。 C10 Constitution
202001 Sun Beijing male 1.80 87 。。。 9 good
202003 Tang Hanghai male 1.56 91 。。。 10 general
… … … … … … … … …

两个数据源合并后读入内存,并统计:

1.学生中家乡在Beijing的所有课程的平均成绩。
2.学生中家乡在广州,课程1在80分以上,且课程10在9分以上的男同学的数量。
3.比较广州和上海两地女生的平均体能测试成绩,哪个地区的更强些?
4.学习成绩和体能测试成绩,两者的相关性是多少?

提示:
参考数据结构:

Student{int id;
string name;
vector<float> data;
}

可能用到的公式:

均值公式

协方差公式

z-score规范化

相关性

思路: 用C++简单实现读入,然后计算一下就行了
相关公式:
mean(A):数组A的平均值,std(A):标准差(协方差开方)

//(暂时未完成,有空补充)
暂存代码:

/*------- From IsOreo2XSXXSSSSS220  7        rZZW@BSXXrr;:..,i7XSSS22a2a2SSZ8Zr    ,   X02MS:i:::::X,
r;rX7X7X7XXZr  MM2         iZBXr;;;rirS2XXXS22SSXSXSaa;    .SMM.   22Zi...   .i
77SXXXSXSXS8  2MMMMMa   .,.         .,;XaX7rS2880Z0Zr   :ZMMMMMZ   .Bari;i:,::7,
8Za2S2SSXSa2  @MMMMMMMBi:.                      ,2;   XMMMMM@MM@    Xai7ri,:::7i
8ZZZZZZ2SS8r .MM@@MMM0,                             SMMMM@@@@@MM    ,S;Xr,,,,:7:
8ZZZZZZZ228: XMM@MMMi                              MMMMM@@@@W@MM.    BM@7...,i7:
0Z8ZZZZ2SS0  8MMMMM                        ,.       i8MMMMM@@@MMi    2MW7.:X22ZX
ZZZZa2SSSaZ  @MMMM,                        ,.          SMMMM@MMM7    rM0XX2Z222S
ZaZZa2aaaaZ  MMMX:                         ,.            rMMMMMMX    .M8Z22222aS
0808ZZZ8ZZ8  MS                           .i               ;@MMMX     0ZS222222S
@WWZZ88ZZa0::   :                         :                  rMM2     Za2S2S222X
WB0ZZ0ZZZZWX    i                       ,:   .                 87     ZZS2S2S22S
02aaZZ880Bi     ;                 ....::.                             ZBaS2S222S
Z2aZZ8Z0B:   ,  i.           ..i:ii:..                                 SW8aaS222
0ZZaa2ZB:  .r;Z. :          ,:.ii                                       SMB82Sa2
B8ZZSaB;  :X  ;M:r;            i.           ,:.:                         8@ZaZaa
Z2ZaZ@Z  :MX  BM; 2i,         :,   ..:,:XSi,...                           02ZZa2
Z228@M   0MMBMMMi , ii,:...,:i:i,rr,.7MMMM0aX, ,:                         70Za2S
aX0@MX  X@@W@@WBi i   ,,i:,,.   X;    X@BBWZZ0X .:                         0aS2S
88WMM  :aWWWWWZ0. :           , M8    0W80BBS2B7 ,,                        2Z222
B0WM0  :ZZZZZa82  i          : XMM@Z0M@000B022Z0. ;                        ;822S
i7Z@X  :r2aZ2XZ: i.          ; 2WWW@WW0B0BB8Sa2B: ;.                       ,ZSSS
X.r8;  :7X7XX7, ::           ; 70BWBWBBBWB822riZ, ;                        ,WZaX
WMZ.,   i7rri  i,            :. 8aZBBB00ZZSa7iiX  :                        ,MMW0
X8r :    ,,. .,               ; i8a7S2a222S;i;X  :.                        :MM@0
i;i :      . ,,               .; .2ri;;r;;ir7r  :,                         XMMWZ
Xra ,        .i                 i. .ii;;;;;:   :.                          2MW@B
7r2Sr                            ,:,.       .:,                            00BB0
27SSB:                              ,,:::::,.                   ;,        XB088Z
X7XX2a                                                           ;i       0ZZ888
7i7r7ai                                                           ;:     XaXXXXr
S7XS7SZ                                                            7    r02aS22X
ZX0aSX2X                                                           r   :Ba2S2SaX
X7XS22r2r                                              .:         i:  :ZXXrX77X7
7ir;;;;rar                                             :.       :i,  ia77XS208B2
7r7X7XXXXZX                                            i     .rr.   ;ZX72Za2a80B
XrXXXXXXXXZai                                          ;,     ii  .7S77r7rr;r;ri
XrXXXX7XXXX2ZS.                                         ii.. .:  rSXrr;;;rrrrXX7
XrX7XXXXSSSSSaZ7,                                         ... ,:XXX7X7XXX7S2ZZa2
X7XSXXXX7r;r;7XXSX:                                         ,;7i.,,....:rXr77i:,
rirr;i;:i:;;rrXX7S2X7i, .                               ,,7XSXr;;;;;;;r;ri,
;:;7X2S2SSX7ii,:ir7X2S7X;i,. . . . .               ..:i7rii;irXXSXr;;rrr;r7X7X7;
aXaa2Xrii:ii;7X0M87,. ,:;rXrr;;:,....       ..,,:i;;7;i,.       ,iX7r;, ..,:iiri
7;r7;ii7SZZ0BW@Z:  ..,,,...,:i;Xrr;;i: .;r. .,:ii:,,   . ...       ;27ii:,.,,:ii
X;7;;;2Z08ZZ0BX      .,,:,,..         ;WMMMZ7:.                  ,r2a2aSSr;;77X;
SXXSXa0B88ZZaB,                  :7Z@MMMMMMMMMMM0aSX7Xrrrrr7XS22Z8ZS77r777XSXSS:
r.;i;ii;rrXXX2Z7:..      ..:r7a80BB08SX;rrri;;rr7XSXX2aX777rrrr;i,:,:,:,,..  .:
*/#pragma GCC optimize(3)
#pragma comment(linker,"/STACK:1024000000,1024000000")
#include <bits/stdc++.h>#define ull unsigned long long
#define ll long long
#define inf 2100000000
#define endl '\n'
#define pii pair<int,int>
#define pll pair<long long,long long>
#define MP make_pair
#define eps 1e-6const double pi=3.14159265358;
const int maxn=3e5+10;
const int mod=1e4+7;using namespace std;struct student {int id;string name;string sex;string hometown;double height;string stamina; //体侧成绩vector<double>data; // 课程1-10的成绩
}database[maxn],datatxt[maxn],dataall[maxn];
int databasecnt=0,datatxtcnt=0;
int allcnt=0;//读取数据库
void readdatabase(string path) {ifstream infile;path+=".data;"infile.open(path);assert(infile.is_open());string s;string tmp;getline(infile,s);int len=s.length();int cnt=0;for(int i=0;i<len;i++) {if(s[i]==' ') {tmp="";if(cnt==0) {database[cnt].id=cnt+1;}else if(cnt==1) {database[cnt].name=tmp;}else if(cnt==2) {database[cnt].sex=tmp;}else if(cnt==3) {database[cnt].hometown=tmp;}else if(cnt==4) {database[cnt].height=stringturn(tmp);}else if(cnt>=5&&cnt<=16) {database[cnt].data.push_back(stringturn(tmp));}}else if(i==len-1) {tmp+=s[i];database[cnt++].stamina=tmp;break;}else {tmp+=s[i];}}databasecnt=cnt;infile.close();
}int pw(int x) {int ans=1,t=10;while(x) {if(x&1) ans*=t;t*=t;x>>=1;}return ans;
}//string转int
int stringturn(string s) {int ans=0;for(int i=s.length();i>=0;i--) {ans+=(s[i]-'0')*pw(s.length()-i-1);}return ans;
}//读取txt
void readtxt(string path) {ifstream infile;path+=".data";infile.open(path);assert(infile.is_open());string s;string tmp;getline(infile,s);int len=s.length();int cnt=0;for(int i=0;i<len;i++) {if(s[i]==',') {tmp="";if(cnt==0) {datatxt[cnt].id=cnt+1;}else if(cnt==1) {datatxt[cnt].name=tmp;}else if(cnt==2) {datatxt[cnt].sex=tmp;}else if(cnt==3) {datatxt[cnt].hometown=tmp;}else if(cnt==4) {datatxt[cnt].height=stringturn(tmp);}else if(cnt>=5&&cnt<=16) {datatxt[cnt].data.push_back(stringturn(tmp));}}else if(i==len-1) {tmp+=s[i];datatxt[cnt++].stamina=tmp;break;}else {tmp+=s[i];}}datatxtcnt=cnt;infile.close();return;
}//合成数据库与txt
void compose() {allcnt=0;for(int i=0;i<databasecnt;i++) {dataall[allcnt++]=database[i];}for(int i=0;i<datatxtcnt;i++) {dataall[allcnt++]=datatxt[i];}
}//输出家乡在北京的学生所有课程平均成绩
void Print1() {vector<double>coursesum;double numofbeijing=0;for(int i=0;i<10;i++) {coursesum.push_back(0);}for(int i=0;i<allcnt;i++) {if(dataall[i].hometown=="Beijing") {numofbeijing++;for(int j=0;j<10;j++) {coursesum[i]+=dataall[i].data[j];}}}cout<<"The students's average grades(10 courses) who live in Beijing : "<<endl;for(int i=0;i<coursesum.size();i++) {cout<<coursesum[i]/numofbeijing<<" ";}cout<<endl;
}//输出家乡在广州,课程1在80分以上,且课程10在9分以上的男同学数量
void Print2() {int ans=0;for(int i=0;i<allcnt;i++) {if(dataall[i].hometown=="Guangzhou"&&dataall[i].data[0]>=80&&dataall[i].data[9]>=9) {ans++;}}cout<<"The numbers of male students who live in Guangzhou and course1's grades greater than 80 and course10's grades greater than 9 is : ";cout<<ans<<endl;
}int turn(string s) {if(s=="bad") return 60;if(s=="normal") return 70;if(s=="great") return 80;if(s=="excellent") return 90;return 0;
}//比较广州与上海两地女生的平均体能成绩,这里假设"bad"=60,"normal"=70,"great"=80,"excellent"=90;
//如果广州强返回0,如果上海强返回1
bool cmp1() {double GZgrades=0,SHgrades=0;double gznum=0,shnum=0;for(int i=0;i<allcnt;i++) {if(dataall[i].hometown=="Guangzhou"&&dataall[i].sex=="female") {gznum++;GZgrades+=turn(dataall[i].stamina);}if(dataall[i].hometown=="Shanghai"&&dataall[i].sex=="female") {shnum++;SHgrades+=turn(dataall[i].stamina);}}return SHgrades>GZgrades;
}void Print3() {if(cmp1()) {cout<<"Shanghai's female student's grades of physical fitness test is greater than Guangzhou";}else {cout<<"Guangzhou's female student's grades of physical fitness test is greater than Shanghai";}cout<<endl;
}//求学习成绩和体测成绩的相关性int main() {ios::sync_with_stdio(false);cin.tie(0),cout.tie(0);string txtpath,databasepath;cout<<"输入txt路径:";cin>>path;cout<<"输入数据库路径:";cin>>databasepath;readdatabase(databasepath);readtxt(path);compose();Print1();Print2();Print3();return 0;
}

机器学习实验《多源数据集成、清洗和统计》 C++ 实现相关推荐

  1. Azure机器学习实验

    实验背景 [实验简介] Azure Machine Learning(简称"AML")是微软在其公有云Azure上推出的基于Web使用的一项机器学习服务,机器学习属人工智能的一个分 ...

  2. 【机器学习PAI实践二】人口普查统计

    产品地址:https://data.aliyun.com/product/learn?spm=a21gt.99266.416540.102.OwEfx2 一.背景 感谢大家关注玩转数据系列文章,我们希 ...

  3. Azure机器学习入门(三)创建Azure机器学习实验

    在此动手实践中,我们将在Azure机器学习Studio中一步步地开发预测分析模型,首先我们从UCI机器学习库的链接下载普查收入数据集的样本并开始动手实践: http://archive.ics.uci ...

  4. 【机器学习实验】用Python进行机器学习实验

    概要 本文是用Python编程语言来进行机器学习小实验的第一篇.主要内容如下: 读入数据并清洗数据 探索理解输入数据的特点 分析如何为学习算法呈现数据 选择正确的模型和学习算法 评估程序表现的准确性 ...

  5. 机器学习实验二---决策树python

    机器学习实验二---决策树python 一.了解一下决策树吧 决策树基本流程 信息增益 决策树的优缺点 二.数据处理 三.决策树的构建 计算给定数据集的香农熵 按照给定特征划分数据集 选择最好的数据划 ...

  6. Android开发之带你轻松集成友盟统计

    友盟统计是什么呢?为什么要集成他呢? 当我们需要获取自己写的软件的装机量和用户使用信息时,这时我们可以集成友盟统计. 首先到友盟统计中注册账号什么的就不废话了,直接看创建项目: 在个人中心中的管理里面 ...

  7. 机器学习实验中的编程技术(part3)--numpy

    学习笔记,仅供参考,有错必纠 文章目录 机器学习实验中的编程技术 numpy中的逻辑运算 numpy中的指数及对数 numpy中的集合操作 取唯一 检测数组中是否包含某些元素 集合的交,并,差,异或 ...

  8. 机器学习实验中的编程技术(part2)--numpy

    学习笔记,仅供参考,有错必纠 文章目录 机器学习实验中的编程技术 numpy中的数据截断 四舍五入 其他 numpy中的和 积 差 梯度 机器学习实验中的编程技术 numpy中的数据截断 四舍五入 # ...

  9. 机器学习实验中的编程技术(part1)--numpy

    学习笔记,仅供参考,有错必纠 文章目录 机器学习实验中的编程技术 numpy中的算术运算 加法 除法 取倒数 取余 取负数 绝对值 numpy中的三角函数与反三角函数 机器学习实验中的编程技术 num ...

  10. 还在用Tensorboard?机器学习实验管理平台大盘点

    文 | SisyphusBJ 源 | Pytorch Lightning wandb.ai comet.ml neptune.ai allegro trains mlflow guild.ai sac ...

最新文章

  1. Python基础入门之解释器安装
  2. 入门训练 Fibonacci数列 c语言
  3. 第三次学JAVA再学不好就吃翔(part106)--字符流
  4. linux查看 idt日志,实现RCP的日志管理
  5. 学生选课系统,第二版
  6. 10.Linux/Unix 系统编程手册(上) -- 时间
  7. textbox wpf 居中_C# + WPF: TextBox中的光标定位问题
  8. plotplayer s/w hevc(h265)解码 问题
  9. 山西省计算机二级考试试题,2011山西省计算机等级考试试题 二级C试题考资料
  10. 暴雪禁止中国玩家参加炉石赛事/ 谷歌推迟发放年终奖/ 推特蓝V增加包年套餐…今日更多新鲜事在此...
  11. properties文件
  12. 一个效率很高的汉字转拼音首字母的函数(未测试)
  13. XILINX FPGA OV5640 摄像头驱动(一)
  14. ckeditor提交时判断是否为空
  15. SpringCloud系列之熔断器Hystrix
  16. python函数的特性_深入Python函数编程的一些特性
  17. 越是穷人,就越需要大数据
  18. 动词ing基本用法_那些动词后加动词的ing形式?
  19. android_secure写权限,android - android.permission.WRITE_SECURE_SETTINGS,系统应用程序中的权限拒绝 - 堆栈内存溢出...
  20. 恺撒密码 python

热门文章

  1. AIGC - Stable Diffusion 学习踩坑实录总结
  2. RPC(2):RPC简介
  3. 【​观察】数据中心业务这张“神秘牌”,如何加码联想中国区提速?
  4. 百度Apollo智能交通白皮书 附下载
  5. 使用js技术对单个div中的滚动条进行样式设置!
  6. 如何基于深度学习实现图像的智能审核?
  7. python再复习(3)函数
  8. 会动的古代名画,如画的江南古镇
  9. 郑州市养老院解决方案,苏州新导助力养老院行业发展
  10. PMP每日一练 | 考试不迷路-9.13(包含敏捷+多选)