银行储蓄管理系统 课程设计
一、问题描述
随着经济的加速发展,我国的银行业将面临更加激烈的同业竞争,如何提供更多的金融产品和更优质的服务,如何吸引更多的客户,如何利用计算机技术加强银行账户信息管理,提高银行的工作效率和业务竟争能力是摆在各家银行面前的一个迫切需要解诀的问题。银行每天要处理大量的存取款事件,做好存取款是银行工作重要的环节,然而要有效处理必须要有良好的程序和数据管理系统来建立一个良好的软件系统来实现快速、有效、准确、安全的处理银行事物。
我做的系统主要用于银行的账户管理系统,系统实现的主要有储蓄卡开户管理、存取款管理、用户查询信息等功能,它可以帮助客户有效、准确、并且高效的完成存取事件。
通过该银行账户管理系统地运行,使银行办公人员可以轻松快捷的完成对账户管理的任务,提高账目管理效率,使银行的账目管理工作系统化、规范化、自动化。
我所做的银行活期储蓄处理程序主要用途是利用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 Menuselect()
{int n;
cout<<"\t*---------------------------------------------------------*\n"<<endl;
cout<<"\t* Welcome to SL BANK! *\n"<<endl;
cout<<"\t*--------------------------Menu---------------------------*\n"<<endl;
cout<<"\t* 1.查询账户 *\n"<<endl;
cout<<"\t* 2.开户 *\n"<<endl;
cout<<"\t* 3.支出存储记录 *\n"<<endl;
cout<<"\t* 4.销户 *\n"<<endl;
cout<<"\t* 5.退出 *\n"<<endl;
cout<<"\t*---------------------------------------------------------*\n"<<endl;
do
{cout<<"请输入你的选择(1~5):\n"<<endl;
cin>>n;
}while(n<1||n>5);
return(n);
}
4、定义界面选择函数,进入和退出界面。
五、时间复杂度和空间复杂度分析
此系统用单链表来对用户信息进行存储、查询、插入与删除等操作,单链表是一种链式存储结构。在链表上查找与给定值相等的元素值需要O(n)时间,即查询用户信息的时间复杂度为O(n)。用链表进行插入与删除操作更加方便,其时间复杂度与顺序表相比较更小。
单链表动态申请内存,可避免数据上溢或下溢,可节省存储空间,所以其空间复杂度较小。
六、源代码
#include<iostream.h>#include <string.h>
template<class T>
struct Node{
long int number;
char name[10];
Node<T> *next;
T data;
};
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;
};
//建立已有储户数据
template<class T>
int SavingList<T>::CreatSavingList()
{
head=new Node<T>;
Node<T> *p;
head->next=NULL;
long int number;
int data;
char name[10];
cout<<"请输入账户号: ";
cin>>number;
cout<<"请输入姓名: ";
cin>>name;
cout<<"请输入账户余额: ";
cin>>data;
while(number/1e7>=1&&number/1e7<=9)
{p=new Node<T>;
p->number=number;
strcpy(p->name,name);
p->data=data;
p->next=head->next;
head->next=p;
cout<<"请输入账户号: ";
cin>>number;
cout<<"请输入姓名: ";
cin>>name;
cout<<"请输入账户余额: ";
cin>>data;
}
return 0;
}
//查找账户
template<class T>
void SavingList<T>::SearchAccount(long int x)
{
if(x/1e7<1||x/1e7>9)
{cout<<"您输入的账户不存在"<<endl;
return;}
Node<T> *p;
p=head;
while(p!=NULL&&p->number!=x)
{p=p->next;}
if(p==NULL)
{cout<<"您输入的账户未找到"<<endl;}
else
{
cout<<"账户名: "<<p->name<<endl;
cout<<"账户号码: "<<p->number<<endl;
cout<<"账户余额: "<<p->data<<"元"<<endl;}
}
//销户
template<class T>
int SavingList<T>::DeleteAccount(long int x)
{
Node<T> *p=head,*q=NULL;
T i;
int count=0;
while(p!=NULL&&count<x-1)
{
p=p->next;
count++;
}
if(p==NULL||p->next==NULL)
throw"位置";
else{
q=p->next;i=q->data;
p->next=q->next;
delete q;
return i;
}
}
//开户
template<class T>
int SavingList<T>::InsertAccount(long int x)
{
Node<T> *p,*q;
q=new Node<T>;
char w[10];
int i;
p=head;
q->number=x;
q->next=p->next;
p->next=q;
cout<<"请输入姓名: ";
cin>>w;
cout<<"请输入余额: ";
cin>>i;
strcpy(q->name,w);
q->data=i;
cout<<"您的新账户的信息是:"<<endl;
cout<<"账户名: "<<q->name<<endl;
cout<<"账户号码: "<<q->number<<endl;
cout<<"账户余额: "<<q->data<<"元"<<endl;
return 0;
}
//存取款记录
template<class T>
void SavingList<T>::Record(long int x,int y)
{
Node<T> *p;
p=head;
while(p!=NULL&&p->number!=x)
{p=p->next;}
if(p==NULL)
cout<<"您输入的账户不存在"<<endl;
else
{p->data=p->data+y;
cout<<"目前您的账户信息:"<<endl;
cout<<"账户名: "<<p->name<<endl;
cout<<"账户号码: "<<p->number<<endl;
cout<<"账户余额: "<<p->data<<"元"<<endl;}
}
int Menuselect()
{int n;
cout<<"\t*---------------------------------------------------------*\n"<<endl;
cout<<"\t* Welcome to SL BANK! *\n"<<endl;
cout<<"\t*--------------------------Menu---------------------------*\n"<<endl;
cout<<"\t* 1.查询账户 *\n"<<endl;
cout<<"\t* 2.开户 *\n"<<endl;
cout<<"\t* 3.支出存储记录 *\n"<<endl;
cout<<"\t* 4.销户 *\n"<<endl;
cout<<"\t* 5.退出 *\n"<<endl;
cout<<"\t*---------------------------------------------------------*\n"<<endl;
do
{cout<<"请输入你的选择(1~5):\n"<<endl;
cin>>n;
}while(n<1||n>5);
return(n);
}
int main()
{
SavingList<int> T;
T.CreatSavingList();
long int x;
int y,n;
for(;;)
{switch (Menuselect())
{
case 1:{cout<<"请输入您要查询的账户:";
cin>>x;
T.SearchAccount(x);
cout<<"是否需要继续进行操作?是请输入1,放弃则输入0: ";
cin>>y;
if(y==1)
{cout<<"****************************************************************\n";
cout<<"\t 1.支出存储 2.销户 \n";
cout<<"****************************************************************\n";
do {cout<<"请选择: ";
cin>>n;}while(n!=1&&n!=2);
if(n==1)
{ int a;
cout<<"请输入账户记录: ";
cin>>a;
T.Record(x,a);}
if(n==2)
{cout<<"确认要销户吗?是请输入1,放弃输入0: ";
int b;
cin>>b;
if(b==1)
T.DeleteAccount(x);}
}
}break;
case 2:{long int c;
cout<<"请输入您通过系统得到的账号: ";
cin>>c;
while(c/1e7<1||c/1e7>9)
{cout<<"账户格式错误,请检查后重新输入: ";
cin>>c;}
T.InsertAccount(c);
}break;
case 3:{long int r;
int t,l;
cout<<"请输入执行操作的账户: ";
cin>>r;
cout<<"请输入账户执行情况: " ;
cin>>t;
T.Record(r,t);
cout<<"继续操作请输入1,退出输入0:"<<endl;
cin>>l;
while(l==1)
{cout<<"请输入执行操作的账户: ";
cin>>r;
cout<<"请输入账户执行情况: " ;
cin>>t;
T.Record(r,t);
cout<<"继续操作请输入1,退出输入0"<<endl;
cin>>l;
}
}break;
case 4:{long int k;
int m;
cout<<"请输入要销掉的账户: ";
cin>>k;
while(k/1e7<1||k/1e7>9)
{cout<<"账户格式错误,请检查后重新输入: ";
cin>>k;}
T.DeleteAccount(k);
cout<<"继续操作请输入1,退出输入0"<<endl;
cin>>m;
while(m==1)
{cout<<"请输入要销掉的账户: ";
cin>>k;
while(k/1e7<1||k/1e7>9)
{cout<<"账户格式错误,请检查后重新输入: ";
cin>>k;}
T.DeleteAccount(k);
cout<<"继续操作请输入1,退出输入0"<<endl;
cin>>m;
}
}break;
case 5:cout<<"您已安全退出系统"<<endl;break;
}
}
return 0;
}
七、程序运行结果
建立已有账户数据:
进入主界面:
查询操作:
开户操作:
支出存储操作:
八、心得
这次的程序设计我用了单链表和类模板,为了编好这个程序,我看了查阅了基本相关的书籍,也在网上查找资料去学习,还看了很多相关的例子,经过一段时间的学习,不断的编写、调试和改写程序,终于做出了这个银行储蓄管理系统。
在开始做这个程序设计时,有很多不懂的地方,于是我很焦虑不安,担心自己完成不了。我就上网查找一些相关资料,参考别人做的类似的程序。但网上的很多程序我都不太能看懂,应该是我学识太浅的原因。我再回归到课本,将网上的资料与书本结合起来,也能明白些许。对我来说,这个过程实属不易,但我明白这是一个不能逃避的,一旦逃避就不能继续在学习编程这条路上走下去的必经的关卡,所以我要坚持到最后。我不是一个天才,也许在信息技术这方面比其他同学还要迟钝些,但是既然我选择了这条路,我就会坚持到底,而勤能补拙,我要更加努力。这次的程序设计我花费了很多时间,但结果我并不很满意,还有很大的提升空间。
这次的课程设计,让我用了一个相对比较集中的时间去练习我的编程,特别是自己的动手能力,因为这次的课程设计覆盖面比较广泛。经过了这次的设计,让我找到自己学习上的漏洞,一些课程设计上的以前没有弄懂的知识,都在这次的课程设计上有所提高。
这次的c++程序设计实习让我对“数据结构”这门课程有了更进一步的认识。这次实习将理论与实践结合起来,是在我们学习了一个学期的课程后一个检验自己的很好的学习机会,也让我知道自己的学习有很多不足的地方,有很多不懂的知识。因此,在接下来的学习中,我必须更认真、更努力。
银行储蓄管理系统 课程设计
一、问题描述
随着经济的加速发展,我国的银行业将面临更加激烈的同业竞争,如何提供更多的金融产品和更优质的服务,如何吸引更多的客户,如何利用计算机技术加强银行账户信息管理,提高银行的工作效率和业务竟争能力是摆在各家银行面前的一个迫切需要解诀的问题。银行每天要处理大量的存取款事件,做好存取款是银行工作重要的环节,然而要有效处理必须要有良好的程序和数据管理系统来建立一个良好的软件系统来实现快速、有效、准确、安全的处理银行事物。
我做的系统主要用于银行的账户管理系统,系统实现的主要有储蓄卡开户管理、存取款管理、用户查询信息等功能,它可以帮助客户有效、准确、并且高效的完成存取事件。
通过该银行账户管理系统地运行,使银行办公人员可以轻松快捷的完成对账户管理的任务,提高账目管理效率,使银行的账目管理工作系统化、规范化、自动化。
我所做的银行活期储蓄处理程序主要用途是利用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 Menuselect()
{int n;
cout<<"\t*---------------------------------------------------------*\n"<<endl;
cout<<"\t* Welcome to SL BANK! *\n"<<endl;
cout<<"\t*--------------------------Menu---------------------------*\n"<<endl;
cout<<"\t* 1.查询账户 *\n"<<endl;
cout<<"\t* 2.开户 *\n"<<endl;
cout<<"\t* 3.支出存储记录 *\n"<<endl;
cout<<"\t* 4.销户 *\n"<<endl;
cout<<"\t* 5.退出 *\n"<<endl;
cout<<"\t*---------------------------------------------------------*\n"<<endl;
do
{cout<<"请输入你的选择(1~5):\n"<<endl;
cin>>n;
}while(n<1||n>5);
return(n);
}
4、定义界面选择函数,进入和退出界面。
五、时间复杂度和空间复杂度分析
此系统用单链表来对用户信息进行存储、查询、插入与删除等操作,单链表是一种链式存储结构。在链表上查找与给定值相等的元素值需要O(n)时间,即查询用户信息的时间复杂度为O(n)。用链表进行插入与删除操作更加方便,其时间复杂度与顺序表相比较更小。
单链表动态申请内存,可避免数据上溢或下溢,可节省存储空间,所以其空间复杂度较小。
六、源代码
#include<iostream.h>#include <string.h>
template<class T>
struct Node{
long int number;
char name[10];
Node<T> *next;
T data;
};
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;
};
//建立已有储户数据
template<class T>
int SavingList<T>::CreatSavingList()
{
head=new Node<T>;
Node<T> *p;
head->next=NULL;
long int number;
int data;
char name[10];
cout<<"请输入账户号: ";
cin>>number;
cout<<"请输入姓名: ";
cin>>name;
cout<<"请输入账户余额: ";
cin>>data;
while(number/1e7>=1&&number/1e7<=9)
{p=new Node<T>;
p->number=number;
strcpy(p->name,name);
p->data=data;
p->next=head->next;
head->next=p;
cout<<"请输入账户号: ";
cin>>number;
cout<<"请输入姓名: ";
cin>>name;
cout<<"请输入账户余额: ";
cin>>data;
}
return 0;
}
//查找账户
template<class T>
void SavingList<T>::SearchAccount(long int x)
{
if(x/1e7<1||x/1e7>9)
{cout<<"您输入的账户不存在"<<endl;
return;}
Node<T> *p;
p=head;
while(p!=NULL&&p->number!=x)
{p=p->next;}
if(p==NULL)
{cout<<"您输入的账户未找到"<<endl;}
else
{
cout<<"账户名: "<<p->name<<endl;
cout<<"账户号码: "<<p->number<<endl;
cout<<"账户余额: "<<p->data<<"元"<<endl;}
}
//销户
template<class T>
int SavingList<T>::DeleteAccount(long int x)
{
Node<T> *p=head,*q=NULL;
T i;
int count=0;
while(p!=NULL&&count<x-1)
{
p=p->next;
count++;
}
if(p==NULL||p->next==NULL)
throw"位置";
else{
q=p->next;i=q->data;
p->next=q->next;
delete q;
return i;
}
}
//开户
template<class T>
int SavingList<T>::InsertAccount(long int x)
{
Node<T> *p,*q;
q=new Node<T>;
char w[10];
int i;
p=head;
q->number=x;
q->next=p->next;
p->next=q;
cout<<"请输入姓名: ";
cin>>w;
cout<<"请输入余额: ";
cin>>i;
strcpy(q->name,w);
q->data=i;
cout<<"您的新账户的信息是:"<<endl;
cout<<"账户名: "<<q->name<<endl;
cout<<"账户号码: "<<q->number<<endl;
cout<<"账户余额: "<<q->data<<"元"<<endl;
return 0;
}
//存取款记录
template<class T>
void SavingList<T>::Record(long int x,int y)
{
Node<T> *p;
p=head;
while(p!=NULL&&p->number!=x)
{p=p->next;}
if(p==NULL)
cout<<"您输入的账户不存在"<<endl;
else
{p->data=p->data+y;
cout<<"目前您的账户信息:"<<endl;
cout<<"账户名: "<<p->name<<endl;
cout<<"账户号码: "<<p->number<<endl;
cout<<"账户余额: "<<p->data<<"元"<<endl;}
}
int Menuselect()
{int n;
cout<<"\t*---------------------------------------------------------*\n"<<endl;
cout<<"\t* Welcome to SL BANK! *\n"<<endl;
cout<<"\t*--------------------------Menu---------------------------*\n"<<endl;
cout<<"\t* 1.查询账户 *\n"<<endl;
cout<<"\t* 2.开户 *\n"<<endl;
cout<<"\t* 3.支出存储记录 *\n"<<endl;
cout<<"\t* 4.销户 *\n"<<endl;
cout<<"\t* 5.退出 *\n"<<endl;
cout<<"\t*---------------------------------------------------------*\n"<<endl;
do
{cout<<"请输入你的选择(1~5):\n"<<endl;
cin>>n;
}while(n<1||n>5);
return(n);
}
int main()
{
SavingList<int> T;
T.CreatSavingList();
long int x;
int y,n;
for(;;)
{switch (Menuselect())
{
case 1:{cout<<"请输入您要查询的账户:";
cin>>x;
T.SearchAccount(x);
cout<<"是否需要继续进行操作?是请输入1,放弃则输入0: ";
cin>>y;
if(y==1)
{cout<<"****************************************************************\n";
cout<<"\t 1.支出存储 2.销户 \n";
cout<<"****************************************************************\n";
do {cout<<"请选择: ";
cin>>n;}while(n!=1&&n!=2);
if(n==1)
{ int a;
cout<<"请输入账户记录: ";
cin>>a;
T.Record(x,a);}
if(n==2)
{cout<<"确认要销户吗?是请输入1,放弃输入0: ";
int b;
cin>>b;
if(b==1)
T.DeleteAccount(x);}
}
}break;
case 2:{long int c;
cout<<"请输入您通过系统得到的账号: ";
cin>>c;
while(c/1e7<1||c/1e7>9)
{cout<<"账户格式错误,请检查后重新输入: ";
cin>>c;}
T.InsertAccount(c);
}break;
case 3:{long int r;
int t,l;
cout<<"请输入执行操作的账户: ";
cin>>r;
cout<<"请输入账户执行情况: " ;
cin>>t;
T.Record(r,t);
cout<<"继续操作请输入1,退出输入0:"<<endl;
cin>>l;
while(l==1)
{cout<<"请输入执行操作的账户: ";
cin>>r;
cout<<"请输入账户执行情况: " ;
cin>>t;
T.Record(r,t);
cout<<"继续操作请输入1,退出输入0"<<endl;
cin>>l;
}
}break;
case 4:{long int k;
int m;
cout<<"请输入要销掉的账户: ";
cin>>k;
while(k/1e7<1||k/1e7>9)
{cout<<"账户格式错误,请检查后重新输入: ";
cin>>k;}
T.DeleteAccount(k);
cout<<"继续操作请输入1,退出输入0"<<endl;
cin>>m;
while(m==1)
{cout<<"请输入要销掉的账户: ";
cin>>k;
while(k/1e7<1||k/1e7>9)
{cout<<"账户格式错误,请检查后重新输入: ";
cin>>k;}
T.DeleteAccount(k);
cout<<"继续操作请输入1,退出输入0"<<endl;
cin>>m;
}
}break;
case 5:cout<<"您已安全退出系统"<<endl;break;
}
}
return 0;
}
七、程序运行结果
建立已有账户数据:
进入主界面:
查询操作:
开户操作:
支出存储操作:
八、心得
这次的程序设计我用了单链表和类模板,为了编好这个程序,我看了查阅了基本相关的书籍,也在网上查找资料去学习,还看了很多相关的例子,经过一段时间的学习,不断的编写、调试和改写程序,终于做出了这个银行储蓄管理系统。
在开始做这个程序设计时,有很多不懂的地方,于是我很焦虑不安,担心自己完成不了。我就上网查找一些相关资料,参考别人做的类似的程序。但网上的很多程序我都不太能看懂,应该是我学识太浅的原因。我再回归到课本,将网上的资料与书本结合起来,也能明白些许。对我来说,这个过程实属不易,但我明白这是一个不能逃避的,一旦逃避就不能继续在学习编程这条路上走下去的必经的关卡,所以我要坚持到最后。我不是一个天才,也许在信息技术这方面比其他同学还要迟钝些,但是既然我选择了这条路,我就会坚持到底,而勤能补拙,我要更加努力。这次的程序设计我花费了很多时间,但结果我并不很满意,还有很大的提升空间。
这次的课程设计,让我用了一个相对比较集中的时间去练习我的编程,特别是自己的动手能力,因为这次的课程设计覆盖面比较广泛。经过了这次的设计,让我找到自己学习上的漏洞,一些课程设计上的以前没有弄懂的知识,都在这次的课程设计上有所提高。
这次的c++程序设计实习让我对“数据结构”这门课程有了更进一步的认识。这次实习将理论与实践结合起来,是在我们学习了一个学期的课程后一个检验自己的很好的学习机会,也让我知道自己的学习有很多不足的地方,有很多不懂的知识。因此,在接下来的学习中,我必须更认真、更努力。