snp-lab-code/P06_Lösung_Andrin/main.c

120 lines
2.7 KiB
C

/* ----------------------------------------------------------------------------
* -- _____ ______ _____ -
* -- |_ _| | ____|/ ____| -
* -- | | _ __ | |__ | (___ Institute of Embedded Systems -
* -- | | | '_ \| __| \___ \ Zuercher Hochschule Winterthur -
* -- _| |_| | | | |____ ____) | (University of Applied Sciences) -
* -- |_____|_| |_|______|_____/ 8401 Winterthur, Switzerland -
* ----------------------------------------------------------------------------
*/
/**
* @file
* @brief Lab implementation
*/
#include <stdio.h>
#include <stdlib.h>
#include "person.h"
#include "list.h"
#include <string.h>
#define MAX_AGE 200
#define MIN_AGE 0
void getPerson(person_t *neu) {
int run = 1;
while(run == 1) {
printf("Enter Name: ");
char input[100];
scanf("%s",input); // evt limite
if(strlen(input) <= NAME_LEN) {
strcpy(neu->name,input);
run = 0;
} else {
printf("Falsche Eingabe!!\n");
}
while(getchar() != '\n') {}
}
run = 1;
while(run == 1) {
printf("Enter First Name: ");
char input[100];
scanf("%s",input);
if(strlen(input) <= NAME_LEN) {
strcpy(neu->first_name,input);
run = 0;
} else {
printf("Falsche Eingabe!!\n");
}
while(getchar() != '\n') {
}
}
run = 1;
while(run == 1) {
int age = -1;
printf("Age: ");
if(scanf("%d",&age) != 0) {
neu->age = age;
run = 0;
} else {
printf("Falsche Eingabe!!\n");
}
while(getchar() != '\n') {
}
}
}
void insert(node_t *liste) {
person_t neu;
getPerson(&neu);
insert_list(liste,&neu);
}
void removeIt(node_t *liste) {
person_t del;
getPerson(&del);
remove_list(liste,&del);
}
/**
* @brief Main entry point.
* @param[in] argc The size of the argv array.
* @param[in] argv The command line arguments...
* @returns Returns EXIT_SUCCESS (=0) on success, EXIT_FAILURE (=1) there is an expression syntax error.
*/
int main(int argc, char* argv[])
{
// BEGIN-STUDENTS-TO-ADD-CODE
node_t personen_liste;
personen_liste.next = &personen_liste;
int run = 1;
while(run == 1) {
char cmd[100];
printf("I to Insert new Person\nR to Remove Person\nS to Show List\nC to Clear all\nE to End\n-> ");
scanf("%s",cmd);
if(cmd[0] == 'I') {
insert(&personen_liste);
}else if(cmd[0] == 'E') {
run = 0;
}else if(cmd[0] == 'R') {
removeIt(&personen_liste);
}else if(cmd[0] == 'S') {
show_list(&personen_liste);
}else if(cmd[0] == 'C') {
clear_list(&personen_liste);
}
}
// END-STUDENTS-TO-ADD-CODE
return EXIT_SUCCESS;
}