1: #include <string.h>2: #include <stdio.h>3: #include <stdlib.h>4: #include <ctype.h>5: #include <windows.h>6: #include <conio.h>7: #include <iostream>8: #define LOCATE(r, c) GetConsoleScreenBufferInfo(GetStdHandle(STD_OUTPUT_HANDLE), &csbiInfo);csbiInfo.dwCursorPosition.X = c;csbiInfo.dwCursorPosition.Y = r; SetConsoleCursorPosition(GetStdHandle(STD_OUTPUT_HANDLE), csbiInfo.dwCursorPosition);9:10: //Used to chnage console collors in windows11: CONSOLE_SCREEN_BUFFER_INFO csbiInfo;12: HANDLE hStdin = GetStdHandle(STD_INPUT_HANDLE);13: HANDLE hStdout = GetStdHandle(STD_OUTPUT_HANDLE);14:15: using namespace std;16:17: void paintScreen(int years), moveData(int *loca, char *buffer, float **table), moveLoc(int *loc, int year, char dir), viewTable(float **table, int *year);18: double findTotal(float **, int);19: void printCollumTotal(float **table, int *year);20: double findCollumTotal(float *table, int *year);21: float **dArray( int nRows, int nCols);22:23:24: int main()25: {26: int loc[] = {0,0}, year = 0, i=0; //loc is the x,y loc on table, year numver of rows, i index in buffer27: bool breakVar = 0; //used to brak to the outer while loop, on halt28: unsigned char c;//input char 0-25629: static char charBuffer[11];//buffer for imput string30:31: system("CLS");32: puts("How many years do you want to enter? ");33: scanf("%i",&year);34: float **ppTable = dArray(year, 5); //makes the array/table35:36: paintScreen(year);37:38: while(!breakVar)39: {40: i=0;41: charBuffer[0] = '\0';42: while(!((c=getch()) == 9 || c == 13 || c == 224 || c == 'Q' || c == 'P' || c == 'V'))43: {44: if(*(loc + 1) == 0)45: {46: if(c>='0' && c <= '9')47: {48: charBuffer[i++]=c;49: putch(c);50: if(i == 4)51: {52: charBuffer[i]='\0';53: moveData(loc,charBuffer,ppTable);54: moveLoc(loc,year,'R');55: i=0;56: break;57: }58: }59: }60: else61: {62: if(c>='0' && c <= '9' || c == '.')63: {64: charBuffer[i++]=c;65: putch(c);66: if(i == 10)67: {68: charBuffer[i]='\0';69: moveData(loc,charBuffer,ppTable);70: printCollumTotal(ppTable,&year);71: moveLoc(loc,year,'R');72: i = 0;73: break;74: }75: }76: }77:78: if(c==8)79: {80: putchar(8);81: i--;82: }83: }84: if(c == 9)85: {86: charBuffer[i]='\0';87: moveData(loc,charBuffer,ppTable);88: printCollumTotal(ppTable,&year);89: moveLoc(loc,year,'R');90: }91: else if(c == 13)92: {93: charBuffer[i]='\0';94: moveData(loc,charBuffer,ppTable);95: printCollumTotal(ppTable,&year);96: moveLoc(loc,year,'D');97: }98: else if(c == 224)99: {100: c = getch();101: if(c == 72)//up arrow102: {103: charBuffer[i]='\0';104: moveData(loc,charBuffer,ppTable);105: printCollumTotal(ppTable,&year);106: moveLoc(loc,year,'U');107: }108: else if(c == 75)//left109: {110: charBuffer[i]='\0';111: moveData(loc,charBuffer,ppTable);112: printCollumTotal(ppTable,&year);113: moveLoc(loc,year,'L');114: }115: else if(c == 80)//down116: {117: charBuffer[i]='\0';118: moveData(loc,charBuffer,ppTable);119: printCollumTotal(ppTable,&year);120: moveLoc(loc,year,'D');121: }122: else if(c == 77)//right123: {124: charBuffer[i]='\0';125: moveData(loc,charBuffer,ppTable);126: printCollumTotal(ppTable,&year);127: moveLoc(loc,year,'R');128: }129: }130: else if(c == 'Q')131: {132: breakVar = 1;133: continue;134: }135: else if(c == 'V')136: {137: viewTable(ppTable,&year);138: breakVar = 1;139: continue;140: }141: else if(c == 'P')142: {143: breakVar = 1;144: continue;145: }146:147: }148:149: delete [] *ppTable;150: delete [] ppTable;151: return 1;152: }153:154: float **dArray( int nRows, int nCols)155: {156: float **ppi;157: float *pool;158: float *curPtr;159: //(step 1) allocate memory for array of elements of column160:161: ppi = new float*[nRows];162:163: //(step 2) allocate memory for array of elements of each row164: pool = new float [nRows * nCols];165:166: // Now point the pointers in the right place167: curPtr = pool;168: for( int i = 0; i < nRows; i++)169: {170: *(ppi + i) = curPtr;171: curPtr += nCols;172: }173: for( int i = 0; i < nRows; i++)174: {175: for(int j=0;j <nCols; j++)176: {177: *(*(ppi + i)+j) = 0;178: }179: }180:181: return ppi;182: }183:184: void paintScreen(int years)185: {186: system("CLS");187: LOCATE(2,28);188: puts("Data Entry Forum");189: LOCATE(5,0);190: puts("YEAR");191: LOCATE(5,13);192: puts("QUARTER 1");193: LOCATE(5,32);194: puts("QUARTER 2");195: LOCATE(5,51);196: puts("QUARTER 3");197: LOCATE(5,70);198: puts("QUARTER 4");199: for(int i = 6; i < years + 8; i++)200: {201: for(int j = 12; j<70; j+=19)202: {203: LOCATE(i,j);204: if(i == years + 7)205: {206: puts("|");207: }208: else209: {210: puts("$");211: }212: }213: }214: LOCATE(6 + years,0);215: for(int i = 0; i < 80; i++)216: {217: putch('-');218: }219: LOCATE(7 + years,0);220: puts("TOTAL:");221: LOCATE(9 + years,0);222: puts("Press Q at any time to Quit, V to view data reports, P to print");223: LOCATE(6,0);224: }225: void moveData(int *loc, char *buffer, float **table)226: {227: if(strlen(buffer)!=0) //checks if it is already empty228: {229: *(*(table + *loc) + *(loc + 1)) = atof(buffer); //wont wipe out old data, if empty230: strcpy(buffer,"");231: }232: }233: void moveLoc(int *loc, int year, char dir)234: {235: if(dir == 'U')236: {237: if(*loc > 0)238: {239: *loc = *loc - 1;240: }241:242: }243: else if(dir == 'R')244: {245: if(*(loc + 1) > 4)246: {247: *(loc + 1) = 0;248: *loc = *loc + 1;249: }250: else251: {252: *(loc + 1) = *(loc + 1) + 1;253: }254: }255: else if(dir == 'D')256: {257: if(*loc < year - 1)258: {259: *loc = *loc + 1;260: }261: }262: else if(dir == 'L')263: {264: if(*(loc + 1) > 0)265: {266: *(loc + 1) = *(loc + 1) - 1;267: }268: }269:270: if(*(loc + 1)== 1)271: {272: LOCATE(6 + *loc,13);273: }274: else if(*(loc + 1)== 0)275: {276: LOCATE(6 + *loc,0);277: }278: else279: {280: LOCATE(6 + *loc,*(loc + 1)*19 - 6);281: }282: }283: double findTotal(float *aArray, int aNum)284: {285: double total = 0;286: for(int i=1; i <= aNum; i++)287: {288: total += *(aArray + i);289: }290: return total;291: }292: double findCollumTotal(float *table, int *year)293: {294: double total = 0;295: for(int i = 0; i < *year; i++)296: {297: total += *(table + 5 * i);298: }299: return total;300: }301: void viewTable(float **table, int *year)302: {303: double grandTotal = 0;304: system("CLS");305: puts("YEAR\tQ1\t\tQ2\t\tQ3\t\tQ4\t\tTOTAL");306: for(int i = 0; i < *year; i++)307: {308: printf("%-4.0f\t",*(*(table + i)));309: for(int j = 1; j < 6; j++)310: {311: if(j==5)312: {313: grandTotal+=findTotal(*(table + i),4);314: printf("%-10.2f\t",findTotal(*(table + i),4));315: }316: else317: {318: printf("%-10.2f\t",*(*(table + i) + j));319: }320: }321: printf("\n\r");322: }323: printf("\n\rTOTAL\t");324: for(int j = 1; j<=5; j++)325: {326: {327: if(j==5)328: {329: printf("%-10.2f",grandTotal);330: }331: else332: {333: printf("%-10.2f\t",findCollumTotal(*table + j,year));334: }335: }336: }337: printf("\n\rAVERAGE\t");338: for(int j = 1; j<5; j++)339: {340: {341: printf("%-10.2f\t",(findCollumTotal(*table + j,year)/(*year)));342: }343: }344: printf("\n\r");345: printf("\n\rYearly AVERAGE: %-10.2f\n\r", grandTotal/(*year));346: system("Pause");347: }348: void printCollumTotal(float **table, int *year)349: {350: LOCATE(*year +7,13)351: for(int i = 0; i <67; i++)352: {353: printf(" ");354: }355: for(int j = 0; j<4; j++)356: {357: LOCATE(*year + 7,j*19+12);358: {359: printf("|%-10.2f",findCollumTotal(*table + (j+1),year));360: }361: }362: }
Thursday, October 30, 2008
Pointer Pointer
Posted by Brian at 10/30/2008 03:12:00 PM 2 comments
Thursday, August 28, 2008
LOL
I'm watching HSN, home shoping networking, and they are selling gateway. And they advertize 800 dollar worth softwear. Some of the titles they list is mozilas packedged thuderbord and firfox, both free opensource softwear. Just thought it was funny, nice compute though for hsn
Posted by Brian at 8/28/2008 07:30:00 PM 1 comments
Labels: LOL
Thursday, August 07, 2008
IP To MAC or is it MAC To IP?
Neither!
Posted by Brian at 8/07/2008 05:40:00 PM 0 comments
Yea, .... Ok?
Like always I have been busy. Last week of school is coming to end. That's the "Yea" part. So what now? What are my planes for the rest of the summer, you ask? I don't know where to begin. I have a such long to do list, i don't know where i should start or how to priorities them. So to name a few in no particular order:
Gateway: My goal it to turn a old beige PC into a local gateway/firewall/AV for my home network. The plain is to have it running virtually on my old server. The only thing i'm waiting for it to come by a gibite Ethernet card.
Beowulf Cluster: This is something i been wanting to do for a few years, but don't have the money to fund it. I'm thinking about asking office buildings and public schools if they are willing to donate about 6 of there obsoltete computers. I still would need a Switch or a hub to connect them all. Switch can be pricey, and not something people are willing to throw away. I don't know if i want the nodes to be thin client/Dumb computer without hard drives. I think it will be cooler to have the nodes to be dumb and only processes task the server sends to them.
Microcontrolls, This is something i just got interested in. First i wanted to make DAQ (data acquisition) to stream data from a load cell to my computer. Secondly i was thing about making an on board computer for a model rocket that will record altitude, acceleration, and time. It also would be able deploy parachutes. I also was thinking about adding a transceiver.
Multi Touch Display. I found a good link to a walk though on how to build your own multi touch screen along with the software necessary to get everything up in running.
Linux : I need to get Linux working back on my laptop. This is something simple and should not take to long. Th hard part/ time consuming part is backing up the data before hand. I also plan to install TrueCrypt.
On the bright side i just finshed, working on a website. So acpect to see a little JavaScript example soon.
Posted by Brian at 8/07/2008 11:28:00 AM 10 comments
Tuesday, August 05, 2008
Mozilla Labs
Here is a cool concept videio from thr Mozilla guys
Aurora (Part 1) from Adaptive Path on Vimeo.
I will be make some more post soon, so stand by
Posted by Brian at 8/05/2008 02:33:00 PM 0 comments