-
Notifications
You must be signed in to change notification settings - Fork 0
/
Trainee.cpp
136 lines (104 loc) · 3.13 KB
/
Trainee.cpp
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
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
#include "Trainee.h"
Trainee::Trainee(int i, string first, string last, int a, string fac, string ac, double gp)
:Worker(i, first, last, a)
{
setFaculty(fac);
setYear(ac);
setGpa(gp);
}
void Trainee::setFaculty(string f){
faculty = f;
}
void Trainee::setYear(string y){
academic_year = y;
}
void Trainee::setGpa(double g){
gpa = (g >= 0 && g <= 4) ? g : 0.0;
}
string Trainee::getFaculty()const{
return faculty;
}
string Trainee::getYear()const{
return academic_year;
}
double Trainee::getGpa()const{
return gpa;
}
void Trainee::createTable(sqlite3 *db, char *err, string table_name){
sqlite3_open("com.db", &db);
string s = "create table " + table_name +
" (id int unique, FirstName varchar(20), LastName varchar(20), Age int, Faculty varchar(60), Academic Year varchar(30), Gpa double)";
sqlite3_exec(db, s.c_str(), NULL, 0, &err);
sqlite3_close(db);
}
string Trainee::modifyAdd(string table_name){
string c = "," , c1 = "'";
string s = "insert into " + table_name + " values ("+ c1 + to_string(this->getId()) + c1 + c + c1 + this->getFirstName() + c1 + c +
c1 + this->getLastName()+ c1 + c + c1 + to_string(this->getAge())+ c1 + c + c1 + this->getFaculty() + c1 + c + c1 + this->getYear() + c1 + c
+ c1 + to_string(this->getGpa()) + c1 + ")";
return s;
}
void Trainee::add(sqlite3 *db, string table_name, char *err){
sqlite3_open("com.db", &db);
int id = message("Please Enter new id");
string first, last, fac, ac;
int age;
double gpa;
cout << "Please Enter first name, last name and age" << endl;
cin >> first >> last >> age;
getchar();
cout << "Please Enter the faculty name" << endl;
getline(cin, fac);
cout << "PLease enter the academic Year and gpa" << endl;
cin >> ac >> gpa;
setId(id);
setFirstName(first);
setLastName(last);
setAge(age);
setFaculty(fac);
setYear(ac);
setGpa(gpa);
string s = modifyAdd(table_name);
sqlite3_exec(db, s.c_str(), NULL, 0, &err);
if(err){
cerr << "#id " << id << " is already exist" << endl;
err = NULL;
exit(1);
}
sqlite3_close(db);
}
string Trainee::modifyEdit(string table_name){
string c = ",";
string s = "update " + table_name + " set FirstName = "+ this->getFirstName() + c + " LastName = " + this->getLastName() + c + " Age = " + to_string(this->getAge()) + c + " Faculty = "
+ this->getFaculty() + c + " AcademicYear = " + this->getYear() + c + " Gpa = " + to_string(this->getGpa());
return s;
}
void Trainee::edit(sqlite3 *db, string table_name, char *err){
sqlite3_open("com.db", &db);
int id = message("Please Enter the id u wanna update");
string first, last, fac, ac;
int age;
double gpa;
cout << "Please Enter first name, last name and age" << endl;
cin >> first >> last >> age;
getchar();
cout << "Please Enter the faculty name" << endl;
getline(cin, fac);
cout << "PLease enter the academic Year and gpa" << endl;
cin >> ac >> gpa;
setId(id);
setFirstName(first);
setLastName(last);
setAge(age);
setFaculty(fac);
setYear(ac);
setGpa(gpa);
string s = modifyEdit(table_name);
sqlite3_exec(db, s.c_str(), NULL, 0, &err);
if(err){
cerr << "#id " << id << " is already not exist" << endl;
err = NULL;
exit(1);
}
sqlite3_close(db);
}