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

小型银行系统函数版

2016-06-28 22:44 501 查看
任务和代码:小型银行系统

/*
文件名:main.c
作者:小风景
完成日期:2016.6.28
问题描述:小型银行系统函数版
程序输出:
*/

#include <stdio.h>
#include <stdlib.h>

int pass();
void work();
void showMenu();
double save(double x);
double withDraw(double x);
double getBalances();
void saveBalance(double x);
int updatePassword();

/*主函数*/
int main()
{
printf("欢迎光临CSDN银行\n");

if(pass())
{
work();
}

return 0;
}

/*
功能:验证用户密码
返回值:密码正确,返回正数,验证失败,返回0
*/
int pass()
{
int iPass = 0; //用户验证时输入的密码
int iPassInFile = 0; //保存在文件中的密码
int iTry = 3; //验证密码的次数
FILE *fp; //用于文件操作

//读取保存在文件中的密码
fp = fopen("password.txt","r");
if(fp == NULL)
{
printf("password file can not open!\n");
exit(0);
}

fscanf(fp,"%d",&iPassInFile);
fclose(fp);

//进入系统,密码三次不对将会退出
do
{
iTry--;
printf("请输入密码:");
scanf("%d",&iPass);
if(iPass == iPassInFile) //判断输入正确,结束
{
iTry ++;
break;
}

//如果输入错误,提醒并从新输入
if(iTry > 0)
{
printf("您输入的密码不正确,您还有%d尝试的机会!\n",iTry);
continue;
}
else
{
printf("对不起,您不能进入系统!\n");
}
}
while(iTry);

return iTry;
}

void work()
{
int iChoice; //用于选择功能系统
double dBalance; //用于显示账户余额
dBalance = getBalances();

//办理业务
do
{
showMenu();
//选择功能并进行处理
printf("请输入(0-4):");
scanf("%d",&iChoice);
switch(iChoice)
{
case 1:
printf("您的余额为%.2f元!\n",dBalance);
break;
case 2:
dBalance = withDraw(dBalance);
break;
case 3:
dBalance = save(dBalance);
break;
case 4:
updatePassword();
break;
case 0:
printf("欢迎您再来!\n");
}
}
while(iChoice);

saveBalance(dBalance);
}

void showMenu()
{
printf("\n业务选择:\n");
printf(" 1、查询\n");
printf(" 2、取款\n");
printf(" 3、存款\n");
printf(" 4、改密码\n");
printf(" 0、退出\n");
}

double getBalances()
{
double balance;
FILE *fp;

fp = fopen("balance.txt","r");
if(fp == NULL)
{
printf("data file can't open!\n");
exit(0);
}

fscanf(fp,"%lf",&balance);
fclose(fp);

return balance;
}

double save(double x)
{
double dMoney;
printf("请输入存款金额:\n");
scanf("%lf",&dMoney);
x += dMoney;
printf("存款后,您有%.2f元\n",dMoney);

return dMoney;
}

double withDraw(double x)
{
double dMoney;
printf("请输入取款金额:\n");
scanf("%lf",&dMoney);

if(x >= dMoney)
{
x = x - dMoney;
printf("取款后,您的余额为%.2f元\n",x);
}
else
{
printf("您的余额不足,取款失败!\n");
}

return x;
}

int updatePassword()
{
int iNewPassword1;
int iNewPassword2;
int iPasswordInFile;
FILE *fp;
printf("请输入新密码:\n");
scanf("%d",&iNewPassword1);
printf("请再次输入密码:\n");
scanf("%d",&iNewPassword2);

if(iNewPassword1 == iNewPassword2)
{
iPasswordInFile =iNewPassword1;
fp = fopen("password.txt","w");
if(fp == NULL)
{
printf("password file can not open!\n");
exit(0);
}

fprintf(fp,"%d",iPasswordInFile);
fclose(fp);
printf("修改成功,您的密码已变更!\n");
}
else
{
printf("两次输入不一致,修改密码失败!\n");
}

return 0;
}

void saveBalance(double x)
{
FILE *fp;
if((fp = fopen("balance.txt","w")) == NULL)
{
printf("data file can't open!\n");
exit(0);
}

fprintf(fp,"%lf",x);
fclose(fp);
}


程序运行结果:









总结:从一个main函数,到通过main函数中调用函数来实现功能,到现在的小型银行系统函数版,我们通过对大项目的拆解,将其系统的划分为一个个独立的小项目,通过对外提供接口被外部调用完成功能,内部通过特定独立的算法完成功能。我们通过这些函数的组合来完成更大的项目。
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签:  C语言 代码 函数