本文主要是介绍C语言进阶-第39讲:银行储蓄系统(二进制版)开发,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!
银行储蓄系统:结构体版本、二进制版本
下面讨论二进制版较结构体版的不同,优势,两难,改进之处:
不同:
(一)全局变量
结构体版:
struct record users[upNum]; //银行所有用户
int N; //实际的用户数目
二进制版:
int N;
FILE *fp;
全局变量的结构体数组->子函数中定义指向结构体的指针
fp由局部变量->全局变量
(二)main函数
结构体版:
int main()
{printf("+----------------------+\n");printf("+ 欢迎光临CSDN银行 +\n");printf("+----------------------+\n");if (pass()){readData();work();writeData();}return 0;
}
二进制版:
int main(){FILE *fp;printf("+----------------------+\n");printf("+ 欢迎光临我家银行 +\n");printf("+----------------------+\n");if (pass()){exchange(); //将数据从文本文件读到二进制文件if((fp=fopen("account.bin", "rb+"))==NULL) //文件不存在时重建,文件已经存在时,将保留原数据{printf("数据文件打开失败,退出程序....");exit(1);}fseek(fp, 0, SEEK_END);N = ftell(fp)/sizeof(record); //ftell用于得到文件位置指针当前位置相对于文件首的偏移字节数,除以sizeof(struct record),得到的是当前用户的数目work();fclose(fp);}return 0;}
这篇关于C语言进阶-第39讲:银行储蓄系统(二进制版)开发的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!