Ma premiere class pour mon projet, des commentaires ? :)

Ma premiere class pour mon projet, des commentaires ? :) - C++ - Programmation

Marsh Posté le 07-07-2003 à 05:00:04    

:hello:  
c est peut etre pas tres utile mais je vais m en servir pour creer des musics pour mes progs en mode console  :D  
 
voila un debut de cade ( en vria la class est llongue et s etend sur 8 gammes de frequences).
 

Code :
  1. //use the computer bell or speaker to play notes.
  2. //frequency range used : http://www.phy.mtu.edu/%7Esuits/notefreqs.html
  3. //class beep_music
  4. //tempo = seconde = 60
  5. #include <iostream.h>
  6. #include <stdlib.h>
  7. class bellmusic
  8. { public:
  9. //             gamme 0
  10.   void o_DO(int time);
  11.   void o_RE(int time);
  12.   void o_MI(int time);
  13.   void o_FA(int time);
  14.   void o_SOL(int time);
  15.   void o_LA(int time);
  16.   void o_SI(int time);
  17.   void o_DOd(int time); //DO# || REb
  18.   void o_REd(int time); //RE# || MIb
  19.   void o_FAd(int time); //FA# || SOLb
  20.   void o_SOLd(int time);//SOL#|| LAb
  21.   void o_LAd(int time); //LA# || SIb
  22. //             gamme I
  23.   void I_DO(int time);
  24.   void I_RE(int time);
  25.   void I_MI(int time);
  26.   void I_FA(int time);
  27.   void I_SOL(int time);
  28.   void I_LA(int time);
  29.   void I_SI(int time);
  30.   void I_DOd(int time);
  31.   void I_REd(int time);
  32.   void I_FAd(int time);
  33.   void I_SOLd(int time);
  34.   void I_LAd(int time);
  35. //             ect ...
  36. //             silence
  37.   void soupir();
  38.   void demi_soupir();
  39.   void quart_soupir();
  40.   void pause();
  41.   void demi_pause();
  42. };
  43. void o_DO (int time) {_beep(16,time); } //0-DO
  44. void o_RE (int time) {_beep(18,time); } //0-RE
  45. void o_MI (int time) {_beep(20,time);} //0-MI
  46. //ect ...
  47. }


 
y a til moyen dameliorer ce code ?
sinon jai des questions :
 
je voudrais creer une variable tempo = 60;
qui puisse etre modifiable
 
exemple dans mon programme main:
 
#include "music"
main() {
tempo(100);
 
}
 
et la sa garderai le tempo definit en memoire dans la classe,et au lieu dutiliser
 
void o_MI (int time) {_beep(20,time);} //0-MI
j utiliserai
 
void o_MI (string type) {
if (type=="croche" ) {_beep(20,tempo/2));} //0-MI
 else if (type=="noir" ) {{_beep(20,tempo));}  
ect...
}
 
masi sa vas commener a faire lourd ...
le probleme est-il possible de passer tempo (a la noir) = x, et le garder comme base de calcul sans l inclure a cahque fois quand j apellerai une void o_MI par exemple ?.
 
merci et donnais moi des conseils svp  :)  
 
 


---------------
jeunes con de la derniere averse, vieux con des neiges d'antant.
Reply

Marsh Posté le 07-07-2003 à 05:00:04   

Reply

Marsh Posté le 07-07-2003 à 07:54:20    

up  :sweat:


---------------
jeunes con de la derniere averse, vieux con des neiges d'antant.
Reply

Marsh Posté le 07-07-2003 à 08:24:13    

1) vive le C
2) une petite enum ça serait bien mieux que tout ta tripotée de fonction : 1 enum pour la note, 1 enum pour la durée, etc. si tu c'est pas ce que c'est, regarde dans ton bouquin de C++

Reply

Marsh Posté le 07-07-2003 à 11:09:12    

++Taz a écrit :

1) vive le C
2) une petite enum ça serait bien mieux que tout ta tripotée de fonction : 1 enum pour la note, 1 enum pour la durée, etc. si tu c'est pas ce que c'est, regarde dans ton bouquin de C++


 
 
comme ca ?
je vois pas trop, je sui stoujours oblige de faire n cas de tt facon non ?
 
 

Code :
  1. #include <iostream>
  2. #include <stdlib.h>
  3. #include <string>
  4. //struct note {
  5. //  string sound;    //do re mi fa ...
  6. //  string type;     //noire blanche ....
  7. //  int tempo;       //tempo 60= 1s
  8. //};
  9. class bell  {
  10.   public:
  11.   void notefunc(string sound, string type, int tempo);
  12. };
  13. void notefunc(string sound, string type, int tempo) {
  14.   enum type_name {ronde=32, blanche_pointe=24 , blanche=16, noire_pointe=12 , noire=8,
  15.   croche_pointe=6, croche=4, triolet=3 , demi_croche=2};
  16.   enum sound_freq {DO=131 ,RE=147 ,MI=165 FA=175, SOL=196, LA=220 ,SI=247 };  //ect..
  17. // int tempo_msec=(  );
  18.   _beep(sound_freq,tempo_msec);
  19. }

Reply

Marsh Posté le 07-07-2003 à 11:40:34    

oui mais avec des enums, c'est sur et plus propre, et tu peux faire des switch avec en plus. et comme les enums sont associés a des valeurs, ça réduit pas mal ton boulot. en c'est pas <stdlib.h>> mais <cstdlib>

Reply

Marsh Posté le 07-07-2003 à 11:43:11    

xiluoc a écrit :


 
 
comme ca ?
je vois pas trop, je sui stoujours oblige de faire n cas de tt facon non ?
 
 

Code :
  1. #include <iostream>
  2. #include <stdlib.h>
  3. #include <string>
  4. //struct note {
  5. //  string sound;    //do re mi fa ...
  6. //  string type;     //noire blanche ....
  7. //  int tempo;       //tempo 60= 1s
  8. //};
  9. class bell  {
  10.   public:
  11.   void notefunc(string sound, string type, int tempo);
  12. };
  13. void notefunc(string sound, string type, int tempo) {
  14.   enum type_name {ronde=32, blanche_pointe=24 , blanche=16, noire_pointe=12 , noire=8,
  15.   croche_pointe=6, croche=4, triolet=3 , demi_croche=2};
  16.   enum sound_freq {DO=131 ,RE=147 ,MI=165 FA=175, SOL=196, LA=220 ,SI=247 };  //ect..
  17. // int tempo_msec=(  );
  18.   _beep(sound_freq,tempo_msec);
  19. }

 


 
 
t'as du mal avec les enum, toi ...
 
Ca te permet de définir un type ... Tu n'as pas besoin de passer par des strings pour utiliser des enums ...


---------------
last.fm
Reply

Marsh Posté le 07-07-2003 à 12:21:07    

taz il est gentil il aide les boolays   :whistle:  
 
 :love:  :love:

Reply

Marsh Posté le 07-07-2003 à 12:23:41    

Code :
  1. #include <iostream>
  2. #include <stdlib.h>
  3. #include <string>
  4. using namespace std;
  5. class bell  {
  6. public:
  7. enum sound_freq { DO=131 ,RE=147 ,MI=165, FA=175, SOL=196, LA=220 ,SI=247 };
  8. void notefunc(sound_freq s,int time) {
  9. _beep(s,time);
  10. }
  11. };
  12. int main() {
  13. bell x;
  14. x.notefunc(bell::DO,500);
  15. x.notefunc(bell::RE,500);
  16. }

 
 
me rest plsu qu a comprendre using namespace std;
et bell::DO  [:alarmclock119]
en fai un enum fait direct le lien entre cst et string  :??:

Reply

Marsh Posté le 07-07-2003 à 13:50:51    

:jap:  
autre point.
si je veu que mon prg tourne normalement et en meme temp une musique tourne en fond est ce possible ?

Reply

Marsh Posté le 07-07-2003 à 14:20:01    

ou mais le t'as le choix: ton programme engendre processus ou alors il lance threads

Reply

Marsh Posté le 07-07-2003 à 14:20:01   

Reply

Marsh Posté le 07-07-2003 à 14:50:14    

++Taz a écrit :

ou mais le t'as le choix: ton programme engendre processus ou alors il lance threads

cool comment on faiut pour lancer un thread ??

Reply

Marsh Posté le 07-07-2003 à 15:23:49    

xiluoc a écrit :

cool comment on faiut pour lancer un thread ??
 


apprends d'abord à utiliser une enum correctement, on verra avec les threads ensuite [:ddr555]


---------------
J'ai un string dans l'array (Paris Hilton)
Reply

Marsh Posté le 07-07-2003 à 15:41:27    

Harkonnen a écrit :


apprends d'abord à utiliser une enum correctement, on verra avec les threads ensuite [:ddr555]


ca yest enum sa marche  :kaola:
 

Reply

Marsh Posté le 07-07-2003 à 16:21:00    

xiluoc a écrit :


ca yest enum sa marche  :kaola:
 

ben à toi de t'acheter un joli bouquin 'prog système sous win32 pour les boolays'. on va arreter la casse direct. commence par te perfectionner un peu en C++, ensuite on verra. pas la peine de faire autre chose pour le moment. t'auras qu'a faire un joli .bat et lancer tes  programmes (ou ouvrir tes yeux, y a un topic sur un truc comme ça en première page) :hello:

Reply

Sujets relatifs:

Leave a Replay

Make sure you enter the(*)required information where indicate.HTML code is not allowed