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
|