任务代码:
#include
#include
int main()
{
printf("欢迎来到鄞州银行!nn");
/*变量定义*/
int iPass;//用户输入的密码
int iPassinFile;//用户储存在文档中的密码
int iNewPass1,iNewPass2;//新密码
int iTry_num=0;//进入系统时尝试的次数
double dBalance; //账户余额
double dMoney; //存取款金额
int iChoice; //用于选择系统功能
FILE *fp;//文件指针
/*从已有文件中读入密码*/
fp=fopen("password.txt","r");
if(fp==NULL)
{
printf("passwordfile cannot open!");
exit(0);
}
fscanf(fp,"%d",&iPassinFile);
fclose(fp);
/*进入系统,密码三次不对将退出 */
do
{
iTry_num++;
printf("请输入密码:");
scanf("%d",&iPass);
if(iPassinFile==iPass)
{
break; //成功
}else
{
if(iTry_num>2)
{
printf("超过3次,锁死!请联系营业人员n");
exit(1);
} else
{
printf("密码错误请重新输入密码!还有%d次机会!n",3-iTry_num);
}
}
}while(1);
/*从文件中获取余额*/
if ((fp=fopen("balance.dat", "r"))==NULL)
{
printf("data file cannot open!");
exit(0);
}
fscanf(fp, "%lf", &dBalance);
fclose(fp);
/*业务办理*/
do
{
printf("n您可以办理下面的业务:n");
printf(" 1.查询n 2.取款n 3.存款n 4.改密码n 0.退出n请输入(0-4):");
scanf("%d", &iChoice);
switch(iChoice)
{
case 1:
printf("您的余额有%.2lf元. n",dBalance);
break;
case 2:
printf("输入取款金额: ");
scanf("%lf", &dMoney);
if(dBalance>dMoney)
{
dBalance-=dMoney;
printf("取款后,您还有%.2lf元. n",dBalance);
}
else
printf("余额不足,取款失败. n");
break;
case 3:
printf("输入存款额: ");
scanf("%lf", &dMoney);
dBalance+=dMoney;
printf("存款后,您有%.2f元. n",dBalance);
break;
case 4:
printf("请输入新密码:");
scanf("%d", &iNewPass1);
printf("再输入新密码:");
scanf("%d", &iNewPass2);
if(iNewPass1==iNewPass2)
{
iPassinFile= iNewPass1;
printf("密码修改成功,请注意保密.n");
}
else
printf("两次输入不一致,密码修改失败.n");
break;
case 0:
printf("欢迎您再来. n");
break;
}
}while(iChoice);
/*保存余额(可能用户没有改变金额,只做查询)*/
if((fp=fopen("balance.dat","w"))==NULL)
{
printf("data file cannot open!");
exit(0);
}
fprintf(fp,"%lf",dBalance);//写出保存后的账户金额
fclose(fp);
/*保存密码(可能用户没有改变密码)*/
if((fp=fopen("password.txt","w"))==NULL)
{
printf("password file cannot open !");
exit(0);
}
fprintf(fp,"%d",iPassinFile);
fclose(fp);
return 0;
}
执行情况:

知识总结:
密码还停留在数字阶段,后面数组学了之后可以做字符串数组
心得体会:
本文介绍了一个简单的银行系统模拟程序,使用C语言实现。该程序实现了用户登录验证、查询余额、存款、取款及修改密码等功能,并通过文件来持久化存储用户密码和账户余额。

被折叠的 条评论
为什么被折叠?



