-
Notifications
You must be signed in to change notification settings - Fork 0
Expand file tree
/
Copy pathresultbuilder.cpp
More file actions
78 lines (63 loc) · 1.99 KB
/
Copy pathresultbuilder.cpp
File metadata and controls
78 lines (63 loc) · 1.99 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
#include "resultbuilder.h"
#define NQ 12
ResultBuilder::ResultBuilder():database(Database::getInstance())
{
}
QString ResultBuilder::getDetailedResults(Team *team)
{
this->getCompareString(team);
if(highCompatibility.count()<=0){
highCompatibility.append("None");
}
QString hCompString = highCompatibility.join('_');
if(mediumCompatibility.count()<=0){
mediumCompatibility.append("None");
}
QString mCompString = mediumCompatibility.join('_');
if(lowCompatibility.count()<=0){
lowCompatibility.append("None");
}
QString lCompString = lowCompatibility.join('_');
QStringList list;
list.append(hCompString);
list.append(mCompString);
list.append(lCompString);
QString final = list.join('/');
return final;
}
void ResultBuilder::getCompareString(Team *team)
{
highCompatibility.clear();
mediumCompatibility.clear();
lowCompatibility.clear();
QList<int> teamMemberIds = team->getTeamMembers();
QList<Student>* teamMembers = new QList<Student>();
for(int i=0;i<teamMemberIds.count();i++){
Student student = database->getStudentByID(teamMemberIds.at(i));
teamMembers->append(student);
}
PciBuilder pci;
for(int i=0;i<NQ;i++)
{
int qPci = 0;
int count = 0;
QString title = teamMembers->at(0).getQualifications().at(i)->getTitle();
for(int j=0; j<teamMembers->count() - 1;j++){
Student stu1 = teamMembers->at(j);
for(int k = j+1;k<teamMembers->count();k++){
Student stu2 = teamMembers->at(k);
qPci += pci.calculatePci(*stu1.getQualifications().at(i), *stu2.getQualifications().at(i));
count++;
}
}
if(qPci/count <= 4){
highCompatibility.append(title);
}
else if(qPci/count <=8){
mediumCompatibility.append(title);
}
else if(qPci/count<16){
lowCompatibility.append(title);
}
}
}