您的位置:首页 > 编程语言 > C语言/C++

第3周 C语言及程序设计初步例程-47 小小型应用系统开发指导(二)

2016-04-11 21:31 579 查看
问题及代码:

#include <stdio.h>
#include <stdlib.h>
int main()
{
int ipass;//用户输入的密码;
int iPASSFILE;//记录正确的密码;
int itry=0;//进入系统尝试的次数;
int ipassword1,ipassword2;//修改的密码;
int ichoice;//选择系统功能;
double dBalance;//余额;
double dMoney;//存取款金额;
FILE *fp;//用于文件操作;

printf("欢迎来到时缔银行!\n");

//需先从保存的文件中取出密码;

if((fp=fopen("password.txt","r"))==NULL)
{
printf("password file cannot open!");
exit(0);
}
fscanf(fp,"%d",&iPASSFILE);
fclose(fp);

//进入系统,密码三次不对将退出;

do
{
itry++;
printf("请输入密码:");
scanf("%d",&ipass);
if(ipass==iPASSFILE)
break;
else
{
if(itry<3)
{
printf("超过3次错误将退出,您已经输入%d次错误!\n",itry);
}
else
{
printf("您的输入错误已达3次,今天不能再继续操作!\n");
exit(0);
}
}
}
while(1);//表达式为真,第一次输入就正确,直接进入下一个环节;

//从文件中取出余额;

if((fp=fopen("balance.dat","r"))==NULL)
{
printf("date file cannot open!");
exit(0);
}
fscanf(fp,"%lf",&dBalance);
fclose(fp);

//办理业务;

do
{
printf("您可以办理以下业务:\n");
printf("1.查询:\n");
printf("2.取款:\n");
printf("3.存款:\n");
printf("4.修改密码:\n");
printf("0.退出:\n");
printf("请输入0-4:\n");
scanf("%d",&ichoice);
switch(ichoice)
{
case 1:
printf("您有%.2f的余额:\n",dBalance);
break;
case 2:
printf("请输入取款额度:\n");
scanf("%lf",&dMoney);
if(dBalance>dMoney)
{
dBalance-=dMoney;
printf("您现在的额度是:%.2lf\n",dBalance);
}
else
printf("余额不足,取款失败\n");
break;
case 3:
printf("请存入现金:\n");
scanf("%lf",&dMoney);
dBalance+=dMoney;
printf("您现在的余额是%.2lf\n",dBalance);
break;
case 4:
printf("请输入新密码:\n");
scanf("%d",&ipassword1);
printf("请再次输入新密码:\n");
scanf("%d",&ipassword2);
if(ipassword1==ipassword2)
{
iPASSFILE=ipassword1;
printf("您的密码已修改完毕,请注意保管!\n");
}
else
printf("您两次密码输入不一样,请重新输入!\n");
break;
case 0:
printf("欢迎下次回来!\n");
}
}
while(ichoice);
//保存余额;

if(fp=fopen("password.txt","w")==NULL)
{
printf("password file cannot open!");
exit(0);
}
fprintf(fp,"%d",iPASSFILE);
fclose(fp);
return 0;
}


运行结果:







知识总结:

多种循环的灵活运用,以及实际中对文件的存取。

学习心得:

对写比较长的程序有了一定的信心,懂得先将框架确定,再一步步细化完善。

在写程序的过程中,出现许多小问题,比如exit()忘记括号里加0;

scanf中的&也经常落掉;不小心在一个printf()中误用了&。这两个错误调试时未提示,但运行出错。

第一个do…while()中,while()里面为何是1刚开始有点不太明白。
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: