these shouldn't be in here
This commit is contained in:
parent
8eb004e775
commit
4c16753fb9
2 changed files with 0 additions and 219 deletions
|
@ -1,190 +0,0 @@
|
||||||
#include "movies.h"
|
|
||||||
|
|
||||||
int haschanged = 0;
|
|
||||||
|
|
||||||
int main(int argc, char** argv) {
|
|
||||||
|
|
||||||
if(argc < 2) {
|
|
||||||
printf("Please Specify Filename\n");
|
|
||||||
return 64;
|
|
||||||
}
|
|
||||||
|
|
||||||
struct node* head = parse_csv(argv[1]);
|
|
||||||
|
|
||||||
// menu logic
|
|
||||||
enum OPTIONS menu_select = 0;
|
|
||||||
while(1) {
|
|
||||||
|
|
||||||
menu_select = menu();
|
|
||||||
|
|
||||||
switch(menu_select) {
|
|
||||||
case YEAR:
|
|
||||||
movie_year(head);
|
|
||||||
break;
|
|
||||||
case RATE:
|
|
||||||
movie_rate(head);
|
|
||||||
break;
|
|
||||||
case LANGUAGE:
|
|
||||||
movie_lang(head);
|
|
||||||
break;
|
|
||||||
case EXIT:
|
|
||||||
printf("Goodbye~\n");
|
|
||||||
return 0;
|
|
||||||
default:
|
|
||||||
printf("You naughty~ Pick a correct option next time.\n");
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
int menu() {
|
|
||||||
|
|
||||||
printf("1. Show movies released in the specified year\n");
|
|
||||||
printf("2. Show highest rated movie for each year\n");
|
|
||||||
printf("3. Show the title and year of release of all movies in a specific language\n");
|
|
||||||
printf("4. Exit from the program\n");
|
|
||||||
|
|
||||||
int option;
|
|
||||||
do {
|
|
||||||
option = integer_input("Enter a choice from 1 to 4: ");
|
|
||||||
} while(option > 4 || option < 1);
|
|
||||||
|
|
||||||
return option;
|
|
||||||
}
|
|
||||||
|
|
||||||
void year_print(struct csv* data, void* val) {
|
|
||||||
|
|
||||||
if(data->year != *(int*)val)
|
|
||||||
return;
|
|
||||||
|
|
||||||
printf("%s\n", data->title);
|
|
||||||
haschanged = 1;
|
|
||||||
}
|
|
||||||
|
|
||||||
void movie_year(struct node* head) {
|
|
||||||
|
|
||||||
void* f = &year_print;
|
|
||||||
int* val = malloc(sizeof(int));
|
|
||||||
|
|
||||||
*val = integer_input("Enter year to search movies from: ");
|
|
||||||
haschanged = 0;
|
|
||||||
|
|
||||||
// Prints each node if movie year the same as specified
|
|
||||||
iterate_nodes(head, f, val);
|
|
||||||
|
|
||||||
if(!haschanged) {
|
|
||||||
printf("No data about movies released in the year %d", *val);
|
|
||||||
}
|
|
||||||
|
|
||||||
printf("\n\n");
|
|
||||||
|
|
||||||
}
|
|
||||||
|
|
||||||
void lang_print(struct csv* data, void* val) {
|
|
||||||
|
|
||||||
for(int i = 0; i < data->numlang; i++) {
|
|
||||||
|
|
||||||
// Prints if movie is in given language
|
|
||||||
if(!strcmp(val, data->languages[i])) {
|
|
||||||
printf("%d %s\n", data->year, data->title);
|
|
||||||
haschanged = 1;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
void movie_lang(struct node* head) {
|
|
||||||
|
|
||||||
void* f = &lang_print;
|
|
||||||
char val[41];
|
|
||||||
|
|
||||||
printf("Enter Language to search for: ");
|
|
||||||
fflush(stdout);
|
|
||||||
fgets(val, 40, stdin);
|
|
||||||
|
|
||||||
// Replace newline character with the null terminator
|
|
||||||
val[strlen(val)-1] = '\0';
|
|
||||||
|
|
||||||
haschanged = 0;
|
|
||||||
iterate_nodes(head, f, &val);
|
|
||||||
|
|
||||||
if(!haschanged)
|
|
||||||
printf("No data about movies released in %s\n", val);
|
|
||||||
printf("\n");
|
|
||||||
|
|
||||||
}
|
|
||||||
|
|
||||||
void check_year(int* data, int* year) {
|
|
||||||
|
|
||||||
if(*data == *year)
|
|
||||||
haschanged = 1;
|
|
||||||
|
|
||||||
}
|
|
||||||
|
|
||||||
void find_year(struct csv* data, void* year) {
|
|
||||||
|
|
||||||
void* f = &check_year;
|
|
||||||
|
|
||||||
haschanged = 0;
|
|
||||||
// Finds every year that has a movie produced in our list
|
|
||||||
iterate_nodes(year, f, &data->year);
|
|
||||||
|
|
||||||
if(!haschanged)
|
|
||||||
appendv_node(year, &data->year);
|
|
||||||
|
|
||||||
haschanged = 0;
|
|
||||||
|
|
||||||
}
|
|
||||||
|
|
||||||
void print_rating(struct csv* data, struct csv** val) {
|
|
||||||
|
|
||||||
// Null case handled here
|
|
||||||
if(val[0] == NULL) {
|
|
||||||
if(data->year == haschanged)
|
|
||||||
val[0] = data;
|
|
||||||
return;
|
|
||||||
}
|
|
||||||
|
|
||||||
// Sets pointer to movie struct of new highest rating
|
|
||||||
if(data->rating > val[0]->rating
|
|
||||||
&& data->year == haschanged)
|
|
||||||
val[0] = data;
|
|
||||||
|
|
||||||
}
|
|
||||||
|
|
||||||
void index_nodes(int* val, void* head) {
|
|
||||||
|
|
||||||
haschanged = *val;
|
|
||||||
|
|
||||||
struct csv ** cur_val = malloc(sizeof(struct csv*));
|
|
||||||
cur_val[0] = NULL;
|
|
||||||
|
|
||||||
void* f = &print_rating;
|
|
||||||
|
|
||||||
// Find the node of highest rating for specified year
|
|
||||||
iterate_nodes(head, f, cur_val);
|
|
||||||
|
|
||||||
printf("%d %2.1f %s\n", cur_val[0]->year, cur_val[0]->rating, cur_val[0]->title);
|
|
||||||
|
|
||||||
haschanged = 0;
|
|
||||||
|
|
||||||
}
|
|
||||||
|
|
||||||
void movie_rate(struct node* head) {
|
|
||||||
|
|
||||||
struct csv* temp = head->data;
|
|
||||||
|
|
||||||
struct node* year = appendv_node(NULL, &temp->year);
|
|
||||||
|
|
||||||
void* f = &find_year;
|
|
||||||
|
|
||||||
// Make a list of every year that has a movie
|
|
||||||
iterate_nodes(head, f, year);
|
|
||||||
|
|
||||||
void* tempish = &index_nodes;
|
|
||||||
|
|
||||||
|
|
||||||
// Iterate though every year and find the highest rating
|
|
||||||
iterate_nodes(year, tempish, head);
|
|
||||||
|
|
||||||
printf("\n");
|
|
||||||
}
|
|
||||||
|
|
|
@ -1,29 +0,0 @@
|
||||||
|
|
||||||
|
|
||||||
#ifndef MOVIES
|
|
||||||
#define MOVIES
|
|
||||||
|
|
||||||
#include "stdio.h"
|
|
||||||
#include "stdlib.h"
|
|
||||||
|
|
||||||
#include "csv_parser.h"
|
|
||||||
#include "node.h"
|
|
||||||
#include "input.h"
|
|
||||||
|
|
||||||
int menu();
|
|
||||||
|
|
||||||
// Headers for the options called by menu
|
|
||||||
void movie_year(struct node*);
|
|
||||||
void movie_rate(struct node*);
|
|
||||||
void movie_lang(struct node*);
|
|
||||||
|
|
||||||
// Menu Options
|
|
||||||
enum OPTIONS {
|
|
||||||
YEAR = 1,
|
|
||||||
RATE = 2,
|
|
||||||
LANGUAGE = 3,
|
|
||||||
EXIT = 4,
|
|
||||||
};
|
|
||||||
|
|
||||||
|
|
||||||
#endif
|
|
Loading…
Reference in a new issue