24.h
上传用户:janny_wxd
上传日期:2010-02-03
资源大小:261k
文件大小:2k
源码类别:

控制台编程

开发平台:

C/C++

  1. #include"all.h"
  2. int number[2][4];
  3. enum
  4. {
  5. eNumber = 0, //操作数
  6. eOperator = 1 //算子
  7. };
  8. typedef struct sqlist{
  9. int bol;//bol is 0 when num_ch is a number;bol is 1 when the num_ch is a oprater
  10. int num_ch;
  11. struct sqlist *next;
  12. }sqlist;
  13. typedef struct sqstack {
  14. int *base;
  15. int *top;
  16. int stacksize;
  17. }sqstack;
  18. /***************链表操作模块******************************/
  19. status init_sq(sqlist *l);//初始化链表
  20. status insert_sq(sqlist **p,int e,int bl); 
  21. //链表插入操作
  22. //由于这里要求修改外部指针,因此要用指向指针的指针
  23. //将插入到链表的末尾
  24. /***************链表操作模块******************************/
  25. /****************用栈进行表达式计算模块***********************/
  26. int check(sqlist l);
  27. //保证输入的数字是给出的四个数字
  28. int chang(char *s,sqlist *l);
  29.  //将用户的输入转化为单链表
  30. int Operate(int a,int theta, int b);  
  31. //计算a theta b
  32. int ReturnOpOrd(char op,char* TestOp);  
  33. //被char precede(char Aop, char Bop)所调用来求优先级
  34. char precede(char Aop, char Bop); 
  35. //返回优先级 
  36. status initstack(sqstack *s); 
  37. //栈初始化
  38. int gettop(sqstack *s); 
  39. //取栈顶元素
  40. status push(sqstack *s,int e); 
  41. //把 e 压栈
  42. status pop(sqstack *s,int *e); 
  43. //出栈,用e 保存
  44. int EvaluateExpression(char* MyExpression);    // 算法3.4
  45. /***************链表操作模块***********************************/
  46. int randomm();//产生四个随机数
  47. /****************计算机计算模块*******************************/
  48. int CalcOneExpress(int expression[][2]);
  49. int Equal24(int n);
  50. int CalcArray1(int iNumInput[2][4]);
  51. // a * b * c * d //7 number
  52. int CalcArray2(int iNumInput[2][4]);
  53. // (a * b) * c * d //9 number
  54. int CalcArray3(int iNumInput[2][4]);
  55. // (a * b * c) * d //9 number
  56. int CalcArray4(int iNumInput[2][4]);
  57. // (a * b * c) * d //9 number
  58. int CalcArray5(int iNumInput[2][4]);
  59. // (a * b) * (c * d) //11 number
  60. int CalcArray6(int iNumInput[2][4]);
  61. // ((a * b) * c) * d //11 number
  62. int CalcArray7(int iNumInput[2][4]);
  63. // (a * b * c) * d //9 number
  64. int Calc24(int number[2][4]);
  65. //括号的几种情况
  66. //1 无括号
  67. //2 (a b) c d 同a b (c d), 下省略
  68. //3 (a b c) d
  69. //4 a (b c) d
  70. //5 (a b) (c d)
  71. //6 ((a b) c) d
  72. //7 (a (b c)) d
  73. /****************计算机计算模块*******************************/
  74. void game_24_main();//24点游戏执行函数