家庭财务管理系统源代码
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
#include
#include
#include
#include
#define LEN sizeof(struct financial)
#define FFORMAT "%-8d%-15s%-10d%-10d%-12.2f%-12.2f%-12.2f\n"
#define DATA member[i].num,member[i].name,member[i].month,member[i].year,member[i].income,member[i ].output,member[i].total
struct financial //定义家庭成员信息
{
int num; //编号
char name[15]; //家庭成员姓名
int month; //月份
int year; //年份
float income; //收入
float output; //支出
float total; //总金额
};
struct financial member[50]; //定义结构体数组
void menu(); //主界面
void in(); //录入家庭成员收支信息
void show(); //显示家庭成员收支信息
void del(); //删除家庭成员收支信息
void modify(); //修改家庭成员收支信息
void total(); //计算家庭成员总收入
void search(); //查找家庭成员收支信息
int main()
{
int n;
menu();
scanf("%d",&n); //输入数字选择功能
while(n)
{
switch(n)
{
case 1:
in(); //调用录入家庭成员信息函数
break;
case 2:
search(); //查找家庭成员信息函数
break;
case 3:
del(); //调用删除家庭成员信息函数
break;
case 4:
modify(); //调用修改家庭成员信息函数
break;
case 5:
total(); //调用汇总函数
break;
default:break;
}
printf("按任意键返回主菜单:\n");
getch();
menu(); //执行完功能再次显示菜单界面
scanf("%d",&n);
}
return 0;
}
void menu()
{
system("cls");
printf("|-------------------------------------------------|\n");
printf("|--------------------家庭财务信息系统-------------|\n");
printf("| 0. 退出|\n");
printf("| 1. 录入信息|\n");
printf("| 2. 查找信息|\n");
printf("| 3. 删除信息|\n");
printf("| 4. 修改信息|\n");
printf("| 5. 统计信息|\n");
printf("|-------------------------------------------------|\n");
printf("选择(0-5):");
}
void in() //录入家庭成员信息
{
int i,m=0;
char ch[2];
FILE *fp;
if((fp=fopen("家庭财务管理系统","ab+"))==NULL)
{
printf("不能打开文件!\n");
return;
}
while(!feof(fp))
{
if(fread(&member[m] ,LEN,1,fp)==1)
m++; //统计当前记录条数
fclose(fp);
if(m==0)
printf("没有找到!\n");
else
{
//system("cls");
show(); //调用show函数,显示原有信息}
if((fp=fopen("家庭财务管理系统","wb"))==NULL)
{
printf("不能打开文件!\n");
return;
}
for(i=0;i fwrite(&member[i] ,LEN,1,fp); //向指定的磁盘文件写入信息printf("是否输入?(y/n):"); scanf("%s",ch); while(strcmp(ch,"Y")==0||strcmp(ch,"y")==0) //判断是否要录入新信息 { printf("编号:"); scanf("%d",&member[m].num); //输入家庭成员编号 for(i=0;i if(member[i].num == member[m].num) { printf("该记录已经存在,按任意键继续!"); getch(); fclose(fp); return; } printf("家庭成员姓名:"); scanf("%s",member[m].name); //输入家庭成员姓名 printf("请输入月份:"); scanf("%d",&member[m].month); //输入月份 printf("请输入年份:"); scanf("%d",&member[m].year); //输入年份 printf("请输入收入:"); scanf("%f",&member[m].income); //输入收入 printf("请输入支出:"); scanf("%f",&member[m].output); //输入支出 member[m].total=member[m].income - member[m].output;