Upload files to 'P06_Lösung_Andrin'
This commit is contained in:
parent
e54dc6a4d5
commit
6c94df5e4d
|
@ -0,0 +1,17 @@
|
|||
#include "person.h"
|
||||
#include <stdlib.h>
|
||||
#ifndef LIST_H
|
||||
#define LIST_H
|
||||
|
||||
typedef struct node {
|
||||
person_t content;
|
||||
struct node *next;
|
||||
} node_t;
|
||||
|
||||
int insert_list(node_t *,person_t *);
|
||||
int remove_list(node_t *,person_t *);
|
||||
void show_list(node_t *);
|
||||
void clear_list(node_t *);
|
||||
|
||||
|
||||
#endif
|
|
@ -0,0 +1,119 @@
|
|||
/* ----------------------------------------------------------------------------
|
||||
* -- _____ ______ _____ -
|
||||
* -- |_ _| | ____|/ ____| -
|
||||
* -- | | _ __ | |__ | (___ 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;
|
||||
}
|
|
@ -0,0 +1,17 @@
|
|||
#include "person.h"
|
||||
#include <string.h>
|
||||
|
||||
int person_compare(const person_t *a, const person_t *b) {
|
||||
int result;
|
||||
result = strcmp(a->name,b->name);
|
||||
if(result) {
|
||||
return result;
|
||||
}
|
||||
|
||||
result = strcmp(a->first_name,b->first_name);
|
||||
if(result) {
|
||||
return result;
|
||||
}
|
||||
|
||||
return a->age - b->age;
|
||||
}
|
|
@ -0,0 +1,14 @@
|
|||
#ifndef PERSON_H
|
||||
#define PERSON_H
|
||||
|
||||
#define NAME_LEN 20
|
||||
|
||||
typedef struct {
|
||||
char name[NAME_LEN];
|
||||
char first_name[NAME_LEN];
|
||||
unsigned int age;
|
||||
} person_t;
|
||||
|
||||
int person_compare(const person_t *a, const person_t *b);
|
||||
|
||||
#endif
|
Loading…
Reference in New Issue