Codes sources C++

Ajouter un nouvel élément

ang Nombres Premiers

Éditeur : Kakou35 + 692 octets
Vous entrez un nombre et le programme trouvera tous les nombres premiers compris entre 0 et votre nombre!
Téléchargement :
Compatibilité :
Linux Mac Windows  

ang Liste de Personnes

Licence : Autre 22 Ko
Un programme C++ permettant de gérer une liste de personnes en utilisant un tableau dynamique créé avec le conteneur C++ vector. Chaque personne est identifiée dans la liste par : son nom, son prénom et sa date de naissance. Le programme affichera, lorsqu'il sera exécuté, un menu pour sélectionner une opération :
  • Sauvegarder la liste dans un fichier et quitter le programme.
  • Ajouter une personne.
  • Trier la liste (tri à bulle).
  • Afficher la liste.
  • Supprimer un élément de la liste.
  • Chercher un élément dans la liste.
  • Modifier les informations concernant une personne.




Téléchargement :
Compatibilité :
Linux Windows  

ang [Math] Résolution d'équations différentielles (Runge-Kutta)

Licence : Autre
Ce code permet de résoudre une équation différentielle du premier ordre du type : dy/dx = f(x,y) avec des conditions initiales sur y et x.
Téléchargement :
Compatibilité :
 

ang [Qt 5] Les nouvelles possibilités de connexions signaux-slots dans Qt 5

Licence : Libre 1 Ko
Ce mini-projet Qt 5 présente les nouvelles possibilités de connexions entre signaux et slots proposées dans Qt 5 :
- les connexions avec un pointeur de fonction ;
- les connexions avec les fonctions lambdas.

Pour en savoir plus, rendez-vous sur mon blog : Les signaux et slots dans Qt5
Téléchargement :
Compatibilité :
Linux Mac Windows  

ang Gestion horaires

Licence : Libre 269 Ko
Stockez et visualisez simplement vos horaires de travail
(Contient l’exécutable windows et les fichiers sources multiplateforme)

Traduction :
Employer -> Agence intérim
Job -> Travail

Explication :
Une intérim est crée par défaut (Without Employer), au cas ou il y ai relation directe avec l'employeur.
Possibilité d'en rajouter.
Entrée pour différents travails.
Ajouter des dates.
Vous aurez aurez un accès simple au cumule des horaires et jours.
Ceci est sauvegardé dans un fichier save.txt qui devra et dans le même dossier que l’exécutable. (Éviter de le modifier directement)

Si des questions vous avez, vous pouvez me MP.
(Usage de la bibliothèque standard, devrait fonctionner sur tout support)
Téléchargement :
Compatibilité :
Linux Mac Windows  

ang Mini RSA

Licence : Libre 6 Ko
Le principe de base de RSA est de conciderer un message comme un (grand) nombre entier et de faire des calculs dessus pour le chiffrer.
Les implémentations que l'on trouve dans le monde industriel utilient des librairies de calcul sur des entiers arbitrairement longs très optimiées et difficiles à comprendre.
Le but de ce petit programme est d'implementer RSA sur des entiers "classiques" et sans la moindre optimisation pour mieux comprendre l'algorithme.

Pour autant, cette implementation est parfaitement conforme à l'algorithme RSA.
Sa seule limitation est taille de la clef qui est de 31 bits au maximum.
Ce qui donne un niveau de sécurité à peu près nul (il faut au moins 512 bits pour que l'on puisse commencer à parler de sécurité).

Le type des entiers est 'big_int' qui peut être un long (32bits) ou un long long (64bits).
Mais il peut être remplacé par n'importe quel type qui supporte les opérateurs d'affectation, d'arithmétiques classiques (*+/-%) et de comparaison.

Le code est en c++ tout à fait standard, mais est livré avec un projet Visual Studio 2005.
Téléchargement :
Compatibilité :
Linux Mac Symbian Windows  

ang [Security] surcouche C++ aux moteurs RSA et blowfish de OpenSSL

Licence : Autre 276 Ko
Voici une petite librairie qui effectue l'encryption / décryption de données en utilisant les algorithmes RSA (asymétrique ; avec clef publique et clef privée) et Blowfish (symétrique). Cette petite librairie se base sur une version récente de OpenSSL. Elle devrait pouvoir être compilée pour linux, Windows ou Mac OS (testée uniquement sous linux pour l'instant).

Mise à jour : version 0.4 licence explicite, améliorations du pipeline, amélioration du build sous Windows (non testé), correction d'un bug dans certaines version de la fonction sha256(), test supplémentaires sur les pipeline, ajout d'un changelog.
Mise à jour : version 0.3 changement de système de build (cmake) + pipeline + adapteurs pour les encodeurs et les cryptographes + tests unitaires
Mise à jour : version 0.2 SHA256 + encoders dans leur propre librairie
Mise à jour : version 0.1 (la précédente version n'avait pas de numéro).

Présentation
Généralement, lorsqu'on souhaite crypter des communications réseau, on instaure un protocole qui ressemble à

client : je t'envoie ma clef publique RSA
serveur : ok ; je génère une clef blowsfish et je la crypte en utilisant ta clef publique, et je te renvoie le résultat
client : je décrypte le message ; j'ai la clef blowfish. A partir de maintenant, je crypte tout avec cette clef.

On peut utiliser le cryptage privé RSA (crypter avec la clef privée, décrypter avec la clef publique) pour implémenter une mécanisme de signature des données envoyées par le serveur (ce qui nécessite que le client connaissance par avance la clef publique du serveur ; on peut mettre celle-ci dans le programme client directement). De cette façon, on peut réduire les attaques du type man in the middle, même si ce n'est pas encore parfait.

blowfish est un des algorithmes de cipher (encryption / décryption) les plus rapides, mais il est symétrique (la même clef sert aux deux opérations). Du coup, si on souhaite l'utiliser pour les communications, il faut trouver un moyen sécurisé d'envoyer la clef aux deux parties. D'où l'idée d'utiliser RSA pour le transport de la clef : l'algorithme est adapté à l'encryption de blocs de petite taille (par exemple, la taille d'une clef) mais il est lent. De plus, gérer des blocs de grande taille avec RSA est une fort mauvaise idée (il n'est pas fait pour ça).

Licence
La licence d'utilisation est une licence libre. Le texte de la licence sera ajouté à la prochaine révision. le code de encoder::base64 est basé sur celui de René Nyffenegger.

Version 0.3
Pour construire la librairie, vous devez avoir cmake installé sur votre machine. Je n'ai pas encore fait les tests de compilation avec MSVC++ (si un problème se pose, il sera corrigé dans la prochaine version).
  • cd ekogen-0.3 && mkdir build
  • cmake ..
  • make && make test


Un petit framework simple de tests unitaire a été ajouté dans cette version (test/utest.h). Vous pouvez trouver des exemples d'utilisation dans le répertoire test/. Les groupes de fonctionnalités suivants sont testés :
  • la partie sécurité (dans security.cpp), y compris sha256, avec les 40 premiers vecteurs courts ; quand j'aurais le temps, j'ajouterais l'ensemble des tests nécessaires à la validation de sha256.
  • la partie encodeurs, dans encoder.cpp
  • la partie pipeline : les pipelines permettent d'enchainer des fonctions unaires, avec une syntaxe relativement simple (voir pipeline.cpp)
  • la partie functional, de peu d'intérêt pour vous, utilisée par les pipeline

Téléchargement :
Compatibilité :
Linux Mac Windows  

ang Algorithme A*

Licence : Gratuit
Voici un exemple d'implémentation de l'algorithme A* réalisé par khayyam dans son article Recherche de chemin par l'algorithme A*
Téléchargement :
Compatibilité :
Linux Mac Windows  

ang Parcours en profondeur et tri topologique

Licence : GPL 26 Ko
Suite à ma précédente soumission, voici un code qui effectue un parcours en profondeur sur un graphe orienté sans circuit et qui en trie topologiquement les sommets.
Téléchargement :
Compatibilité :
Linux Mac Windows  

ang [Conteneur] Tableau à 2 dimensions

Licence : Autre
Cette classe permet d'émuler un tableau de n lignes * m colonnes en utilisant le fait qu'accéder à l'élément situé ligne i, colone j revient à accéder à l'élément numéro i*n+j d'un tableau à une dimension de longeur m*n.
Téléchargement :
Compatibilité :
 

ang [Math] Fractions

Licence : Autre
Le C++ ne propose aucune classe pour gérer les fractions ce qui peut être plus que gênant dans bon nombre de cas. Voici une petite classe pour palier à ce manque.
Téléchargement :
Compatibilité :
 

ang [Math] Polynômes

Licence : Autre
La gestion des Polynômes et des opérations qui y sont liées est un domaine récurrent en programmation. Cette petite classe a pour but de vous faciliter la vie en gérant à votre place les polynômes.
Téléchargement :
Compatibilité :
 

ang [Math] Transformée de Fourier discrète

Éditeur : C++ Cookbook + 1 Ko
La transformée de Fourier est une opération mathématique permettant de décomposer une fonction en une somme de fonctions périodiques. Elle est essentielle dans de nombreux domaines comme par exemple le traitement du signal. Le code suivant offre une première version
Téléchargement :
Compatibilité :
 

ang Imagerie

Licence : Gratuit
code en c pour lire et ecrire une image en format PGM
mon probleme est que l'image crée (dans mon cas "lena2.pgm") est partiellement affiché en noir
Téléchargement :
Compatibilité :
Windows  

ang [Fichier] Suppression de la ligne i d'un fichier

Licence : Autre 964 octets
Cette fonction vous permet de supprimer la ligne i d'un fichier quelconque.
Téléchargement :
Compatibilité :
 

ang Mandelbrot

Éditeur : regis.portalez + 550 Ko
Génération de l'ensemble de mandelbrot et des ensembles de julia sur CPU & GPU
Affichage dans une fenetre utilisant la SDL.
Dependances : SDL.lib, SDLmain.lib, cudart.lib
4 modes d'affichage : gray-level, gray-level-reversed, RGB random, Green (comme le logo).
Navigation : zoom - unzoom, directionnelle, reinitialisation, augmenter resolution, diminuer resolution, retour en arriere
Pour représenter l'ensemble de julia associé à un point du plan : faire un clic du milieu.
Pour revenir au mandelbrot : clic du milieu n'importe où

Multiplateforme (Windows - Linux) [ j'ai jamais developpé sous mac, mais j'imagine que ça marche aussi ;) ]

Update : Support cuda pour le calcul. Editer le fichier params.h et mettre les valeurs correspondant à votre carte graphique
g_block_dim // g_grid_dim
PLATFORM : utiliser CUDA pour travailler sur GPU, CPU pour rester sur CPU.

Résultats obtenus sur le calcul de l'ensemble (le plot est limitant avec la SDL...) pour maxiter = 20, image 256x256

CPU : Xeon W3550 @ 3.07 GHz : 240 FPS
GPU: Geforce GT470 : 1000 FPS ( g_block_dim = 256 // g_grid_dim = 32 ) (image 1024-1024)


EDIT : projet visual c++ 2008 joint
Téléchargement :
Compatibilité :
Linux Windows  

ang [Tri] Tri par sélection

Licence : Autre 326 octets
Voici une version générique du tri par sélection.
Téléchargement :
Compatibilité :
Linux Mac Windows  

ang [Designs pattern] : Observateur

Licence : Autre
Voici une implémentation du design pattern observateur basée le polymorphisme.
Téléchargement :
Compatibilité :
Linux Mac Windows  

ang BrainBackup.exe

Licence : Autre 614 Ko
BrainBackup.exe + Dll Tools.dll et Tools.lib
BrainBackup_HLP_FR.HLP et BrainBackup_HLP_US_HLP
Ce logiciel installe un programme de sauvegardes avec son help. Il peut être exécuté avec la langue française ou Anglaise (unicode)
Téléchargement :
Compatibilité :
Windows  

ang [Classes] Unique ID

Licence : Autre 876 octets
Il peut être utile dans une application qu'un objet ai identifiant unique (autre que son adresse). Cette classe permet de générer de tels identifiants soit de manière (pseudo) aléatoire soit en suivant un odre. Cette paramétrisation est possible grâce aux templates et classes de politiques.
Téléchargement :
Compatibilité :
 

59 éléments

Connexion

Identifiant
Mot de passe
S'inscrireMot de passe oublié ?
 
 
 
 
Partenaires

Hébergement Web