跪求C语言高手看看,,,银行储蓄的,客户余额读不出,是客户信息存储错误还是读取错误,,谢谢了....

fun1读取,fun2存
struct DepositTime{
int year;
int month;
int day;
}s[100],*k=s;
struct customer{
char name[20];
char IDnum[18];
int accounts;
int code;
int period;
int DepositTime;
int balance;
}y[100],*p=y ;
void fun1()
{
int a,b,i,c;
FILE*fp;

fp = fopen("Bank Customer Information","rb");

printf("*********欢迎进入查询系统*********");
printf("请输入账号");
scanf("%d",&a);

fread(&p,sizeof(p),1,fp);
for(i=0;i<100;i++)1

{if((p+i)->accounts==a) break;
else continue;
}

{

for(c=0;c<3;c++)
{
printf("请输入密码");
scanf("%d",&b);
if((p+i)->code==b) break;
else printf("您输入的密码有误,请重新输入");
}

if(c<3) printf("您的账户余额为%d",(p+i)->balance);
if(c==3)
{
printf("您的密码输入次数已达上限,系统将自动退出");
exit(0);
system("cls");
}

}
}
void fun2()

{

int i,a,b,c,d,f,g,h,j,k,z;
double e;
FILE*fp;
if((fp=fopen("Bank Customer Information","r+"))==NULL)
{printf("cannot open file");
exit(1);
}
printf("*********欢迎进入存款系统*********\n");
printf("是否需要开户 是输入1 否输入2\n");
scanf("%d",&j);
if(j==1)
{
for(i=0;i<100;i++)
{if(p->name==NULL) break;}
printf("请输入您的姓名\n");
scanf("%s",p[i].name);
printf("请输入您的身份证号码\n");
scanf("%s",p[i].IDnum);
printf("请输入您的存折号\n");
scanf("%d",&p[i].accounts);
for(i=0;i<100;i++)
{
printf("请输入密码\n");
scanf("%d",&a);
printf("请再次输入密码\n");
scanf("%d",&b);
if(a==b) break;
else printf("两次输入不一致,请重新输入"); continue;
}
p[i].code=a;
printf("请输入存款金额\n");
scanf("%d",&c);
printf("请选择存款类型 定期输入1 活期输入2\n");
scanf("%d",&d);
if(d==1)
{
printf("请输入的存款年限 半年输入0.5 1年输入1 3年输入3 5年输入5\n");
scanf("%d",&e);
p[i].balance=c*pow(0.1,e)*0.8+c;
}
else
{
p[i].balance=c;
printf("请输入存款时间 年 月 日\n");
scanf("%f %g %h",&s[i].year,&s[i].month,&s[i].day);
}
fwrite(&p,sizeof(p),1,fp);

}
else
{ printf("请输入您的存折号\n");
scanf("%d",&j);
for(i=0;i<100;i++)
{
if(p[i].accounts==j) break;
else continue;
}
printf("请输入存款金额\n");
scanf("%d",&c);
printf("请选择存款类型 定期输入1 活期输入2\n");
scanf("%d",&d);
if(d==1)
{

printf("请输入的存款年限 半年输入0.5 1年输入1 3年输入3 5年输入5\n");
scanf("%d",&e);

p[i].balance+=c*pow(1.1,e);
}
else
{
p[i].balance+=c;
printf("请输入存款时间 年 月 日\n");
scanf("%f %g %h",&s[i].year,&s[i].month,&s[i].day);
}
fwrite(&p,sizeof(p),1,fp);
fclose(fp);
}
printf("操作完毕,自动返回");system("cls");

}

我看了一下,根本没有写进去呢,怎么会读得出哦 ,还有你的数据的类型定义不合理导致每次计算的本息和都为0,每次写进去的时候应该每个数据项都要有值,这样才能写进去,没有值可以搞个默认值,这样读出来的才不会乱。
温馨提示:内容为网友见解,仅供参考
第1个回答  2012-06-28
没有读读入数据

跪求C语言高手看看,,,银行储蓄的,客户余额读不出,是客户信息存储错误还 ...
我看了一下,根本没有写进去呢,怎么会读得出哦 ,还有你的数据的类型定义不合理导致每次计算的本息和都为0,每次写进去的时候应该每个数据项都要有值,这样才能写进去,没有值可以搞个默认值,这样读出来的才不会乱。

银行门户设计之C语言
设计任务包括:实现数据库操作,允许用户选择已存在的银行进行注册;建立错误处理机制,确保系统在面对异常输入或文件读取错误时能够妥善处理。系统模块化设计,包含注册、登录、主界面、存款、取款和修改密码等功能。数据库用于存储账户信息,实现数据持久化。错误处理通过正则表达式和二重判断实现,确保用户输入合...

c语言 关于文件读取的大神们帮帮看这个为什么读不出汉字
你这个是打开文件失败了!最好是在打开文件的时候加一个判断来看看是否文件打开成功!fin=fopen("2.txt","r")注意你的2.txt文件必须和你编译好的C可执行文件在同一目录下,当然你也可以指定特定的目录,我这个例子就是指定的G盘的根目录!最后给你一句忠告,要学会调试简单的程序,好多问题一调试后就...

C语言,,大神们看看我读取文件的函数写的对不对,,为什么读取出来的整 ...
读取到的这些整型数,在内存中以二进制形式保存,对应的浮点型如果是零点几,就会被打印成0。可以去看看浮点数和整型数在内存中是以什么形式保存的。有了浮点型存储的知识就能懂了:你的指数位保存的数还要偏移127,所以造成了整个浮点数变得很小,比1小(但还是正数),而%-15.f这种格式不打印小数位...

C语言,,大神们看看我读取文件的函数写的对不对,,为什么读取出来的整 ...
你试试在fscanf语句前面加上fflush(stdin);我猜想可能是输入流没清空的原因。

c语言求助 帮我看看,求大神,错误是syntax error before'&' token,急
fscanf(fp,"%ld%s%d",&s[i].num.&s[i].name,&s[i].lesson_count);改为:fscanf(fp,"%ld%s%d",&s[i].num,&s[i].name,&s[i].lesson_count);主要是符号写错了:&s[i].name前面的“.”需要改为","

C语言 当写完程序,点运行的时候总是在下面 显示1 error(s), 0 war...
应该是编译未通过,程序可能存在细小错误,如标点符号是否用的是半角字符、for 后面的大括号是否有落一个、开头的头文件添加等等,你先改改代码,再试一遍,如果确定代码无误,那可能和你安装的运行软件本身有关,你换个电脑也可能就能出结果。这种情况我们上机课时常出现。

C语言 keil中的错误 高手啊
推荐于2017-12-16 12:29:51 最佳答案 应该是注释错了,检查下有没有\/*却没有用*\/结尾。如果你是复制的其他地方的代码也可能是编码有问题。 来自:求助得到的回答 本回答由网友推荐 举报| 答案纠错 | 评论 4 0 恶灵的加护 采纳率:60% 擅长: C\/C++ 游戏 魔兽世界 JavaScript python ...

C语言高手帮忙解答一下下列各多选题的标准答案。此题是复习题,不知道的...
B、C、D 汇编程序和C语言源程序也属于应用软件,但汇编语言和C语言不属于应用软件,属于支持软件。下面内容可能对你的帮助:1、计算机软件分类代码表 ●10000 系统软件 11000 操作系统12000 系统实用程序13000 系统扩充程序14000 网络系统软件19900 其他系统软件 ●30000 支持软件 31000 软件开发工具32000 ...

C语言高手求助char *s;gets(s);这样是对还是错, char *s;s="ABCDEF...
char *s;gets(s);上面这种写法是错误的.s定义成指针,需要有明确的指向.gets()函数是要求提供具体指针地址,从那个地址开始存储字符串,而如果简单定义char *s;s是个野指针,无法提供具体指向。可以修改 成char *s; char a[100];s=a;gets(s);这样让s指向数组a,确定地址方位。char *s;s="...

相似回答
大家正在搜