Public feed #379580

Stuff

public text v1 · immutable
Raw Edit
·published 2007-03-03 11:00 UTC
rendered paste body
#include<stdio.h>
#include<ctype.h>
#include<time.h>

void printResults(unsigned int *);
void paperTrail(char *);
char *getDay();

int main() {

	unsigned int Tally[4] = {0};

	unsigned char Other;
	unsigned char Nader;
	unsigned char Bush;
	unsigned char Kerry;

	char LogMesg[11] = {0};
	int Input;

	char *day;
	day = getDay();

	Bush = 0;
	Kerry = 1;
	Nader = 2;
	Other = 3; 

	while ((Input=getchar())!=EOF) {
    		unsigned char Vote=Input;

		/* Log to paper receipt */
		sprintf (LogMesg,"LOG VOTE: November %s %c\n",day,Vote);
		paperTrail(LogMesg);
	
		/* Add 1 */
    		if (!isspace(Vote)){
			switch (Vote) {
				case 'B':
					Tally[Bush]++;
					break;
				case 'K':
					Tally[Kerry]++;
					break;
				case 'N':
					Tally[Nader]++;
					break;
				default:	
					Tally[Other]++;
					break;
			}
		}

    	}

	printResults(Tally);

	return 0;
}

/*
 * This gets a day string for the paper trail log message.
 * ("first","second","third" or "ith")
 */
char *getDay() {
	char *retVal;
	time_t now_time;
	struct tm *now;

	now_time = time(NULL);
	now = localtime(&now_time);

        if (now->tm_mday == 1) {
                retVal = "first";
        } else if (now->tm_mday == 2) { 
                retVal = "second";      
        } else if (now->tm_mday  == 3) {
                retVal = "third";
        } else {
                retVal = (char *)malloc(7);
                sprintf(retVal,"%ith",now->tm_mday);
        }

	return retVal;
}

/*
 * Print the results.
 */
void printResults(unsigned int *Tally) {

	unsigned char Bush = 0;
	unsigned char Kerry = 1;
	unsigned char Nader = 2;
	unsigned char Other = 3;
	
	printf("Kerry: %d\n",Tally[Kerry]);
	printf("Bush: %d\n",Tally[Bush]);
	printf("Nader: %d\n",Tally[Nader]);
	printf("Other: %d\n",Tally[Other]);
}

/*
 * This will print a log of the vote to a paper receipt when 
 * the supporting hardware is added.
 */
void paperTrail(char *mesg) {

	/* Log to paper trail for extra legitimacy! */
}