Progizzunk Visual C++ nyelven!!!
  • zoleeee88
    #49
    #include "stdafx.h"
    #include <stdio.h>
    #include <stdlib.h>

    typedef struct _tanulo {
    char nev[10];
    char vezeteknev[12];
    int szemelyiszam;
    char ertekeles;
    struct _tanulo *dalsi;
    } tanulo;

    tanulo *elso,*utolso, *tmp, *pp;

    extern void menu();
    extern int Create_List();
    extern int Add_Tanulo();
    extern int Del_Tanulo();
    extern int Del_List();
    extern int Write_Textsubor();
    extern int Read_Textsubor();
    extern int Print_Monitor();

    int main()
    {
    char elem;

    printf("\n\n",elso);
    menu();
    while((elem=getchar()) != 'x')
    {
    if(elem!='\n'){
    switch(elem){
    case 'a':
    Create_List();
    break;
    case 'b':
    Add_Tanulo();
    break;
    case 'c':
    Del_Tanulo();
    break;
    case 'd':
    Del_List();
    break;
    case 'e':
    Write_Textsubor();
    break;
    case 'f':
    Read_Textsubor();
    break;
    case 'g':
    Print_Monitor();
    break;
    case 'x':
    return 0;
    break;
    default:
    printf("Ervenytelen... Meg1x probald meg\n");
    }
    menu();
    }
    }

    }

    void menu()
    { printf("\n*************************************************\n\n");
    printf("MENU:\n");
    printf("a: hozz letre egy ures listat \n");
    printf("b: tanulo behelyezese a listaba \n");
    printf("c: tanulo torlese a listabol \n");
    printf("d: az egesz lista torlese \n");
    printf("e: tanulok listajanak kiírasa szoveges fajlba(.txt)\n");
    printf("f: tanulok listajanak beolvasasa szoveges fajlbol \n");
    printf("g: tanulok listajanak kiirasa kepernyore \n");
    printf("x: EXIT\n");
    }

    int Create_List(){
    if(elso==NULL) {
    if ((elso = (tanulo *) malloc(sizeof(tanulo)))== NULL {
    printf("Not enough memory...\n");
    return -1;
    }
    else
    {
    elso->dalsi=NULL;
    elso->szemelyiszam=-1
    utolso=elso;
    printf("A lista letrehozva...\n");
    }
    }
    else
    {
    printf("Nem lehet letrehozni, mert mar letezik...\n");
    return -1;
    }
    return 0;
    }

    int Add_Tanulo()
    {
    if(elso==NULL)
    {
    printf("A lista nem letezik...\n");
    return (-1);
    }

    if(!(utolso->szemelyiszam==-1)){
    if ((tmp = (tanulo *) malloc(sizeof(tanulo)))== NULL)
    {
    printf("Not enough memory...\n");
    return -1;
    }
    else
    {
    utolso->dalsi=tmp;
    utolso=tmp;
    tmp->dalsi=0;
    utolso->szemelyiszam=-1;
    }
    }

    printf("Nev:\n");
    scanf("%s",utolso->nev);
    printf("Vezeteknev:\n");
    scanf("%s",utolso->vezeteknev);
    printf("Szemelyi szam:\n");
    scanf("%i",&utolso->szemelyiszam);
    printf("Ertekeles:");
    scanf(" %c",&utolso->ertekeles);
    return 0;
    }

    int Del_Tanulo()
    {
    int rc,k=0;
    printf("Szemelyi szam:",&rc);
    scanf("%d",&rc);

    if(elso==0 || elso->szemelyiszam==-1)
    {
    printf("Nincs semmi az adatbazisban...\n");
    }
    else
    {
    pp=elso;
    for(tmp=elso;tmp!=NULL && k==0;tmp=tmp->dalsi)
    {
    if(tmp->szemelyiszam==rc){
    if(tmp==elso)
    elso=elso->dalsi;
    pp->dalsi=tmp->dalsi;
    free( (void *) tmp);
    k=1;
    printf("A bejegyzes torolve...\n");
    }
    else
    pp=tmp;
    }
    }
    return 0;
    }

    int Del_List()
    {
    if(elso!=0){
    pp=elso;
    while(pp!=0){
    tmp=pp->dalsi;
    free((void *)pp);
    pp=tmp;
    }
    elso=0;
    }
    return 0;
    }

    int Write_Textsubor()
    {
    FILE *file;
    char filename[256];
    printf("Add meg a fajl nevet:");
    scanf("%s",filename);
    if((file=fopen(filename,"w"))==NULL){
    printf("Nem lehet letrehozni...\n\n");
    return -1;
    }
    for(tmp=elso;tmp!=NULL;tmp=tmp->dalsi){
    if(tmp->szemelyiszam!=-1) fprintf(file,"%s %s %i %c\n",tmp->nev,tmp->vezeteknev,tmp->szemelyiszam,tmp->ertekeles);
    }
    fflush(file);
    fclose(file);
    return 0;

    }

    int Read_Textsubor()
    {
    FILE *file;
    char filename[256];
    printf("Add meg a fajl nevet:");
    scanf("%s",filename);
    if((file=fopen(filename,"r"))==NULL){
    printf("Nem lehet megnyitni...\n\n");
    return -1;
    }

    if(elso==NULL)
    {
    if ((elso = (tanulo *) malloc(sizeof(tanulo)))== NULL) {
    printf("Not enough memory...\n");
    return -1;
    }
    else
    {
    elso->dalsi=NULL;
    elso->szemelyiszam=-1;
    utolso=elso;
    }
    }

    if(!(utolso->szemelyiszam==-1)){
    if ((tmp = (tanulo *) malloc(sizeof(tanulo)))== NULL) {
    printf("Not enough memory...\n");
    return -1;
    }
    else
    {
    utolso->dalsi=tmp;
    utolso=tmp;
    tmp->dalsi=0;
    utolso->szemelyiszam=-1;
    }
    }

    while(fscanf(file,"%s %s %i %c",utolso->nev,utolso->vezeteknev,&utolso->szemelyiszam,&utolso->ertekeles)!=EOF){
    if(!(utolso->szemelyiszam==-1)){
    if ((tmp = (tanulo *) malloc(sizeof(tanulo)))== NULL) {
    printf("Not enough memory...\n");
    return -1;
    }
    else
    {
    utolso->dalsi=tmp;
    utolso=tmp;
    tmp->dalsi=0;
    utolso->szemelyiszam=-1;
    }
    }
    }


    fclose(file);
    return 0;

    }

    int Print_Monitor()
    {
    for(tmp=elso;tmp!=NULL;tmp=tmp->dalsi){
    if(tmp->szemelyiszam!=-1)
    printf("%s %s %i %c\n",tmp->nev,tmp->vezeteknev,tmp->szemelyiszam,tmp->ertekeles);
    }
    return 0;

    }