topical media & game development

talk show tell print

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



  #!/bin/ch
  /* Calculate the Grade point Average (GPA) of a class
     Report in the form of html format.
     Created by Harry H. Cheng, 11/7/1995
     Last time modified, 10/25/1996
  */
  include <cgi.h>
  
  int a ,am , bp ,b , bm ,cp ,c ,cm ,dp , d, dm , f, sum;
  float  sa ,sam , sbp ,sb , sbm ,scp ,sc ,scm ,sdp , sd, sdm, sf, gpa;
  
  void errorHandler(char *reason) {
      printf("Content-type: text/html\n\n"); 
      printf("<TITLE>GPA Calculator Failed</TITLE>\n");
      printf("<body bgcolor=\"#FFFFFF\" text=\"#000000\" vlink=\"#FF0000\">\n");
      printf("<H3>GPA Calculator Failed</H3>\n");
      printf("Your GPA information has not been submitted to GPA Calculator,\n");
      printf("because \%s. ",reason);
      printf("<A HREF=\"/chhtml/toolkit/demos/cgi/sample/gpa.html\">Try again.</A>\n");
      printf("<p>
\n"); printf("<A HREF=\"http://www.softintegration.com\" target=\"_top\">\n"); printf("<img src=\"/chhtml/images/poweredbych.gif\" alt=\"Powered by Ch\"></A>\n"); exit(1); } void sendGPA() { printf("Content-type: text/html\n\n"); printf("<TITLE>GPA Calculator Report</TITLE>\n"); printf("<body bgcolor=\"#FFFFFF\" text=\"#000000\" vlink=\"#FF0000\">\n"); printf("<H3>GPA Calculator Report</H3>\n"); sum = a +am + bp +b + bm +cp +c +cm +dp + d + dm+ f; gpa = (sa * a +sam*am + sbp *bp+sb *b+ sbm*bm+scp *cp+sc *c+scm *cm +sdp*dp +sd *d + sdm*dm + sf *f)/sum; printf("<PRE>\n"); printf("Grade\t Num of students\t Score\n"); printf("---------------------------------------\n"); printf(" A/A+\t\t \%d\t\t %.1f \n", a, sa); printf(" A-\t\t \%d\t\t %.1f \n", am, sam); printf(" B+\t\t \%d\t\t %.1f \n", bp, sbp); printf(" B\t\t \%d\t\t %.1f \n", b, sb); printf(" B-\t\t \%d\t\t %.1f \n", bm, sbm); printf(" C+\t\t \%d\t\t %.1f \n", cp, scp); printf(" C\t\t \%d\t\t %.1f \n", c, sc); printf(" C-\t\t \%d\t\t %.1f \n", cm, scm); printf(" D+\t\t \%d\t\t %.1f \n", dp, sdp); printf(" D\t\t \%d\t\t %.1f \n", d, sd); printf(" D-\t\t \%d\t\t %.1f \n", dm, sdm); printf(" F\t\t \%d\t\t %.1f \n", f, sf); printf("---------------------------------------\n"); printf(" Total number of students: \%d \n", sum); printf(" Grade point average: %.2f \n", gpa); printf("</PRE>\n"); printf("<p>
\n"); printf("<A HREF=\"http://www.softintegration.com\" target=\"_top\">\n"); printf("<img src=\"/chhtml/images/poweredbych.gif\" alt=\"Powered by Ch\"></A>\n"); } int main() { int i, num; class CRequest Request; chstrarray name_tmp, value_tmp; char *value; setvbuf(stdout, NULL, _IONBF, 0); num = Request.getFormNameValue(name_tmp, value_tmp); if(num == 0) { errorHandler("no name/value has been submitted\n"); } else if(num == -1) { errorHandler("not invoked through WWW-CGI\n"); } else if(num == -2) { errorHandler("no enough memory\n"); } value = Request.getForm("A"); if(isnum(value)) a = atoi(value); else errorHandler("A is not a valid integral number"); value = Request.getForm("score_A"); if(isnum(value)) sa = atof(value); else errorHandler("score_A is not a valid number"); value = Request.getForm("A-"); if(isnum(value)) am = atoi(value); else errorHandler("A- is not a valid integral number"); value = Request.getForm("score_A-"); if(isnum(value)) sam = atof(value); else errorHandler("score_A- is not a valid number"); value = Request.getForm("B+"); if(isnum(value)) bp = atoi(value); else errorHandler("B+ is not a valid integral number"); value = Request.getForm("score_B+"); if(isnum(value)) sbp = atof(value); else errorHandler("score_B+ is not a valid number"); value = Request.getForm("B"); if(isnum(value)) b = atoi(value); else errorHandler("B is not a valid integral number"); value = Request.getForm("score_B"); if(isnum(value)) sb = atof(value); else errorHandler("score_B is not a valid number"); value = Request.getForm("B-"); if(isnum(value)) bm = atoi(value); else errorHandler("B- is not a valid integral number"); value = Request.getForm("score_B-"); if(isnum(value)) sbm = atof(value); else errorHandler("score_B- is not a valid number"); value = Request.getForm("C+"); if(isnum(value)) cp = atoi(value); else errorHandler("C+ is not a valid integral number"); value = Request.getForm("score_C+"); if(isnum(value)) scp = atof(value); else errorHandler("score_C+ is not a valid number"); value = Request.getForm("C"); if(isnum(value)) c = atoi(value); else errorHandler("C is not a valid integral number"); value = Request.getForm("score_C"); if(isnum(value)) sc = atof(value); else errorHandler("score_C is not a valid number"); value = Request.getForm("C-"); if(isnum(value)) cm = atoi(value); else errorHandler("C- is not a valid integral number"); value = Request.getForm("score_C-"); if(isnum(value)) scm = atof(value); else errorHandler("score_C- is not a valid number"); value = Request.getForm("D+"); if(isnum(value)) dp = atoi(value); else errorHandler("D+ is not a valid integral number"); value = Request.getForm("score_D+"); if(isnum(value)) sdp = atof(value); else errorHandler("score_D+ is not a valid number"); value = Request.getForm("D"); if(isnum(value)) d = atoi(value); else errorHandler("D is not a valid integral number"); value = Request.getForm("score_D"); if(isnum(value)) sd = atof(value); else errorHandler("score_D is not a valid number"); value = Request.getForm("D-"); if(isnum(value)) dm = atoi(value); else errorHandler("D- is not a valid integral number"); value = Request.getForm("score_D-"); if(isnum(value)) sdm = atof(value); else errorHandler("score_D- is not a valid number"); value = Request.getForm("F"); if(isnum(value)) f = atoi(value); else errorHandler("F is not a valid integral number"); value = Request.getForm("score_F"); if(isnum(value)) sf = atof(value); else errorHandler("score_F is not a valid number"); sendGPA(); exit(0); }


(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.