不要看代码长,有问题的那块我标注了,就是一个小问题
存款函数里面卡上余额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 编辑 ]