C语言:银行储蓄系统开发(中级)

article/2025/10/10 3:11:02


任务代码1:

//使用函数的版本  #include <stdio.h>  
#include <stdlib.h>  
int pass();  //验证密码  
void work();  //业务驱动  
double getBalance();  //获得余额  
void showMenu();    //显示菜单  
void updatePassword();   //更改密码  
double withdraw(double d);   //取款  
double save(double d);   //存款  
void saveBalance(double d);   //退出系统时保存数据  /*主函数:*/  
int main()  
{  printf("欢迎您光临CSDN银行\n");  if (pass())  {  work();  }  return 0;  
}  
/* 
功能:验证用户密码 
返回值:密码正确,返回1; 不能通过密码验证,返回0 
*/  
int pass()  
{  int iPass;  //用户验证时输入的密码  int iPassInFile;  //记录正确的密码  int iTry=3;   //进入系统时尝试的次数  FILE *fp;  //用于文件操作  //密码保存在文件中,先取出  if ((fp=fopen("password.txt", "r"))==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("超过3次将退出,你已经尝试%d次!\n", iTry);  else  {  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 = withdraw(dBalance);  break;  case 3:  dBalance = save(dBalance);  break;  case 4:  updatePassword();  break;  case 0:  printf("欢迎您再来. \n");  }  }  while(iChoice);  saveBalance(dBalance);  
}  1  
/* 
功能:获得账户余额 
返回值:账户余额 
*/  
double getBalance()  
{  double dBalance;  //账户余额  FILE *fp;  //用于文件操作  //从文件中取出余额  if ((fp=fopen("balance.dat", "r"))==NULL)  {  printf("data file cannot open!");  exit(0);  }  fscanf(fp, "%lf", &dBalance);  fclose(fp);  return dBalance;  
}  /*功能:显示菜单*/  
void showMenu()  
{  printf("\n您可以办理下面的业务:\n");  printf("  1.查询\n");  printf("  2.取款\n");  printf("  3.存款\n");  printf("  4.改密码\n");  printf("  0.退出\n");  
}  /*功能:更改密码*/  
void updatePassword()  
{  FILE *fp;  //用于文件操作  int iPassInFile;  int iNewPass1, iNewPass2;   //用于修改密码  printf("请输入新密码:");  scanf("%d", &iNewPass1);  printf("再输入新密码:");  scanf("%d", &iNewPass2);  if(iNewPass1==iNewPass2)  {  iPassInFile = iNewPass1;  printf("密码修改成功,请注意保密.\n");  //保存密码(可能修改过)  if ((fp=fopen("password.txt", "w"))==NULL)  {  printf("password file cannot open!");  exit(0);  }  fprintf(fp, "%d", iPassInFile);  fclose(fp);  }  else  printf("两次输入不一致,密码修改失败.\n");  
}  /* 
功能:取款 
参数:取款前的余额 
返回值:取款后的余额 
*/  
double withdraw(double d)  
{  double dMoney;  //取款金额  printf("输入取款额: ");  scanf("%lf", &dMoney);  if(d>dMoney)  {  d-=dMoney;  printf("取款后,您还有%.2lf元. \n",d);  }  else  printf("余额不足,取款失败. \n");  return d;  
}  /* 
功能:存款 
参数:存款前的余额 
返回值:存款后的余额 
*/  
double save(double d)  
{  double dMoney;  //存款金额  printf("输入存款额: ");  scanf("%lf", &dMoney);  d+=dMoney;  printf("存款后,您有%.2f元. \n",d);  return d;  
}  /* 
功能:将余额保存到文件中 
参数值:账户余额 
*/  
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);  
}  

任务代码2:

//使用全局变量保存余额的版本  
#include <stdio.h>  
#include <stdlib.h>  
double dBalance;  //将在多个模块中都要用到的账户余额作为全局变量  
int iPassInFile;  //将用户密码也作为全局变量  //下面是函数原型。同余额作为局部变量相比,不用再通过形式参数和返回值,  
//在各个模块之间传递数据了  
int pass();  //验证密码  
void work();  //业务驱动  
void getBalance();  //获得余额  
void showMenu();    //显示菜单  
void updatePassword();   //更改密码  
void withdraw();   //取款  
void save();   //存款  
void saveBalance();   //退出系统时保存数据  /*主函数:*/  
int main()  
{  printf("欢迎您光临CSDN银行\n");  if (pass())  {  work();  }  return 0;  
}  
/* 
功能:验证用户密码 
返回值:密码正确,返回1; 不能通过密码验证,返回0 
*/  
int pass()  
{  int iPass;  //用户验证时输入的密码  int iTry=3;   //进入系统时尝试的次数  FILE *fp;  //用于文件操作  //密码保存在文件中,先取出  if ((fp=fopen("password.txt", "r"))==NULL)  {  printf("password file cannot open!");  exit(0);  }  fscanf(fp, "%d", &iPassInFile);  //iPassInFile是全局变量  fclose(fp);  //进入系统,密码三次不对将退出  do  {  iTry--;  printf("请输入密码:");  scanf("%d", &iPass);  if(iPass==iPassInFile)  break;  else  {  if(iTry>0)  printf("超过3次将退出,你已经尝试%d次!\n", iTry);  else  {  printf("对不起,你不能进入系统\n");  }  }  }  while(iTry);  return iTry;  
}  /* 
功能:办理业务 
*/  
void work()  
{  int iChoice;   //用于选择系统功能  getBalance(); //dBalance是全局变量  //办理业务  do  {  showMenu();  printf("请输入(0-4):");  scanf("%d", &iChoice);  switch(iChoice)  {  case 1:  printf("您的余额有%.2lf元. \n",dBalance);  break;  case 2:  withdraw();   //调用中,余额会变化,但不必体现在这里,余额dBalance是全局变量  break;  case 3:  save();  break;  case 4:  updatePassword();  break;  case 0:  printf("欢迎您再来. \n");  }  }  while(iChoice);  saveBalance();  
}  /* 
功能:获得账户余额 
说明:获得的余额,保存在全局变量中 
*/  
void getBalance()  
{  FILE *fp;  //用于文件操作  //从文件中取出余额  if ((fp=fopen("balance.dat", "r"))==NULL)  {  printf("data file cannot open!");  exit(0);  }  fscanf(fp, "%lf", &dBalance);  //dBalance是全局变量  fclose(fp);  return;  
}  /*功能:显示菜单*/  
void showMenu()  
{  printf("\n您可以办理下面的业务:\n");  printf("  1.查询\n");  printf("  2.取款\n");  printf("  3.存款\n");  printf("  4.改密码\n");  printf("  0.退出\n");  
}  /*功能:更改密码*/  
void updatePassword()  
{  FILE *fp;  //用于文件操作  int iNewPass1, iNewPass2;   //用于修改密码  printf("请输入新密码:");  scanf("%d", &iNewPass1);  printf("再输入新密码:");  scanf("%d", &iNewPass2);  if(iNewPass1==iNewPass2)  {  iPassInFile = iNewPass1;  printf("密码修改成功,请注意保密.\n");  //保存密码(可能修改过)  if ((fp=fopen("password.txt", "w"))==NULL)  {  printf("password file cannot open!");  exit(0);  }  fprintf(fp, "%d", iPassInFile);  fclose(fp);  }  else  printf("两次输入不一致,密码修改失败.\n");  
}  /* 
功能:取款 
说明:余额用全局变量表示 
*/  
void withdraw()  
{  double dMoney;  //取款金额  printf("输入取款额: ");  scanf("%lf", &dMoney);  if(dBalance>dMoney)  {  dBalance-=dMoney;  printf("取款后,您还有%.2lf元. \n",dBalance);  }  else  printf("余额不足,取款失败. \n");  return;  
}  /* 
功能:存款 
说明:余额用全局变量表示 
*/  
void save()  
{  double dMoney;  //存款金额  printf("输入存款额: ");  scanf("%lf", &dMoney);  dBalance+=dMoney;  printf("存款后,您有%.2f元. \n",dBalance);  return;  
}  /* 
功能:将余额保存到文件中 
说明:要保存的余额在全局变量中 
*/  
void saveBalance()  
{  FILE *fp;  //用于文件操作  //保存余额  if ((fp=fopen("balance.dat", "w"))==NULL)  {  printf("data file cannot open!");  exit(0);  }  fprintf(fp, "%f", dBalance);  fclose(fp);  
}  



http://chatgpt.dhexx.cn/article/oF6p3hsi.shtml

相关文章

比黄图更得劲儿?网络萌宠图片,拯救你大脑的不二法器

全文共2512字&#xff0c;预计学习时长8分钟 图片来自: Julian Glander 据研究人员称&#xff0c;萌宠的图片绝对比低俗图片甚至阅读对大脑更有益处。 在社交媒体上&#xff0c;灾难性的新闻层出不穷。在我写这篇文章的时候&#xff0c;一本绝佳的著作正在遭受读者的抨击&#…

移动端图片鉴黄(可离线识别 200ms)

open_nsfw_android &#xff08;可离线识别&#xff09; 原文链接 &#xff08;喜欢请记得Star&#xff09; 色情图片离线识别&#xff0c;基于TensorFlow实现。识别只需200ms,可断网测试&#xff0c;成功率99%&#xff0c;调用只要一行代码&#xff0c;从雅虎的开源项目open…

php图片内容识别,Chevereto 调用百度图像内容审核 – 实现Chevereto图片鉴黄

前面大鸟说了如何安装Chevereto商业版本&#xff0c;因为这是图床&#xff0c;所以我们需要设置下鉴黄。因为Chevereto默认没有这个功能&#xff0c;所以需要自己设置了。 具体的方法就是利用百度AI审核功能来实现图片内容识别鉴黄。教程基于Chevereto安装之后&#xff0c;至于…

一天看10000张黄图,鉴黄师的苦!!!

Python实战社群 Java实战社群 长按识别下方二维码&#xff0c;按需求添加 扫码关注添加客服 进Python社群▲ 扫码关注添加客服 进Java社群▲ 作者丨小郭 来源丨程序员虎哥&#xff08;ID&#xff1a;itjiagou&#xff09; hello&#xff0c;大家好&#xff0c;这里是程序员虎哥…

python NSFW Model 图片识别鉴黄 后面更新视频检测

基于 NSFW Model 图片识别鉴黄 后面更新视频检测 识别效果 推荐SFW 0.98 色情 NSFW 0.015 推荐SFW 0.00 色情 NSFW 0.99 为色情图片 中文github代码下载 - 原文地址 环境条件 所有代码都应该与Python 3.6and兼容Tensorflow 1.x&#xff08;用 1.12 测试&#xff09;。模型…

Python 批量鉴别审核黄图

作者&#xff1a;美图博客 https://www.meitubk.com/zatan/229.html 前言 最近写了一款微信小程序需要用到图片审核&#xff0c;人工审核是不可能的人工审核的太费精力了&#xff0c;所以我就写了一个多线程批量识别脚本来处理&#xff0c;主要是调用百度 AI 的接口&#xff0…

Python快速实现黄图检测——车速检测器

文章目录 简介安装图像视频预加载车速检测器视频车速检测器无声音TODO: 有声音 参考文献 简介 使用雅虎开源的 TensorFlow 2 Open-NSFW 模型 NSFW&#xff1a;not safe for work&#xff0c;工作场所不宜 1.jpg 2.jpg 自己去下 安装 Python 3.7 及以上&#xff0c;本人尝…

做了个色情图片识别系统

项目介绍 本项目将使用python3去识别图片是否为色情图片&#xff0c;会使用到PIL这个图像处理库&#xff0c;并且编写算法来划分图像的皮肤区域 介绍一下PIL&#xff1a; PIL&#xff08;Python Image Library&#xff09;是一种免费的图像处理工具包&#xff0c;这个软件包提供…

图像鉴黄的数据集及相关算法汇总

前方高能预警&#xff0c;非战斗人士请火速撤离…… 数据集1&#xff1a;https://github.com/EBazarov/nsfw_data_source_urls/tree/master/raw_data 在 raw_data 文件夹里&#xff0c;可以找到不同的 .txt 格式的文档&#xff0c;每个文档都含有一组 URL&#xff0c;以下是关…

微信小程序—智能鉴黄、敏感识别

小程序提供内容安全接口 security.imgSecCheck&#xff1a;图片检测 security.msgSecCheck&#xff1a;文本检测 调用效果如下&#xff1a; 敏感信息&#xff0c;不好暴漏&#xff0c;可自行体验 体验路径&#xff1a;扫码>>AI智能系列>>安全检测—敏感词语、黄…

android图片颜色识别器,颜色识别器APP

颜色识别器APP是一款手机上的颜色辨别应用&#xff0c;用户只需用摄像头拍出要识别的颜色&#xff0c;应用就能将颜色信息识别出并转换为相关的颜色信息&#xff0c;如颜色名称&#xff0c;颜色的HEX码、RGB码等&#xff0c;还有实时识别&#xff0c;测色仪&#xff0c;色差计等…

二维码/条码识别、身份证识别、银行卡识别、车牌识别、图片文字识别、黄图识别、驾驶证(驾照)识别

Scanner 项目地址&#xff1a;shouzhong/Scanner 简介&#xff1a; 二维码/条码识别、身份证识别、银行卡识别、车牌识别、图片文字识别、黄图识别、驾驶证&#xff08;驾照&#xff09;识别 更多&#xff1a;作者 提 Bug 标签&#xff1a; >>> reset-###- …

身份证、银行卡、车牌、图片文字识别、黄图识别、驾驶证识别库实现功能

预览图效果&#xff1a; 原文来自&#xff1a;http://code.662p.com/view/19388.html &#xff0c;需要自己去下载就可以了。 使用 依赖 implementation com.shouzhong:Scanner:1.1.3以下选择自己需要的 // zxing implementation com.google.zxing:core:3.3.3 // zbar imp…

黄图识别-open nsfw

大楷简介&#xff1a; open nsfw是一款开源的黄图识别的模型。对的&#xff0c;只是模型。并且有有python的代码作为预测图片是否黄图。 https://github.com/yahoo/open_nsfw 这里网址。 open nsfw是雅虎开源项目caffeonspark&#xff0c;使用深度学习训练得到caffe模型。ns…

计算机无法对NAS硬盘操作,使用计算机为Synology NAS安装DSM操作系统

Synology NAS由硬件&#xff0c;系统和应用程序套件组成. Synology最著名的是DSM操作系统. DSM操作系统是Synology开发的用于存储的智能操作系统. 它不仅功能强大&#xff0c;而且在DSM中可用. 在操作系统上安装各种应用程序包&#xff0c;以满足您的需求. 可以通过手机或计算机…

Delta-Sigma调制(DSM)技术

前言 数字信号处理和通信系统的性能很大程度上受到了模拟信号到数字信号转换接口——ADC的精度和分辨率的限制。而传统的线性脉冲编码调制&#xff08;PCM&#xff09;ADC受到了制造工艺的限制&#xff0c;无法达到很高的分辨率。但基于Delta-Sigma调制技术的ADC可以在现有工艺…

黑群晖 DSM 6.2 3617 成功安装教程

黑群晖简介&#xff1a; 黑群晖指的是不是购买正规的群晖的nas 而是在普通电脑上装群晖nas的系统。从硬件来说&#xff0c;群晖本来就是软阵列&#xff0c;和普通PC的软阵列比&#xff0c;没多大分别&#xff1b;黑群晖给你一个打包好的nas&#xff0c;功能全面的轻量化系统&am…

趋势DSM安装

1、基础环境准备 ①准备一台虚拟机&#xff0c;操作系统&#xff1a;CentOS 7.9(带图形) 4vCPU&#xff0c;16GB内存&#xff0c;200GB存储。 ②虚拟机需要安装数据库(支持MSSQL/Oracle/PostgreSQL)和Java环境。 ③本次环境以PostGreSQL位例&#xff0c;进行安装。 2、Pos…

dsm操作系统服务器,DSM 5.1操作系统提供以下新功能

DSM 5.1操作系统提供以下新功能 DSM 5.1操作系统提供以下新功能&#xff1a; 一、打造你的多媒体娱乐中心 DSM 5.1公开分享功能的覆盖范围遍及多媒体内容、档案与数字笔记&#xff0c;NAS上的档案仅通过一键产生网址的方式就能够实时和他人分享。此外&#xff0c;Video Station…

用户DSN、系统DSN、文件DSN的区别

“ODBC数据源管理器”提供了三种DSN&#xff0c;分别为用户DSN、系统DSN和文件DSN。 文件DSN&#xff1a;是建立一个 DSN 的文件&#xff0c; 信息存在文件里。只能由配置该DSN的用户使用或只能在当前的计算机上使用。 系统DSN&#xff1a;是建立一个系统级的DSN&#xff0c…