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

合集下载

c家庭财务课程设计

c家庭财务课程设计

c 家庭财务课程设计一、课程目标知识目标:1. 学生能够理解家庭财务的基本概念,如收入、支出、储蓄和投资。

2. 学生能够掌握家庭预算的编制方法和原则,并运用到实际生活中。

3. 学生能够了解并区分不同类型的金融产品和服务,为家庭财务规划提供参考。

技能目标:1. 学生能够运用所学的财务知识,独立完成家庭预算的编制和调整。

2. 学生能够通过分析和比较,选择适合家庭需求的金融产品和服务。

3. 学生能够运用理财技巧,提高家庭财务的合理性和效益。

情感态度价值观目标:1. 学生能够认识到家庭财务规划的重要性,树立正确的消费观和理财观。

2. 学生能够理解金钱的价值,培养节俭、合理消费的良好习惯。

3. 学生能够关注国家经济政策,增强社会责任感和参与意识。

课程性质:本课程为实用型课程,旨在帮助学生掌握家庭财务知识,提高生活技能。

学生特点:学生为初中生,具有一定的数学基础和逻辑思维能力,但对家庭财务知识了解有限。

教学要求:教师需采用生动、形象的教学方法,结合实际案例,引导学生积极参与,提高课程的实用性和趣味性。

同时,注重培养学生的自主学习能力,将所学知识内化为具体的学习成果。

二、教学内容1. 家庭财务基本概念:收入、支出、储蓄、投资。

- 教材章节:第一章 家庭财务概述- 内容列举:定义及分类、收入来源、支出分类、储蓄与投资的关系。

2. 家庭预算编制方法与原则:- 教材章节:第二章 家庭预算编制- 内容列举:预算编制步骤、收入预估、支出预算、预算调整与控制。

3. 金融产品与服务:- 教材章节:第三章 金融产品与服务- 内容列举:储蓄存款、投资理财、保险规划、信用卡与消费信贷。

4. 理财技巧与家庭财务规划:- 教材章节:第四章 理财技巧与家庭财务规划- 内容列举:理财目标设定、资产配置、风险管理与规避、退休规划。

5. 案例分析与实操练习:- 教材章节:第五章 案例分析与实操练习- 内容列举:家庭财务案例分析、预算编制实操、投资理财模拟。

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.总结编写程序之前要有一个整体的思路,不能写到哪里算哪里。

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

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

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

c语言编写-家庭财务管理系统

c语言编写-家庭财务管理系统
s[recNumber].in=Tm.in;
strcpy(s[recNumber].intime,Tm.intime);
s[recNumber].out=Tm.out;
strcpy(s[recNumber].outtime,Tm.outtime);
if (fp==NULL) /*判断是否打开成功*/
{
printf("\n打开文件%s失败!按任意键结束!\n",Da);
exit(0);
}
while(fread(&Tm,sizeof(money),1,fp)!=(int)NULL) /*从文件中读取数据,是否读取成功*/
fp=fopen(Da,"ab+");
if (fp==NULL) /*判断文件是否成功打开*/
{
printf("\n 打开文件 %s 失败!按任意键结束!\n",Da);
exit(0);
}
while(fread(&ch,sizeof(money),1,fp)!=(int)NULL) /*从文件中读取数据并判断是否成功*/
scanf("%f",&Tm.in);
printf("输入收入时间:");
scanf("%s",Tm.intime);
printf("输入成员支出:");
scanf("%f",&Tm.out);
printf("输入支出时间:");
{ printf("###############################################\n");

案例四 家庭财务管理系统

案例四 家庭财务管理系统

案例四家庭财务管理系统4.1需求分析家庭财务系统主要对家庭的各项财务收支管理进行在计算机上的信息存储和处理,从而简化用户的工作量。

在需求分析过程中,概括描述了本软件能够为用户提供哪些服务、系统功能的整体框架,以及相应的业务流程。

4.1.1 系统概述家庭财务管理系统给家庭成员提供了一个管理平台,家庭成员可以对其成员编号、姓名以及收入、支出构成进行增加、删除、修改等管理操作。

同时,该系统还提供了家庭成员管理功能,根据家庭成员的分类,其拥有的权限也不同,系统可以判断登录家庭成员的用户名和密码,从而判断其是否可以使用该系统。

系统亦可登录家庭成员的权限信息,从而判断该家庭成员能够使用该系统的哪些特定功能,不同级别的家庭成员之间不能够越权使用系统功能。

家庭成员分家长和普通成员两类。

4.1.2 系统运行环境一、硬件环境●处理器:Intel Pentium 166 MX或更高●内存:32MB●硬盘空间:1GB●显卡:SVGA显示适配器二、软件环境●操作系统:Windows 98/ME/2000/XP4.1.3 功能需求描述家庭财务管理系统软件是为用户对家庭成员的收支构成及信息进行辅助管理的应用软件,功能需求描述如下。

1.用户登录:系统获取的家庭成员用户名和密码判断该家庭成员能否成功登录系统,并且当用户登录后根据权限判断该家庭成员是家长还是普通成员,可以使用哪些对应功能。

普通用户只能管理财务信息,而家长还可以管理用户信息。

2.给家庭成员提供功能选择界面:不同级别的家庭成员对应不同的功能选择界面。

功能选择界面包括输入功能选项、调用相应程序两大需求。

3.创建收支信息文件:用户根据提示输入家庭成员序号、姓名、各项财务信息,如收入、支出、合计。

可一次性输入多条家庭成员的收支信息。

并将家庭成员收支信息存储在系统磁盘文件中,以便进行管理、查找和备份。

4.增加家庭成员收支信息:可在原有收支信息文件的基础上增加新的家庭成员财务信息,并保存至磁盘,5.删除家庭成员收支信息:提示用户输入要删除的家庭成员序号,如果在文件中有该家庭成员的收支信息,则将该序号对应的信息在文件中删除。

家庭管理系统课程设计c语言

家庭管理系统课程设计c语言

家庭管理系统课程设计c语言一、教学目标本课程旨在通过C语言编程,使学生掌握家庭管理系统的基本概念、设计与实现。

具体目标如下:1.知识目标:–理解家庭管理系统的需求与功能。

–掌握C语言的基本语法与数据结构。

–学习家庭管理系统的设计与分析方法。

2.技能目标:–能够使用C语言进行简单的家庭管理系统编程。

–学会使用调试工具进行程序的调试与优化。

–具备家庭管理系统项目的设计与实现能力。

3.情感态度价值观目标:–培养学生对计算机科学和家庭管理学的兴趣。

–培养学生解决问题的能力和团队合作精神。

–培养学生对家庭责任感和管理意识的提升。

二、教学内容本课程的教学内容围绕家庭管理系统的设计与实现,具体包括:1.C语言基础:–数据类型、运算符与表达式。

–控制结构:条件语句、循环语句。

–函数:定义、调用与参数传递。

2.数据结构:–数组、字符串和指针。

–链表、栈和队列。

3.家庭管理系统分析:–需求分析:了解家庭管理的需求和目标。

–系统设计:设计系统的架构和模块。

4.家庭管理系统实现:–家庭信息管理模块:成员信息录入、查询和修改。

–家庭预算管理模块:收入支出记录、统计和分析。

–家庭任务管理模块:任务分配、执行和跟踪。

三、教学方法为了提高教学效果,将采用以下教学方法:1.讲授法:用于C语言基础知识和家庭管理系统分析的讲解。

2.案例分析法:分析实际的家庭管理案例,引导学生思考和解决问题。

3.实验法:让学生动手编写代码,实现家庭管理系统的功能。

4.小组讨论法:分组进行项目开发,培养团队合作和沟通能力。

四、教学资源为了支持教学,将准备以下教学资源:1.教材:《C程序设计语言》。

2.多媒体资料:PPT课件、教学视频。

3.实验设备:计算机、调试工具。

4.在线资源:编程论坛、家庭管理系统相关文章。

五、教学评估本课程的教学评估将综合考虑学生的平时表现、作业和考试三个方面的因素,以全面、客观、公正地评价学生的学习成果。

1.平时表现:包括课堂参与度、提问与回答问题的情况等,占总评的20%。

c家庭财务课程设计

c家庭财务课程设计

c 家庭财务课程设计一、教学目标本课程旨在帮助学生建立家庭财务管理的知识体系,培养他们在实际生活中合理规划和管理家庭财务的能力。

具体目标如下:1.知识目标:学生能够理解家庭财务的基本概念,掌握预算编制、储蓄、投资、消费信贷和保险等家庭财务管理的基本知识和技能。

2.技能目标:学生能够运用所学知识,独立完成家庭财务预算的编制,合理规划家庭收支,选择合适的投资工具,正确使用消费信贷,并购买适当的保险产品。

3.情感态度价值观目标:学生能够认识到家庭财务管理的重要性,培养良好的家庭财务习惯,提高生活质量,实现家庭财务的可持续发展。

二、教学内容本课程的教学内容主要包括以下几个部分:1.家庭财务管理的基本概念和原则:家庭财务管理的定义、目标、原则和方法等。

2.家庭财务预算编制:收入、支出的分类和预算编制方法。

3.储蓄和投资:储蓄的方法和技巧、投资的基本概念和工具、投资组合的构建等。

4.消费信贷:消费信贷的种类、条件和使用技巧。

5.保险:保险的基本概念、保险产品的选择和购买策略。

三、教学方法为了提高教学效果,我们将采用多种教学方法,包括:1.讲授法:通过讲解家庭财务管理的理论知识,使学生掌握基本概念和原理。

2.案例分析法:通过分析实际案例,使学生学会如何应用所学知识解决实际问题。

3.讨论法:学生进行分组讨论,培养学生的思辨能力和团队合作精神。

4.实验法:通过模拟家庭财务管理的情境,让学生在实践中掌握和运用所学知识。

四、教学资源为了支持教学内容和教学方法的实施,我们将准备以下教学资源:1.教材:《家庭财务管理》。

2.参考书:提供相关领域的专业书籍,供学生课后阅读。

3.多媒体资料:制作课件、视频等,以便生动形象地展示和讲解教学内容。

4.实验设备:模拟家庭财务管理的软件和设备,供学生进行实践操作。

五、教学评估为了全面、客观、公正地评估学生的学习成果,我们将采取以下评估方式:1.平时表现:通过观察学生在课堂上的参与度、提问回答、小组讨论等表现,评估其学习态度和积极性。

家庭财务管理系统

家庭财务管理系统

《C语言程序设计》题目家庭财务管理系统一、内容1、总体描述家庭财务管理系统主要是对家庭成员的收入、支出,进行添加、删除、查询等操作,并统计总收入、总支出。

为家庭成员提供管理家庭财务的平台。

2、模块描述1)菜单设计:提供简单明了的操作界面。

帮助用户对管理系统进行操作。

2)添加模块:根据实际收入或支出,提案及相应的记录,条数不限。

3)查询模块:可以选择不同的关键字输入,查找需要的记录。

4)删除模块:删除错误或无用的记录。

5)显示模块:按照添加的先后顺序显示记录,并显示总收入总支出及余额。

6)推出模块:退出该管理系统。

并保存文件。

二、上机环境操作系统:windows xp开发工具:VC6.0三、函数调用关系图四、各函数功能说明1.main() 主函数2.void look(void) 查看函数3.void save(void) 保存函数4.void search_name(void) 按姓名查看函数5.void search_data(void) 按日期查看函数6.void del(void) 删除函数7.void openl(void) 打开函数8.void type(void) 输入函数9.void see(void) 打开并查看函数10.Struct family 定义财务信息的结构类型五、算法描述或流程图通过以下主函数(操作界面),输入相应的提示进入相应的函数,进行相应的操作。

void main() /*主函数即用户的操作界面*/ {int b,flag=0; /*声明局部变量*/while(1)/*循环输出以下信息*/{printf("\n\t\t\t欢迎来到家庭财务管理系统!\n");printf("\t\t\t1.键入财务信息\n\n");printf("\t\t\t2.查看财务信息\n\n");printf("\t\t\t3.按姓名查看财务信息\n\n"); printf("\t\t\t4.按日期查看财务信息\n\n"); printf("\t\t\t5.删除财务信息\n\n");printf("\t\t\t6.保存财务信息\n\n");printf("\t\t\t7.打开文件\n\n");printf("\t\t\t0.退出程序\n\n");printf("\t\t\t请输入你的选择:");scanf("%d",&b);switch(b){case 1:type();break; /*调用键入财务信息函数*/case 2:look();break; /*调用查看函数*/case 3:search_name();break; /*调用姓名查看函数*/case 4:search_data();break; /*调用日期查看函数*/case 5:del();break;/*调用删除函数*/case 6:save();break;/*调用保存函数*/case 7:see();break;/*调用打开文件函数*/ case 0:flag=1;break;/*退出SWITCH语句*/ default :printf("错误!");}if(flag) break; /*如果选择0就退出循环*/}}六、程序运行效果图1、控制页面2、输入界面3、结果查询七、总结本次对家庭财务管理系统的编写,遇到了许多困难。

C语言家庭财务管理系统

C语言家庭财务管理系统
do
{
n=scanf("%s %s %f",J[i].rq,J[i].zy,&J[i].xf);
if(J[i]Biblioteka xf==0)break;/*收入和支出为0则退出*/
if(n==3)i++;
}
while(n==3);
N=i; /*修改家庭财务信息记录数*/
}
void SaveJ(char file[])/*保存家庭财务信息关系*/
{
int n,i=0;
FILE *fp=fopen("JTCWGLXT.txt","r");
char s[80];fgets(s,80,fp);
do
{
n=fscanf(fp,"%s %s %f %f",J[i].rq,J[i].zy,&J[i].xf,&J[i].ye);
if(n==4)i++;/*若读到4个数据则i加1*/
}
while(n==4);
fclose(fp);
return i;
}
void DispJ()/*显示家庭财务信息*/
{
int i;
printf("%s %8s %8.2f%8.2f\n",J[0].rq,J[0].zy,J[0].xf,J[0].ye);
for(i=1;i<N;i++)
printf("%s %8s %8.2f%8.2f\n",J[i].rq,J[i].zy,J[i].xf,J[i-1].ye+J[i].xf);
fprintf( fp,"%s %8s %8.2f%8.2f\n",J[i].rq,J[i].zy,J[i].xf,J[i-1].ye+J[i].xf);

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

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

课程设计报告课程设计题目:家庭财务管理系统学生姓名:专业:信息工程1.供收入/2.②③④⑤⑥除①②③④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.104.115.软件操作使用说明书本系统采用命令行对话方式进行操作,运行后出现主界面(如下图所示),然后按照主界面菜单指引操作即可。

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

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

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

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

代码:#include<stdio.h>//{//{//{struct_fi_data*next;}fi_data;fi_data*head;//财务数据的头结点voidmenu();//菜单函数voidadd_income();voidsearch_income();voiddelete_income();voidupdate_income();voidadd_payout();voiddelete_payout();voidupdate_payout();voidcount_total();voidquit();//voidsearch_data(fi_typetype);voiddelete_data(fi_typetype);voidupdate_data(fi_typetype);//voidinitialize();voidsave_to_file();{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(){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{{}}}}{head=p;elseget_last()->next=p;}voidadd_payout()//添加支出{fi_data*p=(fi_data*)malloc(sizeof(fi_data));p->next=NULL;input_info(&(p->info));if(head==NULL)head=p;elseget_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);}//{{{}else{p=head;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();if(input=='y'||input=='Y')continue;elsebreak;}}}//{{return;}{head=p;else{last=get_last();last->next=p;}count++;fseek(fp,count*sizeof(fi_info),SEEK_SET); p=(fi_data*)malloc(sizeof(fi_data)); memset(p,0,sizeof(fi_data));p->next=NULL;}p=NULL;fclose(fp);}//显示信息函数voidshow_info(fi_data*p){inti=0;printf("|\t\t|\t\t|\t\t|\t\t|\t\t|\t\t|\n");printf("|NO.\t|年/月\t\t|类型\t\t|姓名\t\t|金额\t\t|备注\t\t|\n"); printf("|%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?"收入":"支出",}//{{{}else{}}printf("\t\t>按任意键返回主菜单");getchar();getchar();}//保存到文件voidsave_to_file(){FILE*fp=fopen("data.txt","wb");fi_data*p=head;fwrite(&(p->info),sizeof(fi_info),1,fp); fseek(fp,0,SEEK_END);p=p->next;}fclose(fp);}//修改信息函数voidupdate_data(fi_typetype){intyear=0;intmonth=0;inti=0;{}else{p=head;{{}p=p->next;}if(count==0)printf("\t\t>没有找到数据\n");printf("\t\t>继续查找其他数据?(yorn)"); input=getchar();if(input=='y'||input=='Y')continue;else}}voiddelete_data(fi_typetype)//删除数据函数{intyear=0;intmonth=0;fi_data*p=NULL;fi_data*pre=NULL;intcount=0;charinput='';inti=0;{}else{p=head;{{else}p=p->next;}if(count==0)printf("\t\t>没有找到数据\n");printf("\t\t>继续查找其他数据?(yorn)"); input=getchar();if(input=='y'||input=='Y')continue;else}}}voidclear_data()//清空链表数据{fi_data*p=NULL;while(head!=NULL){if(head->next!=NULL){p=head;p=NULL;}else{}}}{}{{if(previous->next==p)break;previous=previous->next;}returnprevious;}voidsearch_payout(){search_data(payout);}voiddelete_payout() {delete_data(payout); }voidupdate_payout() {update_data(payout); }voidsearch_income() {search_data(income); }{}{}。

C语言家庭财务管理系统代码

C语言家庭财务管理系统代码

#include <stdio.h>#include <stdlib.h>#include <string.h>struct Data{char name[20];char riqi[8];float money;char beizhu[50];};struct list{struct Data info;struct list *next;};struct list *Inhead=NULL;struct list *Intail=NULL;struct list *zhichuhead=NULL;struct list *zhichutail=NULL;struct list *temp=NULL;void chaxun_income();void chaxun_zhichu();void xiugai_income();void xiugai_zhichu();void Save_income(){FILE *fp;fp=fopen("D:\家庭财务管理.txt","w");struct list *p = Inhead;while(p != NULL){fwrite(&p->info, sizeof(struct Data), 1, fp);p = p->next;}fclose(fp);}void Save_zhichu(){FILE *fp;fp=fopen("D:\家庭财务管理支出.txt","w");struct list *p = zhichuhead;while(p != NULL){fwrite(&p->info, sizeof(struct Data), 1, fp);p = p->next;}fclose(fp);}void Open(){FILE *fp;fp=fopen("D:\家庭财务管理.txt","r");if(fp!=NULL){struct Data linshi;while(fread(&linshi, sizeof(struct Data), 1, fp) == 1){temp=(struct list*)malloc(sizeof(struct list));temp->info=linshi;temp->next=NULL;if(Inhead == NULL){Inhead = temp;Intail = temp;}else{Intail->next = temp;Intail = temp;}}fclose(fp);}}void Menu(){ system("cls");printf("\n");printf("\n");printf("\n");printf("\n");printf("******************\n");printf("欢迎使用家庭财务管理系统\n");printf("******************\n");printf(" \n");printf(" 1:收入操作\n");printf(" 2:支出操作\n");printf(" 3:统计操作\n");printf(" 0:退出\n");}void Openzhichu(){FILE *fp;fp=fopen("D:\家庭财务管理支出.txt","r");if(fp!=NULL){struct Data linshi;while(fread(&linshi, sizeof(struct Data), 1, fp) == 1){temp=(struct list*)malloc(sizeof(struct list));temp->info=linshi;temp->next=NULL;if(zhichuhead == NULL){zhichuhead = temp;zhichutail = temp;}else{zhichutail->next = temp;zhichutail = temp;}}fclose(fp);}}void mingzi (){char chazhao[20];printf("请输入查询的名字");gets(chazhao);struct list *p = Inhead;while(p != NULL){if(strcmp(p->,chazhao)==0){printf("姓名:");puts(p->);printf("日期:");puts(p->info.riqi);printf("收入:");printf("%.4f\n",p->info.money);printf("备注:");puts(p->info.beizhu);system("PAUSE");}p = p->next;}if(Inhead!=NULL){char panduan;printf("是否继续查询(Y/N)");panduan=getchar();fflush(stdin);if(panduan=='Y'||panduan=='y'){chaxun_income();}}}void mingzi_zhichu (){char chazhao[20];printf("请输入查询的名字");gets(chazhao);struct list *p = zhichuhead;while(p != NULL){if(strcmp(p->,chazhao)==0){printf("姓名:");puts(p->);printf("日期:");puts(p->info.riqi);printf("收入:");printf("%.4f\n",p->info.money);printf("备注:");puts(p->info.beizhu);system("PAUSE");}p = p->next;}if(zhichuhead!=NULL){char panduan;printf("是否继续查询(Y/N)");panduan=getchar();fflush(stdin);if(panduan=='Y'||panduan=='y'){chaxun_zhichu();}}}void mingzi_xiugai_income(){char xiugai[20];printf("请输入修改的名字");fflush(stdin);gets(xiugai);struct list *p = Inhead;while(p != NULL){if(strcmp(p->,xiugai)==0){fflush(stdin);printf("姓名:");gets(p->);fflush(stdin);printf("日期:");gets(p->info.riqi);fflush(stdin);printf("支出: ");scanf("%f",&p->info.money);fflush(stdin);printf("备注:");gets(p->info.beizhu);fflush(stdin);//------}p = p->next;}Save_income();if(Inhead!=NULL){char panduan;printf("是否继续修改(Y/N)");panduan=getchar();fflush(stdin);if(panduan=='Y'||panduan=='y'){xiugai_income();}}}void mingzi_xiugai_zhichu(){char xiugai[20];printf("请输入修改的名字");fflush(stdin);gets(xiugai);struct list *p = zhichuhead;while(p != NULL){if(strcmp(p->,xiugai)==0){fflush(stdin);printf("姓名:");gets(p->);fflush(stdin);printf("日期:");gets(p->info.riqi);fflush(stdin);printf("支出: ");scanf("%f",&p->info.money);fflush(stdin);printf("备注:");gets(p->info.beizhu);fflush(stdin);//------}p = p->next;}Save_zhichu();if(zhichuhead!=NULL){char panduan;printf("是否继续修改(Y/N)");panduan=getchar();fflush(stdin);if(panduan=='Y'||panduan=='y'){xiugai_zhichu();}}}void riqi(){char chazhao[20];printf("请输入查询的日期");gets(chazhao);struct list *p = Inhead;while(p != NULL){if(strcmp(p->info.riqi,chazhao)==0){printf("姓名:");puts(p->);printf("日期:");puts(p->info.riqi);printf("收入:");printf("%.4f\n",p->info.money);printf("备注:");puts(p->info.beizhu);system("PAUSE");}p = p->next;}if(Inhead!=NULL){char panduan;printf("是否继续查询(Y/N)");panduan=getchar();fflush(stdin);if(panduan=='Y'||panduan=='y'){chaxun_income();}}}void riqi_zhichu(){char chazhao[20];printf("请输入查询的日期");gets(chazhao);struct list *p = zhichuhead;while(p != NULL){if(strcmp(p->info.riqi,chazhao)==0){printf("姓名:");puts(p->);printf("日期:");puts(p->info.riqi);printf("收入:");printf("%.4f\n",p->info.money);printf("备注:");puts(p->info.beizhu);system("PAUSE");}p = p->next;}if(zhichuhead!=NULL){char panduan;printf("是否继续查询(Y/N)");panduan=getchar();fflush(stdin);if(panduan=='Y'||panduan=='y'){chaxun_zhichu();}}}void riqi_xiugai_income(){char xiugai[20];printf("请输入修改的日期");fflush(stdin);gets(xiugai);struct list *p = Inhead;while(p != NULL){if(strcmp(p->info.riqi,xiugai)==0){fflush(stdin);printf("姓名:");gets(p->);fflush(stdin);printf("日期:");gets(p->info.riqi);fflush(stdin);printf("支出: ");scanf("%f",&p->info.money);fflush(stdin);printf("备注:");gets(p->info.beizhu);fflush(stdin);//------}p = p->next;}Save_income();if(Inhead!=NULL){char panduan;printf("是否继续修改(Y/N)");panduan=getchar();fflush(stdin);if(panduan=='Y'||panduan=='y'){xiugai_income();}}}void riqi_xiugai_zhichu(){char xiugai[20];printf("请输入修改的日期");fflush(stdin);gets(xiugai);struct list *p = zhichuhead;while(p != NULL){if(strcmp(p->info.riqi,xiugai)==0){fflush(stdin);printf("姓名:");gets(p->);fflush(stdin);printf("日期:");gets(p->info.riqi);fflush(stdin);printf("支出: ");scanf("%f",&p->info.money);fflush(stdin);printf("备注:");gets(p->info.beizhu);fflush(stdin);//------}p = p->next;}Save_zhichu();if(zhichuhead!=NULL){char panduan;printf("是否继续修改(Y/N)");panduan=getchar();fflush(stdin);if(panduan=='Y'||panduan=='y'){xiugai_zhichu();}}}void money (){float chazhao;printf("请输入查询的money");scanf("%f",&chazhao);fflush(stdin);struct list *p = Inhead;while(p != NULL){if(p->info.money==chazhao){printf("姓名:");puts(p->);printf("日期:");puts(p->info.riqi);printf("收入:");printf("%.4f\n",p->info.money);printf("备注:");puts(p->info.beizhu);system("PAUSE");}p = p->next;}if(Inhead!=NULL){char panduan;printf("是否继续查询(Y/N)");panduan=getchar();fflush(stdin);if(panduan=='Y'||panduan=='y'){chaxun_income();}}}void money_zhichu (){float chazhao;printf("请输入查询的money");scanf("%f",&chazhao);fflush(stdin);struct list *p = zhichuhead;while(p != NULL){if(p->info.money==chazhao){printf("姓名:");puts(p->);printf("日期:");puts(p->info.riqi);printf("收入:");printf("%.4f\n",p->info.money);printf("备注:");puts(p->info.beizhu);system("PAUSE");}p = p->next;}if(zhichuhead!=NULL){char panduan;printf("是否继续查询(Y/N)");panduan=getchar();fflush(stdin);if(panduan=='Y'||panduan=='y'){chaxun_zhichu();}}}void money_xiugai_income(){float xiugai;printf("请输入修改的money");scanf("%f",&xiugai);fflush(stdin);struct list *p = Inhead;while(p != NULL){if(p->info.money==xiugai){fflush(stdin);printf("姓名:");gets(p->);fflush(stdin);printf("日期:");gets(p->info.riqi);fflush(stdin);printf("支出: ");scanf("%f",&p->info.money);fflush(stdin);printf("备注:");gets(p->info.beizhu);fflush(stdin);//------}p = p->next;}Save_income();if(Inhead!=NULL){char panduan;printf("是否继续修改(Y/N)");panduan=getchar();fflush(stdin);if(panduan=='Y'||panduan=='y'){xiugai_income();}}}void money_xiugai_zhichu(){float xiugai;printf("请输入修改的money");scanf("%f",&xiugai);fflush(stdin);struct list *p = zhichuhead;while(p != NULL){if(p->info.money==xiugai){fflush(stdin);printf("姓名:");gets(p->);fflush(stdin);printf("日期:");gets(p->info.riqi);fflush(stdin);printf("支出: ");scanf("%f",&p->info.money);fflush(stdin);printf("备注:");gets(p->info.beizhu);fflush(stdin);//------}p = p->next;}Save_zhichu();if(zhichuhead!=NULL){char panduan;printf("是否继续修改(Y/N)");panduan=getchar();fflush(stdin);if(panduan=='Y'||panduan=='y'){xiugai_zhichu();}}}void beizhu(){char chazhao[20];printf("请输入查询的备注");gets(chazhao);struct list *p = Inhead;while(p != NULL){if(strcmp(p->info.beizhu,chazhao)==0){printf("姓名:");puts(p->);printf("日期:");puts(p->info.riqi);printf("收入:");printf("%.4f\n",p->info.money);printf("备注:");puts(p->info.beizhu);system("PAUSE");}p = p->next;}if(Inhead!=NULL){char panduan;printf("是否继续查询(Y/N)");panduan=getchar();fflush(stdin);if(panduan=='Y'||panduan=='y'){chaxun_income();}}}void beizhu_zhichu(){char chazhao[20];printf("请输入查询的备注");gets(chazhao);struct list *p = zhichuhead;while(p != NULL){if(strcmp(p->info.beizhu,chazhao)==0){printf("姓名:");puts(p->);printf("日期:");puts(p->info.riqi);printf("收入:");printf("%.4f\n",p->info.money);printf("备注:");puts(p->info.beizhu);system("PAUSE");}p = p->next;}if(zhichuhead!=NULL){char panduan;printf("是否继续查询(Y/N)");panduan=getchar();fflush(stdin);if(panduan=='Y'||panduan=='y'){chaxun_zhichu();}}}void beizhu_xiugai_income(){char xiugai[20];printf("请输入修改的备注");fflush(stdin);gets(xiugai);struct list *p = Inhead;while(p != NULL){if(strcmp(p->info.beizhu,xiugai)==0){fflush(stdin);printf("姓名:");gets(p->);fflush(stdin);printf("日期:");gets(p->info.riqi);fflush(stdin);printf("支出: ");scanf("%f",&p->info.money);fflush(stdin);printf("备注:");gets(p->info.beizhu);fflush(stdin);//------}p = p->next;}Save_income();if(Inhead!=NULL){char panduan;printf("是否继续修改(Y/N)");panduan=getchar();fflush(stdin);if(panduan=='Y'||panduan=='y'){xiugai_income();}}}void beizhu_xiugai_zhichu(){char xiugai[20];printf("请输入修改的备注");fflush(stdin);gets(xiugai);fflush(stdin);struct list *p = zhichuhead;while(p != NULL){if(strcmp(p->info.beizhu,xiugai)==0){fflush(stdin);printf("姓名:");gets(p->);fflush(stdin);printf("日期:");gets(p->info.riqi);fflush(stdin);printf("支出: ");scanf("%f",&p->info.money);fflush(stdin);printf("备注:");gets(p->info.beizhu);fflush(stdin);//------}p = p->next;}Save_zhichu();if(zhichuhead!=NULL){char panduan;printf("是否继续修改(Y/N)");panduan=getchar();fflush(stdin);if(panduan=='Y'||panduan=='y'){xiugai_zhichu();}}}void Income_menu(){system("cls");printf("\n");printf("\n");printf("\n");printf("\n");printf("******************\n");printf("欢迎使用家庭财务管理系统\n");printf("******************\n");printf(" \n");printf(" 1.添加收入\n");printf(" 2.删除收入\n");printf(" 3.查询收入\n");printf(" 4.显示收入\n");printf(" 5.修改收入\n");printf(" 0.返回上一级\n");}void zhichu_menu(){system("cls");printf("\n");printf("\n");printf("\n");printf("\n");printf("******************\n");printf("欢迎使用家庭财务管理系统\n");printf("******************\n");printf(" \n");printf(" 1.添加支出\n");printf(" 2.删除支出\n");printf(" 3.查询支出\n");printf(" 4.显示支出\n");printf(" 5.修改支出\n");printf(" 0.返回上一级\n");}void chaxun_menu(){system("cls");printf("\n");printf("\n");printf("\n");printf("\n");printf("******************\n");printf("欢迎使用家庭财务管理系统\n");printf("******************\n");printf(" \n");printf(" 1.按名字查询\n");printf(" 2.按日期查询\n");printf(" 3.按money询\n");printf(" 4.按备注查询\n");printf(" 0.返回上一级\n"); }void xiugai_menu(){system("cls");printf("\n");printf("\n");printf("\n");printf("\n");printf("******************\n");printf("欢迎使用家庭财务管理系统\n");printf("******************\n");printf(" \n");printf(" 1.按名字修改\n");printf(" 2.按日期修改\n");printf(" 3.按money修改\n");printf(" 4.按备注修改\n");printf(" 0.返回上一级\n");}void Add_income(){char panduan;do{temp=(struct list*)malloc(sizeof(struct list));printf("姓名");gets(temp->);fflush(stdin);printf("日期(XX年XX月XX日)");gets(temp->info.riqi);fflush(stdin);printf("收入");scanf("%f",&temp->info.money);fflush(stdin);printf("备注");gets(temp->info.beizhu);fflush(stdin);printf("\n");//------自己添加temp->next=NULL;if(Inhead == NULL){Inhead = temp;Intail = temp;}else{Intail->next = temp;Intail = temp;}Save_income();//后面可以添加“继续添加功能”printf("是否(Y/N)继续添加信息\n");panduan=getchar();fflush(stdin);}while(panduan=='Y'||panduan=='y');system("PAUSE");}void Add_zhichu(){char panduan;do{temp=(struct list*)malloc(sizeof(struct list));printf("姓名");gets(temp->);fflush(stdin);printf("日期(XX年XX月XX日)");gets(temp->info.riqi);fflush(stdin);printf("支出");scanf("%f",&temp->info.money);fflush(stdin);printf("备注");gets(temp->info.beizhu);fflush(stdin);printf("\n");//------自己添加temp->next=NULL;if(zhichuhead == NULL){zhichuhead = temp;zhichutail = temp;}else{zhichutail->next = temp;zhichutail = temp;}Save_zhichu();//后面可以添加“继续添加功能”printf("是否(Y/N)继续添加信息\n");panduan=getchar();fflush(stdin);}while(panduan=='Y'||panduan=='y');system("PAUSE");}void Del_income(){char shanchu[20];struct list *p=NULL;struct list *m =NULL;struct list *n =NULL;p=Inhead;printf("请输入删除姓名");gets(shanchu);if(strcmp(Inhead->,shanchu)==0){while(Inhead!=NULL && strcmp(Inhead->,shanchu)==0) {char ch;printf("找到一个数据名字为%s,确认删除Y/N?",shanchu);ch=getchar();fflush(stdin);if(ch=='y'||ch=='Y') Inhead=Inhead->next;else break;}}else{if(strcmp(Intail->,shanchu)==0){do{ m=p;p=p->next;}while(p!=Intail);m->next=NULL;}//删除尾巴else{do{m=p;p=p->next;n=p->next;}while(strcmp(p->,shanchu)!=0&&n->next!=NULL);if(strcmp(p->,shanchu)==0)m->next=n;}}//删除除头节点之外的节点,自己课后完成Save_income();if(Inhead!=NULL){char panduan;printf("是否继续删除(Y/N)");panduan=getchar();fflush(stdin);if(panduan=='Y'||panduan=='y'){Del_income();}}}void Del_zhichu(){char shanchu[20];struct list *p=NULL;struct list *m =NULL;struct list *n =NULL;p=zhichuhead;printf("请输入删除姓名");gets(shanchu);if(strcmp(zhichuhead->,shanchu)==0){while(zhichuhead!=NULL && strcmp(zhichuhead->,shanchu)==0) {char ch;printf("找到一个数据名字为%s,确认删除Y/N?",shanchu);ch=getchar();fflush(stdin);if(ch=='y'||ch=='Y') zhichuhead=zhichuhead->next;else break;}}else{if(strcmp(zhichutail->,shanchu)==0){do{ m=p;p=p->next;}while(p!=zhichutail);m->next=NULL;}//删除尾巴else{do{m=p;p=p->next;n=p->next;}while(strcmp(p->,shanchu)!=0&&n->next!=NULL);if(strcmp(p->,shanchu)==0)m->next=n;}}Save_zhichu();//删除除头节点之外的节点,自己课后完成if(zhichuhead!=NULL){char panduan;printf("是否继续删除(Y/N)");panduan=getchar();fflush(stdin);if(panduan=='Y'||panduan=='y'){Del_zhichu();}}}void xiugai_income(){xiugai_menu();int choice;printf(" 请输入你的选择:");scanf("%d",&choice);fflush(stdin);switch(choice){case 1: mingzi_xiugai_income();break;case 2: riqi_xiugai_income();break;case 3: money_xiugai_income();break;case 4: beizhu_xiugai_income();break;default: printf("输入错误");break;}}void xiugai_zhichu(){xiugai_menu();int choice;printf(" 请输入你的选择:");scanf("%d",&choice);fflush(stdin);switch(choice){case 1: mingzi_xiugai_zhichu();break;case 2: riqi_xiugai_zhichu();break;case 3: money_xiugai_zhichu();break;case 4: beizhu_xiugai_zhichu();break;default: printf("输入错误");break;}}void chaxun_income(){chaxun_menu();int choice;printf(" 请输入你的选择:");scanf("%d",&choice);fflush(stdin);switch(choice){case 1: mingzi();break;case 2: riqi();break;case 3: money();break;case 4: beizhu();break;default: printf("输入错误");break;}}void chaxun_zhichu(){chaxun_menu();int choice;printf(" 请输入你的选择:");scanf("%d",&choice);fflush(stdin);switch(choice){case 1: mingzi_zhichu();break;case 2: riqi_zhichu();break;case 3: money_zhichu();break;case 4: beizhu_zhichu();break;default: printf("输入错误");break;}}void Sho_income(){struct list *p = Inhead;while(p != NULL){printf("姓名:");puts(p->);printf("日期:");puts(p->info.riqi);printf("收入:");printf("%.4f\n",p->info.money);printf("备注:");puts(p->info.beizhu);p = p->next;}system("PAUSE");}void Sho_zhichu(){struct list *p = zhichuhead;while(p != NULL){fflush(stdin);printf("姓名:");puts(p->);printf("日期:");puts(p->info.riqi);printf("支出:");printf("%.4f\n",p->info.money);printf("备注:");puts(p->info.beizhu);p = p->next;}system("PAUSE");}void Income(){int choice;while(1){Income_menu();printf("请输入选择");scanf("%d",&choice);fflush(stdin);if(choice==0){break;}elseswitch(choice){case 1: Add_income(); Save_income();break;case 2: Del_income(); Save_income();break;case 3: chaxun_income(); Save_income();break;case 4: Sho_income(); Save_income();break;case 5: xiugai_income(); Save_income();break;}}}void zhichu(){int choice;while(1){zhichu_menu();printf("请输入选择");scanf("%d",&choice);fflush(stdin);if(choice==0){break;}elseswitch(choice){case 1: Add_zhichu(); Save_zhichu();break;case 2: Del_zhichu(); Save_zhichu();break;case 3: chaxun_zhichu(); Save_zhichu();break;case 4: Sho_zhichu(); Save_zhichu();break;case 5: xiugai_zhichu(); Save_zhichu();break;}}}void tongji_menu(){system("cls");printf("\n");printf("\n");printf("\n");printf("\n");printf("******************\n");printf("欢迎使用家庭财务管理系统\n");printf("******************\n");printf(" \n");printf(" 1.总收入\n");printf(" 2.总支出\n");printf(" 3.总资金\n");printf(" 0.返回上一级\n");}void zongshouru(){float shouru=0;struct list *linshi;linshi=Inhead;if(linshi!=NULL){do{shouru=linshi->info.money+shouru;linshi=linshi->next;}while(linshi!=NULL);printf("%.4f",shouru);system("PAUSE");}}void zongzhichu(){float zhichu=0;struct list *linshi;linshi=zhichuhead;if(linshi!=NULL){do{zhichu=linshi->info.money+zhichu;linshi=linshi->next;}while(linshi!=NULL);printf("%.4f",zhichu);system("PAUSE");}}void zongzijin(){float zhichu=0;float zongzijin;struct list *linshi;linshi=zhichuhead;if(linshi!=NULL){do{zhichu=linshi->info.money+zhichu;linshi=linshi->next;}while(linshi!=NULL);}float shouru=0;linshi=Inhead;if(linshi!=NULL){do{shouru=linshi->info.money+shouru;linshi=linshi->next;}while(linshi!=NULL);printf("%.4f",shouru-zhichu);system("PAUSE");}}void Tongji(){while(1){tongji_menu();int choice;printf(" 请输入你的选择:");scanf("%d",&choice);if(choice==0){break;}switch(choice){case 1: zongshouru();break;case 2: zongzhichu();break;case 3: zongzijin();break;default: printf("输入错误");break;}}}void Quit(){char panduan;printf("确认退出(Y/N)");panduan=getchar();fflush(stdin);if(panduan=='Y'||panduan=='y'){exit(0);}}int main(){Open();Openzhichu();system("color 72");while(1){Menu();int choice;printf(" 请输入你的选择:");scanf("%d",&choice);fflush(stdin);switch(choice){case 1: Income();break;case 2: zhichu();break;case 3: Tongji();break;case 0: Quit();break;default: printf("输入错误");break;}}return 0;}。

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

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

C语言课程设计——家庭财务管理系统#include<tdio.h>#include<tring.h>#include<tdlib.h>#include<conio.h>#definema某ize2000//定义家庭成员最大人数#definema某infor20000//定义收支信息的最大容量tructpeople//家庭成员登录信息结构{charuername[200];//用户名(也是姓名)charcode[200];//密码charflag[200];//标志0为普通成员,1为家长}peo[ma某ize];tructthing//成员收支信息结构{charname[30];//姓名intyear;//年份intmonth;//月份intoutput;//支出}thi[ma某infor];intn=0,m=0;//全局变量n为文件中家庭成员实际容量m为文件中收支信息实际容量inthold()//将数据写进文件中{FILE某fp;inti;fp=fopen("peoplelit4.t某t","w");{fprintf(fp,"%d\n",n);for(i=0;i<n;i++)fprintf(fp,"%%%\n",peo[i].uername,peo[i].code,peo[i].flag);} fcloe(fp);fp=fopen("thinglit4.t某t","w");{fprintf(fp,"%d\n",m);for(i=0;i<m;i++)}fcloe(fp);return0;}intcarry()//将数据从文件中读出{FILE某fp;inti;if((fp=fopen("peoplelit4.t某t","r"))!=NULL){fcanf(fp,"%d\n",&n);for(i=0;i<n;i++)fcanf(fp,"%%%\n",peo[i].uername,peo[i].code,peo[i].flag);} fcloe(fp);if((fp=fopen("thinglit4.t某t","r"))!=NULL){fcanf(fp,"%d\n",&m);for(i=0;i<m;i++)}fcloe(fp);return0;}intmater()//初始化家长{carry();if(n==0){trcpy(peo[n].uername,"小明"); trcpy(peo[n].code,"2022");trcpy(peo[n].flag,"1");n++;}hold();return0;}intadd_people()//增加新的家庭成员{intj=1,i,q=100,m=3;carry();printf("\n【添加新成员】\n\n"); printf("\n请输入新成员姓名:");canf("%",peo[n].uername);for(i=0;i<n;i++){if(trcmp(peo[i].uername,peo[n].uername)==0){j=0;break;}}if(j==0)printf("\n该成员已存在。

c语言家庭收支课程设计

c语言家庭收支课程设计

c语言 家庭收支课程设计一、课程目标知识目标:1. 学生能理解并掌握C语言的基本语法和结构,特别是数据类型、变量、运算符、控制结构等。

2. 学生能运用C语言编写程序,实现家庭收支的基本管理功能,如收入和支出的输入、存储、查询及统计。

3. 学生能够理解并运用文件操作,实现数据的持久化存储。

技能目标:1. 学生通过课程实践,培养编程思维和问题解决能力,能将实际问题抽象为程序设计问题。

2. 学生能运用所学知识,设计并实现一个具有基本功能的家庭收支管理系统。

3. 学生通过小组合作,提高团队协作能力和项目管理的初步能力。

情感态度价值观目标:1. 学生培养对计算机编程的兴趣,增强学习信息技术的积极性。

2. 学生通过编程解决实际问题,体会编程对生活的影响,认识到科技改变生活的实际意义。

3. 学生在小组合作中学会相互尊重、沟通与协作,培养责任感和集体荣誉感。

本课程针对高中年级学生设计,他们已经具有一定的逻辑思维能力,对计算机编程有初步的认识和兴趣。

课程性质为实践性较强的信息技术课程,旨在通过具体的家庭收支管理系统设计,使学生在实践中掌握C语言编程技能,同时注重培养学生的情感态度和价值观,使他们在学习过程中形成积极的学习态度和正确的价值观。

通过本课程的学习,学生不仅能够掌握C语言编程的基础知识,还能够体验编程带来的成就感,激发对信息技术领域的探索欲望。

二、教学内容本课程教学内容主要包括以下几部分:1. C语言基础知识回顾:- 数据类型、变量、常量- 运算符、表达式、赋值语句- 控制结构(顺序、分支、循环)2. 函数与模块化编程:- 函数的定义、声明与调用- 作用域规则- 模块化编程思想3. 家庭收支管理系统设计:- 需求分析- 系统设计(功能模块划分、数据结构设计)- 编码实现(收入、支出管理,数据存储与查询)4. 文件操作:- 文件打开、关闭、读写操作- 文件存储格式设计- 数据的持久化存储5. 项目实践与团队协作:- 小组分工与协作- 项目进度管理- 项目测试与优化教学内容将按照以下进度安排:1-2课时:C语言基础知识回顾3-4课时:函数与模块化编程5-8课时:家庭收支管理系统设计9-10课时:文件操作11-12课时:项目实践与团队协作教学内容与教材相关章节紧密关联,确保学生在掌握基础知识的同时,能够将所学应用于实际项目,提高编程实践能力和团队协作能力。

家庭财务管理系统C

家庭财务管理系统C

目录一、需求分析 (1)二、程序的主要功能 (2)三、程序运行平台 (3)四、系统总框架图 (4)五、程序类的说明 (5)六、模块分析 (6)七、比较有特色的函数 (7)八、存在的不足与对策 (8)一、需求分析家庭财务收支管理是一个家庭日常生活中不可缺少一部分,也是财务管理的重要组成部分。

它的内容对于财务管理者来说都至关重要,设计一个程序对财务收支进行管理是必不可少的。

二、程序的主要功能1、用户管理:对账单的用户进行登记。

2、消费明细:对用户账单明细进行记录。

3、个人账单查询:对用户的账单进行查询。

4、账单总计:对整个系统所存账单进行总计。

5、显示所有用户账单:把所有账单进行显示。

三、程序运行平台Dev c++四、系统总框架图五、程序类的说明class inter_f //定义一个界面类{public:inter_f(){}; //构造~inter_f(){}; //析构void display(); //声明显示用户信息界面函数/////////////////// void check(user* p); //声明用户登记函数void seek(user* p); //声明用户查询函数void show(user* p); //声明显示用户信息函数void add(user* p); //声明用户新增函数void cancel(user* p); //声明用户注销函数void exit(); //声明用户退出函数void limit(user& ru); //声明用户操作界面函数void display2(); //消费明细界面函数///////////////////////void water_cost(user* p); //水费函数void elec_cost(user* p); //电费函数void comm_cost(user* p); //通信费函数void shop_cost(user* p); //购物费函数void gas_cost(user* p); //煤气费函数void pin_cost(user* p); //零用函数void exit2(); //声明退出消费明细函数void limit2(user& ru); //声明消费明细操作界面函数void display1(); //声明显示总信息界面//////////////////////void personal_bill(user* p); //声明个人账单函数void amount_bill(user* p); //账单总计函数void show1(user* p); //声明显示所有用户账务函数void exit1(); //声明财务退出函数void limit1(user& ru); ////总界面函数};六、模块分析1、用户管理:对账单的用户进行登记。

C语言家庭财务管理系统代码

C语言家庭财务管理系统代码

#include <stdio.h>#include <stdlib.h>#include <string.h>struct Data{char name[20];char riqi[8];float money;char beizhu[50];};struct list{struct Data info;struct list *next;};struct list *Inhead=NULL;struct list *Intail=NULL;struct list *zhichuhead=NULL;struct list *zhichutail=NULL;struct list *temp=NULL;void chaxun_income();void chaxun_zhichu();void xiugai_income();void xiugai_zhichu();void Save_income(){FILE *fp;fp=fopen("D:\家庭财务管理.txt","w");struct list *p = Inhead;while(p != NULL){fwrite(&p->info, sizeof(struct Data), 1, fp);p = p->next;}fclose(fp);}void Save_zhichu(){FILE *fp;fp=fopen("D:\家庭财务管理支出.txt","w");struct list *p = zhichuhead;while(p != NULL){fwrite(&p->info, sizeof(struct Data), 1, fp);p = p->next;}fclose(fp);}void Open(){FILE *fp;fp=fopen("D:\家庭财务管理.txt","r");if(fp!=NULL){struct Data linshi;while(fread(&linshi, sizeof(struct Data), 1, fp) == 1){temp=(struct list*)malloc(sizeof(struct list));temp->info=linshi;temp->next=NULL;if(Inhead == NULL){Inhead = temp;Intail = temp;}else{Intail->next = temp;Intail = temp;}}fclose(fp);}}void Menu(){ system("cls");printf("\n");printf("\n");printf("\n");printf("\n");printf("******************\n");printf("欢迎使用家庭财务管理系统\n");printf("******************\n");printf(" \n");printf(" 1:收入操作\n");printf(" 2:支出操作\n");printf(" 3:统计操作\n");printf(" 0:退出\n");}void Openzhichu(){FILE *fp;fp=fopen("D:\家庭财务管理支出.txt","r");if(fp!=NULL){struct Data linshi;while(fread(&linshi, sizeof(struct Data), 1, fp) == 1){temp=(struct list*)malloc(sizeof(struct list));temp->info=linshi;temp->next=NULL;if(zhichuhead == NULL){zhichuhead = temp;zhichutail = temp;}else{zhichutail->next = temp;zhichutail = temp;}}fclose(fp);}}void mingzi (){char chazhao[20];printf("请输入查询的名字");gets(chazhao);struct list *p = Inhead;while(p != NULL){if(strcmp(p->,chazhao)==0){printf("姓名:");puts(p->);printf("日期:");puts(p->info.riqi);printf("收入:");printf("%.4f\n",p->info.money);printf("备注:");puts(p->info.beizhu);system("PAUSE");}p = p->next;}if(Inhead!=NULL){char panduan;printf("是否继续查询(Y/N)");panduan=getchar();fflush(stdin);if(panduan=='Y'||panduan=='y'){chaxun_income();}}}void mingzi_zhichu (){char chazhao[20];printf("请输入查询的名字");gets(chazhao);struct list *p = zhichuhead;while(p != NULL){if(strcmp(p->,chazhao)==0){printf("姓名:");puts(p->);printf("日期:");puts(p->info.riqi);printf("收入:");printf("%.4f\n",p->info.money);printf("备注:");puts(p->info.beizhu);system("PAUSE");}p = p->next;}if(zhichuhead!=NULL){char panduan;printf("是否继续查询(Y/N)");panduan=getchar();fflush(stdin);if(panduan=='Y'||panduan=='y'){chaxun_zhichu();}}}void mingzi_xiugai_income(){char xiugai[20];printf("请输入修改的名字");fflush(stdin);gets(xiugai);struct list *p = Inhead;while(p != NULL){if(strcmp(p->,xiugai)==0){fflush(stdin);printf("姓名:");gets(p->);fflush(stdin);printf("日期:");gets(p->info.riqi);fflush(stdin);printf("支出: ");scanf("%f",&p->info.money);fflush(stdin);printf("备注:");gets(p->info.beizhu);fflush(stdin);//------}p = p->next;}Save_income();if(Inhead!=NULL){char panduan;printf("是否继续修改(Y/N)");panduan=getchar();fflush(stdin);if(panduan=='Y'||panduan=='y'){xiugai_income();}}}void mingzi_xiugai_zhichu(){char xiugai[20];printf("请输入修改的名字");fflush(stdin);gets(xiugai);struct list *p = zhichuhead;while(p != NULL){if(strcmp(p->,xiugai)==0){fflush(stdin);printf("姓名:");gets(p->);fflush(stdin);printf("日期:");gets(p->info.riqi);fflush(stdin);printf("支出: ");scanf("%f",&p->info.money);fflush(stdin);printf("备注:");gets(p->info.beizhu);fflush(stdin);//------}p = p->next;}Save_zhichu();if(zhichuhead!=NULL){char panduan;printf("是否继续修改(Y/N)");panduan=getchar();fflush(stdin);if(panduan=='Y'||panduan=='y'){xiugai_zhichu();}}}void riqi(){char chazhao[20];printf("请输入查询的日期");gets(chazhao);struct list *p = Inhead;while(p != NULL){if(strcmp(p->info.riqi,chazhao)==0){printf("姓名:");puts(p->);printf("日期:");puts(p->info.riqi);printf("收入:");printf("%.4f\n",p->info.money);printf("备注:");puts(p->info.beizhu);system("PAUSE");}p = p->next;}if(Inhead!=NULL){char panduan;printf("是否继续查询(Y/N)");panduan=getchar();fflush(stdin);if(panduan=='Y'||panduan=='y'){chaxun_income();}}}void riqi_zhichu(){char chazhao[20];printf("请输入查询的日期");gets(chazhao);struct list *p = zhichuhead;while(p != NULL){if(strcmp(p->info.riqi,chazhao)==0){printf("姓名:");puts(p->);printf("日期:");puts(p->info.riqi);printf("收入:");printf("%.4f\n",p->info.money);printf("备注:");puts(p->info.beizhu);system("PAUSE");}p = p->next;}if(zhichuhead!=NULL){char panduan;printf("是否继续查询(Y/N)");panduan=getchar();fflush(stdin);if(panduan=='Y'||panduan=='y'){chaxun_zhichu();}}}void riqi_xiugai_income(){char xiugai[20];printf("请输入修改的日期");fflush(stdin);gets(xiugai);struct list *p = Inhead;while(p != NULL){if(strcmp(p->info.riqi,xiugai)==0){fflush(stdin);printf("姓名:");gets(p->);fflush(stdin);printf("日期:");gets(p->info.riqi);fflush(stdin);printf("支出: ");scanf("%f",&p->info.money);fflush(stdin);printf("备注:");gets(p->info.beizhu);fflush(stdin);//------}p = p->next;}Save_income();if(Inhead!=NULL){char panduan;printf("是否继续修改(Y/N)");panduan=getchar();fflush(stdin);if(panduan=='Y'||panduan=='y'){xiugai_income();}}}void riqi_xiugai_zhichu(){char xiugai[20];printf("请输入修改的日期");fflush(stdin);gets(xiugai);struct list *p = zhichuhead;while(p != NULL){if(strcmp(p->info.riqi,xiugai)==0){fflush(stdin);printf("姓名:");gets(p->);fflush(stdin);printf("日期:");gets(p->info.riqi);fflush(stdin);printf("支出: ");scanf("%f",&p->info.money);fflush(stdin);printf("备注:");gets(p->info.beizhu);fflush(stdin);//------}p = p->next;}Save_zhichu();if(zhichuhead!=NULL){char panduan;printf("是否继续修改(Y/N)");panduan=getchar();fflush(stdin);if(panduan=='Y'||panduan=='y'){xiugai_zhichu();}}}void money (){float chazhao;printf("请输入查询的money");scanf("%f",&chazhao);fflush(stdin);struct list *p = Inhead;while(p != NULL){if(p->info.money==chazhao){printf("姓名:");puts(p->);printf("日期:");puts(p->info.riqi);printf("收入:");printf("%.4f\n",p->info.money);printf("备注:");puts(p->info.beizhu);system("PAUSE");}p = p->next;}if(Inhead!=NULL){char panduan;printf("是否继续查询(Y/N)");panduan=getchar();fflush(stdin);if(panduan=='Y'||panduan=='y'){chaxun_income();}}}void money_zhichu (){float chazhao;printf("请输入查询的money");scanf("%f",&chazhao);fflush(stdin);struct list *p = zhichuhead;while(p != NULL){if(p->info.money==chazhao){printf("姓名:");puts(p->);printf("日期:");puts(p->info.riqi);printf("收入:");printf("%.4f\n",p->info.money);printf("备注:");puts(p->info.beizhu);system("PAUSE");}p = p->next;}if(zhichuhead!=NULL){char panduan;printf("是否继续查询(Y/N)");panduan=getchar();fflush(stdin);if(panduan=='Y'||panduan=='y'){chaxun_zhichu();}}}void money_xiugai_income(){float xiugai;printf("请输入修改的money");scanf("%f",&xiugai);fflush(stdin);struct list *p = Inhead;while(p != NULL){if(p->info.money==xiugai){fflush(stdin);printf("姓名:");gets(p->);fflush(stdin);printf("日期:");gets(p->info.riqi);fflush(stdin);printf("支出: ");scanf("%f",&p->info.money);fflush(stdin);printf("备注:");gets(p->info.beizhu);fflush(stdin);//------}p = p->next;}Save_income();if(Inhead!=NULL){char panduan;printf("是否继续修改(Y/N)");panduan=getchar();fflush(stdin);if(panduan=='Y'||panduan=='y'){xiugai_income();}}}void money_xiugai_zhichu(){float xiugai;printf("请输入修改的money");scanf("%f",&xiugai);fflush(stdin);struct list *p = zhichuhead;while(p != NULL){if(p->info.money==xiugai){fflush(stdin);printf("姓名:");gets(p->);fflush(stdin);printf("日期:");gets(p->info.riqi);fflush(stdin);printf("支出: ");scanf("%f",&p->info.money);fflush(stdin);printf("备注:");gets(p->info.beizhu);fflush(stdin);//------}p = p->next;}Save_zhichu();if(zhichuhead!=NULL){char panduan;printf("是否继续修改(Y/N)");panduan=getchar();fflush(stdin);if(panduan=='Y'||panduan=='y'){xiugai_zhichu();}}}void beizhu(){char chazhao[20];printf("请输入查询的备注");gets(chazhao);struct list *p = Inhead;while(p != NULL){if(strcmp(p->info.beizhu,chazhao)==0){printf("姓名:");puts(p->);printf("日期:");puts(p->info.riqi);printf("收入:");printf("%.4f\n",p->info.money);printf("备注:");puts(p->info.beizhu);system("PAUSE");}p = p->next;}if(Inhead!=NULL){char panduan;printf("是否继续查询(Y/N)");panduan=getchar();fflush(stdin);if(panduan=='Y'||panduan=='y'){chaxun_income();}}}void beizhu_zhichu(){char chazhao[20];printf("请输入查询的备注");gets(chazhao);struct list *p = zhichuhead;while(p != NULL){if(strcmp(p->info.beizhu,chazhao)==0){printf("姓名:");puts(p->);printf("日期:");puts(p->info.riqi);printf("收入:");printf("%.4f\n",p->info.money);printf("备注:");puts(p->info.beizhu);system("PAUSE");}p = p->next;}if(zhichuhead!=NULL){char panduan;printf("是否继续查询(Y/N)");panduan=getchar();fflush(stdin);if(panduan=='Y'||panduan=='y'){chaxun_zhichu();}}}void beizhu_xiugai_income(){char xiugai[20];printf("请输入修改的备注");fflush(stdin);gets(xiugai);struct list *p = Inhead;while(p != NULL){if(strcmp(p->info.beizhu,xiugai)==0){fflush(stdin);printf("姓名:");gets(p->);fflush(stdin);printf("日期:");gets(p->info.riqi);fflush(stdin);printf("支出: ");scanf("%f",&p->info.money);fflush(stdin);printf("备注:");gets(p->info.beizhu);fflush(stdin);//------}p = p->next;}Save_income();if(Inhead!=NULL){char panduan;printf("是否继续修改(Y/N)");panduan=getchar();fflush(stdin);if(panduan=='Y'||panduan=='y'){xiugai_income();}}}void beizhu_xiugai_zhichu(){char xiugai[20];printf("请输入修改的备注");fflush(stdin);gets(xiugai);fflush(stdin);struct list *p = zhichuhead;while(p != NULL){if(strcmp(p->info.beizhu,xiugai)==0){fflush(stdin);printf("姓名:");gets(p->);fflush(stdin);printf("日期:");gets(p->info.riqi);fflush(stdin);printf("支出: ");scanf("%f",&p->info.money);fflush(stdin);printf("备注:");gets(p->info.beizhu);fflush(stdin);//------}p = p->next;}Save_zhichu();if(zhichuhead!=NULL){char panduan;printf("是否继续修改(Y/N)");panduan=getchar();fflush(stdin);if(panduan=='Y'||panduan=='y'){xiugai_zhichu();}}}void Income_menu(){system("cls");printf("\n");printf("\n");printf("\n");printf("\n");printf("******************\n");printf("欢迎使用家庭财务管理系统\n");printf("******************\n");printf(" \n");printf(" 1.添加收入\n");printf(" 2.删除收入\n");printf(" 3.查询收入\n");printf(" 4.显示收入\n");printf(" 5.修改收入\n");printf(" 0.返回上一级\n");}void zhichu_menu(){system("cls");printf("\n");printf("\n");printf("\n");printf("\n");printf("******************\n");printf("欢迎使用家庭财务管理系统\n");printf("******************\n");printf(" \n");printf(" 1.添加支出\n");printf(" 2.删除支出\n");printf(" 3.查询支出\n");printf(" 4.显示支出\n");printf(" 5.修改支出\n");printf(" 0.返回上一级\n");}void chaxun_menu(){system("cls");printf("\n");printf("\n");printf("\n");printf("\n");printf("******************\n");printf("欢迎使用家庭财务管理系统\n");printf("******************\n");printf(" \n");printf(" 1.按名字查询\n");printf(" 2.按日期查询\n");printf(" 3.按money询\n");printf(" 4.按备注查询\n");printf(" 0.返回上一级\n"); }void xiugai_menu(){system("cls");printf("\n");printf("\n");printf("\n");printf("\n");printf("******************\n");printf("欢迎使用家庭财务管理系统\n");printf("******************\n");printf(" \n");printf(" 1.按名字修改\n");printf(" 2.按日期修改\n");printf(" 3.按money修改\n");printf(" 4.按备注修改\n");printf(" 0.返回上一级\n");}void Add_income(){char panduan;do{temp=(struct list*)malloc(sizeof(struct list));printf("姓名");gets(temp->);fflush(stdin);printf("日期(XX年XX月XX日)");gets(temp->info.riqi);fflush(stdin);printf("收入");scanf("%f",&temp->info.money);fflush(stdin);printf("备注");gets(temp->info.beizhu);fflush(stdin);printf("\n");//------自己添加temp->next=NULL;if(Inhead == NULL){Inhead = temp;Intail = temp;}else{Intail->next = temp;Intail = temp;}Save_income();//后面可以添加“继续添加功能”printf("是否(Y/N)继续添加信息\n");panduan=getchar();fflush(stdin);}while(panduan=='Y'||panduan=='y');system("PAUSE");}void Add_zhichu(){char panduan;do{temp=(struct list*)malloc(sizeof(struct list));printf("姓名");gets(temp->);fflush(stdin);printf("日期(XX年XX月XX日)");gets(temp->info.riqi);fflush(stdin);printf("支出");scanf("%f",&temp->info.money);fflush(stdin);printf("备注");gets(temp->info.beizhu);fflush(stdin);printf("\n");//------自己添加temp->next=NULL;if(zhichuhead == NULL){zhichuhead = temp;zhichutail = temp;}else{zhichutail->next = temp;zhichutail = temp;}Save_zhichu();//后面可以添加“继续添加功能”printf("是否(Y/N)继续添加信息\n");panduan=getchar();fflush(stdin);}while(panduan=='Y'||panduan=='y');system("PAUSE");}void Del_income(){char shanchu[20];struct list *p=NULL;struct list *m =NULL;struct list *n =NULL;p=Inhead;printf("请输入删除姓名");gets(shanchu);if(strcmp(Inhead->,shanchu)==0){while(Inhead!=NULL && strcmp(Inhead->,shanchu)==0) {char ch;printf("找到一个数据名字为%s,确认删除Y/N?",shanchu);ch=getchar();fflush(stdin);if(ch=='y'||ch=='Y') Inhead=Inhead->next;else break;}}else{if(strcmp(Intail->,shanchu)==0){do{ m=p;p=p->next;}while(p!=Intail);m->next=NULL;}//删除尾巴else{do{m=p;p=p->next;n=p->next;}while(strcmp(p->,shanchu)!=0&&n->next!=NULL);if(strcmp(p->,shanchu)==0)m->next=n;}}//删除除头节点之外的节点,自己课后完成Save_income();if(Inhead!=NULL){char panduan;printf("是否继续删除(Y/N)");panduan=getchar();fflush(stdin);if(panduan=='Y'||panduan=='y'){Del_income();}}}void Del_zhichu(){char shanchu[20];struct list *p=NULL;struct list *m =NULL;struct list *n =NULL;p=zhichuhead;printf("请输入删除姓名");gets(shanchu);if(strcmp(zhichuhead->,shanchu)==0){while(zhichuhead!=NULL && strcmp(zhichuhead->,shanchu)==0) {char ch;printf("找到一个数据名字为%s,确认删除Y/N?",shanchu);ch=getchar();fflush(stdin);if(ch=='y'||ch=='Y') zhichuhead=zhichuhead->next;else break;}}else{if(strcmp(zhichutail->,shanchu)==0){do{ m=p;p=p->next;}while(p!=zhichutail);m->next=NULL;}//删除尾巴else{do{m=p;p=p->next;n=p->next;}while(strcmp(p->,shanchu)!=0&&n->next!=NULL);if(strcmp(p->,shanchu)==0)m->next=n;}}Save_zhichu();//删除除头节点之外的节点,自己课后完成if(zhichuhead!=NULL){char panduan;printf("是否继续删除(Y/N)");panduan=getchar();fflush(stdin);if(panduan=='Y'||panduan=='y'){Del_zhichu();}}}void xiugai_income(){xiugai_menu();int choice;printf(" 请输入你的选择:");scanf("%d",&choice);fflush(stdin);switch(choice){case 1: mingzi_xiugai_income();break;case 2: riqi_xiugai_income();break;case 3: money_xiugai_income();break;case 4: beizhu_xiugai_income();break;default: printf("输入错误");break;}}void xiugai_zhichu(){xiugai_menu();int choice;printf(" 请输入你的选择:");scanf("%d",&choice);fflush(stdin);switch(choice){case 1: mingzi_xiugai_zhichu();break;case 2: riqi_xiugai_zhichu();break;case 3: money_xiugai_zhichu();break;case 4: beizhu_xiugai_zhichu();break;default: printf("输入错误");break;}}void chaxun_income(){chaxun_menu();int choice;printf(" 请输入你的选择:");scanf("%d",&choice);fflush(stdin);switch(choice){case 1: mingzi();break;case 2: riqi();break;case 3: money();break;case 4: beizhu();break;default: printf("输入错误");break;}}void chaxun_zhichu(){chaxun_menu();int choice;printf(" 请输入你的选择:");scanf("%d",&choice);fflush(stdin);switch(choice){case 1: mingzi_zhichu();break;case 2: riqi_zhichu();break;case 3: money_zhichu();break;case 4: beizhu_zhichu();break;default: printf("输入错误");break;}}void Sho_income(){struct list *p = Inhead;while(p != NULL){printf("姓名:");puts(p->);printf("日期:");puts(p->info.riqi);printf("收入:");printf("%.4f\n",p->info.money);printf("备注:");puts(p->info.beizhu);p = p->next;}system("PAUSE");}void Sho_zhichu(){struct list *p = zhichuhead;while(p != NULL){fflush(stdin);printf("姓名:");puts(p->);printf("日期:");puts(p->info.riqi);printf("支出:");printf("%.4f\n",p->info.money);printf("备注:");puts(p->info.beizhu);p = p->next;}system("PAUSE");}void Income(){int choice;while(1){Income_menu();printf("请输入选择");scanf("%d",&choice);fflush(stdin);if(choice==0){break;}elseswitch(choice){case 1: Add_income(); Save_income();break;case 2: Del_income(); Save_income();break;case 3: chaxun_income(); Save_income();break;case 4: Sho_income(); Save_income();break;case 5: xiugai_income(); Save_income();break;}}}void zhichu(){int choice;while(1){zhichu_menu();printf("请输入选择");scanf("%d",&choice);fflush(stdin);if(choice==0){break;}elseswitch(choice){case 1: Add_zhichu(); Save_zhichu();break;case 2: Del_zhichu(); Save_zhichu();break;case 3: chaxun_zhichu(); Save_zhichu();break;case 4: Sho_zhichu(); Save_zhichu();break;case 5: xiugai_zhichu(); Save_zhichu();break;}}}void tongji_menu(){system("cls");printf("\n");printf("\n");printf("\n");printf("\n");printf("******************\n");printf("欢迎使用家庭财务管理系统\n");printf("******************\n");printf(" \n");printf(" 1.总收入\n");printf(" 2.总支出\n");printf(" 3.总资金\n");printf(" 0.返回上一级\n");}void zongshouru(){float shouru=0;struct list *linshi;linshi=Inhead;if(linshi!=NULL){do{shouru=linshi->info.money+shouru;linshi=linshi->next;}while(linshi!=NULL);printf("%.4f",shouru);system("PAUSE");}}void zongzhichu(){float zhichu=0;struct list *linshi;linshi=zhichuhead;if(linshi!=NULL){do{zhichu=linshi->info.money+zhichu;linshi=linshi->next;}while(linshi!=NULL);printf("%.4f",zhichu);system("PAUSE");}}void zongzijin(){float zhichu=0;float zongzijin;struct list *linshi;linshi=zhichuhead;if(linshi!=NULL){do{zhichu=linshi->info.money+zhichu;linshi=linshi->next;}while(linshi!=NULL);}float shouru=0;linshi=Inhead;if(linshi!=NULL){do{shouru=linshi->info.money+shouru;linshi=linshi->next;}while(linshi!=NULL);printf("%.4f",shouru-zhichu);system("PAUSE");}}void Tongji(){while(1){tongji_menu();int choice;printf(" 请输入你的选择:");scanf("%d",&choice);if(choice==0){break;}switch(choice){case 1: zongshouru();break;case 2: zongzhichu();break;case 3: zongzijin();break;default: printf("输入错误");break;}}}void Quit(){char panduan;printf("确认退出(Y/N)");panduan=getchar();fflush(stdin);if(panduan=='Y'||panduan=='y'){exit(0);}}int main(){Open();Openzhichu();system("color 72");while(1){Menu();int choice;printf(" 请输入你的选择:");scanf("%d",&choice);fflush(stdin);switch(choice){case 1: Income();break;case 2: zhichu();break;case 3: Tongji();break;case 0: Quit();break;default: printf("输入错误");break;}}return 0;}。

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

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

C语言程序设计—家庭财务管理系统摘要本报告介绍了一个运用C语言知识和Microsoft Visual c++ 6.0创建的用于家庭各成员财务情况管理的家庭财务管理系统.在该系统中创建了包含编辑,增加,删除,修改,查找,浏览的功能总列表,创建序号链接各功能列表,输入家庭成员收入信息情况,增加信息,删除信息,修改信息,创建姓名查找便于用户查找个人财务情况,创建合计排序浏览用户可从总体上浏览全家庭财务信息情况.关键词:C语言,Visual c++ 6.0, 家庭财务管理系统小组情况本系统是通过小组全体成员的共同努力,经过分工合作完成的,具体分工如下:1。

合作的工作需求分析、概念结构设计、逻辑结构设计和报告的草稿通过小组讨论完成。

2。

分工在家庭财务管理系统的总体方案确定之后,小组成员开始分工,独立完成不同的模块及工作。

其中●:负责家庭财务管理系统主函数、总程序的编译连接、报告的撰写排版工作。

●:负责家庭财务管理系统各主要函数及总程序的编译连接。

●:负责家庭财务管理系统增加函数的编译、报告的撰写工作.●:负责家庭财务管理系统删除函数的编译、报告的撰写工作.●:负责家庭财务管理系统创建函数的编译工作.目录1 绪论 (1)2方案设计分析 (2)2.2.函数设计 (2)2。

3。

各函数代码设计及N-S图 (2)3系统运行情况 (5)3.1出现的问题 (5)3。

2相关的解决方法 (5)3。

3目前的运行情况 (5)3。

4系统操作说明 (5)总结 (7)致谢 (8)参考文献 (9)1 绪论家庭财务管理对于每一个家庭来说有着重要的意义,随着科技的发达,财务的管理由原先的手写账本发展到现今的电脑系统输入并统计,不仅大大减少了时间与精力,也是财务管理更系统化,便捷化,清晰化,减少金钱上的缺失。

家庭财务系统主要对家庭的各项财务收支管理进行在计算机上的信息存储和处理,从而简化用户的工作量本报告设计的家庭财务管理系统主要是负责给家庭成员提供了一个在Windows操作系统上运行的管理平台,家庭财务管理者可以对其成员编号、姓名以及收入、支出构成进行增加、删除、修改,查找等管理操作,还可以对全家庭财务合计排序浏览.C语言是国内外广泛使用的一种计算机语言,学会使用C语言进行程序设计是计算机工作者的一项基本功。

家庭财务管理系统43380

家庭财务管理系统43380

目录1.课程设计目的及要求 (2)2.相关知识 (2)3.设计方案 (2)3.1题目内容 (2)3.2分析题目要求 (2)3.3流程图 (3)4.程序代码实现 (5)5.测试数据及运行结果 (13)6.课程设计总结 (15)7. 参考文献 (15)1.课程设计目的及要求通过课程设计,进一步巩固和复习C语言程序设计的基础知识,了解软件的编制过程及各环节的具体内容,掌握结构化程序、模块化程序设计方法,提高学生分析问题,解决问题以及书籍运用能力。

2.相关知识本课程设“家庭财务管理系统”就是通过学习《C程序设计》采用Visual C++作为编译环境。

本系统的总体思想基于结构化的程序设计。

应用高级语言程序设计中的基本控制结构,如循环和选择,着重实现管理系统的增、删、改、查等典型的管理功能。

3.设计方案3.1题目内容家庭成员可以对其成员编号,姓名以及收入,支出构成进行增加,删除,修改等管理操作。

家庭成员分为管理员和普通用户两类,权限不同。

管理员还要在本系统外事先创建家庭成员信息文件,在文件中保存用户的序号,姓名,密码,权限。

用户必须正确输入姓名和密码才能登录使用本系统。

3.2分析题目要求管理员界面有12个选项可供管理员挑选:1. 创建家庭成员财务信息文件(该文件内容为序号,姓名,收入,支出,合计。

)并初始化2. 添加财务收支信息记录;3. 删除财务收支信息记录; 4. 按姓名查询家庭成员财务收支信息记录;5. 按家庭成员序号查询家庭成员财务信息;6. 修改家庭成员收支信息记录;7. 按财务合计项排序浏览;8. 增加家庭成员信息;9. 删除家庭成员信息;10. 按用户序号修改家庭成员信息;11. 按家庭成员序号排序浏览用户信息12.退出本系统。

管理员界面,创建家庭成员财务信息文件并初始化,修改家庭成员收支信息记录。

3.3流程图(1)家庭管理选择界面1.1家庭管理选择界面(2)创建家庭成员财务信息文件:1.2创建家庭成员财务信息文件(3)修改家庭成员收支信息记录:1.3修改家庭成员收支信息记录4.程序代码实现(1)/*admin.c:家长管理功能选择界面,根据用户选项调用相应函数实现系统功能*/ #include "shead.h" /*家庭成员财务信息头文件*/#include "creat.c" /*创建家庭成员财务信息文件*/#include "add.c" /*增加家庭成员财务信息记录*/#include "delete.c" /*删除家庭成员财务信息记录*/#include "modnum.c" /*按家庭成员序号修改家庭成员财务信息*/#include "qname.c" /*按家庭成员姓名查询家庭成员财务信息*/#include "qseatnum.c" /*按家庭成员序号查询家庭成员财务信息*/#include "ssum.c" /*按财务合计项排序浏览家庭成员财务信息*/void Admin(){int choice = 0; /*存放用户选项的变量*//*====功能及操作的界面提示====*/while(1){printf("--------------------------------------------------------\n");printf("| |\n");printf("| Welcome to Family Financial Management System |\n");printf("| |\n");printf("|------------------------------------------------------|\n");printf("| 1. Creat Financial File |\n");printf("| 2. AddRecord() |\n");printf("| 3. DelRecord() |\n");printf("| 4. QueryByName() |\n");printf("| 5. QueryBySeatNum() |\n");printf("| 6. ModifyByNumber() |\n");printf("| 7. SortBySum() |\n");printf("++++++++++++++++++++++++++++++++++++++++++++++ ++++++++++\n");printf("| System User Management |\n");printf("| 11.CreatNewUserFile() |\n");printf("| 12.AddUser() |\n");printf("| 13.DelUser() |\n");printf("| 14.ModifyUser() |\n");printf("| 15.SortByUserNum() |\n");printf("++++++++++++++++++++++++++++++++++++++++++++++ ++++++++++\n");printf("| 0. End Program |\n");printf("--------------------------------------------------------\n");printf("# Please Input Your Choose #\n");printf("# number 1~7 to Manage the Family's Finance #\n");printf("# number 11,12,13,14,15 to Manage the System User #\n");printf("# number 0 to Exit the System #\n");printf("--------------------------------------------------------\n");scanf("%d",&choice);getchar(); /*根据用户选项调用相应函数*/switch(choice){case 1:CreatFile(); /*创建初始财务信息文件*/break;case 2:AddRecord(); /*增加财务信息记录*/break;case 3:DelRecord(); /*修改财务信息记录*/break;case 4:QueryByName(); /*按家庭成员姓名查询财务信息*/break;case 5:QueryBySeatNum(); /*按家庭成员序号查询财务信息*/break;case 6:ModifyByNumber(); /*按家庭成员序号修改财务信息*/break;case 7:SortBySum(); /*按财务合计项排序浏览财务信息*/break;case 11:CreatUser(); /*创建初始家庭成员信息文件*/break;case 12:AddUser(); /*增加家庭成员*/break;case 13:DelUser(); /*删除家庭成员*/break;case 14:ModifyByUserNumber(); /*按家庭成员序号修改家庭成员*/break;case 15:SortByUserNum(); /*按家庭成员序号排序浏览*/break;case 0:exit(0); /*退出系统*/default:break;}}}(2)/*creat.c:用于创建家庭成员财务信息文件并初始化*/#include "stdio.h"/*函数CreatFile*/void CreatFile(){FILE *fp = NULL; /*定义指向文件的指针*/money TmpS; /*定义进行操作时存放结构体变量的*/char DataFile[40] = "";/*存储员财务收支信息的文件名*/int count = 1; /*计算可输入数据的最大范围*//*输入存放财务收支信息的文件名*/printf("\n please input new file name to store data,end with enter.");printf("\n Notice:Name of file can't exceed 8 characters.suffix can't exceed 3 characters,part of exceed will be discarded.\n");gets(DataFile);/*如家长没有输入,则循环提示家长输入*/while(*DataFile == ('\0')){printf("\n please input new file name to store data,end with enter.");printf("\n Notice:Name of file can't exceed 8 characters,suffix can't exceed 3 characters.part of exceed will be discarded.\n");gets(DataFile);}/*用二进制写的方式打开文件,即创建文件*/fp = fopen(DataFile,"wb+");/*如果当前文件不存在,提示打开文件失败*/if (fp == NULL){printf("\n Open file %s fail!End with any key.\n",DataFile);perror("Open file fail");getch();exit(1);}/*如果成功打开或创建文件,则提示输入家庭成员序号、姓名、财务收支构成等相关信息*/printf("input number,name and the income and outcome.number is 0 means input is end.\n");printf("Number is not exceed 9 figures,Name is not exceed 20 characters,range of grade:0.00~1000.00\n");/*循环从键盘上读取家长输入的序号、姓名、收入、支出等相关信息*/while(count <= SIZE){/*输入序号,如为0则停止输入*/printf("\n input 'number =0' means end input.\n");printf("number=");scanf("%ld",&TmpS.Number);if (TmpS.Number == 0 )/*提示输入姓名*/printf("name=");scanf("%s",);/*提示输入收入*/printf("in=");scanf("%f",&TmpS.in);/*提示输入支出*/printf("out=");scanf("%f",&TmpS.out);/*用公式自动计算家庭成员财务合计*/TmpS.sum=TmpS.in-TmpS.out;printf("\n");/*如遇无法写入文件的异常,则加以提示*/if(fwrite(&TmpS,sizeof(money),1,fp)!=1){printf("\nwrite file %s fail!End with any key\n",DataFile);perror("Write file fail ");getch();}count++;}/*如果输入的数据量超过最大允许的范围,则提示数据不能录入*/if (count>SIZE)printf("\nsorry,number of data can not exceed%d\n",SIZE); fclose(fp);/*在屏幕上显示初始化后的文件内容*//* clrscr();*/printf("The data you input is store successful %s in file.\n",DataFile); printf("Content as follow:\n");/*打开财务信息文件,如无法打开,则提示*/fp=fopen(DataFile,"rb");if (fp == NULL){printf("\nOpen file%sfail!End with any key \n",DataFile);perror("Open file fail");getch();exit(1);}printf("\nNumber\tName\tin\tout\tsum\n");while(fread(&TmpS,sizeof(money),1,fp) != (int)NULL){printf("\n%ld\t%s\t%4.2f\t%4.2f\t%4.2f\n",TmpS.Number,,TmpS.in,T mpS.out,TmpS.sum);}fclose(fp);}(3)/* modnum.c :修改家庭成员收支信息记录*/#include "stdio.h"void ModifyByNumber(){int i,j,k;long modnum;/*存储家长输入的要修改的家庭成员序号*//*输入各项修改后信息*/long Number;char Name[20];float in;float out;float sum;money TmpS; /*定义进行操作时的临时结构体变量*/money s[SIZE];/*SIZE,在shead.h头文件中定义的常量,值为100 */int recNumber;char DataFile[40] = "",next;/*DataFile存储家庭成员收支信息信息的文件名,next为是否进行下一次删除操FILE *fp;/*====fp指针指向存储数据的文件名====*//*提示家长输入要进行修改记录的文件名*/printf("\nplease input the name of file where data is stored,end with enter key.\n");gets(DataFile);/*提示家长输入要进行修改记录的文件名*/while(*DataFile == ('\0')){printf("\nplease input the name of file where data is stored,end with enter key.\n");gets(DataFile);}begin:/*以读的方式打开文件,如文件不存在,提示错误*/fp=fopen(DataFile,"rb");if (fp == NULL){printf("\nOpen file %s fail!End with any key\n",DataFile);perror("Open file fail");getch();exit(1);}printf("please input the Employee'seatnum which you will modify:");printf("the money you will delete is:%ld\n",modnum);/*输入要修改记录的各项内容值*/Number=modnum;printf("name=");scanf("%s",Name);printf("in=");scanf("%f",&in);printf("out=");scanf("%f",&out);/*用公式自动计算家庭成员财务合计*/sum=in-out;/*将文件中要修改的信息存入结构体数组*/recNumber=0;/*循环将文件数据读入结构体数组,如文件中的数据家庭成员号和要修改的家庭成员号不符,则原样写入数组,如文件中数据的家庭成员号和要修改家庭成员号匹配,则根据家长输入的各项修改内容重新赋值,即修改,并写入数组*/while((fread(&TmpS,sizeof(money),1,fp)) != (int)NULL){if(TmpS.Number!=modnum)s[recNumber].Number = TmpS.Number;strcpy(s[recNumber].Name, );s[recNumber].in = TmpS.in;s[recNumber].out = TmpS.out;s[recNumber].sum = TmpS.sum;recNumber++;}else{s[recNumber].Number = Number;strcpy(s[recNumber].Name, Name);s[recNumber].in = in;s[recNumber].out = out;s[recNumber].sum = sum;recNumber++;}}fclose(fp);/*将修改后的结构体数组记录写入文件*/fp=fopen(DataFile,"wb+");if (fp == NULL){printf("\nSet up file %sfail !end with anykey.\n",DataFile);getch();exit(1);}for(i=0; i<recNumber; i++){if(fwrite(&s[i],sizeof(money),1,fp)!=1){printf("\nWrite file %s fail!end with anykey.\n",DataFile);perror("Write file fail!");getch();exit(1);}}fclose(fp);/*显示修改后的文件*/fp=fopen(DataFile,"rb");if (fp == NULL){printf("\nOpen file%sfail!End with any key \n",DataFile);perror("Open file fail");getch();exit(1);}printf("\nNumber \tName\tin\tout\tsum\n");while(fread(&TmpS,sizeof(money),1,fp) != (int)NULL){if(TmpS.Number!=0)printf("\n%ld\t%s\t%4.1f\t%4.1f\t%4.1f\n",TmpS.Number,,TmpS.in,T mpS.out,TmpS.sum);}fclose(fp);/*提示是否进行下一次修改*/printf("\nGo on ?(y/n)");next=getche();putchar('\n');if ( next =='y' || next =='Y') goto begin;}5.测试数据及运行结果5.1管理员界面5.2创建家庭成员财务信息文件并初始化5.3修改家庭成员收支信息记录6.课程设计总结一周的时间既短暂又漫长,但我学会了很多东西。

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

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

#include"stdio.h"#include"stdlib.h"#define MAX_NAME 11#define MAX_DETAIL 21 #define MENU_COUNT 9 #define DATA_FILE "fa.dat" typedef wnum_fi_type{income=1,payout=-1}fi_type;typedef struct_fi_info{int year;int month;fi_type type;char name[MAX_NAME]; float money;char detail[MAX_DETAIL]; }fi_info;typedef struct_fi_data{fi_info info;struct_fi_data *next;}fi_data;void add_income();void search_income();void delete_income();void update_income();void add_payout();void search_payout();void delete_payout();void update_payout();void count_total();void quit();void search_data(fi_type type);void delete_data(fi_type type);void update_data(fi_type type);void initialize();void save_to_file();void clear_data();fi_data *get_last();fi_data *get_previous(fi_data *p);void input_info(fi_info *info);void show_info(fi_data *p[],int count);fi_data *head;char menu[]="===============================================\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};int main(){int selected=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;}}void add_income(){fi_data *p=(fi_data *)malloc(sizeof(fi_data));memset(p,0,sizeof(fi_data));p->next=NULL;input_info(&(p->info));if(head==NULL){head=p;}else{get_last(head)->next=p;}}void search_income(){search_data(income);}void delete_income(){delete_data(income);}void update_income(){update_data(income);}void add_payout(){fi_data *p=(fi_data*)malloc(sizeof(fi_data)); memset(p,0,sizeof(fi_data));input_info(&(p->info));if(head==NULL){head=p;}else{get_last(head)->next=p; }}void search_payout() {search_data(payout); }void delete_payout() {delete_data(payout); }void update_payout() {update_data(payout); }void count_total(){float total_income=0.0; float total_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();}void search_data(fi_type type){int year=0;int month=0;fi_data *p=NULL;fi_data *result[9]={NULL};char input=' ';while(1){printf(">请输入要查询的年月(例如:2009/1)");if(scanf("%d/%d",&year,&month)!=2){printf(">输入错误。

  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

欧阳学文HUNAN UNIVERSITY程序设计训练报告课程名称家庭财务管理系统学生姓名学生学号专业班级指导老师起止时间湖南大学课程训练设计报告家庭财务管理系统摘要本报告介绍了一个运用C语言知识和Microsoft Visual c++ 6.0创建的用于家庭各成员财务情况管理的家庭财务管理系统。

在该系统中创建了包含增加,删除,修改,查找,浏览的功能总列表,包含了输入家庭成员收入信息情况,增加信息,删除信息,修改信息,创建姓名查找和编号查询便于用户查找个人财务情况,创建合计排序浏览用户可从总体上浏览全家庭财务信息情况。

目录1 绪论12问题定义23可行性分析24系统需求45方案设计分析56系统运行情况147系统维护158 致谢151 绪论家庭财务管理对于每一个家庭来说有着重要的意义,随着科技的发达,财务的管理由原先的手写账本发展到现今的电脑系统输入并统计,不仅大大减少了时间与精力,也是财务管理更系统化,便捷化,清晰化,减少金钱上的缺失。

家庭财务系统主要对家庭的各项财务收支管理进行在计算机上的信息存储和处理,从而简化用户的工作量本报告设计的家庭财务管理系统主要是负责给家庭成员提供了一个在Windows操作系统上运行的管理平台,家庭财务管理者可以对其成员编号、姓名以及收入、支出构成进行增加、删除、修改,查找等管理操作,还可以对全家庭财务合计排序浏览。

C语言是国内外广泛使用的一种计算机语言,学会使用C语言进行程序设计是计算机工作者的一项基本功。

对于我们大学生来说,学习这样一门“C程序设计教程”更是必要的。

本课程设计“家庭财务管理系统”就是通过学习《C程序设计》采用Visual C++作为编译环境,是程序编译和运行的。

本系统的总体思想基于结构化的程序设计。

应用高级语言程序设计中的基本控制结构,如循环和选择,着重实现管理系统的增、删、改、查等典型的管理功能。

程序设计是一门实践性很强的课程,既要掌握概念,又要动手编译,还要上机调试运行,通过这一次的课程设计我们从实践中更进一步的学习和了解C语言,当然由于个人的技术水平有限,在这途中遇到很多问题,程序也未能做到很完美,望见谅!2问题定义家庭财务管理系统的问题定义阶段必须回答的关键问题是:“要解决的问题是什么?”不知道问题是什么就试图解决这个问题,显然是盲目的,只会白白浪费时间和金钱,最终得出的结果可能是毫无意义的。

尽管确切地定义问题的必要性是十分明显的,但是在实践中它却可能是最容易被忽视的一个步骤。

下面就将“家庭财务管理系统要解决的问题做是什么?”这个问题做出详细的分析。

随着社会主义的不断发展与进步,人们的生活部断完善,家庭的收入和支出也越来越多,当然也不能盲目的追求时尚,高估了自己的能力,这就需要明确自己的收支情况,对家庭财务的来龙去脉有个大致的了解。

做到心中有数。

经过我分析初步得出以下几个方面是家庭财务管理系统必须要解决的问题,主要包括:1:增加成员财务信息记录2:删除成员财务信息记录3:修改成员财务信息记录4:按成员姓名查询财务信息5:按成员编号查询财务信息6:查询全部成员信息3 可行性分析进一步明确系统的目标,规模与功能。

对系统开发背景、必要性和意义进行调查分析并根据需要和可能提出拟定开发系统的初步方案与计划。

可行性研究是对系统进行全面,概要的分析。

此项活动开始时,要对初步调查的结果进行复审,重新明确问题,对所提系统大致规模和目标及有关约束条件论证,并且提出系统的逻辑模型和各种可能方案。

当今社会是一个讲求效率的社会,时间就是金钱。

开发简单,易于操作的,管理软件不仅可以节省时间,还可以避免浪费人力,物力,提高效率。

待开发系统是一个对家庭理财管理系统,简单,易学,将成为家庭理财的的好帮手。

并非所有问题都有简单明显的解决办法,事实上,许多问题不可能在预定的系统规模或时间限制之内解决。

如果问题没有可行的解,那么花费在这项工程上的任何时间、人力、软件资源和经费,都是无谓的浪费。

可行性研究的目的,就是用最小的代价在尽可能短的时间内确定问题是否能解决。

必须时刻记住,可行性研究的目的不是解决问题,而是确定问题是否值得去解决。

现从下述三个方面分析家庭理财系统问题的可行性。

(1)技术可行性就技术可行性来说:我们已经学习了VC,具备了开发和维护的实力。

因此只要加上认真的编译、测试,这个家庭管理系统绝对可以实现的,开发和维护该系统也是可行的。

(2)经济可行性。

就经济可行性来说,由于我们为了学习每个人都有配置很算差不多的个人电脑,并组建了内部局域网,因此硬件上是没有问题的。

而软件上由于是自己开发,所以开发及日后的维护费用并不高,在经济条件方面也是允许的。

再加上由于家庭财务管理系统是各个家庭管理自己家的的财务,所以他不会涉及联机的,只要在自己家中的计算机按上家庭理财系统就可以使用。

操作简单,功能强大。

是每个家庭必不可少的好帮手。

所以家庭理财系统是很值得开发的一款家庭助手软件。

(3)操作可行性。

就操作可行性来说,该系统能够实现家庭理财功能的要求,使家庭成员能够及时、全面的掌握财产的流动情况、财产的使用、收支情况等。

能够在很大程度上节省家庭在财产管理方面花费的精力。

综上所述,证明我们开发该系统是切实可行的。

总结:由于投资效益比远大于100%, 技术、经济、操作都有可行性,可以进行开发。

4系统需求1编写目的本需求的编写目的在于研究家庭理财系统软件的开发途径和应用方法。

一个好的需求分析可以为以后工作减轻很多不必要的花费。

它是软件开过程中最重要的任务之一,如果需求分析完成的不好,这个软件很有可能是没有作用的,所以我们一定要编写好需求分析。

2背景及范围本项目的名称:家庭财务管理系统。

本项目的任务提出者是很多家庭账务繁琐的家庭本产品能具体化、合理化的管理家庭输入、开支、收入信息记录,用结构化的思维方式去了解计算机的基本工作原理。

3确定对系统的综合要求(1)功能需求:主要功能:提供家庭日常收入、开销的详细情况。

账户管理等多项功能。

输入要求:数据完整,详实。

输出要求:简捷,快速,实时。

(2)意图a. 帮助家庭管理财务信息.b. 为了给家庭人员减轻负担.c. 为了促进国家经济建设的发展.3)目标通过本系统软件,能帮家庭成员快速方便的对家庭财务管理、查看等需求操作时方便家庭财务记录管理,使散乱的各种记录,档案能够具体化,直观化、合理化。

(4)使用及范围本软件适用于每个财务复杂的家庭,它是比较完善的系统管理软件,对家庭财务信息可以随时输入,更改,查看。

(5)背景现在大多数家庭都在为麻烦的财务管理发愁,如果有一个专门管理软件来管理这些账务,岂不为家庭成员减少很多负担?(6)用户特点本软件的使用对象是家庭成员只要稍微懂得计算机基本操作就可以利用该软件进行所需操作。

5方案设计分析1、结构体设计用于存放每个家庭成员的序号、姓名、收入、支出、合计方面信息。

typedef struct{long no; /*每一组输入的编号*/long Number; /*家庭成员编号*/char Name[20]; /*家庭成员姓名*/float in; /*家庭成员收入*/char intime[10]; /*收入时间*/float out; /*家庭成员支出*/char outtime[10]; /*支出时间*/float sum; /*总计*/}money;由编号、姓名、收入、支出构成用于描述一个有机整体——家庭成员财务信息系统,为了表明这些字段不是孤立的,而是共同描述一个完整的事物,因此用结构体这种形式来体现。

2.函数设计为实现家庭财务管理系统用了下列自定义函数tianjiashouzhi(); /*增加成员财务信息记录*/shanchushouzhi(); /*删除成员财务信息记录*/xiugaishouzhi(); /*修改成员财务信息记录 */xingmingchaxun(); /*按成员姓名查询财务信息*/bianhaochaxun(); /*按成员编号查询财务信息*/chaxunquanbu(); /*查询全部成员信息*/1346系统运行情况1出现的问题。

●刚开始输出时乱码,上网搜了才知道是数据溢出。

●数据的输入与输出结果不一致。

●删除、修改功能不能如期实现。

2相关的解决方法●通过不断试验,删除多余结构体;●查找错误,严格定义变量类型;●不断的进行调试及改进。

3目前的运行情况针对一系列运行过程中出现的问题,我们进行了相应的修改,到目前为止,该管理系统基本上可以正常运行,实现其预期的功能管理,但仍有许多可以改进的地方。

4系统操作说明进入系统操作界面后,输入0~~6选择功能。

➢选择1根据系统提示,添加家庭成员收支信息。

➢选择2根据系统提示,删除家庭成员收支信息➢选择3根据系统提示,修改家庭成员收支信息➢选择4根据系统提示,按姓名查找家庭成员收支信息➢选择5根据系统提示,按编号查找家庭成员收支信息➢选择6查看全部家庭成员收支信息。

7系统维护一个软件从定义、开发、使用和维护,直到最终被废弃,要经历一个漫长的时期,在这期间会需要程序员来维护这个软件正常工作,因此清晰简洁的文档是必不可少的,而不仅仅是只需要源代码。

总结通过本此的课程设计,让我们更熟练地掌握了《C程序设计教程》的知识,熟悉了一个管理系统的运用和操作,熟悉如何采用Visual C++作为编译环境,使程序成功的编译和运行,此次我们所设计的家庭财务管理系统可应用于家庭的简单管理,对家庭各成员的财务收入,支出进行增加,删除,修改,按姓名查询,按编号查询和浏览全部家庭成员财务信息。

在这次课程设计中由于对知识掌握的不够熟悉,专业技术水平的有限,从程序的初步设计,编辑到程序的运行,从一开始的按模块撰写,到各模块的链接运行,我遇到很多问题,有过放弃的想法,可最后还是坚持到了最后,直到把程序写完,编译调试完成。

后来回头看自己的成果,虽然不容易,但是心里还是很高兴的,毕竟是自己亲手做的。

通过这次课程设计,我更加深入地学习了VC语言这门课程,让我学了一个学期的知识得以应用,增强了我求知的欲望和学习的兴趣,想对VC语言课程有更多的了解。

致谢非常感谢老师一直以来对我们的悉心指导,从最初的选题,到辅导检查进展情况,到程序综合调试,再到最后的设计报告,老师牺牲休息时间给了我们耐心的知道和无私的帮助,老师的这种无私奉献的敬业精神令人钦佩,在此我们向老师表示我们最诚挚的谢意。

同时,感谢同学对我的帮助,帮助我检查程序错误,调试程序,才有了今天我的成功。

非常感谢大家。

参考文献visualC++项目案例设计清华大学出版社.项目案例导航科学出版社还有百度文库,百度知道。

程序源代码:#include<stdio.h>#include<stdlib.h>#include<string.h>#include<conio.h>#include<math.h>#define SIZE 100typedef struct{long no; /*每一组输入的编号*/ long Number; /*家庭成员编号*/char Name[20]; /*家庭成员姓名*/float in; /*家庭成员收入*/char intime[10]; /*收入时间*/float out; /*家庭成员支出*/char outtime[10]; /*支出时间*/float sum; /*总计*/}money;void tianjiashouzhi()/*添加财务收支信息记录*/{FILE *fp = NULL; /*定义指向文件的指针*/money Tm,ch; /*定义进行操作时的临时结构体变量*/char Da[40],next; /*存储财务收支信息的文件名*/int count=1; /*计算可输入数据的最大范围*/printf("\n 请输入要添加财务收支信息的文件名:");gets(Da);begin:count=1;fp=fopen(Da,"ab+");if (fp==NULL) /*判断文件是否成功打开*/{printf("\n 打开文件 %s 失败!按任意键结束!\n",Da);exit(0);}while(fread(&ch,sizeof(money),1,fp)!=(int)NULL) /*从文件中读取数据并判断是否成功*/ {count++;}fclose(fp);/*如果成功打开或创建文件,则提示输入家庭成员序号、姓名、收入、支出等相关信息*/ fp=fopen(Da,"ab+");/*ab+:当文件存在时,追加,当文件不存在时,创建*/printf("输入编号,姓名,收入,收入时间,支出,支出时间,输入编号为0时结束!\n"); printf("编号不超过九位,姓名不超过二十个字符。

相关文档
最新文档