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;
}