一、问题描述
随着经济的加速发展,我国的银行业将面临更加激烈的同业竞争,如何提供更多的金融产品和更优质的服务,如何吸引更多的客户,如何利用计算机技术加强银行账户信息管理,提高银行的工作效率和业务竟争能力是摆在各家银行面前的一个迫切需要解诀的问题。银行每天要处理大量的存取款事件,做好存取款是银行工作重要的环节,然而要有效处理必须要有良好的程序和数据管理系统来建立一个良好的软件系统来实现快速、有效、准确、安全的处理银行事物。
我做的系统主要用于银行的账户管理系统,系统实现的主要有储蓄卡开户管理、存取款管理、用户查询信息等功能,它可以帮助客户有效、准确、并且高效的完成存取事件。
通过该银行账户管理系统地运行,使银行办公人员可以轻松快捷的完成对账户管理的任务,提高账目管理效率,使银行的账目管理工作系统化、规范化、自动化。
我所做的银行活期储蓄处理程序主要用途是利用C++编程实现储蓄卡开户管理、存取款管理、用户查询信息、注销等功能。
其中,储蓄卡开户管理模块包括开户号、开户姓名、存入金额。(存入金额必须是数字)
登入账号后进入用户模块,模块内包括查看信息、存款、取款、转账、更改密码。
注销模块中,一旦注销该卡号就不存在。
系统主要有用户表类,通过用户表类来实现开户、销户和支出存储等功能。
二、问题分析
㈠、设计分析
我所做的银行活期储蓄处理程序主要用途是利用C++编程实现储蓄卡开户管理、存取款管理、用户查询信息、注销等功能。 系统主要有用户表类,通过用户表类来实现查询用户信息、开户、销户和支出存储等功能。
在用户表类中定义查询函数来查询用户信息,定义开户函数来进行用户开户操作,定义支出存储函数来进行用户存款和取款操作,定义销户函数来进行删除对应用户记录的操作。
㈡、界面分析
1、主界面页面:主要导航栏有查询账户、开户、支出存储记录、销户、退出界面。
2、查询账户页面:提供查询界面,由用户输入账号,查询到账户记录后进入支出存储界面或销户界面,进行支出存储操作或销户操作。
3、开户页面:提供开户界面,由用户输入新账户的信息,将该信息保存到文件中,并将开户金额作为该卡的第一次存款记录存人文件。
4、支出存储界面:存款:从登录界面得到帐号,并提供数据输入界面,等待用户的输入存款金额,同时将存钱的金额显示在页面上。取款:从登录界面得到帐号,并提供数据输入界面,等待用户输入取款金额,如果取款金额大于该用户卡上的余额则不能取款,否则将新的余额写入文件,并将本次取款事件写入文件同时将取钱的金额显示在页面上。
5、销户界面:输入账号,删除账号对应的账户记录。
6、退出界面。
三、逻辑结构和存储结构设计
1、逻辑结构设计:
此系统用单链表来对用户信息进行存储、查询、插入与删除等操作,是一种线性结构。
2、存储结构设计
此系统采用链接存储结构的设计,单链表是线性表的链接存储结构。链式存储线性表时,不需要使用地址连续的存储单元,即它不要求逻辑上相邻的两个元素在物理位置上也相邻,它是通过“链”建立起数据元素之间的逻辑关系,因此,对线性表的插入、删除不需要移动元素,而只需要修改指针。在单链表上实现插入和删除操作,无需移动结点,将工作指针指向合适的位置后,仅需修改结点之间的链接关系。单链表动态申请内存,可避免数据上溢或下溢,可节省存储空间。
银行储蓄管理系统需要需要进行频繁的插入和删除操作,因此使用单链表来实现。
四、算法设计
1、定义结点结构体,生成单链表:
template<class T>
struct Node{
long int number;
char name[10];
Node<T> *next;
T data;
};
2、用类模板定义用户表类,通过用户表类来实现查询用户信息、开户、销户和支出存储等功能。在用户表类中定义查询函数来查询用户信息,定义开户函数来进行用户开户操作,定义支出存储函数来进行用户存款和取款操作,定义销户函数来进行删除对应用户记录的操作:
template<class T>
class SavingList{
public:
SavingList(){};
int CreatSavingList();
void SearchAccount(long int x);
int DeleteAccount(long int x);
int InsertAccount(long int x);
void Record(long int x,int y);
private:
Node<T> *head;
};
3、定义主界面函数,生产主界面:
int Menusel