可以为每个家庭成员做一个excel表格,然后把每个人的收支明细进行记录,这样的话就算是一个流水账了.
public class Family {
private int money;
public int getMoney() {
return money;
}
public void setMoney(int money) {
this.money = money;
public String doorplate;
protected void secret() {
System.out.println("----Family.secret()");
private void vehicle(){
System.out.println("----Family.vehicle()");
package china.beijing;
import china.hb.hd.Family;
public class SubFamily extends Family{
/**
* @param args
*/
public static void main(String[] args) {
Family f = new Family();
f.setMoney(100);//私有变量,只能通过set方法设置值
System.out.println(f.getMoney());
class MyClass1
{
private int data;
public int getDate()
return data;
public void setData(int data)
this.data=data;
给你写了个,不过没写好,你自己给改改吧!将就着,还能用,统计信息和退出时保存有点问题,自己给改改吧!英语不好本人,用拼音写的!
#include"stdio.h"
#include"string.h"
#include"stdlib.h"
#include"math.h"
#define TIAOSHU 100
#define CHENGGONG 1
#define SHIBAI 0
#define SHOURU 1
#define ZENGJIA 1
/*以下定义全局变量*/
struct shouzhixinxi
char shumu[10]; /*用double貌似读不出来*/
}jilu[TIAOSHU];
/*定义收支情况结构体,TIAOSHU表示最大的容量,可自行更改*/
char xuanze;
/*该数据用于接收选择信息*/
int tishi;
/*用于接收各函数返回的提示信息*/
int dijitiao=0;
/*用于表示当前是第几条信息*/
int i;
/*用于存放临时的条数,相当于零食的dijitiao*/
/*用于存放一些临时信息*/
/*代码*/
/*用于保存信息*/
void baocun()
FILE *fp;
fp=fopen("shouzhiguanli.txt","w+");
for(i=0;idijitiao;i++)
fprintf(fp,"%s ",*jilu[i].xingming);
fprintf(fp,"%s ",*jilu[i].laiyuan);
fprintf(fp,"%s ",*jilu[i].riqi);
fprintf(fp,"%s ",*jilu[i].shumu);
fclose(fp);
/*用于输出查询到的信息*/
int shuchu(int i)
return CHENGGONG;
/*用于新建*/
void xinzeng(int dijitiao)
while(1)
printf("\n请输入收入或支出人员的姓名:");
scanf("%s",jilu[dijitiao].xingming);
scanf("%s",jilu[dijitiao].laiyuan);
printf("\n请输入收入或支出的日期:");
scanf("%s",jilu[dijitiao].riqi);
printf("\n请输入收入或支出的数目:");
scanf("%s",jilu[dijitiao].shumu);
printf("是否保存这条信息? Y/N\n");
xuanze=getch();
if(xuanze=='Y' || xuanze=='y')
dijitiao++;
printf("保存成功\n");
printf("是否继续添加新记录? Y/N\n");
printf("\n");
if(xuanze=='N' || xuanze=='n')
break;
/*用于删除*/
void shanchu()
switch(xuanze)
case 1:
printf("请输入要查询的姓名:");
scanf("%s",linshi);
if(strcmp(jilu[i].xingming,linshi)==0) /*查询*/
xuhao++;
biaoshi[xuhao]=i;
printf("\n\nd.-",xuhao);
tishi=shuchu(i);
if(tishi!=CHENGGONG)
printf("未找到相关记录\n");
if(strcmp(jilu[i].laiyuan,linshi)==0) /*查询*/
printf("请输入要查询的日期:");
if(strcmp(jilu[i].riqi,linshi)==0) /*查询*/
printf("请输入要查询的数目:");
if(strcmp(jilu[i].shumu,linshi)==0)
default:printf("输入错误\n");
printf("请输入记录左上角对应的序号:");
if(biaoshi[xuanze]!=-1 xuanze=xuhao xuanze0)
biaoshi[0]=biaoshi[xuanze];
printf("确认删除? Y/N \n");
strcpy(jilu[biaoshi[0]].xingming,"\0");
strcpy(jilu[biaoshi[0]].laiyuan,"\0");
strcpy(jilu[biaoshi[0]].riqi,"\0");
strcpy(jilu[biaoshi[0]].shumu,"\0");
printf("删除成功\n");
else printf("输入错误.\n");
printf("是否继续删除? Y/N \n");
/*用于修改*/
void xiugai()
struct shouzhixinxi linshijilu;
printf("\n请输入新姓名:");
scanf("%s",linshijilu.xingming);
scanf("%s",linshijilu.laiyuan);
printf("\n请输入新收入或支出的日期:");
scanf("%s",linshijilu.riqi);
printf("\n请输入新收入或支出的数目:");
scanf("%s",linshijilu.shumu);
printf("确认修改? Y/N \n");
strcpy(jilu[biaoshi[0]].xingming,linshijilu.xingming);
strcpy(jilu[biaoshi[0]].laiyuan,linshijilu.laiyuan);
strcpy(jilu[biaoshi[0]].riqi,linshijilu.riqi);
strcpy(jilu[biaoshi[0]].shumu,linshijilu.shumu);
printf("修改成功\n");
printf("是否继续修改? Y/N \n");
/*用于查询*/
void chaxun(void)
printf("是否继续查询? Y/N");
/*将字符串转换为浮点数*/
double zhuanhuan(char *str)
int zhengshu=0,xiaoshu=0,neixing=1,zhishu,zhengfu=1;
double jieguo=0;
zhengshu=strlen(str);
switch(str[0])
case '-':
str[0]='0';
zhengfu=-1;
case '+':
zhengfu=1;
for(i=0;str[i]!='\0';i++)
if(str[i]='.')
zhengshu=i;
if(str[i]!='.' neixing==1)
zhishu=zhengshu-i-1;
else
if(str[i]=='.')
neixing=0;
zhishu=i-zhengshu-1;
if(zhengfu==-1)
return -jieguo;
return jieguo;
/*用于统计*/
void tongji(void)
printf("\n请输入起始日期(含该日,年四位,月日两位):");
scanf("%s",riqi1);
printf("\n请输入截止日期(含该日,年四位,月日两位):");
else printf("输入有误.\n");
printf("\n是否继续统计? Y/N ");
/*导入文件上的信息,相当于初始化*/
int daoruxinxi()
if((fp=fopen("shouzhiguanli.txt","r+"))==NULL)
printf("当前收支情况文件不存在.\n");
if((fp=fopen("shouzhiguanli.txt","w+"))==NULL)
printf("未知错误导致未能建立新文件,按任意键结束程序.\n");
getch();
exit(0);
printf("建立新文件成功,是否开始新建记录. Y\\N\n");
xinzeng(dijitiao);
for(dijitiao=0;(dijitiaoTIAOSHU !feof(fp));dijitiao++)
fscanf(fp,"%s ",jilu[dijitiao].xingming);
fscanf(fp,"%s ",jilu[dijitiao].laiyuan);
fscanf(fp,"%s ",jilu[dijitiao].riqi);
fscanf(fp,"%s ",jilu[dijitiao].shumu);
return SHIBAI;
/*主函数*/
void main()
if(daoruxinxi()==CHENGGONG) /*若导入成则开始主菜单*/
int xunhuan=1; /*用于控制循环*/
while(xunhuan)
printf("请选择要执行的操作:");
xuanze=getch(); /*选择操作*/
case ZENGJIA:xinzeng(dijitiao);break;
case SHANCHU:shanchu();break;
case XIUGAI:xiugai();break;
case CHAXUN:chaxun();break;
case TONGJI:tongji();break;
case TUICHU:xunhuan=0;break;
default:printf("输入错误.\n");
baocun(); /*保存更改*/
以上就是土嘎嘎小编为大家整理的Java家庭收支代码相关主题介绍,如果您觉得小编更新的文章只要能对粉丝们有用,就是我们最大的鼓励和动力,不要忘记讲本站分享给您身边的朋友哦!!