银行账户管理系统C语言程序设计摘要银行账户管理系统是针对银行账户的日常管理而设计,操作方便而且界面简洁,使用较为简单的C语言作为编程语言,采用软件工程的开发原理,按照需求分析、概要设计、详细设计、程序编码、软件测试等过程进行规范设计。
本银行账户管理系统具有良好的容错性,在出现误操作时能及时的给出相关错误提示,以便于用户及时地更正。
此方案运用C语言设计的简易的银行账户管理系统,具体实现的功能有显示用户在银行留下的账户信息,以及选择账户查询的功能对用户存取款记录进行查询,可以比较清晰的反映出所要查询的内容。
关键词账户管理C语言查询目录银行账户管理系统C语言程序设计 (I)摘要 (I)1需求分析 (3)1.1需求概述 (3)1.2需求环境 (3)1.3功能描述 (3)2 概要设计 (4)2.1程序功能模块 (4)2.2程序流程图 (5)2.3数据的设计 (5)3 详细设计 (6)3.1代码功能 (6)3.2功能实现代码 (6)3.3流程图 (9)4 实际C语言代码 (13)5.运行结果 (24)5.1登陆界面 (24)5.2..主菜单 (24)5.3.插入新账户 (25)5.4.列出所有账户 (25)5.5.查找账户存款信息 (26)5.6.删除账户 (26)5.7.取款 (26)5.8.存款 (27)6.问题与不足 (27)7.结语 (27)参考文献 (28)1需求分析1.1需求概述进入21世纪之后,随着科技的飞速发展和社会进步,尤其是计算机在大范围的普及,人工智能化的计算机应用也逐步的由大规模科学计算的海量数据处理转向大规模的事务处理和对工作流的管理,这就产生了以计算机为核心,以数据库管理系统为开发环境的管理信息系统在大规模的事务处理和对工作流的管理等方面的应用,特别是在银行账户管理之中的应用日益受到人们的关注。
自中国加入WTO之后,我国信息产业发展迅速,手工管理方式在银行账户管理等需要大量事务处理的应用中已显得越来越不适用,采用IT技术提高服务质量和管理水平势在必行,银行必须提高自己的工作效率,所以迫切需要合适的信息化的银行账户管理系统。
1.2 需求环境本课程设计需要的设备为硬件要求和软件配置要求具体要求如下:1.配件要求:一台计算机。
2.软件配置:WINDOWS、Dev C++ 5.9.2、gcc 6.3.0。
1.3 功能描述这部分阐述了银行管理系统的各种动作功能和控制要求,制定了一套完整的银行账户管理系统的工作流程。
用结构体链表来存放个人银行账户的信息,通过静态分配结构体数组的大小,然后通过对链表的插入、查找、删除、排序、保存操作实现账户管理的功能。
程序退出时自动将内存中的数据保存到文件中,再次运行时程序会自动从文件中读取数据扫内存中。
程序启动时要求输入用户名和密码用户名:xyh 密码:1234562 概要设计2.1 程序功能模块1、建立账户功能:struct account *insert(struct account*head, struct account *new);该函数通过对链表进行插入操作,从而实现建立账户的功能。
2、显示所有账户功能:void print(struct account *head);对链表进行输出,列出所有账户。
3、按照账号搜索的功能:struct account *find(struct account*head,long account_num);对指针进行遍历,找到符合条件的数据。
4、按照账号删除账户:struct account *del(struct account*head,long account_num);对链表进行查找,如有匹配的则执行删除,若没有找的不做任何操作。
5、模拟取钱功能:struct account *Withdrawal (structaccount *head,long account_num); 用户输入账号,然后对链表进行查找,要求用户输入账户密码,若匹配则可进行取钱(对余额做减法)。
6、模拟存钱功能:struct account *saving(struct account*head,long account_num);与取钱类似,对余额做加法。
7、排序功能:struct account *order (struct account *head);根据账号对链表进行排序8、保存数据和读取文件功能:void save(struct account*head);save函数实现保存功能,退出程序时自动保存数据,再次执行程序时自动从根目录中读取文件数据。
2.2 程序流程图图2.1 程序流程图2.3 数据的设计3 详细设计3.1代码功能在初始化程序中,主要实现的是登陆界面要求输入管理员姓名和密码3.2 功能实现代码①登录界面部分代码如下:printf("现在登录:\n");printf("用户名:");scanf("%s", &user);printf("\n密码:");scanf("%ld", &password);if (password != 123456 || strcmp(user,username) != 0) {printf("密码错误!\n");printf("输入任何键......\n");getch();exit(1); //包括了密码和用户名是否符合要求的判断②登陆后主菜单的部分代码如下:printf ("\n\n\t\t欢迎使用虚拟银行自动取款机服务!\t\t\n\n");printf ("请选择功能:\n");printf("\n=================================================\n");printf (" || ||\n");printf (" || 1.插入新账户。
||\n");printf (" || 2.列出所有账户。
||\n");printf (" || 3.查找账户存款信息 ||\n");printf (" || 4.删除账户。
||\n");printf (" || 5.取款。
||\n");printf (" || 6.存款。
||\n");printf (" || 7.返回选择界面。
||\n");printf (" -------------------------\n");printf ("请输入序号\n");③插入新账户部分代码如下:system("cls");printf("\n输入插入记录 :");new = (struct account *) malloc(LEN);printf("\n用户号码:");scanf("%ld", &new->account_num);printf("\n姓名:");scanf("%s", &new->name);printf("\n余额:");scanf("%f", &new->balance);head = insert(head, new);break;④列出所有账户部分代码如下printf("\n现在,这些 %d 账户是:\n",n);printf("账户号姓名余额 \n");printf("===================================\n");if (head != NULL)do {printf("%-15ld%-10s%-10.2f\n", p->account_num, p->name, p->balance);p = p->next;} while (p != NULL);printf("===================================\n"); loop1:printf("输入任何键返回菜单......\n");getch();system("cls");}⑤查找账户存款信息部分代码如下system("cls");printf("请输入账户号码:\n");scanf("%ld", &account_num);head = find(head, account_num);break;⑥删除账户部分代码如下system("cls");printf("\n输入要删除的号码:");scanf("%ld", &del_num);head = del(head, del_num);print (head);break;⑦取款部分代码如下if (account_num == p1->account_num) {printf("你想取多少钱:");scanf("%f",&money);if (p1->balance-money >= 0) {p1->balance = p1->balance-money;printf("成功!\n");}elseprintf("失败,你不能这么做!\n");}⑧存款部分代码如下if (account_num == p1->account_num) {printf("你想存多少钱:");scanf("%f",&money);p1->balance = p1->balance+money;printf("\\成功!\n");printf("输入任何键返回菜单......\n");getch();system("cls");3.3流程图根据概要设计中的实现功能的流程图设计如图所示:1)系统初始化模块2)菜单模块3)存取款模块4)列出所有用户5)删除用户6)查询某用户4 实际C语言代码5.运行结果5.1登陆界面5.2. .主菜单5.3.插入新账户5.4.列出所有账户5.5.查找账户存款信息5.6.删除账户5.7.取款5.8.存款6.问题与不足1.可以插入相同账户2.存款或取款金额不为数字也可进行存取3.不需要输入密码4.密码错误多次不会锁定7.结语经历了编c语言实训课程后,我弄懂了在前几周课堂上没搞明白的东西,例如,链表的建立,指针等。