您的位置:首页 > 其它

第15章项目-银行系统开发(三)

2018-03-13 14:15 579 查看
问题及代码:/*
Copyright(c)2018,CSDN学院行者-
All rights reserved.
文件名称:main.c
作者:乔帅
完成日期:2018年3月13日
版本号:v1.0

问题描述:银行系统开发
输入描述:相应数据
程序输出:相应数据
*/
#include<stdio.h>
int pass(); //验证密码
void work(); //业务驱动
void showMenu(); //显示菜单
double save(double d); //存款
double withfraw(double d); //取款
void updatePassword(); //更改密码
double getBalance(); //获得余额
void saveBalance(double d); //保存数据
int main(){
printf("欢迎您光临CSDN银行\n");
if(pass()){
work();
}
return 0;
}
int pass(){
/*
功能:验证用户密码
返回值:密码正确,返回正数;
不能通过密码验证,返回0
*/
int iPass; //用户验证时输入的密码
int iPassInFile; //记录正确的密码
int iTry=3; //进入系统尝试的次数
FILE *fp; //用于文件操作
//取出保存在文件中的密码
fp = fopen("password.txt","r");
if(fp == NULL){
printf("password file cannot open!");
exit(0);
}
fscanf(fp,"%d",&iPassInFile);
fclose(fp);
//进入系统,密码三次不对将退出
do{
iTry--;
printf("请输入密码:");
scanf("%d",&iPass);
if(iPass == iPassInFile){
break;
}else{
if(iTry>0){
printf("密码错误!\n");
printf("您还可以尝试%d次\n",iTry);
}else{
printf("密码错误!\n");
printf("对不起您今天以无尝试机会!\n");
}
}
}while(iTry);
return iTry;
}
void work(){
/*
功能:办理业务
*/
int iChoice; //用于选择系统功能
double dBalance; //账户余额
dBalance = getBalance();
do{
showMenu();
printf("请输入(0-4):");
scanf("%d",&iChoice);
switch(iChoice){
case 1:
printf("余额为:%.2lf元\n",dBalance);
break;
case 2:
dBalance = save(dBalance);
break;
case 3:
dBalance = withfraw(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 getBalance(){
double dBalance;
FILE *fp;
if((fp = fopen("balance.dat","r")) == NULL){
printf("date file cannot open!");
exit(0);
}
fscanf(fp,"%lf",&dBalance);
fclose(fp);
return dBalance;
}
/*
功能:存款
*/
double save(double d){
double value;
printf("请输入存款金额:");
scanf("%lf",&value);
d += value;
printf("存款成功!余额为:%.2lf",d);
return d;
}
/*
功能:取款
*/
double withfraw(double d){
double value;
printf("请输入取款金额:");
scanf("%lf",&value);
if(d >= value){
d = d - value;
printf("取款成功!余额为:%.2lf",d);
}else{
printf("余额不足,取款失败!");
}
return d;
}
/*
功能:修改密码
*/
void updatePassword(){
int newpassword1 , newpassword2,iPassInfile;
FILE *fp; //用于文件操作
printf("请输入新的密码:");
scanf("%d",&newpassword1);
printf("请再次输入新的密码:");
scanf("%d",&newpassword2);
if(newpassword1 == newpassword2
){
iPassInfile = newpassword1;
printf("修改密码成功!\n");
if((fp = fopen("password.txt","w"))==NULL){
printf("date file cannot open!");
exit(0);
}
fprintf(fp,"%d",iPassInfile);
fclose(fp);
}else{
printf("两次输入不一致,密码修改失败!\n");
}
}
/*
功能:将余额保存到文件中
参数值:账户余额
*/
void saveBalance(double d){
FILE *fp; //用于文件操控
//保存余额
if((fp = fopen("balance.dat","w")) == NULL){
printf("data file cannot open!");
exit(0);
}
fprintf(fp,"%f",d);
fclose(fp);
}

运行结果:



知识点总结:
1.综合运用了,前一段时间所学习的知识
学习心得:
这个题目涵盖了很多的知识点,算是对前一段时间的学习进行了总结。
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: