C语言财务管理系统源代码Word文档格式.docx
- 文档编号:21964671
- 上传时间:2023-02-02
- 格式:DOCX
- 页数:21
- 大小:18.94KB
C语言财务管理系统源代码Word文档格式.docx
《C语言财务管理系统源代码Word文档格式.docx》由会员分享,可在线阅读,更多相关《C语言财务管理系统源代码Word文档格式.docx(21页珍藏版)》请在冰豆网上搜索。
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)
输入错误!
请选择[%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;
}
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));
info.type=payout;
head=p;
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;
total_payout+=p->
p=p->
next;
printf("
+-----—--—+-—————--—+———-——---+\n"
);
|合计收入|合计支出|结余|\n"
);
+——————---+-—----——-+-—--—--—-+\n”);
printf(”|%12。
2f|%12.2f|%12.2f|\n"
,total_income,total_payout,total_income-total_payout);
+—-——--———+-—----—-—+———————--+\n"
〉按任意键继续返回主菜单。
。
”);
fflush(stdin);
voidsearch_data(fi_typetype)
intyear=0;
intmonth=0;
fi_data*p=NULL;
fi_data*result[9]={NULL};
intcount=0;
charinput=’'
;
while
(1)
〉请输入要查询的年月(例如:
2009/1)”);
%d/%d”,&year,&month)!
=2)
printf(”>
输入错误。
\n”);
p=head;
count=0;
memset(result,0,sizeof(fi_data*));
year==year&&
p-〉info。
month==month&&
type==type)
if(count<
9)
result[count]=p;
count++;
show_info(result,count);
>
输入空格并回车翻页。
其他键退出。
input=getchar();
if(input==’'
)
memset(result,0,sizeof(fi_data*));
count=0;
break;
if(count!
=0)
没有找到数据。
\n”);
printf(”〉继续查找其他数据?
(yorn)"
if(input=='
y’||input==’Y’)
continue;
break;
voiddelete_data(fi_typetype)
fi_data*pre=NULL;
fi_data*result[9]={NULL};
charinput=’’;
inti=0;
请输入要查询的年月(例如:
2009/1)”);
%d/%d"
,&year,&
month)!
memset(result,0,sizeof(fi_data*));
while(p!
info.year==year&&
p—〉info.month&
&p-〉info.type)
if(count=9)
result[count]=p;
show_info(result,count);
请输入空格并回车翻页。
输入对应的序号删除。
其他键退出:
”);
fflush(stdin)
input=getchar();
result[count]=p;
count++;
elseif(input=='
1’&&input<
=48+count)
i=input-49;
pre=get_previous(result[i]);
if(pre==NULL)
head=head—>
next;
pre—>
next=result[i]—〉next;
free(result[i]);
for(;
i<
count—1;
i++)
result[i]=result[i+1];
result[i]=p;
删除成功。
\n"
p=p—>
if(count!
if(input>
='
1'
&
&
input<
i=input—49;
pre=get_previous(result[i]);
head=head-〉next;
pre->
next=result[i]-〉next;
free(result[i]);
for(;
result[i]=result[i+1];
result[i]=NULL;
count——;
删除成功.\n"
继续查找数据?
(yorn)”);
y'
||input=='
Y'
voidupdate_data(fi_typetype)
fi_data*p=NULL;
fi_data*result[9]={NULL};
intcount=0;
charinput='
'
inti=0;
2009/1)"
if(scanf(”%d/%d"
&
year,&
month)!
p=head;
memset(result,0,sizeof(fi_data*));
if(p->
year==year&&p-〉info.month==month&
&p-〉info.type==type)
result[count]=p;
printf(”〉输入空格并回车翻页。
输入对应的序号修改.其他键退出。
memset(result,0,sizeof(fi-data*));
result[count]=p;
elseif(input>
=’1’&&
input〈=48+count)
i=input—49;
input_info(&
(result[i]—〉info));
修改成功。
p=get_previous(p);
show_info(result,count);
〉输入对应的序号修改。
=’1'
&&input〈=48+count)
input_info(&(result[i]—>
info));
printf(”〉修改成功。
printf(”〉没有找到数据。
y’||input=='
Y’)
continue;
voidinitialize()
FILE*fp=NULL;
fi_data*p=NULL;
fi_data*last=NULL;
fp=fopen(DATA_FILE,”rb"
if(fp==NULL)
fp=fopen(DATA_FILE,"
w"
fclose(fp);
return;
p=(fi_data*)malloc(sizeof(fi_data));
memset(p,0,sizeof(fi_data));
p-〉next=NULL;
while(fread(&(p->
info),sizeof(fi_info),1,fp)==1)
last=get_last();
last—>
next=p;
fseek(fp,count*sizeof(fi_info),SEEK_SET);
p=(fi_data*)malloc(sizeof(fi_data));
memset(p,0,sizeof(fi_data));
free(p);
p=NULL;
fclose(fp);
voidsave_to_file()
FILE*fp=fopen(DATA_FILE,”wb"
fwrite(&
(p->
info),sizeof(fi_info),1,fp);
fseek(fp,0,SEEK_END);
voidclear_data()
fi_data*p=NULL;
while(head!
if(head->
next!
p=NULL;
free(head);
head=NULL;
fi_data*get_last()
fi_data*p=head;
if(p==NULL)
returnp;
while((p!
=NULL)&&
(p->
nezt!
=NULL))
p=p—〉next;
returnp;
fi_data*get_previous(fi_data*p)
fi_data*previous=head;
while(previous!
if(previous-〉next==p)
previous=previous-〉next;
returnprevious;
voidinput_info(fi_info*info)
printf(”〉请输入年月(YYYY/M):
scanf(”%d/%d”,*(info—〉year),&(info->
month));
请输入家庭成员姓名(最大长度为%d):
MAX_NAME-1);
scanf("
%s”,info->
name);
请输入金额:
%f”,&(info->
money));
printf(”〉请输入备注(最大长度为%d):
”,MAX_DETAIL-1);
%s"
,info->
detail);
voidshow_info(fi_data*p[],intcount)
printf(”+-——+--—--—-—+--———-—+--——-—--—————+-—----———----+--—-----—---——---———+\n"
printf(”|No.|年—月|类型|姓名|金额|备注|\n”);
+———+-—--—-——+——-———-+—---—-——--———+—-—---———--—-+——-—---—--—--—------+\n"
for(i=0;
i〈count;
printf(”|%3d|%4d-%02d|%4s|%-10s|%10。
2f|%-20s|\n”,
i+1,
p[i]—〉info。
year,p[i]—>
info.month,
p[i]—〉info.type==income?
收入"
:
”支出”,
p[i]->
info.name,
p[i]->
money,
p[i]—>
printf(”+---+———--——-+-————-—+---—-------—-+—-—-——-—---——+————————-—-—-———-———-+\n"
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 语言 财务管理 系统 源代码