⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 dialog1.c

📁 NASA 开发使用的一个专家系统
💻 C
📖 第 1 页 / 共 2 页
字号:
   /*******************************************************/   /*      "C" Language Integrated Production System      */   /*                                                     */   /*                  A Product Of The                   */   /*             Software Technology Branch              */   /*             NASA - Johnson Space Center             */   /*                                                     */   /*               CLIPS Version 6.00  10/01/92          */   /*                                                     */   /*                   DIALOG1 MODULE                    */   /*******************************************************//**************************************************************//* Purpose: Contains the callback functions for most of the   *//*       simple dialogs from the main menu.                   *//*                                                            *//* Principal Programmer(s):                                   *//*      Christopher J. Ortiz                                  *//*                                                            *//* Contributing Programmer(s):                                *//*                                                            *//* Revision History:                                          *//*                                                            *//**************************************************************//*-------------------------------+| Windows & System Include Files |+-------------------------------*/#include <windows.h>#include <stdlib.h>#include <ctype.h>#include <string.h>/*------------------------+| CLIPS 6.0 Include Files |+------------------------*/#include "setup.h"#include "factcom.h"#include "facthsh.h"#include "crstrtgy.h"#include "globlcom.h"#include "incrrset.h"#include "watch.h"#include "exprnpsr.h"#include "bmathfun.h"/*------------------------+| Interface Include Files |+------------------------*/#include "dialog.h"#include "ids.h"#include "main.h"int rulestep = 1;int warnings = 1;BOOL Complete = 1;int SetCheckBox (HWND, WORD, int );/******************************************************************** SetCheckBox: The function selects (places a check  mark next to)*   or clears (removes a check mark from) a button control (wParam).*******************************************************************/int SetCheckBox (hDlg, wParam, value )   HWND hDlg;   WORD wParam;   int  value;{  CheckDlgButton ( hDlg, wParam, value );   return (value);}/******************************************************************** AboutDlg: Callback Function for the About CLIPS Dialog Box.*******************************************************************/#if IBM_TBC#pragma argsused#endifBOOL FAR PASCAL _export AboutDlg (hDlg, message, wParam, lParam)   HWND       hDlg;   unsigned   message;   WORD       wParam;   LONG       lParam;{  switch (message)   {  case WM_INITDIALOG:	 return (TRUE);      case WM_COMMAND:      {  switch ( wParam )	 case IDC_OK:	 {  EndDialog(hDlg, IDOK);	    return (TRUE);	 }	 break;      }   }   return (FALSE);}/************************************************************ ExecDlg: Callback function which allows the user to set*   various CLIPS execution options.***********************************************************/#if IBM_TBC#pragma argsused#endifBOOL FAR PASCAL _export ExecDlg (hDlg, message, wParam, lParam)   HWND       hDlg;   unsigned   message;   WORD       wParam;   LONG       lParam;{  switch (message)   {  case WM_INITDIALOG:      {  WPARAM item;	 SetWindowText ( hDlg, (LPSTR)"Execution Options" );	 /*-----------------------------+	 | Initalize Strategy Combo Box |	 +-----------------------------*/#if CONFLICT_RESOLUTION_STRATEGIES	 SendDlgItemMessage (hDlg, IDC_EXE_STRATEGY, CB_ADDSTRING,0,(LPARAM)((LPSTR) "Depth"));	 SendDlgItemMessage (hDlg, IDC_EXE_STRATEGY, CB_ADDSTRING,0,(LPARAM)((LPSTR) "Breadth"));	 SendDlgItemMessage (hDlg, IDC_EXE_STRATEGY, CB_ADDSTRING,0,(LPARAM)((LPSTR) "LEX"));	 SendDlgItemMessage (hDlg, IDC_EXE_STRATEGY, CB_ADDSTRING,0,(LPARAM)((LPSTR) "MEA"));	 SendDlgItemMessage (hDlg, IDC_EXE_STRATEGY, CB_ADDSTRING,0,(LPARAM)((LPSTR) "Complexity"));	 SendDlgItemMessage (hDlg, IDC_EXE_STRATEGY, CB_ADDSTRING,0,(LPARAM)((LPSTR) "Simplicity"));	 SendDlgItemMessage (hDlg, IDC_EXE_STRATEGY, CB_ADDSTRING,0,(LPARAM)((LPSTR) "Random"));	 switch (  GetStrategy())	 {   case DEPTH_STRATEGY:		  item = (int) SendDlgItemMessage(hDlg,IDC_EXE_STRATEGY,CB_FINDSTRING,0,(LPARAM)((LPSTR)"Depth"));		  break;	     case BREADTH_STRATEGY:		  item = (int) SendDlgItemMessage(hDlg,IDC_EXE_STRATEGY,CB_FINDSTRING,0,(LPARAM)((LPSTR)"Breadth"));		  break;	     case LEX_STRATEGY:		  item = (int) SendDlgItemMessage(hDlg,IDC_EXE_STRATEGY,CB_FINDSTRING,0,(LPARAM)((LPSTR)"LEX"));		  break;	     case MEA_STRATEGY:		  item = (int) SendDlgItemMessage(hDlg,IDC_EXE_STRATEGY,CB_FINDSTRING,0,(LPARAM)((LPSTR)"MEA"));		  break;	     case COMPLEXITY_STRATEGY:		  item = (int) SendDlgItemMessage(hDlg,IDC_EXE_STRATEGY,CB_FINDSTRING,0,(LPARAM)((LPSTR)"Complexity"));		  break;	     case SIMPLICITY_STRATEGY:		  item = (int) SendDlgItemMessage(hDlg,IDC_EXE_STRATEGY,CB_FINDSTRING,0,(LPARAM)((LPSTR)"Simplicity"));		  break;	     case RANDOM_STRATEGY:		  item = (int) SendDlgItemMessage(hDlg,IDC_EXE_STRATEGY,CB_FINDSTRING,0,(LPARAM)((LPSTR)"Random"));		  break;	 }#else	 SendDlgItemMessage (hDlg, IDC_EXE_STRATEGY, CB_ADDSTRING,0,(LPARAM)((LPSTR) "Depth"));	 item = (int) SendDlgItemMessage(hDlg,IDC_EXE_STRATEGY,CB_FINDSTRING,0,(LPARAM)((LPSTR)"Depth"));#endif	 SendDlgItemMessage (hDlg, IDC_EXE_STRATEGY, CB_SETCURSEL, item, 0);	 /*-----------------------------+	 | Initalize Salience Combo Box |	 +-----------------------------*/#if DYNAMIC_SALIENCE	 SendDlgItemMessage (hDlg, IDC_EXE_SALIENCE, CB_ADDSTRING,0,(LPARAM)((LPSTR) "When Defined"));	 SendDlgItemMessage (hDlg, IDC_EXE_SALIENCE, CB_ADDSTRING,0,(LPARAM)((LPSTR) "When Activated"));	 SendDlgItemMessage (hDlg, IDC_EXE_SALIENCE, CB_ADDSTRING,0,(LPARAM)((LPSTR) "Every Cycle"));	 switch (GetSalienceEvaluation())	 {   case WHEN_DEFINED:		item = (int) SendDlgItemMessage (hDlg, IDC_EXE_SALIENCE, CB_FINDSTRING,0,(LPARAM)((LPSTR) "When Defined"));		break;	     case WHEN_ACTIVATED:		item = (int) SendDlgItemMessage (hDlg, IDC_EXE_SALIENCE, CB_FINDSTRING,0,(LPARAM)((LPSTR) "When Activated"));		break;	     case EVERY_CYCLE:		item = (int) SendDlgItemMessage (hDlg, IDC_EXE_SALIENCE, CB_FINDSTRING,0,(LPARAM)((LPSTR) "Every Cycle"));		break;	 }#else	 SendDlgItemMessage (hDlg, IDC_EXE_SALIENCE, CB_ADDSTRING,0,(LPARAM)((LPSTR) "When Defined"));	 item = SendDlgItemMessage (hDlg, IDC_EXE_SALIENCE, CB_FINDSTRING,0,(LPARAM)((LPSTR) "When Defined"));#endif	 SendDlgItemMessage (hDlg, IDC_EXE_SALIENCE, CB_SETCURSEL, item, 0);	  /*-----------------------------------+	 | Disable Incremental reset check box |	 | if any rules are in the system.     |	 +------------------------------------*/	 if ( GetNextDefrule (NULL) != NULL )	 {  EnableWindow(GetDlgItem(hDlg, IDC_WATCH_ALL ), TRUE);	 }	 /*----------------------------+	 | Initalize Other Check Boxes |	 +----------------------------*/	 SetCheckBox(hDlg, IDC_EXE_STATIC, GetStaticConstraintChecking());	 SetCheckBox(hDlg, IDC_EXE_DYNAMIC, GetDynamicConstraintChecking());	 SetCheckBox(hDlg, IDC_EXE_AUTO, GetAutoFloatDividend());#if DEFGLOBAL_CONSTRUCT	 SetCheckBox(hDlg, IDC_EXE_GLOBAL, GetResetGlobals());#endif#if DEFTEMPLATE_CONSTRUCT	 SetCheckBox(hDlg, IDC_EXE_FACT, GetFactDuplication());#endif#if INCREMENTAL_RESET & (! RUN_TIME)	 SetCheckBox(hDlg, IDC_EXE_RESET, GetIncrementalReset());#endif#if (!RUN_TIME)	 SetCheckBox(hDlg, IDC_EXE_SEQUENCE, GetSequenceOperatorRecognition());#endif	 return (TRUE);      }      case WM_COMMAND:      {  switch ( wParam )	 {  case IDC_OK:	    {  int value;			 char Msg[40];#if DYNAMIC_SALIENCE	       /*--------------------------+	       | Decode Salience Combo Box |	       +--------------------------*/	       value = (int) SendDlgItemMessage (hDlg, IDC_EXE_SALIENCE, CB_GETCURSEL, 0, 0);			 SendDlgItemMessage (hDlg, IDC_EXE_SALIENCE, CB_GETLBTEXT, value, (LONG)Msg );			 if ( strcmp (Msg, "When Defined"  ) == 0 )		  SetSalienceEvaluation(WHEN_DEFINED);			 else if (strcmp(Msg, "When Activated" ) == 0)		  SetSalienceEvaluation(WHEN_ACTIVATED);	       else		  SetSalienceEvaluation(EVERY_CYCLE);#endif#if CONFLICT_RESOLUTION_STRATEGIES	       /*--------------------------+	       | Decode Strategy Combo Box |	       +--------------------------*/	       value = (int) SendDlgItemMessage (hDlg, IDC_EXE_STRATEGY, CB_GETCURSEL, 0, 0);	       SendDlgItemMessage (hDlg, IDC_EXE_STRATEGY, CB_GETLBTEXT, value, (LONG)Msg );			 if ( strcmp (Msg, "Depth"  ) == 0 )		  SetStrategy(DEPTH_STRATEGY);			 else if (strcmp(Msg, "Breadth" ) == 0)		  SetStrategy(BREADTH_STRATEGY);			 else if (strcmp(Msg, "LEX") == 0 )		  SetStrategy(LEX_STRATEGY);			 else if (strcmp(Msg, "MEA") == 0 )		  SetStrategy(MEA_STRATEGY);			 else if (strcmp(Msg, "Complexity") == 0 )		  SetStrategy(COMPLEXITY_STRATEGY);			 else if (strcmp(Msg, "Simplicity") == 0 )		  SetStrategy(SIMPLICITY_STRATEGY);	       else		  SetStrategy(RANDOM_STRATEGY);#endif			 /*-------------------------+	       | Decode Other Check Boxes |	       +-------------------------*/	       SetStaticConstraintChecking ( IsDlgButtonChecked(hDlg, IDC_EXE_STATIC));	       SetDynamicConstraintChecking ( IsDlgButtonChecked(hDlg, IDC_EXE_DYNAMIC));			 SetAutoFloatDividend ( IsDlgButtonChecked(hDlg, IDC_EXE_AUTO));#if DEFGLOBAL_CONSTRUCT	       SetResetGlobals ( IsDlgButtonChecked(hDlg, IDC_EXE_GLOBAL));#endif#if DEFTEMPLATE_CONSTRUCT	       SetFactDuplication( IsDlgButtonChecked(hDlg, IDC_EXE_FACT));#endif#if INCREMENTAL_RESET & (! RUN_TIME )	       SetIncrementalReset ( IsDlgButtonChecked(hDlg, IDC_EXE_RESET));#endif#if ( ! RUN_TIME )	       SetSequenceOperatorRecognition ( IsDlgButtonChecked(hDlg, IDC_EXE_SEQUENCE));#endif		 }	    case IDC_CANCEL:		 {  EndDialog( hDlg, IDOK);			 return (TRUE);	    }	    /*-------------------+	    | Toggle Check Boxes |	    +-------------------*/	    case IDC_EXE_RESET:	    case IDC_EXE_STATIC:	    case IDC_EXE_DYNAMIC:	    case IDC_EXE_GLOBAL:

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -