Skip to content
This repository was archived by the owner on Aug 19, 2025. It is now read-only.

Commit f0882c7

Browse files
authored
Add files via upload
1 parent 19db9ba commit f0882c7

10 files changed

Lines changed: 719 additions & 0 deletions

File tree

CVerif_CB.cpp

Lines changed: 84 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,84 @@
1+
#include "CVerif_CB.h"
2+
#include <QDate>
3+
4+
CVerif_CB::CVerif_CB() {
5+
}
6+
7+
CVerif_CB::~CVerif_CB() {
8+
}
9+
10+
bool CVerif_CB::getDateCB_OK() {
11+
return dateCB_OK;
12+
}
13+
14+
bool CVerif_CB::getNumeroCB_OK() {
15+
return numeroCB_OK;
16+
}
17+
18+
bool CVerif_CB::getCarteValide() {
19+
return carteValide;
20+
}
21+
22+
void CVerif_CB::setCarteValide() {
23+
if((getNumeroCB_OK() == true) && (getDateCB_OK() == true)) {
24+
carteValide = true;
25+
}
26+
else {
27+
carteValide = false;
28+
}
29+
}
30+
31+
void CVerif_CB::VerifierNumeroCB(unsigned char *numerocb) {
32+
for(int i=0; i<16; i++) {
33+
numeroCB[i] = numerocb[i] - 0x30;
34+
}
35+
int somme = 0, reste = 0, index = 0, N1 = 0;
36+
index = 1;
37+
while(index <= 15) {
38+
N1 = numeroCB[index];
39+
somme = somme + N1;
40+
index = index + 2;
41+
}
42+
index = 0;
43+
while(index <= 15) {
44+
N1 = numeroCB[index];
45+
N1 = N1 * 2;
46+
if(N1 > 9) {
47+
N1 = N1 - 9;
48+
}
49+
somme = somme + N1;
50+
index = index + 2;
51+
}
52+
reste = somme%10;
53+
if(reste == 0) {
54+
numeroCB_OK = true;
55+
}
56+
else {
57+
numeroCB_OK = false;
58+
}
59+
}
60+
61+
void CVerif_CB::VerifierDateCB(unsigned char moiscb, int anneecb) {
62+
QDate DateJour = QDate::currentDate();
63+
if(moiscb < 13) {
64+
if(DateJour.year() < anneecb) {
65+
dateCB_OK = true;
66+
}
67+
else {
68+
if(DateJour.year() <= anneecb) {
69+
if(DateJour.month() <= moiscb) {
70+
dateCB_OK = true;
71+
}
72+
else {
73+
dateCB_OK = false;
74+
}
75+
}
76+
else {
77+
dateCB_OK = false;
78+
}
79+
}
80+
}
81+
else {
82+
dateCB_OK = false;
83+
}
84+
}

CVerif_CB.h

Lines changed: 23 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,23 @@
1+
#ifndef CVERIF_CB_H
2+
#define CVERIF_CB_H
3+
4+
class CVerif_CB
5+
{
6+
private:
7+
unsigned char numeroCB[16];
8+
bool numeroCB_OK;
9+
bool carteValide;
10+
bool dateCB_OK;
11+
12+
public:
13+
CVerif_CB();
14+
~CVerif_CB();
15+
void VerifierNumeroCB(unsigned char *numerocb);
16+
void VerifierDateCB(unsigned char moiscb, int anneecb);
17+
bool getNumeroCB_OK();
18+
bool getDateCB_OK();
19+
bool getCarteValide();
20+
void setCarteValide();
21+
};
22+
23+
#endif // CVERIF_CB_H

CarteBancaire.pro

Lines changed: 29 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,29 @@
1+
QT += core gui
2+
3+
greaterThan(QT_MAJOR_VERSION, 4): QT += widgets
4+
5+
CONFIG += c++11
6+
7+
# You can make your code fail to compile if it uses deprecated APIs.
8+
# In order to do so, uncomment the following line.
9+
#DEFINES += QT_DISABLE_DEPRECATED_BEFORE=0x060000 # disables all the APIs deprecated before Qt 6.0.0
10+
11+
SOURCES += \
12+
CVerif_CB.cpp \
13+
main.cpp \
14+
mainwindow.cpp
15+
16+
HEADERS += \
17+
CVerif_CB.h \
18+
mainwindow.h
19+
20+
FORMS += \
21+
mainwindow.ui
22+
23+
# Default rules for deployment.
24+
qnx: target.path = /tmp/$${TARGET}/bin
25+
else: unix:!android: target.path = /opt/$${TARGET}/bin
26+
!isEmpty(target.path): INSTALLS += target
27+
28+
RESOURCES += \
29+
image.qrc

cb.png

15.7 KB
Loading

image.qrc

Lines changed: 6 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,6 @@
1+
<RCC>
2+
<qresource prefix="/">
3+
<file>cb.png</file>
4+
<file>logo-cb.jpg</file>
5+
</qresource>
6+
</RCC>

logo-cb.jpg

4.42 KB
Loading

main.cpp

Lines changed: 11 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,11 @@
1+
#include "mainwindow.h"
2+
3+
#include <QApplication>
4+
5+
int main(int argc, char *argv[])
6+
{
7+
QApplication a(argc, argv);
8+
MainWindow w;
9+
w.show();
10+
return a.exec();
11+
}

mainwindow.cpp

Lines changed: 53 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,53 @@
1+
#include "mainwindow.h"
2+
#include "ui_mainwindow.h"
3+
#include <iostream>
4+
5+
using namespace std;
6+
7+
MainWindow::MainWindow(QWidget *parent) :
8+
QMainWindow(parent),
9+
ui(new Ui::MainWindow)
10+
{
11+
carteCB = new CVerif_CB();
12+
ui->setupUi(this);
13+
}
14+
15+
MainWindow::~MainWindow()
16+
{
17+
delete ui;
18+
}
19+
20+
void MainWindow::on_PB_Verifier_clicked() {
21+
CVerif_CB verif;
22+
int annee;
23+
unsigned char mois;
24+
unsigned char *numerocb = new unsigned char[16];
25+
char *numerocb2 = new char[16];
26+
strcpy(numerocb2, ui->LE_Numero->text().toLatin1());
27+
28+
for(int i=0; i<16; i++) {
29+
numerocb[i] = numerocb2[i];
30+
}
31+
32+
verif.VerifierNumeroCB(numerocb);
33+
annee = ui->LE_Annee->text().toInt();
34+
mois = (unsigned char)ui->LE_Mois->text().toInt();
35+
verif.VerifierDateCB(mois,annee);
36+
verif.setCarteValide();
37+
38+
if(verif.getCarteValide() == true) {
39+
ui->label_Verification->setText("Valid card !");
40+
}
41+
else {
42+
if(verif.getNumeroCB_OK() == true) {
43+
ui->label_Verification->setText("Invalid date");
44+
}
45+
else {
46+
ui->label_Verification->setText("Invalid number");
47+
}
48+
}
49+
}
50+
51+
void MainWindow::on_PB_Quitter_clicked() {
52+
exit(0);
53+
}

mainwindow.h

Lines changed: 29 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,29 @@
1+
#ifndef MAINWINDOW_H
2+
#define MAINWINDOW_H
3+
4+
#include <QMainWindow>
5+
#include "CVerif_CB.h"
6+
7+
namespace Ui {
8+
class MainWindow;
9+
}
10+
11+
class MainWindow : public QMainWindow
12+
{
13+
Q_OBJECT
14+
15+
public:
16+
explicit MainWindow(QWidget *parent = 0);
17+
~MainWindow();
18+
19+
private slots:
20+
void on_PB_Verifier_clicked();
21+
void on_PB_Quitter_clicked();
22+
23+
private:
24+
Ui::MainWindow *ui;
25+
26+
CVerif_CB *carteCB;
27+
};
28+
29+
#endif // MAINWINDOW_H

0 commit comments

Comments
 (0)