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*/ p>
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*/); p>
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,"");
}