Sistema de gestión financiera personal

#includelt;stdio.hgt;

#includelt;string.hgt;

#includelt;graphics.hgt;

# includelt;stdlib.hgt;

#includelt;conio.hgt;

#define NULL 0

#define LEN sizeof(struct Finance)

#define SETCODE 000000

#define SETUSER ******

/*Define la estructura. Las variables de la estructura incluyen el número de serie, la fecha, el estado de origen y. gastos de subsistencia recibir, consumir gastar, guardar saldo*/

estructurar finanzas

{int num;

char date[10];

char estado[20];

int recibir;

int gastar;

int guardar;

estructurar finanzas *siguiente;

};

/*Declaración de función*/

void login();

void win();

void init();

void loginerror();

void direct();

estructura finanzas *creat (void);

void save();

void saveover();

void view();

void viewdraw();

void viewall();

void viewdate();

void viewnum();

void analyse();

int smax( );

int smin();

void print(struct Finance *p);

int /*Definir una variable global entera corta; registro Ingrese el número de elementos de datos, y también se puede usar para procesamiento tolerante a fallas*/

struct Finance **use /*Defina el puntero secundario del tipo de estructura*/

char ch /*Variable global de carácter de definición, que recibe caracteres de control para cambiar de ventana*/

void main()

{login();

direct( );

while(ch!='4')

{switch(ch)

{case'1': *use=creat(); break; / *Si presiona 1 después de llamar a la función directa, llame a la función de creación de lista vinculada y registre la información actual*/

case'2': save(); 2 después de llamar a la función directa, llame a La función guardar archivo guarda la lista vinculada como un archivo*/

case'3': view(); se llama, se llama a la función de vista para generar la información del archivo*/

predeterminado: printf("no effect!!!");<

/p>

};

direct();

}

/*si canal=4, salir*/

}

void direct()

{

init(); /*Inicialización de la función gráfica*/

cleardevice(); /*Borrar la pantalla*/

setbkcolor(MAGENTA); /*Establecer el color de fondo en magenta*/

setcolor(BLUE); /

rectangle(20, 40, 620, 400); /*Dibujar un rectángulo*/

rectangle(40, 80, 600, 380); >outtextxy (300, 90, "operate"); /*Salida de texto gráfico, salida de posicionamiento*/

bar(200, 140, 240, 160 /*Gráfico de barras, resaltado*/

outtextxy(200, 150, "entrada");

outtextxy(380, 150, "presione 1!!!"); , 240, 200);

outtextxy(200, 190, "guardar");

outtextxy(380, 190, "presione 2!!!");

bar(200, 220, 240, 240);

outtextxy(200, 230, "ver");

outtextxy(380, 230, "presione 3!! !");

bar(200, 260, 240, 280);

outtextxy(200, 270, "salir");

outtextxy(380 , 270, "presione 4!!!");

ch=getch(); /*ch recibe caracteres*/

closegraph(); }

void login()

{char usuario[10], setuser[]={"SETUSER"}, código[10], setcode[]={"SETCODE"} ;

int flag=0,i;

hacer

{if(flag) loginerror();

init();

cleardevice();

setbkcolor(AZUL CLARO);

setcolor(ROJO);

rectángulo(180, 80, 400, 200);

outtextxy(220, 100, "ID:");

outtextxy(220, 120, "nombre de usuario: "); i=0; ilt; 6; i )

{usuario[i]=getch(); fflush(stdin);}

outtextxy(220, 140, usuario); /p>

outtextxy(220, 160, "código: ");

for(i=0; ilt; 6; i )

{código[i]= getch();

outtextxy(220 5

*i, 180, "*");

}

flag;

} while(!strcmp(usuario, setuser)||!strcmp(código , setcode)); /*El bucle finaliza cuando el nombre de usuario y la contraseña son correctos*/

getch();

closegraph()

win( ) ;

}

void loginerror() /*Llamar cuando el nombre de usuario o la contraseña ingresados ​​son incorrectos*/

{

init();

cleardevice();

setbkcolor(DARKGRAY);

setcolor(AMARILLO);

rectangle(100, 60, 540, 380);

outtextxy(240, 140, "nombre de usuario");

outtextxy(240, 220, "o código"); >outtextxy(240, 300, "¡¡¡no es correcto!!!");

getch();

closegraph()

}

;

void win()

{

init();

cleardevice();

setbkcolor(BROWN); /p>

setcolor(VERDE);

rectangle(20, 40, 620, 400);

outtextxy(150, 160, "****** *); ***************************************");

outtextxy (150,190,"¡¡¡bienvenido al sistema de gestión de finanzas personales!!!");

outtextxy(150,220,"****************** **** ************************");

getch();

closegraph ();

}

void init() /*Inicialización del modo de gráficos*/

{int gdrive, gmode;

gdrive =DETECT; *Detectar automáticamente el controlador de hardware*/

gmode=CGAC0;

initgraph(amp;gdrive,amp;gmode,"");

}