當前位置:編程學習大全網 - 編程語言 - 個人財務管理系統

個人財務管理系統

#include<stdio.h>

#include<string.h>

#include<graphics.h>

#include<stdlib.h>

#include<conio.h>

#define NULL 0

#define LEN sizeof(struct finance)

#define SETCODE 000000

#define SETUSER ******

/*定義結構體,結構體變量包括序號num,日期date,來源state,生活費receive,消費spend,結余save*/

struct finance

{int num;

char date[10];

char state[20];

int receive;

int spend;

int save;

struct finance *next;

};

/*函數申明*/

void login();

void win();

void init();

void loginerror();

void direct();

struct finance *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 n; /*定義壹個短整型全局變量記錄輸入數據條數,而且還可以用於容錯處理 */

struct finance **use; /*定義結構體型二級指針*/

char ch; /*定義字符型全局變量,接收控制字符,以進行窗口切換*/

void main()

{login();

direct();

while(ch!='4')

{switch(ch)

{case'1':*use=creat();break; /*direct函數調用後如按下1,調用鏈表創建函數,記錄當前信息*/

case'2':save();break; /*direct函數調用後如按下2,調用保存文件函數將鏈表保存為文件*/

case'3':view();break; /*direct函數調用後如按下3,調用查看函數將文件信息輸出*/

default:printf("no effect!!!");

};

direct();

}

/*if ch=4,quit*/

}

void direct()

{

init(); /*圖形函數初始化*/

cleardevice(); /*清屏*/

setbkcolor(MAGENTA); /*設置背景顏色為洋紅*/

setcolor(BLUE); /*設置當前顏色為藍色*/

rectangle(20,40,620,400); /*畫矩形框*/

rectangle(40,80,600,380);

outtextxy(300,90,"operate"); /*圖形文本輸出,定位輸出*/

bar(200,140,240,160); /*條形圖,突出顯示*/

outtextxy(200,150,"input");

outtextxy(380,150,"press 1!!!");

bar(200,180,240,200);

outtextxy(200,190,"save");

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

bar(200,220,240,240);

outtextxy(200,230,"view");

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

bar(200,260,240,280);

outtextxy(200,270,"quit");

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

ch=getch(); /*ch接收字符*/

closegraph();

}

void login()

{char user[10],setuser[]={"SETUSER"},code[10],setcode[]={"SETCODE"};

int flag=0,i;

do

{if(flag) loginerror();

init();

cleardevice();

setbkcolor(LIGHTBLUE);

setcolor(RED);

rectangle(180,80,400,200);

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

outtextxy(220,120,"username:");

for(i=0;i<6;i++)

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

outtextxy(220,140,user);

outtextxy(220,160,"code:");

for(i=0;i<6;i++)

{code[i]=getch();

outtextxy(220+5*i,180,"*");

}

flag++;

}while(!strcmp(user,setuser)||!strcmp(code,setcode)); /*當用戶名和密碼都正確時循環結束*/

getch();

closegraph();

win();

}

void loginerror() /*當輸入的用戶名或密碼不正確時,調用*/

{

init();

cleardevice();

setbkcolor(DARKGRAY);

setcolor(YELLOW);

rectangle(100,60,540,380);

outtextxy(240,140,"username");

outtextxy(240,220,"or code");

outtextxy(240,300,"not correct!!!");

getch();

closegraph();

}

void win()

{

init();

cleardevice();

setbkcolor(BROWN);

setcolor(GREEN);

rectangle(20,40,620,400);

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

outtextxy(150,190,"welcome to personal fiance manager system!!!");

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

getch();

closegraph();

}

void init() /*圖形模式初始化*/

{int gdrive,gmode;

gdrive=DETECT; /*自動檢測硬件驅動*/

gmode=CGAC0;

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

}

  • 上一篇:戰地2如何修改子彈數量?飛機、坦克和大炮。
  • 下一篇:開源精粹(二)!22個實用、有趣的開源項目
  • copyright 2024編程學習大全網