第4周 C语言及程序设计提高例程-15 小小型应用系统开发指导(三)
2016-04-20 15:37
375 查看
问题及代码:
暂无
知识总结:
自定义函数在实际中的应用,建立模块化和体系化。
学习心得:
对流程模块化,用最简洁的方式梳理出主线,然后再将各个模块进行完善。
#include<stdio.h> #include<stdlib.h> double Balance;//全局变量金额 int iPASSFILE;//全局变量密码 int pass();//验证密码 void work();//业务驱动 void getBalance();//获得余额 void Menu();//显示菜单 void undatepassword();//更改密码 void withdraw();//取款 void save();//存款 void saveBlance();//退出系统时保存数据 int main() { printf("欢迎来到时缔银行!"); if(pass()) { work(); } return 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",&iPASSWORD); fclose(fp); do { iTry--; printf("请输入密码:"); scanf("%d",ipass); if(iTry>3) printf("您已尝试%d次",iTry); else printf("您的错误已超过3次,不能进入系统"); } while(iTry); return iTry; } void work() { int iChoice; getBlance(); do { showMenu(); printf("请输入0-4"); scanf("%d",&iChoice); swich(iChoice) case 1: printf("您有%.2f\n",Blance); break; case 2: withdraw(); break; case 3: save(); break; case 4: undatepassword(); break; case 0: printf("欢迎下次再来!"); } while(ichoice); saveBlance(); } void getBalance() { FILE*fp; if(fp=fopen("balance.dat","r")==NULL) { printf("balance file cannot open!"); exit(0); } fscanf(fp,"%lf",&Balance); fclose(fp); return; } void show Menu() { printf("\n您可以办理下面的业务:\n"); printf(" 1.查询\n"); printf(" 2.取款\n"); printf(" 3.存款\n"); printf(" 4.改密码\n"); printf(" 0.退出\n"); } void undatepassword(); { FILE *fp; int ipassword1,ipassword2; printf("请输入新密码:"); scanf("%d", &ipassword1); printf("再输入新密码:"); scanf("%d", &ipassword2); if(ipassword1==ipassword2) iPASSFILE=ipassword1; printf("你的密码修改完毕!请保持好密码!"); if ((fp=fopen("password.txt", "w"))==NULL) { printf("password file cannot open!"); exit(0); } fprintf(fp, "%d", iPASSFILE); fclose(fp); else printf("两次输入不一致,密码修改失败.\n"); } void withdraw() { double dMoney; printf("请输入取款金额:"); scanf("%lf",dMoney); if(dMoney<Balance) { Balance-=dMoney; printf("取款后您还有%.2lf余额",Balance); } else printf("您的余额不足,请重新输入!"); 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); }运行结果:
暂无
知识总结:
自定义函数在实际中的应用,建立模块化和体系化。
学习心得:
对流程模块化,用最简洁的方式梳理出主线,然后再将各个模块进行完善。
相关文章推荐
- C语言05指针基础
- 详解C语言编程中的函数指针以及函数回调
- Graphviz + CodeViz生成C/C++函数调用图(call graph)
- C语言04函数与递归
- c++之强制转换之const_cast和reinterpret_cast
- C/C++中产生随机数(rand,srand用法)
- 在使用while(cin >> word)如何结束输入
- 关于多态的小结
- C++中的内存分配
- C++多态的实现及原理详细解析
- C++ 之 优先队列 priority_queue
- c++编程总结
- 【C语言】函数默认实现和用户自定义实现编程方法 -- 【weak, strong alias】
- pcl c++ 文件后缀名批处理修改 ply->pcd 走过的坑及问题
- 深入解析C语言中函数指针的定义与使用
- C++STL库中string类的find()和findfirstof()函数比较
- C++中的左值和右值
- C语言03数组
- C语言中的函数指针基础学习教程
- C++自定义缓冲区streambuf