demoII5_5.cpp
上传用户:husern
上传日期:2018-01-20
资源大小:42486k
文件大小:4k
源码类别:

游戏

开发平台:

Visual C++

  1. // DEMOII5_5.CPP - Fixed point example
  2. // INCLUDES ///////////////////////////////////////////////////
  3. #define WIN32_LEAN_AND_MEAN  
  4. #ifndef INITGUID
  5. #define INITGUID       // you need this or DXGUID.LIB
  6. #endif
  7. #include <windows.h>   // include important windows stuff
  8. #include <windowsx.h> 
  9. #include <mmsystem.h>
  10. #include <objbase.h>
  11. #include <iostream.h> // include important C/C++ stuff
  12. #include <conio.h>
  13. #include <stdlib.h>
  14. #include <malloc.h>
  15. #include <memory.h>
  16. #include <string.h>
  17. #include <stdarg.h>
  18. #include <stdio.h>
  19. #include <math.h>
  20. #include <io.h>
  21. #include <fcntl.h>
  22. #include <direct.h>
  23. #include <wchar.h>
  24. #include <ddraw.h>      // needed for defs in T3DLIB1.H 
  25. #include "T3DLIB1.H"    // T3DLIB4 is based on some defs in this 
  26. #include "T3DLIB4.H"
  27. // DEFINES ////////////////////////////////////////////////////
  28. // TYPES //////////////////////////////////////////////////////
  29. // CLASSES ////////////////////////////////////////////////////
  30. // GLOBALS ////////////////////////////////////////////////////
  31. // define vars expected by graphics engine to compile
  32. HWND main_window_handle;
  33. // FUNCTIONS //////////////////////////////////////////////////
  34. void main()
  35. {
  36. FIXP16 fp1=0, fp2=0, fp3=0; // working vars
  37. float f;              // used to input floating point values
  38. int done=0; // exit flag
  39. int sel;    // user input 
  40. // open the error system, so we can see output
  41. // notice the last parameter "stdout" this tell the error
  42. // system that we don't want to write errors to a text file
  43. // but straight out to the screen!
  44. Open_Error_File("", stdout);
  45. // print titles
  46. printf("nFixed Point Labn");
  47. printf("nAllows you to enter in two fixed point numbers: nfp1, fp2 and work with themn");
  48. while(!done) 
  49. {
  50. printf("nFixed Point Menun");
  51. printf("n(1) Enter in floating point number and store in fp1.");
  52. printf("n(2) Enter in floating point number and store in fp2.");
  53. printf("n(3) Print fp1.");
  54. printf("n(4) Print fp2.");
  55. printf("n(5) Print fp3.");
  56. printf("n(6) Add fp1+fp2, store in fp3.");
  57. printf("n(7) Subtract fp1-fp2, store in fp3.");
  58. printf("n(8) Multiply fp1*fp2, store in fp3.");
  59. printf("n(9) Divide fp1/fp2, store in fp3.");
  60. printf("n(10) Exit.");
  61. printf("nSelect a function and press enter?");
  62. scanf("%d", &sel);
  63. // what's the selection?
  64. switch(sel)
  65.     {
  66.     case 1: // printf("n(1) Enter in floating point number and store in fp1.");
  67.     {
  68.     printf("nEnter in floating point value and it will be converted to fixed point and stored in fp1?");
  69.     scanf("%f", &f);
  70.     fp1 = FLOAT_TO_FIXP16(f);
  71.     } break;
  72.     case 2: // printf("n(2) Enter in floating point number and store in fp2.");
  73.     {
  74.     printf("nEnter in floating point value and it will be converted to fixed point and stored in fp2?");
  75.     scanf("%f", &f);
  76.     fp2 = FLOAT_TO_FIXP16(f);
  77.     } break;    
  78.     case 3: // printf("n(3) Print fp1.");
  79.     {
  80.     FIXP16_Print(fp1);
  81.     } break;
  82.     case 4: // printf("n(4) Print fp2.");
  83.     {
  84.     FIXP16_Print(fp2);
  85.     } break;
  86.     case 5: // printf("n(5) Print fp3.");
  87.     {
  88.     FIXP16_Print(fp3);
  89.     } break;
  90.     case 6: // printf("n(6) Add fp1+fp2, store in fp3.");
  91.     {
  92.     // just add them
  93.     fp3=fp1+fp2;
  94.     printf("nfp1+fp2=");
  95.     FIXP16_Print(fp3);
  96.     } break;
  97.     case 7: // printf("n(7) Subtract fp1-fp2, store in fp3.");
  98.     {
  99.     // just sutract them
  100.     fp3=fp1-fp2;
  101.     printf("nfp1-fp2=");
  102.     FIXP16_Print(fp3);
  103.     } break;
  104.     case 8: // printf("n(8) Multiply fp1*fp2, store in fp3.");
  105.     {
  106.     // call asm function to multiply
  107.     fp3 = FIXP16_MUL(fp1, fp2);
  108.     printf("nfp1*fp2=");
  109.     FIXP16_Print(fp3);
  110.     } break;
  111.     case 9: // printf("n(9) Divide fp1/fp2, store in fp3.");
  112.     {
  113.     // call asm function to divide
  114.     fp3 = FIXP16_DIV(fp1, fp2);
  115.     printf("nfp1/fp2=");
  116.     FIXP16_Print(fp3);
  117.     } break;
  118.     case 10: // printf("n(10) Exit.");
  119.     {
  120.     done=1;
  121.     } break;
  122.     default: break;
  123.     } // end switch
  124. printf("nPress spacebar to continue");
  125. getch();
  126. } // end while
  127. // close error
  128. Close_Error_File();
  129. } // end main