活期储蓄账目管理系统

基本要求:实现储户开户、销户、存入、支出等活动。要求能查找储户的账户,实现存款、
取款、插入、删除等操作。具体功能如下:
(1)实现储户开户。
(2)实现储户销户。
(3)向某账户存款。
(4)从某账户取款。
(5)排序显示所有账户信息。
(6)查询某账户余额。
(7)查询某账户交易记录。

 

  1 #include<iostream>
  2 #include<fstream>
  3 #include<iomanip>
  4 #include<string.h>
  5 using namespace std;
  6 #include<windows.h>
  7 #define MAX 500
  8 
  9 struct record
 10 {
 11     char name[20];
 12     char cardno[20];
 13     int card;
 14     char money[20];
 15 };
 16 
 17 //用户类,包含用户的姓名,卡号,密码,账户余额
 18 class account
 19 {
 20 public:
 21     char name[50];
 22     int card;
 23     int password;
 24     float balance;
 25     account(){card=0;password=123456;balance=0;};
 26     friend istream& operator >>(istream& in,account &temple);
 27     friend ostream& operator <<(ostream& out,account &temple);
 28 };
 29 
 30 //重载输入运算符
 31 istream& operator >>(istream& in,account &temple)
 32 {
 33     cout<<"姓名    卡号     密码   开户金额"<<endl;
 34     in>>temple.name>>temple.card>>temple.password>>temple.balance;
 35     cout<<endl;
 36     return in;
 37 }
 38 
 39 //重载输出运算符
 40 ostream& operator <<(ostream& out,account &temple)
 41 {
 42     out<<temple.name<<setw(8)<<temple.card<<setw(10)<<temple.password<<setw(8)<<temple.balance<<endl;
 43     return out;
 44 }
 45 
 46 //显示所有账户的信息
 47 void display(account user[],int total)
 48 {
 49     int i,j;
 50     account templeuser;
 51     if(total==0)
 52     {
 53         cout<<"无账户信息"<<endl<<endl;
 54     }
 55     else
 56     {
 57         cout<<"所有用户信息:"<<endl;
 58         for(i=0;i<total-1;i++)
 59         {
 60             for(j=0;j<total-1-i;j++)
 61             {
 62                 if(user[j].card>user[j+1].card)
 63                 {
 64                     templeuser=user[j];
 65                     user[j]=user[j+1];
 66                     user[j+1]=templeuser;
 67                 }
 68             }
 69         }
 70         for(i=0;i<total;i++)
 71         {
 72             cout<<"姓名:"<<user[i].name<<' '<<"卡号:"<<user[i].card<<' '<<"密码:"<<user[i].password<<' '<<"余额:"<<user[i].balance<<""<<endl;
 73         }
 74     }
 75 }
 76 
 77 //查找卡号
 78 int searchcard(account user[],int total,int templecard)
 79 {
 80     int i=0;
 81     while((i<total)&&(user[i].card!=templecard))
 82     {
 83         i++;
 84     }
 85     if(i>total-1)
 86     {
 87         return -1;
 88     }
 89     else
 90     {
 91         return i;
 92     }
 93 }
 94 
 95 int main()
 96 {
 97     system("color f3");
 98     record c[MAX];
 99     int i,total=0,templecard,k,m;
100     float money,templemoney;
101     account temple,user[MAX];
102     int select=0;
103     do
104     {
105          system("cls");
106          cout<<"*******************************"<<endl;
107          cout<<"*     活期储蓄账目管理系统    *"<<endl;
108          cout<<"*******************************"<<endl;
109          cout<<"*1--------------------储户开户*"<<endl;
110          cout<<"*2--------------------储户销户*"<<endl;
111          cout<<"*3------------------------存款*"<<endl;
112          cout<<"*4------------------------取款*"<<endl;
113          cout<<"*5------------显示所有账户信息*"<<endl;
114          cout<<"*6--------------------查询余额*"<<endl;
115          cout<<"*7----------------查询交易记录*"<<endl;
116          cout<<"*0------------------------退出*"<<endl;
117          cout<<"*******************************"<<endl<<endl;
118          cout<<"请输入您的选择:";
119          cin>>select;
120          switch(select)
121          {
122              case 1:cout<<endl<<"开户:"<<endl;
123                     cout<<"请输入您的基本信息:"<<endl;
124                     cin>>temple;
125                     i=0;
126                     while((i<total)&&(user[i].card!=temple.card))
127                     {
128                         i++;
129                     }
130                     if(i>total-1)
131                     {
132                         user[total]=temple;
133                         system("cls");
134                         cout<<"您已经成功开户!"<<endl<<"您的基本信息为:"<<endl;
135                         cout<<"姓名    卡号    密码   账户余额"<<endl;
136                         cout<<user[total];
137                         total++;
138                         system("pause");
139                         system("cls");
140                         {
141                             ofstream out("user.txt",ios::app);//打开输出文件流
142                             if(out)//如果打开成功
143                             {
144                                 out<<"姓名:"<<temple.name<<' '<<"卡号:"<<temple.card<<' '<<"密码:"<<temple.password<<' '<<"余额:"<<temple.balance<<""<<endl;//向文件输入信息
145                                 out.close();//关闭
146                             }
147                         }
148                         {
149                             ofstream out("record.txt",ios::app);
150                             if(out)
151                             {
152                                 out<<"姓名:"<<temple.name<<' '<<"卡号:"<<' '<<temple.card<<' '<<"存入"<<temple.balance<<""<<endl;
153                                 out.close();
154                             }
155                         }
156                     }
157                     else
158                     {
159                         system("cls");
160                         cout<<"账户已经存在,开户失败!!"<<endl;
161                         system("pause");
162                     }
163                 break;
164              case 2:cout<<endl<<"销户:"<<endl;
165                     cout<<"请输入要注销的卡号:";
166                     cin>>templecard;
167                     k=searchcard(user,total,templecard);
168                     if(k==-1)
169                     {
170                         system("cls");
171                         cout<<"输入有误,账户不存在"<<endl;
172                         system("pause");
173                     }
174                     else
175                     {
176                         system("cls");
177                         cout<<"您的账户已经成功注销!并返还您"<<user[k].balance<<"元."<<endl;
178                         system("pause");
179                         {
180                             ofstream out("record.txt",ios::app);
181                             if(out)
182                             {
183                                 out<<"姓名:"<<user[k].name<<' '<<"卡号:"<<' '<<user[k].card<<' '<<"注销账户,并返还"<<user[k].balance<<"元."<<endl;
184                                 out.close();
185                             }
186                         }
187                         for(i=k+1;i<total;i++)
188                         {
189                             user[i-1]=user[i];
190                         }
191                         total--;
192                         {
193                             ofstream out("user.txt");
194                             if(out)
195                             {
196                                 for(i=0;i<total;i++)
197                                 {
198                                     out<<"姓名:"<<user[i].name<<' '<<"卡号:"<<user[i].card<<' '<<"密码:"<<user[i].password<<' '<<"余额:"<<user[i].balance<<""<<endl;
199                                     out.close();
200                                 }
201                             }
202                         }
203                     }
204                     cout<<endl;
205                 break;
206              case 3:cout<<endl<<"存款:"<<endl;
207                     cout<<"请输入您的卡号:";
208                     cin>>templecard;
209                     k=searchcard(user,total,templecard);
210                     if(k==-1)
211                     {
212                         system("cls");
213                         cout<<"输入有误,账户不存在"<<endl;
214                         system("pause");
215                     }
216                     else
217                     {
218                         cout<<"请输入要存入的金额:";
219                         cin>>money;
220                         user[k].balance=user[k].balance+money;
221                         system("cls");
222                         cout<<"您已经成功存入"<<money<<"元,卡上还余"<<user[k].balance<<"元."<<endl;
223                         {
224                             ofstream out("record.txt",ios::app);
225                             if(out)
226                             {
227                                 out<<"姓名:"<<user[k].name<<' '<<"卡号:"<<' '<<user[k].card<<' '<<"存入"<<money<<""<<endl;
228                                 out.close();
229                             }
230                         }
231                         {
232                             ofstream out("user.txt");
233                             if(out)
234                             {
235                                 for(i=0;i<total;i++)
236                                 {
237                                     out<<"姓名:"<<user[i].name<<' '<<"卡号:"<<user[i].card<<' '<<"密码:"<<user[i].password<<' '<<"余额:"<<user[i].balance<<""<<endl;
238                                 }
239                                 out.close();
240                             }
241                         }
242                         system("pause");
243                     }
244                 break;
245              case 4:cout<<endl<<"取款:"<<endl;
246                     cout<<"请输入您的卡号:";
247                     cin>>templecard;
248                     k=searchcard(user,total,templecard);
249                     if(k==-1)
250                     {
251                         system("cls");
252                         cout<<"输入有误,账户不存在"<<endl;
253                         system("pause");
254                     }
255                     else
256                     {
257                         cout<<"请输入要取的金额:";
258                         cin>>money;
259                         if(user[k].balance<money)
260                         {
261                             cout<<"您的账户仅余"<<user[k].balance<<""<<endl;
262                             cout<<"是否继续领取?(是按1,否按0):";
263                             cin>>m;
264                             if(m==0)
265                             {
266                                 cout<<endl;
267                                 break;
268                             }
269                             else
270                             {
271                                 templemoney=user[k].balance;
272                                 user[k].balance=0;
273                                 {
274                                     ofstream out("record.txt",ios::app);
275                                     if(out)
276                                     {
277                                         out<<"姓名:"<<user[k].name<<' '<<"卡号:"<<' '<<user[k].card<<' '<<"取出"<<templemoney<<""<<endl;
278                                     }
279                                     out.close();
280                                 }
281                                 {
282                                     ofstream out("user.txt");
283                                     if(out)
284                                     {
285                                         for(i=0;i<total;i++)
286                                         {
287                                             out<<"姓名:"<<user[i].name<<' '<<"卡号:"<<user[i].card<<' '<<"密码:"<<user[i].password<<' '<<"余额:"<<user[i].balance<<""<<endl;
288                                         }
289                                         out.close();
290                                     }
291                                 }
292                                 system("cls");
293                                 cout<<"您已成功取出"<<templemoney<<"元,卡上还余"<<user[k].balance<<"元."<<endl;
294                                 system("pause");
295                             }
296                         }
297                         else
298                         {
299                             user[k].balance=user[k].balance-money;
300                             {
301                                 ofstream out("record.txt",ios::app);
302                                 if(out)
303                                 {
304                                     out<<"姓名:"<<user[k].name<<' '<<"卡号:"<<' '<<user[k].card<<' '<<"取出"<<money<<""<<endl;
305                                     out.close();
306                                 }
307                             }
308                             {
309                                 ofstream out("user.txt");
310                                 if(out)
311                                 {
312                                     for(i=0;i<total;i++)
313                                     {
314                                         out<<"姓名:"<<user[i].name<<' '<<"卡号:"<<user[i].card<<' '<<"密码:"<<user[i].password<<' '<<"余额:"<<user[i].balance<<""<<endl;
315                                     }
316                                     out.close();
317                                 }
318                             }
319                             system("cls");
320                             cout<<"您已成功取出"<<money<<"元,卡上还余"<<user[k].balance<<"元."<<endl;
321                             system("pause");
322                         }
323                     }
324                 break;
325              case 5:system("cls");
326                     display(user,total);
327                     system("pause");
328                 break;
329              case 6:cout<<endl<<"查询余额:"<<endl;
330                     cout<<"请输入您的卡号:";
331                     cin>>templecard;
332                     k=searchcard(user,total,templecard);
333                     if(k==-1)
334                     {
335                         system("cls");
336                         cout<<"输入有误,账户不存在"<<endl;
337                         system("pause");
338                     }
339                     else
340                     {
341                         system("cls");
342                         cout<<"您的账户余额为:"<<user[k].balance<<""<<endl;
343                         system("pause");
344                     }
345                 break;
346              case 7:cout<<endl<<"查询交易记录:"<<endl;
347                     cout<<"请输入要查询的卡号:";
348                     cin>>templecard;
349                     k=searchcard(user,total,templecard);
350                     if(k==-1)
351                     {
352                         system("cls");
353                         cout<<"输入有误,账户不存在"<<endl;
354                         system("pause");
355                     }
356                     else
357                     {
358                         ifstream in("record.txt",ios::app);//打开输入文件流
359                         if(in)//如果打开成功
360                         {
361                             for(i=0;i<MAX;i++)
362                             {
363                                 in>>c[i].name>>c[i].cardno>>c[i].card>>c[i].money;//从文件读取信息
364                             }
365                             system("cls");
366                             for(i=0;i<MAX;i++)
367                             {
368                                 if(c[i].card==templecard)
369                                 {
370                                     cout<<c[i].name<<' '<<' '<<c[i].cardno<<c[i].card<<' '<<' '<<c[i].money<<endl;//显示
371                                 }
372                             }
373                             in.close();//关闭
374                             system("pause");
375                         }
376                     }
377                 break;
378          }
379     }while(select!=0);
380     system("cls");
381     cout<<"欢迎使用本系统!!"<<endl;
382     return 0;
383 }

 

转载于:https://www.cnblogs.com/xautlmx/p/3493417.html

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/402002.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

面向过程 VS 面向对象

面向过程&#xff08;Process Oriented&#xff09;这个词是在面向对象&#xff08;Object Oriented&#xff09;出现之后为与之相对而提出的。其实它在以前基本被叫做“结构化编程”。 早期的程序设计&#xff0c;大量使用共享变量&#xff08;全局变量&#xff09;和GOTO语句…

一、OpenStack架构

DashBoardHorizon提供WEB界面ComputerNova计算也就是虚拟机NetworkingNeutron提供给nova网络支持Object StorageSwift提供对象存储Block StorageCinder提供云硬盘给nova&#xff0c;同时备份到SwiftIdentity SserviceKeystone提供所有组件的认证Image ServiceGlance提供给nova镜…

Java 三大特性 —— 多态

Java中多态性的实现 一、什么是多态 1.面向对象的三大特性&#xff1a;封装、继承、多态。从一定角度来看&#xff0c;封装和继承几乎都是为多态而准备的。这是我们最后一个概念&#xff0c;也是最重要的知识点。 2.多态的定义&#xff1a;指允许不同类的对象对同一消息做出响应…

linux /proc/cpuinfo文件分析

为什么80%的码农都做不了架构师&#xff1f;>>> 基于不同指令集&#xff08;ISA&#xff09;的CPU产生的/proc/cpuinfo文件不一样&#xff0c;基于X86指令集CPU的/proc/cpuinfo文件包含如下内容&#xff1a; processor  &#xff1a; 0vendor_id  &#xff1a;…

Java 高级类(下) —— 内部类和匿名类

Java内部类&#xff08;Inner Class&#xff09;&#xff0c;类似的概念在C里也有&#xff0c;那就是嵌套类&#xff08;Nested Class&#xff09;&#xff0c;乍看上去内部类似乎有些多余&#xff0c;它的用处对于初学者来说可能并不是那么显著&#xff0c;但是随着对它的深入…

wcf会话、实例化、并发

在asp.net中含有会话&#xff0c;是保存值&#xff0c;供所有的程序使用&#xff0c;同样在wcf中也有会话&#xff0c;供多个客户端使用。 会话的支持通常在契约定义的开始标出&#xff0c;如下 [ServiceContract(Namespace "http://Microsoft.ServiceModel.Samples"…

Java 高级类(上) —— 抽象类和接口

在面向对象的概念中&#xff0c;我们知道所有的对象都是通过类来描绘的&#xff0c;但是并不是所有的类都是用来描绘对象的&#xff0c;如果一个类中没有包含足够的信息来描绘一个具体的对象&#xff0c;这样的类就是抽象类。 抽象类往往用来表征我们在对问题领域进行分析、 设…

【Git入门之五】版本管理

2019独角兽企业重金招聘Python工程师标准>>> 1.版本回退 我们先看一下从项目开始到现在做了什么操作。 [cpp] view plaincopy #总共是4个操作 $ git log --prettyoneline c5c83cfcdb25c67a5c66b4fe3844d0ea912830ec remove JackyData03 a25c58804cb3f4045564fc0e…

Java 进阶——单例模式

一、单例模式概念及特点 Java中单例模式是一种常见的设计模式&#xff0c;单例模式分三种&#xff1a;懒汉式单例、饿汉式单例、登记式单例三种。 单例模式有一下特点&#xff1a; 1、单例类只能有一个实例。 2、单例类必须自己自己创建自己的唯一实例。 3、单例类必须给所有其…

异步网络消息处理框架

最近一段时间将原来写的kendynet网络框架重写了大部分的代码&#xff0c;让提供的接口更清晰&#xff0c;对用户更友好。 整个框架的架构分层3层&#xff1a; 1)单线程,基于原始数据流的网络接口,在这一层上&#xff0c;没有提供封包的处理&#xff0c;定时器事件等等。使用者可…

Java 关键字—— static 与 final

static表示“全局”或者“静态”的意思&#xff0c;用来修饰成员变量和成员方法&#xff0c;也可以形成静态static代码块&#xff0c;但是Java语言中没有全局变量的概念。 被static修饰的成员变量和成员方法独立于该类的任何对象。也就是说&#xff0c;它不依赖类特定的实例&am…

Linux 小记录

<1>bzero 原型&#xff1a;extern void bzero(void *s, int n);用法&#xff1a;#include <string.h> 功能&#xff1a;置字节字符串s的前n个字节为零。 说明&#xff1a;bzero无返回值。 LINUX平台支持bzero的&#xff0c;但是其并不在ANSI C中定义&…

平面设计师的自我修养是什么样子的?

首先让我们来定义设计的概念&#xff0c;因为这是一切后续讨论的基础。我认为比较适用的定义是&#xff1a;赋予自然或社会中的资源或元素以新的秩序&#xff0c;从而来解决特定的问题。我不想用诸如“设计是人类区别动物的属性”这类未经实证的乱贴标签的话来强调设计的重要性…

Java 三大特性之——继承

继承(inheritance)是面向对象的重要概念。继承是除组合(composition)之外&#xff0c;提高代码重复可用性(reusibility)的另一种重要方式。我们在组合(composition)中看到&#xff0c;组合是重复调用对象的功能接口。我们将看到&#xff0c;继承可以重复利用已有的类的定义。 类…

基于Linux的 Open×××网络之网络架构应用实例

基于Linux的 Open网络之网络架构应用实例Open 概述Open 是一个开源的加密隧道构建工具&#xff0c;基于 OpenSSL 的 SSL/TLS 协议&#xff0c;可以在 Internet中实现点对点的 SSL 安全连接。使用 Open 的好处是安全、易用和稳定&#xff0c;且认证方式灵活&#xff0c;具备实现…

Java 进阶——自动装箱和自动拆箱

1、什么是自动装箱拆箱 基本数据类型的自动装箱(autoboxing)、拆箱(unboxing)是自J2SE 5.0开始提供的功能。 一般我们要创建一个类的对象实例的时候&#xff0c;我们会这样&#xff1a; Class a new Class(parameter); 当我们创建一个Integer对象时&#xff0c;却可以这样&…

基于KVM的虚拟化研究及应用

引言 虚拟化技术是IBM在20世纪70年代首先应用在IBM&#xff0f;370大型机上&#xff0c;这项技术极大地提高了大型机资源利用率。随着软硬件技术的迅速发展&#xff0c;这项属于大型机及专利的技术开始在普通X86计算机上应用并成为当前计算机发展和研究的一个热点方向。目前&am…

Java 进阶—— super 和 this 的用法

一、this Java关键字this只能用于方法方法体内。当一个对象创建后&#xff0c;Java虚拟机&#xff08;JVM&#xff09;就会给这个对象分配一个引用自身的指针&#xff0c;这个指针的名字就是this。因此&#xff0c;this只能在类中的非静态方法中使用&#xff0c;静态方…

谨慎设计一个单例类

如果设计成一个单例类&#xff0c;虽然不存在对象频繁回收&#xff0c;可要长期占用资源。而且意味着外面对多线程&#xff0c;到了这里需要排队进入。什么时间设计成单例呢&#xff1f;设计一个单例就意味着&#xff0c; 我们存在资源竞争&#xff0c;必须的&#xff0c;二&am…

unity中脚本编辑器UnIDE

引言 unity默认脚本编辑器是MonoDevelop&#xff0c;随着unity4.3面世&#xff0c;MonoDevelop (4.0.1)版本也随之而来&#xff0c;更新为界面更改和bug自动修复功能等&#xff0c;具体还未使用。 点击unity的Edit下的属性(preference)&#xff0c;可以更改默认脚本编辑器&…