4.2. LE MODELE PHYSIQUE DE TRAITEMENTS
  
Gestion Académique 
Barre de menus 
Préparation
résultats 
Pré 
inscription 
Impression 
Validation
dossier 
Préparation
résultats 
Quitter 
Enrôlement 
Aperçu avant
impression 
Menu Inscription 
Menu Concours 
Menu Scolarité 
Confirmation
inscription 
Complément ation
dossier 
Menu Délibération 
Harmonisatio n des
points 
Suivi délibérations 
Saisie --
Enseignant 
Menu Sécurité 
Modification des
comptes 
Paramètres
académiques 
Création
des comptes
ut. 
Login 
Mot de passe 
Nom de l'utilisateur Domaine d'activité 
Dans le cadre de ce mémoire, nous allons jongler un peu
entre la structuration par des menus et surtout le regroupement d'ULT en
programmes en fonction de la nature des ULT et des objectifs de
modularité. En d'autres termes, nous exécuterons notre projet
dans l'environnement Windows tout en regroupant les grandes fonctions de
celui-ci dans des menus et ces derniers sont structurés en fonction de
la nature des ULT et des objectifs de modularité prévus. Cela
étant, le modèle physique de traitements (MPT) issu du projet de
la « Gestion Académique » tenant compte des objectifs
fondamentaux de l'informatisation ("Gestion des inscriptions et
scolarité" et "Préparation et suivi des
délibérations") du système d'information se
présente comme suit : 
174 
Le modèle physique des traitements a été
réalisé par le langage de programmation orientée objet
Visual C++ 6.0 comme nous l'avons explicité ci-dessus. Visual C++
utilise un certain nombre des fichiers, comme par exemple : les fichiers .cpp
et .rc. Les codes associés à ce MPT en ce qui concerne le fichier
MainFrm.cpp de la classe de base CMainFrame se
présentent comme suit : 
// MainFrm.cpp : implementation of the CMainFrame class // 
#include "stdafx.h" 
#include "GESTAC.h" 
#include "MainFrm.h" 
//Mes classes en-têtes 
#include "PreInscriptionDlg.h" 
#include "PreparationDeliDlg.h" 
#include "SaisieCoteDlg.h" 
#include "SuiviDeliDlg.h" 
#include "ValidationInscDlg.h" 
#include "PreInscriptionDlg.h" 
#include "EnrolementDlg.h" 
#include "ConcoursDlg.h" 
#include "ComplementationDossierDlg.h" 
#include "ConfirmationInsDlg.h" 
#ifdef _DEBUG 
#define new DEBUG_NEW 
#undef THIS_FILE 
static char THIS_FILE[] = __FILE__; 
#endif 
/////////////////////////////////////////////////////////////////////////////
// CMainFrame 
IMPLEMENT_DYNCREATE(CMainFrame, CFrameWnd)
BEGIN_MESSAGE_MAP(CMainFrame, CFrameWnd) 
//{{AFX_MSG_MAP(CMainFrame) 
ON_WM_CREATE() 
ON_COMMAND(ID_CONCOURS_PRPARATIONRSULTATS,
OnConcoursPrparationrsultats) ON_COMMAND(ID_DLIBRATION_PRPARATIONRSULTATS,
OnDlibrationPrparationrsultats) ON_COMMAND(ID_DLIBRATION_SAISIEENSEIGNANT,
OnDlibrationSaisieenseignant) ON_COMMAND(ID_DLIBRATION_SUIVIDLIBRATION,
OnDlibrationSuividlibration) ON_COMMAND(ID_INSCRIPTION_ENRLEMENT,
OnInscriptionEnrlement) ON_COMMAND(ID_INSCRIPTION_PRINSCRIPTION,
OnInscriptionPrinscription) ON_COMMAND(ID_INSCRIPTION_VALIDATIONDOSSIER,
OnInscriptionValidationdossier)
ON_COMMAND(ID_SCOLARIT_COMPLMENTATIONDOSSIER, 
OnScolaritComplmentationdossier) 
ON_COMMAND(ID_SCOLARIT_CONFIRMATIONINSCRIPTION, 
OnScolaritConfirmationinscription) 
ON_COMMAND(ID_SCURITGESTAC_CRATIONDESCOMPTESUTILISATEURS, 
OnScuritgestacCrationdescomptesutilisateurs) 
ON_COMMAND(ID_SCURITGESTAC_MODIFICATIONCOMPTE, 
OnScuritgestacModificationcompte) 
ON_COMMAND(ID_SCURITGESTAC_PARAMTRESACADMIQUES, 
OnScuritgestacParamtresacadmiques) 
ON_COMMAND(ID_APP_EXIT, OnAppExit) 
//}}AFX_MSG_MAP 
END_MESSAGE_MAP() 
175 
} 
static UINT indicators[] = { 
ID_SEPARATOR, // status line indicator 
ID_INDICATOR_CAPS, ID_INDICATOR_NUM, ID_INDICATOR_SCRL, }; 
/////////////////////////////////////////////////////////////////////////////
// CMainFrame construction/destruction 
CMainFrame::CMainFrame() 
{ 
// TODO: add member initialization code here 
} 
CMainFrame::~CMainFrame() 
{ 
} 
int CMainFrame::OnCreate(LPCREATESTRUCT lpCreateStruct) 
{ 
if (CFrameWnd::OnCreate(lpCreateStruct) == -1) 
return -1; 
if (!m_wndToolBar.CreateEx(this, TBSTYLE_FLAT, WS_CHILD |
WS_VISIBLE | CBRS_TOP | CBRS_GRIPPER | CBRS_TOOLTIPS | CBRS_FLYBY |
CBRS_SIZE_DYNAMIC) || !m_wndToolBar.LoadToolBar(IDR_MAINFRAME)) 
{ 
TRACE0("Failed to create toolbar\n"); 
return -1; // fail to create 
} 
if (!m_wndStatusBar.Create(this) || 
!m_wndStatusBar.SetIndicators(indicators,
sizeof(indicators)/sizeof(UINT))) 
{ 
TRACE0("Failed to create status bar\n"); 
return -1; // fail to create 
} 
// TODO: Delete these three lines if you don't want the toolbar
to // be dockable 
m_wndToolBar.EnableDocking(CBRS_ALIGN_ANY); 
EnableDocking(CBRS_ALIGN_ANY); 
DockControlBar(&m_wndToolBar); 
return 0; 
} 
BOOL CMainFrame::PreCreateWindow(CREATESTRUCT& cs) 
{ 
if( !CFrameWnd::PreCreateWindow(cs) ) 
return FALSE; 
// TODO: Modify the Window class or styles here by modifying 
// the CREATESTRUCT cs 
return TRUE; 
176 
} 
/////////////////////////////////////////////////////////////////////////////
// CMainFrame diagnostics 
#ifdef _DEBUG 
void CMainFrame::AssertValid() const 
{ 
CFrameWnd::AssertValid(); 
} 
void CMainFrame::Dump(CDumpContext& dc) const 
{ 
CFrameWnd::Dump(dc); 
} 
#endif //_DEBUG 
/////////////////////////////////////////////////////////////////////////////
// CMainFrame message handlers 
void CMainFrame::OnConcoursPrparationrsultats() 
{ 
// TODO: Add your command handler code here 
CPreparationDeliDlg prepdeli; 
prepdeli.DoModal(); 
} 
void CMainFrame::OnDlibrationPrparationrsultats() 
{ 
// TODO: Add your command handler code here 
CConcoursDlg conco; 
conco.DoModal(); 
} 
void CMainFrame::OnDlibrationSaisieenseignant() 
{ 
// TODO: Add your command handler code here 
CSaisieCoteDlg saiscot; 
saiscot.DoModal(); 
} 
void CMainFrame::OnDlibrationSuividlibration() 
{ 
// TODO: Add your command handler code here 
CSuiviDeliDlg suivi; 
suivi.DoModal(); 
} 
void CMainFrame::OnInscriptionEnrlement() 
{ 
// TODO: Add your command handler code here 
CEnrolementDlg enrol; 
enrol.DoModal(); 
} 
void CMainFrame::OnInscriptionPrinscription() 
{ 
// TODO: Add your command handler code here 
CPreInscriptionDlg preinsc; 
preinsc.DoModal(); 
} 
void CMainFrame::OnInscriptionValidationdossier() 
{ 
// TODO: Add your command handler code here 
CValidationInscDlg valdoss; 
valdoss.DoModal(); 
177 
void CMainFrame::OnScolaritComplmentationdossier() { 
// TODO: Add your command handler code here
CComplementationDossierDlg complem; complem.DoModal(); 
} 
void CMainFrame::OnScolaritConfirmationinscription() 
{ 
// TODO: Add your command handler code here 
CConfirmationInsDlg confins; 
confins.DoModal(); 
} 
void CMainFrame::OnScuritgestacCrationdescomptesutilisateurs() 
{ 
// TODO: Add your command handler code here 
} 
void CMainFrame::OnScuritgestacModificationcompte() 
{ 
// TODO: Add your command handler code here 
} 
void CMainFrame::OnScuritgestacParamtresacadmiques() 
{ 
// TODO: Add your command handler code here 
} 
void CMainFrame::OnDlibrationHarmonisationetprquation() 
{ 
// TODO: Add your command handler code here 
} 
void CMainFrame::OnAppExit() 
{ 
// TODO: Add your command handler code here 
AfxMessageBox("Nous vous remercions d'avoir choisi GESTAC. Nous
vous souhaitons une bonne détente.",MB_OK+MB_ICONINFORMATION); 
exit(1); 
} 
En outre, nous vous présentons ci-dessous les codes du
fichier LonginDlg.cpp de la classe CLonginDlg héritant
les propriétés de la classe de base CDialog. 
// LonginDlg.cpp : implementation file 
// 
#include "stdafx.h" 
#include "GESTAC.h" 
#include "LonginDlg.h" 
//Mes classes 
#include "SecuriteSet.h" 
#ifdef _DEBUG 
#define new DEBUG_NEW 
#undef THIS_FILE 
static char THIS_FILE[] = __FILE__; 
#endif 
178 
} 
/////////////////////////////////////////////////////////////////////////////
// CLonginDlg dialog 
CLonginDlg::CLonginDlg(CWnd* pParent /*=NULL*/) 
: CDialog(CLonginDlg::IDD, pParent) 
{ 
//{{AFX_DATA_INIT(CLonginDlg) 
m_Motdepasse = _T(""); 
m_Nomutilisateur = _T(""); 
m_Initiales = _T(""); 
m_Domainedactivite = _T(""); 
m_MatriculeComboBoxString = _T(""); 
//}}AFX_DATA_INIT 
} 
void CLonginDlg::DoDataExchange(CDataExchange* pDX) 
{ 
CDialog::DoDataExchange(pDX); 
//{{AFX_DATA_MAP(CLonginDlg) 
DDX_Control(pDX, IDC_COMBO1, m_MatriculeComboBoxCtrl); 
DDX_Control(pDX, IDC_BUTTON1, m_Abandonner); 
DDX_Text(pDX, IDC_EDIT5, m_Motdepasse); 
DDX_Text(pDX, IDC_EDIT2, m_Nomutilisateur); 
DDX_Text(pDX, IDC_EDIT3, m_Initiales); 
DDX_Text(pDX, IDC_EDIT4, m_Domainedactivite); 
DDX_CBString(pDX, IDC_COMBO1, m_MatriculeComboBoxString); 
//}}AFX_DATA_MAP 
} 
BEGIN_MESSAGE_MAP(CLonginDlg, CDialog) 
//{{AFX_MSG_MAP(CLonginDlg) 
ON_BN_CLICKED(IDC_BUTTON1, OnAbandonner) 
ON_CBN_CLOSEUP(IDC_COMBO1, OnCloseupCombo1) 
//}}AFX_MSG_MAP 
END_MESSAGE_MAP() 
/////////////////////////////////////////////////////////////////////////////
// CLonginDlg message handlers 
void CLonginDlg::OnAbandonner() 
{ 
// TODO: Add your control notification handler code here 
AfxMessageBox("Nous vous remercions d'avoir choisi GESTAC. Nous
vous souhaitons une bonne détente.",MB_OK+MB_ICONINFORMATION); 
exit(1); 
} 
BOOL CLonginDlg::OnInitDialog() { 
CDialog::OnInitDialog(); 
// TODO: Add extra initialization here UpdateData(TRUE);
CSecuriteSet secur; secur.m_strSort="[Matricule_Utilisateur]"; if
(!secur.IsOpen()) 
secur.Open(); 
if(secur.IsEOF() || secur.IsBOF()) 
{ 
secur.Close(); 
secur.m_strSort=""; 
179 
else 
{ 
secur.MoveFirst(); 
CString Tempo =""; 
while(!secur.IsEOF()) 
{ 
if(Tempo != secur.m_Matricule_Utilisateur) 
{ 
m_MatriculeComboBoxCtrl.AddString(secur.m_Matricule_Utilisateur); 
Tempo = secur.m_Matricule_Utilisateur; 
} 
secur.MoveNext(); 
} 
secur.Close(); 
secur.m_strSort=""; 
} 
UpdateData(FALSE); 
return TRUE; // return TRUE unless you set the focus to a
control 
// EXCEPTION: OCX Property Pages should return FALSE 
} 
void CLonginDlg::OnCloseupCombo1() 
{ 
// TODO: Add your control notification handler code here 
UpdateData(TRUE); 
CSecuriteSet secur; 
secur.m_strFilter
="[Matricule_Utilisateur]='"+m_MatriculeComboBoxString+"'"; 
if (!secur.IsOpen()) 
secur.Open(); 
m_Nomutilisateur = _T(secur.m_Nom_Utilisateur); 
m_Initiales = _T(secur.m_Initiales_Utilisateur); 
m_Domainedactivite = _T(secur.m_Domaine_Activit_); 
m_MatriculeComboBoxString = _T(secur.m_Matricule_Utilisateur); 
secur.Close(); 
UpdateData(FALSE); 
} 
void CLonginDlg::OnOK() 
{ 
// TODO: Add extra validation here 
UpdateData(TRUE); 
CSecuriteSet secur; 
secur.m_strFilter ="[Mot_de_passe]='"+m_Motdepasse+"' AND 
[Matricule_Utilisateur]='"+m_MatriculeComboBoxString+"'"; 
if (!secur.IsOpen()) 
secur.Open(); 
if (m_Nomutilisateur == _T("") || m_Initiales == _T("") ||
m_Domainedactivite == _T("") || 
m_MatriculeComboBoxString == _T("")) 
{ 
AfxMessageBox("Veuillez sélectionner un numéro
matricule avant de continuer. S.V.P.",MB_OK+MB_ICONINFORMATION); 
return; 
} 
if (m_Motdepasse != secur.m_Mot_de_passe ||
m_MatriculeComboBoxString != secur.m_Matricule_Utilisateur) 
{ 
int iResult = 
MessageBox("Nous sommes désolés ! Votre mot de
passe n'est pas correct. Si vous voulez essayer de nouveau, appuyez sur le
bouton OUI.", 
180 
"Mot de passe incorrect !", 
MB_YESNO+MB_ICONEXCLAMATION); 
if (iResult == IDYES) 
{ 
m_Motdepasse = _T(""); 
return; 
} 
if (iResult == IDNO) 
{ 
AfxMessageBox("Merci d'avoir bien voulu essayer d'y
accéder. La prochaine fois vous y
parviendrez.",MB_OK+MB_ICONEXCLAMATION); 
exit(1); 
} 
} 
secur.Close(); 
UpdateData(FALSE); 
CDialog::OnOK(); 
} 
Pour clore, voici les codes du fichier SecuriteSet de
la classe CSecuriteSet héritant les propriétés de
la classe de base CRecordset. 
// SecuriteSet.cpp : implementation of the CSecuriteSet class 
// 
#include "stdafx.h" 
#include "GESTAC.h" 
#include "SecuriteSet.h" 
#ifdef _DEBUG 
#define new DEBUG_NEW 
#undef THIS_FILE 
static char THIS_FILE[] = __FILE__; 
#endif 
/////////////////////////////////////////////////////////////////////////////
// CSecuriteSet implementation IMPLEMENT_DYNAMIC(CSecuriteSet, CRecordset)
CSecuriteSet::CSecuriteSet(CDatabase* pdb) 
: CRecordset(pdb) 
{ 
//{{AFX_FIELD_INIT(CSecuriteSet) m_Matricule_Utilisateur =
_T(""); m_Nom_Utilisateur = _T(""); m_Domaine_Activit_ = _T("");
m_Initiales_Utilisateur = _T(""); m_Mot_de_passe = _T(""); 
m_nFields = 5; 
//}}AFX_FIELD_INIT 
m_nDefaultType = snapshot; 
} 
CString CSecuriteSet::GetDefaultConnect() { 
return _T("ODBC;DSN=BDD Gestion Académique"); 
} 
CString CSecuriteSet::GetDefaultSQL() 
{ 
return _T("[Tbl_SECURITE]"); 
} 
void CSecuriteSet::DoFieldExchange(CFieldExchange* pFX) 
181 
{ 
//{{AFX_FIELD_MAP(CSecuriteSet) 
pFX->SetFieldType(CFieldExchange::outputColumn); 
RFX_Text(pFX, _T("[Matricule_Utilisateur]"),
m_Matricule_Utilisateur); RFX_Text(pFX, _T("[Nom_Utilisateur]"),
m_Nom_Utilisateur); RFX_Text(pFX, _T("[Domaine_Activité]"),
m_Domaine_Activit_); RFX_Text(pFX, _T("[Initiales_Utilisateur]"),
m_Initiales_Utilisateur); RFX_Text(pFX, _T("[Mot_de_passe]"), m_Mot_de_passe);
//}}AFX_FIELD_MAP 
} 
///////////////////////////////////////////////////////////////////////////// 
// CSecuriteSet diagnostics 
#ifdef _DEBUG 
void CSecuriteSet::AssertValid() const 
{ 
CRecordset::AssertValid(); 
} 
void CSecuriteSet::Dump(CDumpContext& dc) const 
{ 
CRecordset::Dump(dc); 
} 
#endif //_DEBUG 
182 
 |