C语言课程设计家庭财务管理系统Word文档下载推荐.docx

上传人:b****1 文档编号:1027154 上传时间:2023-04-30 格式:DOCX 页数:18 大小:26.32KB
下载 相关 举报
C语言课程设计家庭财务管理系统Word文档下载推荐.docx_第1页
第1页 / 共18页
C语言课程设计家庭财务管理系统Word文档下载推荐.docx_第2页
第2页 / 共18页
C语言课程设计家庭财务管理系统Word文档下载推荐.docx_第3页
第3页 / 共18页
C语言课程设计家庭财务管理系统Word文档下载推荐.docx_第4页
第4页 / 共18页
C语言课程设计家庭财务管理系统Word文档下载推荐.docx_第5页
第5页 / 共18页
C语言课程设计家庭财务管理系统Word文档下载推荐.docx_第6页
第6页 / 共18页
C语言课程设计家庭财务管理系统Word文档下载推荐.docx_第7页
第7页 / 共18页
C语言课程设计家庭财务管理系统Word文档下载推荐.docx_第8页
第8页 / 共18页
C语言课程设计家庭财务管理系统Word文档下载推荐.docx_第9页
第9页 / 共18页
C语言课程设计家庭财务管理系统Word文档下载推荐.docx_第10页
第10页 / 共18页
C语言课程设计家庭财务管理系统Word文档下载推荐.docx_第11页
第11页 / 共18页
C语言课程设计家庭财务管理系统Word文档下载推荐.docx_第12页
第12页 / 共18页
C语言课程设计家庭财务管理系统Word文档下载推荐.docx_第13页
第13页 / 共18页
C语言课程设计家庭财务管理系统Word文档下载推荐.docx_第14页
第14页 / 共18页
C语言课程设计家庭财务管理系统Word文档下载推荐.docx_第15页
第15页 / 共18页
C语言课程设计家庭财务管理系统Word文档下载推荐.docx_第16页
第16页 / 共18页
C语言课程设计家庭财务管理系统Word文档下载推荐.docx_第17页
第17页 / 共18页
C语言课程设计家庭财务管理系统Word文档下载推荐.docx_第18页
第18页 / 共18页
亲,该文档总共18页,全部预览完了,如果喜欢就下载吧!
下载资源
资源描述

C语言课程设计家庭财务管理系统Word文档下载推荐.docx

《C语言课程设计家庭财务管理系统Word文档下载推荐.docx》由会员分享,可在线阅读,更多相关《C语言课程设计家庭财务管理系统Word文档下载推荐.docx(18页珍藏版)》请在冰点文库上搜索。

C语言课程设计家庭财务管理系统Word文档下载推荐.docx

9quit():

退出函数。

程序结构功能图如下

3.详细设计

3.1收入管理3.2支出管理

4.测试结果

4.1程序运行主菜单

4.2添加收入测试

4.3查询收入明细测试

4.4删除收入测试

4.5修改收入测试

4.6添加支出测试

4.7查询支出明细测试

4.8删除支出测试

4.9修改支出测试

4.10统计总收入/支出测试

4.11退出系统测试

5.软件操作使用说明书

本系统采用命令行对话方式进行操作,运行后出现主界面(如下图所示),然后按照主界面菜单指引操作即可。

6.总结编写程序之前要有一个整体的思路,不能写到哪里算哪里。

这样很容易遗漏,连续性也不好。

通过本次的课程设计让我对于数组、文件的存放、循环结构等知识有了更加透彻的理解。

希望在以后的课程设计中对于知识的运用能够更加的熟练。

代码:

#include<

stdio.h>

stdlib.h>

string.h>

conio.h>

#defineMAXNAME11//家庭成员姓名的最大长度

#defineMAXDETAIL21//注最大长度

//自定义枚举类型fi_type,用来表示收入与支出

typedefenum_fi_type

{

income=1,//收入

payout=-1//支出

}fi_type;

//家庭财务信息结构体

typedefstruct_fi_info

intyear;

intmonth;

fi_typetype;

charname[9];

floatmoney;

chardetail[11];

}fi_info;

//存储财务数据结构的结构体

typedefstruct_fi_data

fi_infoinfo;

struct_fi_data*next;

}fi_data;

fi_data*head;

//财务数据的头结点

voidmenu();

//菜单函数

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);

voidmenu()

printf("

\n"

);

printf("

\t\tprintf("

\t\t\tprintf("

\t\t

~~~~~~~~~~~~~~~~~~~~~~\n"

家庭财务管理系统\n"

\t\t*

****************************************

**\n"

收入管理:

"

添加收入"

查询收入明细\n"

删除收入"

修改收入\n"

支出管理:

添加支出"

查询支出明细\n"

删除支出"

修改支出\n"

9.

统计:

统计总收入/总支出\n"

\t\t退出:

0.退出系统\n"

**\n\n\n"

}voidmain()

intselected=0;

initialize();

while(selected>

=0&

&

selected<

=9)

system("

cls"

menu();

\t\t>

请选择要进行的操作(0-9):

if(scanf("

%d"

&

selected)!

=1||selected<

0||selected>

9)

输入有误!

请选择(0-9)之间的数字!

按任意键重试"

getchar();

}

else

switch(selected)

case0:

exit(0);

clear_data();

break;

case1:

add_income();

save_to_file();

case2:

search_income();

case3:

delete_income();

case4:

update_income();

case5:

add_payout();

case6:

search_payout();

case7:

delete_payout();

case8:

update_payout();

case9:

count_total();

voidadd_income()//添加收入

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

p->

next=NULL;

input_info(&

(p->

info));

p->

info.type=income;

if(head==NULL)

head=p;

get_last()->

next=p;

voidadd_payout()//添加支出

input_info(&

info.type=payout;

//输入函数

voidinput_info(fi_info*info)

请输入年月(YYYY/M)"

scanf("

%d/%d"

(info->

year),&

month));

请输入家庭成员姓名(最大长度为%d):

MAXNAME-1);

%s"

info->

name);

输入金额:

%f"

money));

请输入备注(最大长度为%d):

20);

detail);

//查找数据函数

voidsearch_data(fi_typetype)

intyear=0;

intmonth=0;

fi_data*p=NULL;

intcount=0;

charinput='

'

;

while

(1)

请输入要查询的年月(YYYY/M)"

year,&

month)!

=2)

输入有误\n"

p=head;

count=0;

while(p!

=NULL)

if((p->

info.year==year)&

info.month==month)&

info.type==type)){

show_info(p);

system("

PAUSE"

count++;

p=p->

next;

if(count==0)

没有找到数据\n"

继续查找其他数据?

(yorn)"

input=getchar();

if(input=='

y'

||input=='

Y'

continue;

//初始化函数,读取文本数据

voidinitialize()

FILE*fp=NULL;

fi_data*last=NULL;

fp=fopen("

data.txt"

"

rb"

if(fp==NULL)

{fp=fopen("

w"

fclose(fp);

return;

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

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

while(fread(&

info),sizeof(fi_info),1,fp)==1)

if(head==NULL)head=p;

last=get_last();

last->

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);

//显示信息函数

voidshow_info(fi_data*p)

inti=0;

|\t\t|\t\t|\t\t|\t\t|\t\t|\t\t|\n"

|NO.\t|年/月\t\t|类型\t\t|姓名\t\t|金额\t\t|备注\t\t|\n"

|%5d\t|%4d/%02d\t|%4s\t|%10s\t|%10.2f|%20s|\n"

i+1,p->

info.year,p->

info.month,p->

info.type==income?

收入"

:

支出"

info.name,p->

info.money,p->

info.detail);

//统计总收入、总支出

voidcount_total()

floattotal_income=0.0;

floattotal_payout=0.0;

fi_data*p=head;

while(p!

if(p->

info.type==income)

total_income+=p->

info.money;

total_payout+=p->

\t\t+\t\t+\t\t+\n"

\t\t|合计收入\t|合计支出\t|结余\t|\n"

\t\t%12.2f|%12.2f|%12.2f|\n"

total_income,total_payout,total_income-total_payout);

按任意键返回主菜单"

getchar();

//保存到文件

voidsave_to_file()

FILE*fp=fopen("

wb"

);

fi_data*p=head;

{fwrite(&

info),sizeof(fi_info),1,fp);

fseek(fp,0,SEEK_END);

//修改信息函数

voidupdate_data(fi_typetype)

{intyear=0;

fi_data*pre=NULL;

charinput;

{printf("

show_info(p);

\t\t修改成功\n"

p=get_previous(p);

voiddelete_data(fi_typetype)//删除数据函数

=NULL){if((p->

pre=get_previous(p);

if(pre==NULL)head=head->

pre->

next=p->

删除成功\n"

(yorn)"

input=getchar();

voidclear_data()//清空链表数据

while(head!

if(head->

next!

head=head->

free(head);

head=NULL;

fi_data*get_last()

fi_data*p=head;

if(p==NULL)

returnp;

while((p!

=NULL)&

=NULL))p=p->

fi_data*get_previous(fi_data*p)

fi_data*previous=head;

while(previous!

if(previous->

next==p)break;

previous=previous->

returnprevious;

voidsearch_payout()

search_data(payout);

voiddelete_payout()

delete_data(payout);

voidupdate_payout()

update_data(payout);

voidsearch_income()

search_data(income);

voiddelete_income()

delete_data(income);

voidupdate_income()

update_data(income);

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

当前位置:首页 > 工程科技 > 能源化工

copyright@ 2008-2023 冰点文库 网站版权所有

经营许可证编号:鄂ICP备19020893号-2