不要看代码长,有问题的那块我标注了,就是一个小问题
存款函数里面卡上余额count[num].capital最后输出也是0,感觉应该
程序代码://存款
void deposit()//存款函数
{ FILE*fp;
beauty();
printf("请输入您的姓名,卡号,密码:\n");
beauty();
scanf("%s%s%s",count[num].name,count[num].card,count[num].secu);//共3个数据
beauty();
printf("请输入您的存款日期:\n");
beauty();
scanf("%d%d%d",&count[num].in_year,&count[num].in_month,&count[num].in_day);//共3个数据
beauty();
printf("请选择您的存款类别:\n定期存款请按\t1\n活期存款请按\t2\n定活两便请按\t3\n零存整取请按\t4\n\n");
beauty();
fflush(stdin);
switch(getchar())
{ case'1':strcpy(count[num].type,"定期存款");
beauty();
fix_cun();
break;
case'2':strcpy(count[num].type,"活期存款");
beauty();
printf("请输入您的存款金额:\n");
beauty();
scanf("%d",&por_cun);//1个数据
beauty();
count[num].data_limit=0;
break;
case'3':strcpy(count[num].type,"定活两便");
beauty();
printf("请输入您的存款金额:\n");
beauty();
scanf("%d",&por_cun);//1个数据
count[num].data_limit=0;
break;
case'4':strcpy(count[num].type,"零存整取");
install_cun();
break;
default:printf("Input error!");
}//1个数据
count[num].interest=0.0;
count[num].out_year=count[num].out_month=count[num].out_day=0;//共5个数据
count[num].capital+=por_cun;//应该就是这个语句出的问题,貌似count[num].capital运算以后就不对了,是什么逻辑问题吗
beauty();
printf("\n存款已成功,请核对您的信息:\n");
if((fp=fopen("g:\\程序\\课程设计\\my_acount.txt","wb"))==NULL)
{ printf("cann't open file\n");
return;
}
fwrite(&count[num],sizeof(struct count_user),1,fp);
fclose(fp);//将信息输出到文件
beauty();
if((fp=fopen("g:\\程序\\课程设计\\my_acount.txt","rb"))==NULL)
{ printf("cann't open file\n");
return;
}
fread(&count[num],sizeof(struct count_user),1,fp);//将信息从文件输出
fprintf(stdout,"姓名:\t\t%s\n卡号:\t\t%s\n密码:\t\t%s\n存款类别:\t%s\n卡上余额:\t%d\n",count[num].name,count[num].card,count[num].secu,count[num].type,count[num].capital);//输出到屏幕上
fprintf(stdout,"存款日期:\t%d年%d月%d日\n",count[num].in_year,count[num].in_month,count[num].in_day);//日期必须单独输出,否则年月日会向后推移,不能正确对应
fclose(fp);
beauty();
inquire();
}就先帮我解决这个问题吧,估计另一个问题是一样的,谢谢大家了
[ 本帖最后由 tianwen0921 于 2014-1-27 13:48 编辑 ]






