· 7 years ago · May 08, 2019, 12:02 AM
1#include <iostream>
2#include <fstream>
3#include <string>
4#include <stdlib.h>
5#include <time.h>
6#include <cstdlib>
7
8std::string generateEmail()
9{
10 std::string output = "";
11 const char lettersNumbers[] =
12 "0123456789"
13 "ABCDEFGHIJKLMNOPQRSTUVWXYZ"
14 "abcdefghijklmnopqrstuvwxyz";
15 int emailSize = rand() % 26 + 1;
16 for(int i=0; i < emailSize; i++)
17 output += lettersNumbers[rand() % (sizeof(lettersNumbers) - 1)];
18
19
20 return output;
21}
22
23std::string generateBody()
24{
25 std::string output = "";
26 const char lettersNumbers[] =
27 "0123456789"
28 "ABCDEFGHIJKLMNOPQRSTUVWXYZ"
29 "abcdefghijklmnopqrstuvwxyz";
30 int bodySize = rand() % 500 + 30;
31 for(int i=0; i < bodySize; i++)
32 output += lettersNumbers[rand() % (sizeof(lettersNumbers) - 1)];
33
34 return output;
35}
36
37std::string generateDomain()
38{
39 std::string domains[5] = {"gmail.com", "outlook.com", "live.com", "yahoo.com", "hotmail.com"};
40 int randDomain = rand() % 5;
41 return domains[randDomain];
42}
43
44void generateUsers()
45{
46 std::ofstream outputFile("15k_users_query_2.txt");
47 if(outputFile.is_open())
48 {
49 std::string insertQuery = "insert into [USER] (FIRSTNAME, USERNAME, EMAIL, PASSWORD) values";
50 for(int i=0; i < 15000; i++)
51 {
52
53 std::string s = generateEmail();
54 std::string values = "('" + s + "', '" + s + "', '" + s + "@"+ generateDomain() + "', 'testpwd123')";
55 outputFile << insertQuery << values << std::endl;
56 }
57 outputFile.close();
58 return;
59 }
60 else std::cout << "Can't open file.\n";
61}
62
63void generateEmailQuery()
64{
65 std::ofstream outputFile("200k_emails_2.txt");
66 if(outputFile.is_open())
67 {
68 for(int i=0; i < 200000; i++)
69 {
70
71 int senderID = rand() % 15000 + 1; //15000 users, IDs from 1 to 15000
72 int receiverID = rand() % 15000 + 1; //15000 users, IDs from 1 to 15000
73 int archived = rand() % 2;
74 std::string insertQuery = "insert into EMAIL (SENDERID, RECEIVERID, [SUBJECT], BODY, [DATE], ARCHIVED) values";
75 //std::string values = "(" + std::to_string(senderID) + ", " + std::to_string(receiverID) + ", '" + generateEmail() + "', '" + generateBody() + "', GetDate(), " + archived + ")";
76 std::string values = "(" + std::to_string(senderID) + ", " + std::to_string(receiverID) + ", '" + generateEmail() + "', '" + generateBody() + "', GetDate(), " + std::to_string(archived) + ")";
77 outputFile << insertQuery << values << std::endl;
78
79 }
80 outputFile.close();
81 return;
82 }
83}
84
85int main()
86{
87 std::srand(time(NULL));
88 generateUsers();
89 generateEmailQuery();
90 return 0;
91}