I'm new with C, and on the university they are making us create a program that can save data introduced by the user, read the data and check if it’s well introduced. After that it must save that data in each free space, you have 10 empty spaces for saving the data. With all the data saved it must show also the data and compare it with all the data introduced. I made the part of reading the data introduced and cheking if its ok. The problem that I have is that I don’t know how I could make the data base and show that data. Here is the code that I have till now.
    #include <stdio.h>
    #include <stdlib.h>
    typedef struct {
       char name[30];
       int num_sample;
       char section;
       int cabin;
       int day;
       int month;
       int year;
    }Species;
    int menu() {
        int op = 0;
        printf ("\nPrototype Nature Reserve.\n");
        printf ("1. Insert a new species.\n");
        printf ("2. List the species housed.\n");
        printf ("3. Show stadistics.\n");
        printf ("4. Exit.\n");
        printf ("\nIntroduce an option: ");
        scanf ("%d", &op);
        return op;
    }
    void New_species() {
        Species e;
        int i, j;
        char species[100];
        char aux[10];
        printf("Enter data:\n");
        //A fflush is made to not have a problem with the number entered in the menu
        fflush(stdin);
        gets (species);
        //While it is different from - read the text
        for (i = 0; species[i] != '-'; i++) {
          e.name[i] = species[i];
        }
        e.name[i] = '\0';
        i++;
        //We add 1 to the position i because is ending in - and should start reading from the following
        for (j = 0; species[i] != '-'; i++,j++) {
            aux[j] = species[i];
        }
        aux[j] = '\0';
        e.num_sample = My_atoi(aux);
        // Check that the sample is a number and not a character
        if (e.num_sample <= 0 || e.num_sample >= 100) {
            printf ("--> Error in data format.\n");
        }
        i++;
        //Reads the day introduced
        for (j = 0; species[i] != '/'; i++, j++) {
             aux[j] = species[i];
        }
        aux[j] = '\0';
        e.day = My_atoi(aux);
        //Controls the format of the day
        if (e.day <= 0 || e.day > 31) {
            printf ("--> Error in data format.\n");
        }
        i++;
        //Reads the month introduced
        for (j = 0; species[i] != '/'; i++, j++) {
            aux[j] = species[i];
        }
        aux[j] = '\0';
        e.month = My_atoi(aux);
        //Controls the format of the month
        if (e.month <= 0 || e.month > 12) {
            printf ("--> Error in data format.\n");
        }
        i++;
        //Reads the year introduced
        for (j = 0; species[i] != '-'; i++, j++) {
            aux[j] = species[i];
        }
        aux[j] = '\0';
        e.year = My_atoi(aux);
        //Controls the format of the year
        if (e.year < 1970 || e.year > 2060) {
            printf ("--> Error in data format.\n");
        }
        i++;
        //Reads the section introduced
        e.section = species[i];
        //Controls that the section is in capital letters
        if (e.section < 'A' || e.section > 'Z') {
            printf ("--> Error in data format.\n");
        }
        i+= 2;
        //As the cabin is at the end it must reach the \0
        for (j = 0; species[i] != '\0'; i++, j++) {
            aux[j] = species[i];
        }
        aux[j] = '\0';
        e.cabin = My_atoi(aux);
        if (e.cabin < 0 || e.cabin > 20) {
            printf ("--> Error in data format.\n");
        }
        printf ("Species stored successfully (%d/10 free).");
        //This printf is just to ensure that the data entered was read correctly
        printf ("\n%s", species);
    }
    int My_atoi(char cad[10]) {
        int r = 0;
        int i;
        for (i = 0; cad[i] != '\0'; i++) {
           r = r * 10;
           r += cad[i] - '0';
        }
        return r;
    }
    void list_species() {
    }
    void stadistics() {
    }
    void executeOption(int op) {
       switch (op) {
            case 1:
                New_species();
                break;
            case 2:
                list_species();
                break;
            case 3:
                stadistics();
                break;
            default:
                break;
        }
    }
    int main() {
        int op = 0;
        do {
            op = menu();
            executeOption(op);
        } while (op != 4);
        return 0;
    }
I’ve seen that you can use files* so it can create a .txt file for storing but I don’t know how to use it and I don't think that it's allowed in this program.
I'll leave a photo of how it should work
Thanks.
 
     
     
    