User Tools

Site Tools


user:kkrauss1:portfolio:library_tester

Differences

This shows you the differences between two versions of the page.

Link to this comparison view

Both sides previous revisionPrevious revision
user:kkrauss1:portfolio:library_tester [2011/12/12 21:10] – [Background] kkrauss1user:kkrauss1:portfolio:library_tester [2011/12/12 21:13] (current) – [Code] kkrauss1
Line 1: Line 1:
 +======Project: library tester======
  
 +A project for C/C++, Data Structures, and System Programming by Karl Krauss for fall 2011.
 +
 +Approximately 1 hour for just the tester, then several more for all the libraries.  
 +
 +=====Objectives=====
 +I had spent a lot of time writing various libraries, this program was written as a way to test them all with subtle changes.
 +
 +=====Prerequisites=====
 +In order to successfully accomplish/perform this project, the listed resources/experiences need to be consulted/achieved:
 +
 +  * understand functions
 +  * understand pointers
 +  * understand structs
 +  * understand malloc()
 +
 +=====Background=====
 +
 +This was the simplest way I could think of to test all of my libraries.
 +=====Attributes=====
 +
 +====Cprog attributes====
 +
 +  * variables
 +  * pointers 
 +  * selection 
 +  * i/o 
 +  * repetition 
 +  * functions 
 +  * structures 
 +  * libraries
 +====Data Structures====
 +  * Pointers
 +  * Malloc/new
 +  * linked list
 +  * Doubly linked list
 +  * Libraries
 +
 +====Systems programming====
 +  * Terminal I/O
 +
 +=====Code=====
 +This is the code: 
 +<code c>
 +#include <stdio.h>
 +#include <stdlib.h>
 +#include "queue.h"// this incarnation tested queues/ but can test any of my 3 core libraries
 +
 +int main()
 +{
 + char selection;
 + int input;
 +
 + Node *tmp;
 + Queue *myQueue;
 +
 +
 + myQueue=(Queue *)malloc(sizeof(Queue));
 +
 + myQueue->start = myQueue->end = tmp = NULL;
 + printf("Press '1' if you wish to create or add to Queue.\n\n");
 + printf("Press '2' if you wish to delete start of a Queue.\n\n");
 + printf("Press '3' if you wish to peek start of Queue\n\n");
 + printf("Press 'q' if you wish to quit: ");
 +
 + scanf("%c", &selection);
 +
 + while (selection != 'q')
 + {
 + if (selection == '1')
 + {
 + printf("What value would you like to store at top of stack: ");//add to top of stack
 + scanf("%d", &input);
 + myQueue = enqueue(myQueue, input);
 + }
 + else if(selection == '2')//delete beginning of queue
 + {
 +
 + tmp = dequeue(myQueue);
 + if (tmp == NULL)
 + {
 + printf("Empty Queue.\n");
 + }
 + else
 + {
 + printf("%d\n", tmp->value);
 + }
 + }
 + else if(selection == '3')//view beginning of queue without deleting
 + {
 +
 + tmp = peek(myQueue);
 + if (tmp == NULL)
 + {
 + printf("Empty queue1.\n");
 + }
 + else
 + {
 + printf("%d\n", tmp->value);
 + }
 + }
 +
 + else 
 + {
 + printf("Improper selection please try again.\n\n");
 + }
 +
 + //printf("Press '1' if you wish to create or append a new node.\n\n");
 + //printf("Press '2' if you wish to insert a node.\n\n");
 + //printf("Press '3' if you wish to delete a node\n\n");
 + //printf("press '4' if you wish to print current list\n\n");
 + //printf("Press '-1' if you wish to quit: ");
 + printf("enter a selection: ");
 + getchar();
 + scanf("%c", &selection);
 + }
 +
 + return 0;
 +}
 +</code>