C语言财务管理系统源代码.docx

上传人:b****2 文档编号:1540073 上传时间:2022-10-23 格式:DOCX 页数:20 大小:16.64KB
下载 相关 举报
C语言财务管理系统源代码.docx_第1页
第1页 / 共20页
C语言财务管理系统源代码.docx_第2页
第2页 / 共20页
C语言财务管理系统源代码.docx_第3页
第3页 / 共20页
C语言财务管理系统源代码.docx_第4页
第4页 / 共20页
C语言财务管理系统源代码.docx_第5页
第5页 / 共20页
点击查看更多>>
下载资源
资源描述

C语言财务管理系统源代码.docx

《C语言财务管理系统源代码.docx》由会员分享,可在线阅读,更多相关《C语言财务管理系统源代码.docx(20页珍藏版)》请在冰豆网上搜索。

C语言财务管理系统源代码.docx

C语言财务管理系统源代码

#include"stdio.h"

#include"stdlib.h"

#defineMAX_NAME11

#defineMAX_DETAIL21

#defineMENU_COUNT9

#defineDATA_FILE"fa.dat"

typedefwnum_fi_type

{

income=1,

payout=-1

}fi_type;

typedefstruct_fi_info

{

intyear;

intmonth;

fi_typetype;

charname[MAX_NAME];

floatmoney;

chardetail[MAX_DETAIL];

}fi_info;

typedefstruct_fi_data

{

fi_infoinfo;

struct_fi_data*next;

}fi_data;

voidadd_income();

voidsearch_income();

voiddelete_income();

voidupdate_income();

voidadd_payout();

voidsearch_payout();

voiddelete_payout();

voidupdate_payout();

voidcount_total();

voidquit();

voidsearch_data(fi_typetype);

voiddelete_data(fi_typetype);

voidupdate_data(fi_typetype);

voidinitialize();

voidsave_to_file();

voidclear_data();

fi_data*get_last();

fi_data*get_previous(fi_data*p);

voidinput_info(fi_info*info);

voidshow_info(fi_data*p[],intcount);

fi_data*head;

charmenu[]=

"===============================================\n"

"|家庭财务管理系统|\n"

"+---------------------------------------------+\n"

"|收入管理|\n"

"|1添加收入|\n"

"|2查询收入明细|\n"

"|3删除收入|\n"

"|4修改收入|\n"

"|支出管理|\n"

"|5添加支出|\n"

"|6查询支出明细|\n"

"|7删除支出|\n"

"|8修改支出|\n"

"|统计|\n"

"|9统计总收入总支出|\n"

"----------------------------------------------+\n"

"|0退出系统|\n"

"==============================================+\n";

void(*menu_fun[])()=

{

quit,

add_income,

search_income,

delete_income,

update_income,

add_payout,

search_payout,

delete_payout,

update_payout,

count_total

};

intmain()

{

intselected=0;

initialize();

while(selected>=0&&selected<=MENU_COUNT)

{

system("cls");

printf(menu);

printf(">请选择要进行的操作(%d-%d):

",0,MENU_COUNT);

if(scanf("%d",&selected)!

=1||selected<0||selected>MENU_COUNT)

{

printf(">输入错误!

请选择[%d-%d]之间的数字!

按任意键重试...",0,MENU_COUNT);

fflush(stdin);

getchar();

}

else

{

menu_fun[selected]();

}

selected=0;

}

}

voidadd_income()

{

fi_data*p=(fi_data*)malloc(sizeof(fi_data));

memset(p,0,sizeof(fi_data));

p->next=NULL;

input_info(&(p->info));

p->info.type=income;

if(head==NULL)

{

head=p;

}

else

{

get_last(head)->next=p;

}

}

voidsearch_income()

{

search_data(income);

}

voiddelete_income()

{

delete_data(income);

}

voidupdate_income()

{

update_data(income);

}

voidadd_payout()

{

fi_data*p=(fi_data*)malloc(sizeof(fi_data));

memset(p,0,sizeof(fi_data));

input_info(&(p->info));

p->info.type=payout;

if(head==NULL)

{

head=p;

}

else

{

get_last(head)->next=p;

}

}

voidsearch_payout()

{

search_data(payout);

}

voiddelete_payout()

{

delete_data(payout);

}

voidupdate_payout()

{

update_data(payout);

}

voidcount_total()

{

floattotal_income=0.0;

floattotal_payout=0.0;

fi_data*p=head;

while(p!

=NULL)

{

if(p->info.type==income)

{

total_income+=p->info.money;

}

else

{

total_payout+=p->info.money;

}

p=p->next;

}

printf("+---------+---------+---------+\n");

printf("|合计收入|合计支出|结余|\n");

printf("+---------+---------+---------+\n");

printf("|%12.2f|%12.2f|%12.2f|\n",total_income,total_payout,total_income-total_payout);

printf("+---------+---------+---------+\n");

printf(">按任意键继续返回主菜单...");

fflush(stdin);

getchar();

}

voidsearch_data(fi_typetype)

{

intyear=0;

intmonth=0;

fi_data*p=NULL;

fi_data*result[9]={NULL};

intcount=0;

charinput='';

while

(1)

{

printf(">请输入要查询的年月(例如:

2009/1)");

if(scanf("%d/%d",&year,&month)!

=2)

{

printf(">输入错误。

\n");

}

else

{

p=head;

count=0;

memset(result,0,sizeof(fi_data*));

while(p!

=NULL)

{

if(p->info.year==year&&p->info.month==month&&p->info.type==type)

{

if(count<9)

{

result[count]=p;

count++;

}

else

{

show_info(result,count);

printf(">输入空格并回车翻页。

其他键退出。

");

fflush(stdin);

input=getchar();

if(input=='')

{

memset(result,0,sizeof(fi_data*));

count=0;

result[count]=p;

count++;

}

else

{

break;

}

}

}

p=p->next;

}

if(count!

=0)

{

show_info(result,count);

}

else

{

printf(">没有找到数据。

\n");

}

printf(">继续查找其他数据?

(yorn)");

fflush(stdin);

input=getchar();

if(input=='y'||input=='Y')

{

continue;

}

else

{

break;

}

}

}

}

voiddelete_data(fi_typetype)

{

intyear=0;

intmonth=0;

fi_data*p=NULL;

fi_data*pre=NULL;

fi_data*result[9]={NULL};

intcount=0;

charinput='';

inti=0;

while

(1)

{

printf(">请输入要查询的年月(例如:

2009/1)");

if(scanf("%d/%d",&year,&month)!

=2)

{

printf(">输入错误。

\n");

}

else

{

p=head;

count=0;

memset(result,0,sizeof(fi_data*));

while(p!

=NULL)

{

if(p->info.year==year&&p->info.month&&p->info.type)

{

if(count=9)

{

result[count]=p;

count++;

}

else

{

show_info(result,count);

printf(">请输入空格并回车翻页。

输入对应的序号删除。

其他键退出:

");

fflush(stdin)

input=getchar();

if(input=='')

{

memset(result,0,sizeof(fi_data*));

count=0;

result[count]=p;

count++;

}

elseif(input=='1'&&input<=48+count)

{

i=input-49;

pre=get_previous(result[i]);

if(pre==NULL)

{

head=head->next;

}

else

{

pre->next=result[i]->next;

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 求职职场 > 简历

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1