Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- #include <stdio.h>
- #include <stdlib.h>
- #include <ctype.h>
- #include <string.h>
- #define MAX_CLASSES 20
- /* Function Prototypes */
- struct course * initcourse( int, char *, char *, float, char *, char *);
- void add( struct course * );
- /* Definition of a data node holding course information */
- struct course {
- int term;
- char name[15];
- char abbrev[20];
- float hours;
- char grade [4];
- char type[12];
- struct course *next;
- };
- /* head points to first node in list, end points to last node in list */
- /* initializes both to NULL, no nodes yet */
- struct course *head = (struct course *) NULL;
- struct course *end = (struct course *) NULL;
- /* Initializes a node, allocates memory for the node, and returns */
- /* a pointer to the new node. Must pass correct parameters. */
- struct course * initcourse( int term, char *name, char *abbrev, float hours, char *grade, char *type)
- {
- struct course *ptr;
- ptr = (struct course *) calloc( 1, sizeof(struct course ) );
- if( ptr == NULL )
- return (struct course *) NULL;
- else
- {
- ptr->term = term;
- strcpy( ptr->name, name );
- strcpy( ptr->abbrev, abbrev );
- ptr->hours = hours;
- strcpy( ptr->grade, grade );
- strcpy( ptr->type, type );
- return ptr;
- }
- }
- /* This adds a node to the end of the list. You must allocate a node and */
- /* then pass its address to this function */
- void add(struct course *new)
- {
- if (head == NULL)
- {
- head = new;
- }
- else
- {
- end->next = new;
- end = new;
- }
- }
- /* Prints all information in a node */
- void printnode( struct course *ptr )
- {
- printf("Term ->%dn", ptr->term );
- printf("Name ->%sn", ptr->name );
- printf("Abbreviation ->%sn", ptr->abbrev );
- printf("Hours ->%fn", ptr->hours );
- printf("Grade ->%sn", ptr->grade );
- printf("Type ->%sn", ptr->type );
- }
- /* Prints List of Nodes */
- void printlist( struct course *ptr )
- {
- while( ptr != NULL )
- {
- printnode( ptr );
- ptr = ptr->next;
- }
- }
- /* Calculates GPA */
- /* float gpa ( struct course *ptr ) */
- /* { */
- /* float totalhours; */
- /* float gpa; */
- /* float gradepoints; */
- /* while (ptr != NULL ) */
- /* { */
- /* totalhours += (ptr->hours); */
- /* gradepoints = (ptr->hours * ptr->grade); */
- /* } */
- /* gpa = (gradepoints /ptr->hours); */
- /* } */
- int main()
- {
- int term;
- char name[15];
- char abbrev[20];
- float hours;
- char grade[4];
- char type[12];
- float gpa;
- struct course *ptr;
- struct course course1, course2, course3;
- course1.term = 1234;
- strcpy(course1.name,"cse1234");
- strcpy(course1.abbrev,"systems");
- course1.hours = 4;
- strcpy(course1.grade,"A");
- strcpy(course1.type,"GEC");
- ptr = initcourse(course1.term, course1.name, course1.abbrev, course1.hours, course1.grade, course1.type);
- struct course *head, *ptr2;
- head = ptr;
- // ptr2 = ptr;
- add(ptr);
- course2.term = 4332;
- strcpy(course2.name,"cse4332");
- strcpy(course2.abbrev,"Database");
- course2.hours = 4;
- strcpy(course2.grade,"B");
- strcpy(course2.type,"Technical");
- ptr2 = initcourse(course2.term, course2.name, course2.abbrev, course2.hours, course2.grade, course2.type);
- add(ptr2);
- printlist(head);
- }
- void add(struct course *new)
- {
- if (head == NULL)
- {
- head = new;
- }
- else
- {
- end->next = new;
- end = new;
- }
- }
- struct course *head, *ptr2;
- head = ptr;
- head = ptr;
- add(ptr);
Add Comment
Please, Sign In to add comment