topical media & game development

talk show tell print

lib-ch-example-sample-calculator.cgi / cgi



  #!/bin/ch
  /* Copyright (c) 2001 by SoftIntegration, Inc. All Rights Reserved */
  /* Web Calculator source code written in Ch */
  
  include <cgi.h>
  
  void sendApplet(char *x, char *y, char *expr) {
      class CResponse Response;
  
      Response.setContentType("application/x-chs"); 
      Response.begin();
      printf("#include<stdio.h>\n");
      printf("int main() {\n");
      printf("  double x = \%s;\n", x);
      printf("  double y = \%s;\n", y);
      printf("  printf(\"x = %%f, \", x);\n");
      printf("  printf(\"y = %%f \\n\", y);\n");
      printf("  printf(\"\%s = %%f\\n\", \%s);\n", expr, expr);
      printf("  getchar();\n"); // Hold result for display in windows 
      printf("}\n");
      Response.end();
  }
  
  void errorHandler(char *reason) {
      class CResponse Response;
  
      Response.begin();
      Response.title("Web Calculator");
  
      fprintf stdout << ENDFILE
        <H3>Web Calculator Failed</H3>
        Your mathematical expression has not been submitted to Web Calculator
         because reason.
         <A HREF="/chhtml/toolkit/demos/cgi/sample/calculator.html">Try again.</A>
         
<A HREF="http://www.softintegration.com" target="_top"> <img src="/chhtml/images/poweredbych.gif" alt="Powered by Ch"></A> ENDFILE Response.end(); exit(0); } int main() { class CRequest Request; int num; chstrarray name, value; num = Request.getFormNameValue(name, value); if(num==0) errorHandler("you submitted nothing"); if(!value[0]) errorHandler("you didn't input x value"); else if(!isnum(value[0])) errorHandler("x is not a valid number"); else if(!isnum(value[1])) errorHandler("y is not a valid number"); if(!value[2]) errorHandler ("you didn't input mathematical expression"); sendApplet(value[0], value[1], value[2]); }


(C) Æliens 20/2/2008

You may not copy or print any of this material without explicit permission of the author or the publisher. In case of other copyright issues, contact the author.