C语言课程设计家庭财务管理系统.docx

上传人:b****1 文档编号:656196 上传时间:2022-10-11 格式:DOCX 页数:25 大小:345.44KB
下载 相关 举报
C语言课程设计家庭财务管理系统.docx_第1页
第1页 / 共25页
C语言课程设计家庭财务管理系统.docx_第2页
第2页 / 共25页
C语言课程设计家庭财务管理系统.docx_第3页
第3页 / 共25页
C语言课程设计家庭财务管理系统.docx_第4页
第4页 / 共25页
C语言课程设计家庭财务管理系统.docx_第5页
第5页 / 共25页
点击查看更多>>
下载资源
资源描述

C语言课程设计家庭财务管理系统.docx

《C语言课程设计家庭财务管理系统.docx》由会员分享,可在线阅读,更多相关《C语言课程设计家庭财务管理系统.docx(25页珍藏版)》请在冰豆网上搜索。

C语言课程设计家庭财务管理系统.docx

C语言课程设计家庭财务管理系统

C语言课程设计——家庭财务管理系统

 

课程设计报告

 

课程设计题目:

家庭财务管理系统

 

学生姓名:

专业:

信息工程

班级:

指导教师:

2018年1月8日

 

1.需求分析

根据家庭账务管理的需要,建立一个“家庭账务管理系统”,以方便对家庭日常收入及支出进行记录和管理。

该系统要求:

①家庭月收入管理②家庭月支出管理③统计家庭总收入/总支出④系统提供收入/支出的添加、删除和修改功能。

2.总体设计

根据以上分析,本家庭账务管理系统主要包括:

①从键盘键入家庭月收入、月支出数据;

②查询月收入、月支出明细;

③删除收入、支出数据;

④修改收入、支出数据;

⑤统计总收入/总支出;

⑥退出系统。

除main()函数之外,系统还定义了以下函数来实现各部分内容:

①add_income():

添加收入数据函数。

②add_payout():

添加支出数据函数。

③search_data():

查找数据函数。

④initialize():

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

⑤show_info():

显示数据函数。

⑥count_total():

统计函数,统计总收入、总支出。

⑦update_data():

修改信息函数。

⑧delete_data():

删除数据函数。

⑨quit():

退出函数。

程序结构功能图如下:

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

#include

#include

#include

#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\t~~~~~~~~~~~~~~~~~~~~~~\n");

printf("\t\t~~~~~~~~~~~~~~~~~~~~~~\n");

printf("\t\t\t家庭财务管理系统\n");

printf("\t\t~~~~~~~~~~~~~~~~~~~~~~\n");

printf("\t\t~~~~~~~~~~~~~~~~~~~~~~\n");

printf("\t\t*******************************************\n");

printf("\t\t收入管理:

");

printf("1.添加收入");

printf("2.查询收入明细\n");

printf("\t\t\t3.删除收入");

printf("4.修改收入\n");

printf("\t\t*******************************************\n");

printf("\t\t支出管理:

");

printf("5.添加支出");

printf("6.查询支出明细\n");

printf("\t\t\t7.删除支出");

printf("8.修改支出\n");

printf("\t\t*******************************************\n");

printf("\t\t统计:

");

printf("9.统计总收入/总支出\n");

printf("\t\t*******************************************\n");

printf("\t\t退出:

0.退出系统\n");

printf("\t\t*******************************************\n\n\n");

}

voidmain()

{

intselected=0;

initialize();

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

{

system("cls");

menu();

printf("\t\t>请选择要进行的操作(0-9):

");

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

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

{

printf("\t\t>输入有误!

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

按任意键重试");

getchar();

}

else

{

switch(selected)

{

case0:

exit(0);clear_data();break;

case1:

add_income();save_to_file();break;

case2:

search_income();break;

case3:

delete_income();save_to_file();break;

case4:

update_income();save_to_file();break;

case5:

add_payout();save_to_file();break;

case6:

search_payout();break;

case7:

delete_payout();save_to_file();break;

case8:

update_payout();save_to_file();break;

case9:

count_total();break;

}

}

}

}

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;

else

get_last()->next=p;

}

voidadd_payout()//添加支出

{

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

p->next=NULL;

input_info(&(p->info));

p->info.type=payout;

if(head==NULL)

head=p;

else

get_last()->next=p;

}

//输入函数

voidinput_info(fi_info*info)

{

printf("\t\t>请输入年月(YYYY/M)");

scanf("%d/%d",&(info->year),&(info->month));

printf("\t\t>请输入家庭成员姓名(最大长度为%d):

",MAXNAME-1);

scanf("%s",info->name);

printf("\t\t>输入金额:

");

scanf("%f",&(info->money));

printf("\t\t>请输入备注(最大长度为%d):

",20);

scanf("%s",info->detail);

}

//查找数据函数

voidsearch_data(fi_typetype)

{

intyear=0;

intmonth=0;

fi_data*p=NULL;

intcount=0;

charinput='';

while

(1)

{

printf("\t\t>请输入要查询的年月(YYYY/M)");

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

=2)

{

printf("\t\t>输入有误\n");

}

else

{

p=head;

count=0;

while(p!

=NULL)

{

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

{

show_info(p);

system("PAUSE");

count++;

}

p=p->next;

}

if(count==0)

{

printf("\t\t>没有找到数据\n");

}

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

(yorn)");

input=getchar();

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

当前位置:首页 > 幼儿教育 > 幼儿读物

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

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