C语言课程设计——家庭财务管理系统
c家庭财务课程设计
c 家庭财务课程设计一、课程目标知识目标:1. 学生能够理解家庭财务的基本概念,如收入、支出、储蓄和投资。
2. 学生能够掌握家庭预算的编制方法和原则,并运用到实际生活中。
3. 学生能够了解并区分不同类型的金融产品和服务,为家庭财务规划提供参考。
技能目标:1. 学生能够运用所学的财务知识,独立完成家庭预算的编制和调整。
2. 学生能够通过分析和比较,选择适合家庭需求的金融产品和服务。
3. 学生能够运用理财技巧,提高家庭财务的合理性和效益。
情感态度价值观目标:1. 学生能够认识到家庭财务规划的重要性,树立正确的消费观和理财观。
2. 学生能够理解金钱的价值,培养节俭、合理消费的良好习惯。
3. 学生能够关注国家经济政策,增强社会责任感和参与意识。
课程性质:本课程为实用型课程,旨在帮助学生掌握家庭财务知识,提高生活技能。
学生特点:学生为初中生,具有一定的数学基础和逻辑思维能力,但对家庭财务知识了解有限。
教学要求:教师需采用生动、形象的教学方法,结合实际案例,引导学生积极参与,提高课程的实用性和趣味性。
同时,注重培养学生的自主学习能力,将所学知识内化为具体的学习成果。
二、教学内容1. 家庭财务基本概念:收入、支出、储蓄、投资。
- 教材章节:第一章 家庭财务概述- 内容列举:定义及分类、收入来源、支出分类、储蓄与投资的关系。
2. 家庭预算编制方法与原则:- 教材章节:第二章 家庭预算编制- 内容列举:预算编制步骤、收入预估、支出预算、预算调整与控制。
3. 金融产品与服务:- 教材章节:第三章 金融产品与服务- 内容列举:储蓄存款、投资理财、保险规划、信用卡与消费信贷。
4. 理财技巧与家庭财务规划:- 教材章节:第四章 理财技巧与家庭财务规划- 内容列举:理财目标设定、资产配置、风险管理与规避、退休规划。
5. 案例分析与实操练习:- 教材章节:第五章 案例分析与实操练习- 内容列举:家庭财务案例分析、预算编制实操、投资理财模拟。
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.总结编写程序之前要有一个整体的思路,不能写到哪里算哪里。
这样很容易遗漏,连续性也不好。
通过本次的课程设计让我对于数组、文件的存放、循环结构等知识有了更加透彻的理解。
希望在以后的课程设计中对于知识的运用能够更加的熟练。
案例四 家庭财务管理系统
案例四家庭财务管理系统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语言课程设计实验报告题目:家庭账务管理姓名:曾祥华班级:1321815学号:201320181518指导老师:程志梅一案例描述1.总体描述家庭财务管理系统主要是对家庭成员的收入,支出,进行添加,删除,查询等操作,并能统计总收入和总支出。
该软件给家庭成员提供了一个管理家庭财务的平台。
2.模块描述1)菜单设计:本系统提供简单易操作的界面。
有提示,帮助用户根据需要对家庭财务管理系统进行操作。
2)添加模块:根据实际的收入或支出,添加相应的记录,条数不限。
3)查询模块:可以选择不同关键字输入,查找该条记录。
4)删除模块:若某条记录错误或者不需要则可以删除。
5)显示模块:按照添加的先后顺序依次把记录显示在屏幕上,并显示总收入和总支出以及余额。
6)退出模块:退出财务管理系统并保存文件。
二界面设计界面有相应的选择,根据自己的需要对该管理系统进行添加,查找,删除,显示功能操作。
本软件界面友好,不难操作,用户可根据自己的需要按提示进行。
三模块化设计方案1.系统主要函数及功能1)DataInit函数:功能为数据初始化将数据从硬盘传到内存。
2)add函数:功能为添加收入或支出的记录3)search函数:功能为查找联系人输入关键字,从文件中搜索相应的记录并显示出来。
4)delete_rec函数:功能为删除记录若某条记录错误或者不需要则可以删除。
5)show函数:功能为显示记录将添加的记录显示在屏幕上。
6)quit函数:功能为保存信息退出系统2.主函数调用各功能函数流程四.数据结构描述struct F_Data{int year; //年int month; //月int data; //日期float amout; //金额char name[20]; //姓名int type; //收入或支出类型开始打开文件,载入信息用户菜单界面1 添加记录2查询记录3删除记录4显示记录退出保存结束char comment[100]; //备注struct F_Data*next; //定义一个指针};该数据结构为链表,是一种动态进行存储分配的结构。
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语言家庭财务管理系统
{
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语言课程设计——家庭财务管理系统
课程设计报告课程设计题目:家庭财务管理系统学生姓名:专业:信息工程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语言课程设计——家庭财务管理系统
课程设计报告课程设计题目:家庭财务管理系统学生姓名:专业: 信息工程班级:指导教师: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添加收入测试明細8统 退>1 麗卿加」人冢雇成貝姓宕〔最大长芨为i0>=iyy耀絨黠離大长度技邮:jdicw E i M i ta iE KW i o t KJ t ao ta cM a o t NW 3<図梵:11:梵]|[梵:《梵]<屛冠屛耳耳9<耳3<耳1<>63<梵1<耳计詔•统计总收人/忌支出S HMXJCKKBOCKJtJt WK W)C :H.J<:JI.)C :IIJ<Jt)CJ<J<J<)CJ<X 8<:MJ<:M ・:MK]il KJl i t ;K M 梵 S C ;K S C >EX W M : X X X I CH X W >CW ;3t 3<:H :弭:H 3<Jt i M :<>Ej C]itS<]<KXN>f K>e K* 支出管理汚冢庭财务管理系统回FC 逼Vk i nd OWE 11 sy=rtem z 2\Debug\Fyyl. G <e4.3查询收入明细测试统计汁•统计总收人二总支出 退 岀词•退岀系统'请选择要进行的換作<0-9>:2 沁青输入要查询的穿月好匹肮”7请按任意键畛心其也数据? <y 叶n>4.4删除收入测试4 hAi>A N*L * WM B . i^ulA WUAWUK J *冢庭财务管理系统rrwwwrMrHrrwYvruruwruwnmmrirurhmmmww耳XJO E X i MICMXX 址风址耳XM I>EKK KN掛耳 XX 3<Wr>E :MiMKl iE XXXX 斃入明细M=建建茉豪事,i Wi atfHW*・ME ・=MX K WlFafr M i 幕荒豪務整豪豪亲=M i MH Sfr M i *H<・ W ,c.轉弼算闿曲若耳豪科,^■■轉if ■苗]<満■科■■■>< ■齋if 轉苗曲満耳酬耳■贰科贰轉曹 统 计汁•统计忌收入儿鼠支出 退 岀汨•退岀系统 》请选择雯迸行的操作個“竹>请初1/厘查询的年月<¥¥¥¥zH>201-4/l I I 4》删除成功P I ^RSS an^ key to cnnt-imie溝漱明细收入管理豊翻细明 支支 沓-修■■68出出 支支 加除i■-«5 年月1 !20t3/09咲型 ;收入1008.00::备汪工资支出吨勰雜.iMO-月:类型:备汪1 !2014/01168.23 :lyy岀羽细4.5修改收入测试JCJ H JCJOtKJt ■* XU JOCWJtKJW M ><:«■: ■! JCJ! MUM BL JCJt MH JCKJCJtK 菱理 KJIM收A 管理m添加收入趴查育3-删除收入弭XJ ta<>E M X a O t MJC H K i M羸算 KW 址耳 KJ t 址豪 KJC M SX i MIC i M K3t 址耳贰疋 XJ f a t X支出管理出7统计叽统计总收人血支岀退出汕*退出系纟充>iMA^<VVVV/M>2013z2〉诗输入擁成员姓名〔最大长度为诃》 ”書输人眷注t 最大长度为饷庆工资.4.6添加支出测试NO.1 !2013/fRU ?UC (_■作月操年:咲型;金额叫夂入30001400.00:「查询支出明细 8 •修改支出4.7查询支出明细测试■ Ud'WmmflUrMgumW -FMiWihiriiMIUriVia^WUirMiWMiiW家庭财务管理系统X >E X i M~:MiKK>ti O f HX a<]<>E :W >E X>E冥耳 N X其 M M i K 弭 K 瓮 XXXX N M N NX H M ; ]«S M收入管鵲:勰怒m林明细X KU >[]<■: K JOCK WJCJfXlHf i l H l fJOt JotKU it MnOiJCKX支岀管瑋汚•探加支出 "查询支出明细巴删除支出孔修改支出 统计伙统计总收人/負支岀 K KM 普材■K4 m W M i K唇・科恒■退 出:0-退出系统I■;青按任意键継续.-亠4.8删除支出测试I 屜月 I IS 作個-9,海^<¥V¥V/M>20i3/1:类型 I 支岀■姓亡3*;金埶1备注200.00 1购物ME界貝其貝耳疑耳冥艮K 耳KME 界]< 界箕梵JOC 3KH M :耳NW 算見其買梵就艮植耳拉算址舅覽如其支出管理參報鑒:義鏗细:K“a< :WFj a Ntf K Itf NJ* ;K“M ; *M* :K h E 倚甘 1* 材 UIfrJtf N Jtfim ;:M H H X l il: K W ;M H U“a< :M ;:M :fcff甘ik计=9 •统计包收入/总支出 退出詬•退出系统KKM^M«tK>CHHX^KKMM^K>£KMtKMK4CX^KM^KM^K»tK4tK»tX^MdKX^KHK>tK>请选择要进行的操隹 <0-9>=7■1A 请输入要査询的年月 H■¥1<Y¥YYZM>2013Z11 ■1 11 1 :NO. 1;年声月"咲型 1;姓名;金额!#i£; 1111iZUlJZOl:支岀 iiyyJ1 1 购物1 1 i1 1i》删除成功11[Press any key to continue4.9修改支出测试«:«■泉庭财务管理系统收入管理沁3務賑旳细4.10统计总收入/支出测试家庭财务管理系绒iSWWMYWM¥WWWWAANiHWWVSAHM¥W%hnAiSWfW芽I* it 員ji ・iKifcK ・・!J R PtK ・貝 ・■*■*“* 応*收 '管理d 添加收入上一査询収入明细*删除收入4-*SK 入请尹 统计=9 ■统计总收入严总支出 X X J t XXXXXK aC X K K XMtK !M XS f K S C H'XXXXX I M ! X m e K X**K St X!KK XK'XW阻出汕”通出系统 K 梵廉拉艮梵耳疋艮3CM8. ■ :JC i M ■>!梵滩X農梵X X M E 4C 旌舅Jt i MK 耳■:梵英]< 梵耳X葺朋觀呈婪进行的操作汚 ;合计支岀 :结余 :500,901 423^.631 :按任焉缶月家庭财务管理系统ru 41WEH U f HEiM *M"U d *M**UI *M * EJ ■ *19! I、MX W5 &FU *、『WT梵ME it WE 梵K XW iM KE M iMr 梵琏梵覺梵K 梵 W 港味疋址梵曲梵琏梵:M 3< H收入管理1席加収入霊查询收入明细4圖除收入4W t f If U ・=Mtl i f If ■・・・・・・・・i f If ・・・i f ・ 筑查询支岀明细 緘修改支出 h l 屛轉I H ■冒!w K ■!< w K ■弭昇轉・屛衬!M 筑岸捕曲KF 弭屛W!岸屛耐忖岸K 屛利K ■统 计汐•统计总收入"总支岀 退支岀管理惰 出通■退岀系统攵入 <0-9>:8<V¥¥YzM>2013/9■M-12013/09年月咲型I 备注lyy300.00:》请输人年月<V¥ y?/M>2013内>请嫡△寡庭喩员妃名〔最工长厦为讪:丄妁 、输人金额:左腼冰蕃注塢俵服i2013/09;裘型 :支出I 金额 200.00:衣朋衣服[合计L 反入4734-63I一湛返回主苹吉出背理汗4.11退出系统测试5 .软件操作使用说明书本系统采用命令行对话方式进行操作,运行后出现主界面(如下图所示) 然后按照主界面菜单指引操作即可6.总结编写程序之前要有一个整体的思路,不能写到哪里算哪里。
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
目录一、需求分析 (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语言课程设计——家庭财务管理系统
课程设计报告课程设计题目:家庭财务管理系统学生姓名:专业: 信息工程班级:指导教师: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语言 家庭收支课程设计一、课程目标知识目标: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语言课程设计财务管理一、教学目标本节课的教学目标是让学生掌握C语言在财务管理领域的应用,包括数据结构、算法和程序设计等方面的知识。
在知识目标方面,学生需要了解C语言的基本语法、数据类型、运算符、控制结构等;掌握数组、字符串、结构体等数据结构的使用;熟悉函数、指针的概念和应用。
在技能目标方面,学生需要能够运用C语言编写简单的财务管理程序,解决实际问题;具备良好的编程习惯和调试能力。
在情感态度价值观目标方面,学生需要培养对计算机科学的兴趣和热情,提高自主学习和解决问题的能力。
二、教学内容本节课的教学内容主要包括C语言的基本语法、数据结构、算法和程序设计等方面的知识。
首先,介绍C语言的基本语法,包括数据类型、运算符、控制结构等;其次,讲解数组、字符串、结构体等数据结构的使用方法;然后,介绍函数和指针的概念及应用;最后,通过实例分析,让学生掌握C语言在财务管理领域的实际应用。
三、教学方法为了激发学生的学习兴趣和主动性,本节课将采用多种教学方法。
首先,采用讲授法,为学生讲解C语言的基本语法、数据结构、算法等知识;其次,运用讨论法,让学生在小组内交流学习心得,解决问题;然后,采用案例分析法,分析C语言在财务管理领域的实际应用;最后,运用实验法,让学生动手编写财务管理程序,巩固所学知识。
四、教学资源为了支持教学内容和教学方法的实施,丰富学生的学习体验,我们将选择和准备以下教学资源:教材《C语言程序设计》、参考书《C语言编程实践》、多媒体资料(包括PPT、视频教程等)、实验设备(计算机、编程环境等)。
这些教学资源将帮助学生更好地掌握C语言在财务管理领域的应用,提高他们的编程能力和解决问题的能力。
五、教学评估本节课的教学评估将采用多元化的评估方式,以全面、客观、公正地评价学生的学习成果。
评估主要包括以下几个方面:1.平时表现:通过观察学生在课堂上的参与度、提问回答、小组讨论等表现,评估他们的学习态度和积极性。
2.作业:布置与课程内容相关的编程作业,评估学生对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
目录一、需求分析 (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语言课程设计——家庭财务管理系统
FILE *fp;
int i;
if((fp=fopen("peoplelist4。txt”,"r"))!=NULL)
{
fscanf(fp,”%d\n",&n);
for(i=0;i〈n;i++)
fscanf(fp,"%s%s%s\n",peo[i]。username,peo[i].code,peo[i]。flag);
{
fprintf(fp,”%d\n",n);
for(i=0;i<n;i++)
fprintf(fp,"%s %s %s\n”,peo[i]。username,peo[i].code,peo[i].flag);
}
fclose(fp);
fp=fopen("thinglist4。txt”,"w");
{
fprintf(fp,”%d\n”,m);
for(i=0;i〈m;i++)
fprintf(fp,"%s %d %d %d %d\n",thi[i]。name,thi[i].year,thi[i].month,thi[i].income,thi[i].output);
}
fclose(fp);
return 0;
}
int carry() //将数据从文件中读出
fprintf(fp,”%s %d %d %d %d\n”,thi[i]。name,thi[i].year,thi[i].month,thi[i].income,thi[i].output);
fclose(fp);
printf(”\n······\n删除成功。\n”);
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语言课程设计-家庭财务管理系统
HUNAN UNIVERSITY 程序设计训练报告课程名称家庭财务管理系统学生姓名学生学号专业班级指导老师起止时间湖南大学课程训练设计报告家庭财务管理系统摘要本报告介绍了一个运用C语言知识和Microsoft Visual c++ 创建的用于家庭各成员财务情况管理的家庭财务管理系统。
在该系统中创建了包含增加,删除,修改,查找,浏览的功能总列表,包含了输入家庭成员收入信息情况,增加信息,删除信息,修改信息,创建姓名查找和编号查询便于用户查找个人财务情况,创建合计排序浏览用户可从总体上浏览全家庭财务信息情况。
目录1 绪论 (1)2 问题定义 (2)3 可行性分析 (2)4 系统需求 (4)5 方案设计分析 (5)6 系统运行情况 (14)7 系统维护 (15)8 致谢 (15)1 绪论家庭财务管理对于每一个家庭来说有着重要的意义,随着科技的发达,财务的管理由原先的手写账本发展到现今的电脑系统输入并统计,不仅大大减少了时间与精力,也是财务管理更系统化,便捷化,清晰化,减少金钱上的缺失。
家庭财务系统主要对家庭的各项财务收支管理进行在计算机上的信息存储和处理,从而简化用户的工作量本报告设计的家庭财务管理系统主要是负责给家庭成员提供了一个在Windows操作系统上运行的管理平台,家庭财务管理者可以对其成员编号、姓名以及收入、支出构成进行增加、删除、修改,查找等管理操作,还可以对全家庭财务合计排序浏览。
C语言是国内外广泛使用的一种计算机语言,学会使用C语言进行程序设计是计算机工作者的一项基本功。
对于我们大学生来说,学习这样一门“C程序设计教程”更是必要的。
本课程设计“家庭财务管理系统”就是通过学习《C程序设计》采用Visual C++作为编译环境,是程序编译和运行的。
本系统的总体思想基于结构化的程序设计。
应用高级语言程序设计中的基本控制结构,如循环和选择,着重实现管理系统的增、删、改、查等典型的管理功能。
程序设计是一门实践性很强的课程,既要掌握概念,又要动手编译,还要上机调试运行,通过这一次的课程设计我们从实践中更进一步的学习和了解C语言,当然由于个人的技术水平有限,在这途中遇到很多问题,程序也未能做到很完美,望见谅!2问题定义家庭财务管理系统的问题定义阶段必须回答的关键问题是:“要解决的问题是什么”不知道问题是什么就试图解决这个问题,显然是盲目的,只会白白浪费时间和金钱,最终得出的结果可能是毫无意义的。
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
课程设计报告课程设计题目:家庭财务管理系统学生姓名:专业: 信息工程班级:指导教师: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 <stdio.h>#include <stdlib.h>#include <string.h>#include <conio.h>#define MAXNAME 11 //家庭成员姓名的最大长度#define MAXDETAIL 21 //注最大长度//自定义枚举类型fi_type,用来表示收入与支出typedef enum _fi_type{income=1,//收入payout =-1 //支出} fi_type;// 家庭财务信息结构体typedef struct _fi_info{int year;int month;fi_type type;char name[9];float money;char detail[11];}fi_info;// 存储财务数据结构的结构体typedef struct _fi_data{fi_info info;struct _fi_data* next;} fi_data;fi_data *head;//财务数据的头结点void menu();//菜单函数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);void menu(){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\t 3.删除收入");printf(" 4.修改收入\n");printf("\t\t*******************************************\n");printf("\t\t支出管理:");printf("5.添加支出");printf(" 6.查询支出明细\n");printf("\t\t\t 7.删除支出");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");}void main(){int selected=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){case 0:exit(0);clear_data();break;case 1:add_income();save_to_file();break;case 2:search_income();break;case 3:delete_income();save_to_file();break;case 4:update_income();save_to_file();break;case 5:add_payout();save_to_file();break;case 6:search_payout();break;case 7:delete_payout();save_to_file();break;case 8:update_payout();save_to_file();break;case 9:count_total();break;}}}}void add_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;elseget_last()->next=p;}void add_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;elseget_last()->next=p;}//输入函数void input_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);}//查找数据函数void search_data(fi_type type){int year=0;int month=0;fi_data *p=NULL;int count=0;char input=' ';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>继续查找其他数据?(y or n)");input=getchar();if(input=='y'||input=='Y')continue;elsebreak;}}}//初始化函数,读取文本数据void initialize(){FILE * fp=NULL;fi_data *p=NULL;fi_data *last=NULL;int count=0;fp=fopen("data.txt","rb");if(fp==NULL){fp=fopen("data.txt","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){if(head==NULL)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;}free(p);p=NULL;fclose(fp);}//显示信息函数void show_info(fi_data *p){int i=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?"收入":"支出",p->,p->info.money,p->info.detail);printf("|\t\t|\t\t|\t\t|\t\t|\t\t|\t\t|\n");}//统计总收入、总支出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("\t\t+\t\t+\t\t+\n");printf("\t\t|合计收入\t|合计支出\t|结余\t|\n");printf("\t\t%12.2f|%12.2f|%12.2f|\n",total_income,total_payout,total_income-total_payout);printf("\t\t+\t\t+\t\t+\n");printf("\t\t>按任意键返回主菜单");getchar();getchar();}//保存到文件void save_to_file(){FILE *fp=fopen("data.txt","wb" );fi_data *p=head;while(p!=NULL){fwrite(&(p->info),sizeof(fi_info),1,fp);fseek(fp,0,SEEK_END);p=p->next;}fclose(fp);}//修改信息函数void update_data(fi_type type){ int year=0;int month=0;fi_data *p=NULL;fi_data *pre=NULL;char input;int count=0;int i=0;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)) {count++;show_info(p);input_info(&(p->info));printf("\t\t修改成功\n");p=get_previous(p);}p=p->next;}if(count==0)printf("\t\t>没有找到数据\n");printf("\t\t>继续查找其他数据?(y or n)");input=getchar();if(input=='y'||input=='Y')continue;elsebreak;}}}void delete_data(fi_type type)//删除数据函数{int year=0;int month=0;fi_data *p=NULL;fi_data *pre=NULL;int count=0;char input=' ';int i=0;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)) {count++;show_info(p);pre=get_previous(p);if(pre==NULL)head=head->next;elsepre->next=p->next;free(p);printf("\t\t>删除成功\n");}p=p->next;}if(count==0)printf("\t\t>没有找到数据\n");printf("\t\t>继续查找其他数据?(y or n)"); input=getchar();if(input=='y'||input=='Y')continue;elsebreak;}}}void clear_data()//清空链表数据{fi_data *p=NULL;while(head!=NULL){if(head->next!=NULL){p=head;head=head->next;free(p);p=NULL;else{free(head);head=NULL;}}}fi_data *get_last(){fi_data * p=head;if(p==NULL)return p;while((p!=NULL)&&(p->next!=NULL)) p=p->next;return p;}fi_data *get_previous(fi_data *p){fi_data *previous=head;while(previous!=NULL){if(previous->next==p)break;previous=previous->next;}return previous;}void search_payout(){search_data(payout);void delete_payout() {delete_data(payout); }void update_payout() {update_data(payout); }void search_income() {search_data(income); }void delete_income() {delete_data(income); }void update_income() {update_data(income); }。