Skip to content
Permalink
Browse files
Add files via upload
  • Loading branch information
mehrar committed Nov 29, 2021
1 parent 41ab464 commit a1b7e58de103e6f00ef4cc47cc556e8bfe959465
Show file tree
Hide file tree
Showing 2 changed files with 501 additions and 0 deletions.
396 main.cpp
@@ -0,0 +1,396 @@
#include <iostream>
#include <istream>
#include <stdio.h>
#include <stdlib.h>
#include <sqlite3.h> /*libraries*/
#include "insert_db.h"
#include "create_db.h"
#include "select_db.h"
#include "insert1_db.h"
#include "create1_db.h"
#include "select1_db.h"
#include<bits/stdc++.h>
#include <string>
#include<algorithm>
using namespace std;

//https://github.com/haarcuba/cpp-text-table
//https://www.tutorialspoint.com/sqlite/sqlite_c_cpp.htm
class student_data{
protected: //variables
string modules,classes, lecturers, room;
int studentID;
string name, surname, username, email, password;
string log1, pass1, startTiming, endTiming;

public:
string get_modules(){
return modules;
}
void change_modules(string _modules){
modules=_modules;
}
int get_studentID(){
return studentID;
}
void change_studentID(int _studentID){
studentID=_studentID;
}
string get_classes(){
return classes;
}

void change_classes(string _classes){
classes=_classes;
}

string get_lecturers(){
return lecturers;
}
void change_lecturers(string _lecturers){
lecturers=_lecturers;
}
string get_room(){
return room;
}
void change_room(string _room){
room=_room;
}

string get_surname(){
return surname;
}
void change_surname(string _surname){
surname=_surname;
}
string get_username(){
return username;
}
void change_username(string _username){
username=_username;
}
string get_email(){
return email;
}
void change_email(string _email){
email=_email;
}
string get_log1(){
return log1;
}
void change_log1(string _log1){
log1=_log1;
}
string get_pass1(){
return pass1;
}
void change_pass1(string _pass1){
pass1=_pass1;
}
string get_password(){
return password;
}
void change_password(string _password){
password=_password;
}
string get_name(){
return name;
}
void change_name(string _name){
name=_name;
}
string get_startTiming(){
return startTiming;
}
void change_startTiming(string _startTiming){
startTiming=_startTiming;
}
string get_endTiming(){
return endTiming;
}
void change_endTiming(string _endTiming){
endTiming=_endTiming;
}
};






int dayNumber(int day, int month, int year)
{
static int t[] = { 0, 3, 2, 5, 0, 3, 5, 1, 4, 6, 2, 4 };
year -= month < 3;
return ( year + year/4 - year/100 + year/400 + t[month-1] + day) % 7;
}

string getMonthName(int monthNumber)
{
string months[] = {"January", "February", "March", "April", "May", "June", "July", "August", "September", "October", "November", "December"
};
return (months[monthNumber]);
}

int numberOfDays (int monthNumber, int year)
{
// January
if (monthNumber == 0)
return (31);

// February
if (monthNumber == 1)
{
// If the year is leap then February has
// 29 days
if (year % 400 == 0 ||
(year % 4 == 0 && year % 100 != 0))
return (29);
else
return (28);
}

// March
if (monthNumber == 2)
return (31);

// April
if (monthNumber == 3)
return (30);

// May
if (monthNumber == 4)
return (31);

// June
if (monthNumber == 5)
return (30);

// July
if (monthNumber == 6)
return (31);

// August
if (monthNumber == 7)
return (31);

// September
if (monthNumber == 8)
return (30);

// October
if (monthNumber == 9)
return (31);

// November
if (monthNumber == 10)
return (30);

// December
if (monthNumber == 11)
return (31);
}
int showingthetimetable(){
string Sdates;
select1_db db;
cout << "When does your term start? dd/mm/yyyy"; cin >> Sdates;
int days;
Sdates.erase(remove(Sdates.begin(), Sdates.end(), '/'), Sdates.end());
string monthdate = Sdates.substr(2,2);
int month = stoi(monthdate);
string yeardate = Sdates.substr(4,4);
int year = stoi(yeardate);
printf (" Calendar - %d\n\n", year);

// Index of the day from 0 to 6
int current = dayNumber (1, month, year);
string arrayofdays[] = {"Sun","Mon","Tue","Wed","Thu","Fri","Sat"};
cout << arrayofdays[current];

days = numberOfDays (month, year);
// Print the current month name
printf("\n ----------------------------------------------------%s---------------------------------------------------\n",
getMonthName (month).c_str());

// Print the columns
printf(" Sun Mon Tue Wed Thu Fri Sat\n");

// Print appropriate spaces
int k;
for (k = 0; k < current; k++)
printf(" ");

for (int j = 1; j <= days; j++)
{
printf("%15d", j);

if (++k > 6)
{
k = 0;
printf("\n");
}
}

if (k)
printf("\n");

current = k;

//cout << db.printingeverything();this part doesn’t work so my lessons don’t come and i remove it do it doesn't stop the program
return 0;
};



int Timetablesforstudent(){
student_data s;
string stringtemp;
int inttemp;
int term;
int option;
cout << "Which term are you entering lessons for? :"; cin >> term;
cout << "Welcome to term" << term << "please enter all your lessons for this term" <<endl;
bool another = true;
while(another){
cout << "Student ID"; cin >> inttemp;
s.change_studentID(inttemp);
cout << "What is the code of your class. :"; cin >> stringtemp;
s.change_modules(stringtemp);
cout << "The date of your class. In dd/mm/yyyy format. :"; cin >> stringtemp;
s.change_classes(stringtemp);
cout << "Who is your lecturer for this class :"; cin >> stringtemp;
s.change_lecturers(stringtemp);
cout << "What is the room number of your class:"; cin >> stringtemp;
s.change_room(stringtemp);
cout << "When is the start of your lecture. Using the 24 hours clock :"; cin >> inttemp;
s.change_startTiming(stringtemp);
cout << "When is the end of your lecture. Using the 24 hours clock :"; cin >> inttemp;
s.change_endTiming(stringtemp);
insert1_db(s.get_studentID(), s.get_modules(), s.get_classes(), s.get_lecturers(), s.get_room(), s.get_startTiming(), s.get_endTiming());

cout << "Do you eant another lesson enter 1 for yes or 0 for no? :"; cin >> option;
if(option == 1){
another = true;
}
else{
another = false;
}
showingthetimetable();

}
return 0; // need to return something afterwards.
}



int optionafterverifying(){
int option;
menu:
cout << "[1] Enter all of your lessons" <<endl;
cout << "[2] Show your timetable" <<endl;
cout << "Option: "; cin >> option;
create1_db();
switch(option){
case 1:
Timetablesforstudent();
break;

case 2:
showingthetimetable();
break;
};
return 0;
}

int login(){
select_db db;
string log1, pass1;
cout << "Please enter your student details to Login :" <<endl;
cout << "Username :"; cin >> log1;
cout << "Password :"; cin >> pass1;


string returnedvalue = db.matchingusername(log1);
string returnedvalue1 = db.matchingpassword(pass1);


if(returnedvalue == "Not In Database" && returnedvalue1 == "Not In Database"){
cout << "Account not in the database." << endl;
login();
}else if(returnedvalue == log1 && returnedvalue1 != pass1){
cout << "Invalid password" << endl;
login();
}else if(returnedvalue != log1 && pass1 == returnedvalue1 ){
cout << "Invalid username" << endl;
login();
}else if(returnedvalue == log1 && pass1 == returnedvalue1){
cout << "Correct credentials. Welcome." << endl;
optionafterverifying();
}


};


int signup(){
student_data s;
string stringtemp;
int inttemp;
string username, password, retry;

cout << "Student ID :"; cin >> inttemp;
s.change_studentID(inttemp);
cout << "Name :"; cin >> stringtemp;
s.change_name(stringtemp);
cout << "Surname :"; cin >> stringtemp;
s.change_surname(stringtemp);
username = s.get_surname() + s.get_name()[0];
s.change_username(username);
cout << "You user name is : " << username << endl;
cout << "Enter your school email :"; cin >> stringtemp;
s.change_email(stringtemp);
cout << "Password :"; cin >> password;
stringtemp = password;
s.change_password(stringtemp);
cout << "Enter Password again :"; cin >> retry;

insert_db(s.get_studentID(), s.get_name(), s.get_surname(), s.get_username(), s.get_email(), s.get_password());

if (password == retry){
cout << "Password match" << endl;
login();
return 0;
}
else{
cout << "Try again, password doesnt match.";
signup();
}
};


int signuporlogin(){
int option;

menu:
cout << "[1] Sign Up" <<endl;
cout << "[2] Log In" <<endl;
cin >> option;

switch(option){
case 1:
signup();
break;

case 2:
login();
break;

};
return 0;
}

int main() {
create_db();
signuporlogin();
return 0;
}

0 comments on commit a1b7e58

Please sign in to comment.