问题描述:

https://edu.csdn.net/course/play/456/4808

// 银行系统.cpp: 定义控制台应用程序的入口点。
//#include "stdafx.h"
#include <stdlib.h>
#pragma warning (disable: 4996)int  PassTest();
void ibalance();
void withdraw();
void deposit();
void PassChange();int main()
{int ichoice,testresult;printf("欢迎光临草泥马银行\n\n");testresult = PassTest();while (testresult){printf("\n您可办理下面的业务:\n");printf("   1.查询余额\n");printf("   2.取款\n");printf("   3.存款\n");printf("   4.改密码\n");printf("   0.退出\n");printf("请输入(0-4):");scanf("%d", &ichoice);switch (ichoice){case 1:ibalance(); break; case 2:withdraw(); break;case 3:deposit(); break;case 4:PassChange(); break;default:break;}if (ichoice == 0){break;}}return 0;
}int PassTest()
{printf("请输入6位密码:");while (1){int pass, passstored, itry(1), righttime(0);FILE *fp;fp = fopen("D:\\code\\pass.dat", "r");if (fp == NULL){printf("File cannot open! ");exit(0);}for (int i = 0; i < 6; i++){scanf_s("%1d", &pass);fscanf(fp, "%1d", &passstored);if (pass == passstored){righttime++;}}if (righttime == 6){fclose(fp);return 1;break;}else if (itry<3){itry++;printf("密码错误累计%d次,请重新输入:", itry - 1);continue;}else{printf("密码错误累计%d次,系统终止\n", itry);fclose(fp);return 0;break;}}}void ibalance()
{double balance;FILE *fp;fp = fopen("D:\\code\\balance.dat", "r");if (fp == NULL){printf("File cannot open! ");exit(0);}fscanf(fp, "%lf", &balance);printf("余额:%.2lf\n\n", balance);fclose(fp);}void withdraw()
{double cash, balance, diff;printf("请输入取款额:");scanf("%lf", &cash);FILE *fp;fp = fopen("D:\\code\\balance.dat", "r");if (fp == NULL){printf("File cannot open! ");exit(0);}fscanf(fp, "%lf", &balance);if (balance>cash){diff = balance - cash;fclose(fp);fp = fopen("D:\\code\\balance.dat", "w");fprintf(fp, "%lf", diff);fclose(fp);fp = fopen("D:\\code\\balance.dat", "r");fscanf(fp, "%lf", &balance);printf("现余额:%.2lf\n\n", balance);fclose(fp);}else{printf("取款额大于余额,取款失败\n\n");fclose(fp);}}void deposit()
{double cash, balance, diff;printf("请输入存款额:");scanf("%lf", &cash);FILE *fp;fp = fopen("D:\\code\\balance.dat", "r");if (fp == NULL){printf("File cannot open! ");exit(0);}fscanf(fp, "%lf", &balance);diff = balance + cash;fclose(fp);fp = fopen("D:\\code\\balance.dat", "w");if (fp == NULL){printf("File cannot open! ");exit(0);}fprintf(fp, "%lf", diff);fclose(fp);fp = fopen("D:\\code\\balance.dat", "r");if (fp == NULL){printf("File cannot open! ");exit(0);}fscanf(fp, "%lf", &balance);printf("现余额:%.2lf\n", balance);fclose(fp);}void PassChange()
{while (1){int pass, pass2;printf("请输入新密码:");scanf("%d", &pass);if (pass>=100000 && pass <=999999){printf("请再输入新密码:");scanf("%d", &pass2);if (pass == pass2){FILE *fp;fp = fopen("D:\\code\\pass.dat", "w");fprintf(fp, "%d", pass);fclose(fp);printf("密码修改成功\n");}break;}else{printf("密码位数不足,请输满6位\n");continue;}}}

  

感想:

数据写入硬盘(如写入文本文档)似乎是在fclose之后才生效

比如取款后显示“现余额”,必须这么写

        fp = fopen("D:\\code\\balance.dat", "w");fprintf(fp, "%lf", diff);fclose(fp);fp = fopen("D:\\code\\balance.dat", "r");fscanf(fp, "%lf", &balance);printf("现余额:%.2lf\n\n", balance);fclose(fp);

  

=

转载于:https://www.cnblogs.com/miyazakehime/p/9302200.html

【C语言及程序设计】项目2-15:模块化的简单银行系统设计相关推荐

  1. c语言程序设计指针进阶,C语言及程序设计进阶例程-15 指向结构体的指针

    贺老师教学链接  C语言及程序设计进阶 本课讲解 指向结构体变量的指针的应用 #include #include struct Student { int num; char name[12]; ch ...

  2. 单片机c语言电梯程序设计,基于51单片机的模拟电梯控制系统设计.doc

    摘要:本文介绍了一种电梯模拟控制系统,包括怎样利用对STC89C52进行编程从而对电梯实现自由控制的方式.该系统采用了STC89C52芯片进行控制,用单片机进行编程,能实现的功能非常多而且方便设计,并 ...

  3. 项目的数据存储c语言,《C语言及程序设计》实践项目——数值型数据的存储原理...

    返回:贺老师课程教学链接  C语言及程序设计初步 [程序阅读题] 1. 运行下面的程序,并解释产生结果的过程(或原因) #include int main() { int a, b; a= 21474 ...

  4. c语言ns图选择结构程序设计,项目3选择结构程序设计.ppt

    项目3选择结构程序设计 项目3 选择结构程序设计 [任务目标] 掌握关系运算符.逻辑运算符和条件运算符的用法 掌握选择结构程序设计的方法 能够画出选择结构的流程图 能够用选择结构程序设计解决实际问题 ...

  5. c语言int型等长输出,c语言先程序设计15第十四讲第六章下.ppt

    c语言先程序设计15第十四讲第六章下 高级语言程序设计 主讲教师:贾彩燕 计算机与信息技术学院 计算机科学与技术系 cyjia@ 第六章 数组 主要内容 数组的概念.定义和使用 数组程序实例 数组作为 ...

  6. 《C语言及程序设计》实践项目——指针及其运算

    返回:贺老师课程教学链接  C语言及程序设计初步 [程序阅读题] 写出以下程序运行的结果,上机对照结果后,解释其过程.(注意用手画内存变化过程,而不要仅凭大脑思考.) #include <std ...

  7. 视频教程-C语言及程序设计提高视频精讲-C/C++

    C语言及程序设计提高视频精讲 烟台大学计算机学院教师,二十年余教师生涯,看出了在错综复杂的教育环境中,坚持教育教学的价值与前景.和学生并肩,与不良学风作斗争,为IT菜鸟建跑道,让大一的孩子会编程,为迷 ...

  8. 程序设计教程用c 语言编程,程序设计教程:用C/C++语言编程

    图书简介 本教材在作者20多年C/C++语言教学,特别是项目开发的基础上,站在初学者的角度,在注重基础知识学习的同时,以培养学生良好的编程规范意识和编程思想为重点精心编写,例程丰富,层次感强,非常适合 ...

  9. 《C语言及程序设计提高》网络课程主页

    在CSDN学院开出的网络系列课程<C语言及程序设计初步>已经完成(以后还将扩充). 系列中的第二季<C语言及程序设计提高>的资源建设全部完成(视频资源链接)! [公告]本课学员 ...

最新文章

  1. Linux下的C#连接Mysql数据库
  2. IE6 中的最大最小寬度和高度 css 高度 控制(兼容版本)
  3. TCP之深入浅出send和recv
  4. Linux 在一个命令行上执行多个命令
  5. docker 安装 minio
  6. 在后台查看product的change history
  7. 样条之贝塞尔(Bezier)
  8. js中==和===的区别
  9. android剪切 图片,android 剪切图片
  10. hadoop jar包_Hadoop学习之路(5)Mapreduce程序完成wordcount
  11. 计算机数据传输和信号传输,职称计算机基础知识第1章:数据传输的编码和调制技术...
  12. 辨异 —— 概率与统计
  13. Bootstrap-1
  14. 最新最全的免费股票数据接口--沪深A股指数实时交易数据API接口(七)
  15. HBuilder X如何运行uni-app 项目
  16. 云服务器5m带宽会有什么样的速度?
  17. 【Android工具】盘点几个有应用历史版本功能的应用商店
  18. ForkJoinPool线程池
  19. 企业电子招投标采购系统源码之电子招标采购是管理复杂供应链和多层供应商的高效方式
  20. 2019年中国研究生数学建模竞赛D题 汽车行驶工况构建

热门文章

  1. c语言中static变量
  2. 有多少恐怖小说家就应该有多少种吓唬人的方法
  3. 参加动画电影《魔比斯环》首映
  4. FIFO IP设计说明
  5. cad统计面积长度插件vlx_用了它,画cad施工图再也不加班了!
  6. 乐观锁的颗粒度_MySql数据库锁机制详解
  7. Unity URP高度雾效果Shader
  8. 【TensorFlow-windows】keras接口——卷积核可视化
  9. Liner(分段线性插值)
  10. Markdown 语法简介