银行管理系统
// Created by 丁小未 on 13-7-23.
// Copyright (c) 2013年 dingxiaowei. All rights reserved.
//
//项目:银行管理系统
//系统实现的主要有管理,取款机管理,用户查询等功能:
//*管理模块:存款、取款、开户、销户、修改信息、办卡、挂失卡;
//*用户查询模块;
//*取款机信息管理模块:管理员管理查询和维护、客户查询和取款等功能;
//可以考虑利率
#include iostream
using namespace std;
#include string
#include fstream
#include time.h
#include vector
#define MAX 20
class Person
{
public:
string cardNum;//卡号
string cardName;//用户名
double money;//余额
string beginTime;//开户日期
bool useState=false;//是否挂失
/*******用户的功能***********/
//查询我当前用户的账户余额
double SelectMoney()
{
return money;
}
//选择挂失和解锁卡
bool ChooseUseState(bool f)
{
useState = f;
return useState;
}
//取钱
double GetMoney(double m)
{
if (m money) {
cout "您的余额不足!" endl;
}
return money -= m;
}
//存钱
double AddMoney(double m)
{
return money += m;
}
//构造函数
Person(string cardnum,string cardname,double money,string begintime,bool usestate)
{
this- cardNum = cardnum;
this- cardName = cardname;
this- money = money;
this- beginTime = begintime;
this- useState = usestate;
}
//默认构造函数
Person(){};
//运算符重载
// Person person = (const Person other)
// {
//
// }
};
int total=0;//记录总数
Person person[MAX];//定义一个person数组
double price=0.1;//默认汇率
/*******************函数申明******************************************/
void set_psw();//设置密码
int psw_check();//密码验证
void Show_menu();//显示菜单
int get_managermenu_choice();//接受管理员菜单选择
void PrintPersonTitle();//打印头信息
char* GetTime();//获取系统当前时间
void Show_Iden_menu();//身份选择菜单
int get_Idemenu_choice();//接受身份菜单选择
void inputInfile(Person person[],int n);//将类数组写入文件
void Show_PersonMenu();//显示普通用户功能菜单
void Show_Managermenu();//显示管理员功能菜单
int get_personmenu_choice();//普通用户接受功能菜单
int findPerson(Person *person,int n,string findName);//查找名字返回序列号
bool ISManager(string name,string pwd);//验证管理员身份
bool ISPerson(string name,string pwd);//验证用户信息
/**********************************************************************/
//查找名字返回序列号
int findPerson(Person *person,int n,string findName)
{
int i;
int m=-1;
for (i=0; i i++) {
if (person[i].cardName == findName) {
m=i;
break;
}
}
return m;//返回person的下标
}
//将类数组写入文件,数组本身就是地址传递
void inputInfile(Person person[],int n)
{
ofstream onfile;//写入文件类
onfile.open("Person.txt");
for (int i=0; i i++) {
onfile person[i].cardNum " " person[i].cardName " " person[i].money " " person[i].beginTime " " person[i].useState "\n" endl;
}
onfile.close();
}
//管理员共有继承自普通人
class Manager:public Person
{
public:
//开户
void addPerson(Person person[],int n)
{
char f=y;
string sTemp;
char *t=GetTime();
ofstream onfile;//写入文件
onfile.open("person.txt");
do {
cout "输入卡号:";
cin sTemp;
onfile sTemp " ";
person[n].cardNum = sTemp;
cout "请输入用户名:";
cin sTemp;
onfile sTemp;
onfile sTemp " ";
person[n].cardName = sTemp;
onfile 0 " ";//余额默认是0
person[n].money = 0;
sTemp = t;
onfile sTemp " ";//开户时间
person[n].beginTime = sTemp;
onfile 0;//0代表没有挂失,正常使用
person[n].useState = false;
onfile "\n";
++n;
cout "还要继续开户吗?(y/n)";
cin f;
} while (f==y);
}
//销户
void deletePerson(Person person[],int n,string delname)
{
int i;
int j=0;
for (i = 0; i i++) {
if (person[i].cardName == delname) {
for (j=i; j n-1; j++) {
person[j].cardName = person[j+1].cardName;
person[j].cardNum = person[j+1].cardNum;
person[j].money = person[j+1].money;
person[j].beginTime = person[j+1].beginTime;
person[j].useState = person[j+1].useState;
}
n--;
i--;
}
}
//从写入文件
ofstream onfile;//写入文件类
onfile.open("Person.txt");
for (int i=0; i i++) {
onfile person[i].cardNum " " person[i].cardName " " person[i].money " " person[i].beginTime " " person[i].useState "\n" endl;
}
onfile.close();
}
//修改卡的信息
void alterPerson(string name,Person person[],int n)
{
int i=findPerson(person,total, name);
if(i 0)
{
cout "对不起,没有该账户!" endl;
}
else
{
double _money;
string sTemp;
int jj;
cout "从新修改账户信息:" endl;
cout "修改账户号:";
cin sTemp;
person[i].cardNum = sTemp;
cout "修改账户名:";
cin sTemp;
person[i].cardName = sTemp;
cout "修改账户余额:";
cin _money;
person[i].money = _money;
cout "修改挂失/解锁(1.挂失 2.解锁)";
cin jj;
if (jj==1) {
person[i].useState = true;
}
else
{
person[i].useState = false;
}
}
//将信息重写入文档
ofstream onfile;//写入文件类
onfile.open("Person.txt");
for (int i=0; i i++) {
onfile person[i].cardNum " " person[i].cardName " " person[i].money " " person[i].beginTime " " person[i].useState "\n" endl;
}
onfile.close();
}
//选择某用户卡的挂失和解锁
void chooseUseFunction(string name,Person person[],int n)
{
int i=findPerson(person,total, name);
if(i 0)
{
cout "对不起,没有该账户!" endl;
}
else
{
int jj;
cout "修改挂失/解锁(1.挂失 2.解锁)";
cin jj;
if (jj==1) {
person[i].useState = true;
}
else
{
person[i].useState = false;
}
}
//将信息重写入文档
ofstream onfile;//写入文件类
onfile.open("Person.txt");
for (int i=0; i i++) {
onfile person[i].cardNum " " person[i].cardName " " person[i].money " " person[i].beginTime " " person[i].useState "\n" endl;
}
onfile.close();
}
//用户查询(查询所有的卡信息)
void showAllCard(Person person[],int n)
{
cout "当前有" n "条记录:" endl;
PrintPersonTitle();
for (int i=0; i i++) {
cout person[i].cardNum " " person[i].cardName " " person[i].money " " person[i].beginTime " " person[i].useState endl;
}
}
};
/*********************************************************************/
void IdMenu(Manager manager);//身份菜单响应
void managermenu(Manager manager);//管理员菜单相应
void personmenu();//用户菜单
/********************函数定义*****************************************/
//获取当前系统时间
char* GetTime()
{
{
time_t now;
struct tm *timenow;
time( now);
timenow = localtime( now);
char *p = asctime(timenow);
return p;
}
}
//身份菜单响应
void IdMenu(Manager manager)
{
Show_Iden_menu();//菜单显示
switch (get_Idemenu_choice())
{
case 1:
{
//进入管理员身份验证
string n,s;
cout "请输入管理员账号:";
cin n;
cout "请输入管理员密码:";
cin s;
if (ISManager(n, s)) {
managermenu(manager);
}
else
{
cout "验证错误" endl;
}
}
break;
case 2:
//进入客户身份验证
{
string n,s;
cout "请输入账户名:";
cin n;
cout "请输入账户密码:";
cin s;
// if (ISManager(n, s)) {
// managermenu(manager);
// }
if (ISPerson(n,s)) {
cout "验证用户成功" endl;
}
else{
cout "验证用户失败";
}
}
break;
default:
cout "选择错误" endl;
break;
}
}
//验证客户信息
bool ISPerson(string name,string pwd)
{
int i=0;
string password="dingxiaowei";
for (i=0; i total; i++) {
if(person[i].cardName == name password==pwd);
{
return true;
break;
}
}
if (i==total) {
return false;
}
}
//验证管理员身份
bool ISManager(string name,string pwd)
{
string n,p;
ifstream infile;//读取文件类
infile.open("manager.txt");
if(infile.is_open())
{
infile n p;
}
else
{
cout "打开失败!";
}
if (n==name p==pwd)
{
return true;
}
else
{
return false;
}
}
//管理员菜单相应
void managermenu(Manager manager)
{
bool flag = false;
do
{
Show_Managermenu();//显示菜单
switch (get_managermenu_choice()) {
case 1://增加记录
manager.addPerson(person,total);
break;
case 2://删除记录
{
cout "请输入您要销户的名字:";
string name;
cin name;
manager.deletePerson(person,total, name);
}
break;
case 3://查询记录
{
cout "请输入您要修改的账户名:";
string name;
cin name;
manager.alterPerson(name, person, total);
}
break;
case 4://修改记录
{
cout "请输入您修改挂失或解锁的账户名:";
string name;
cin name;
manager.chooseUseFunction(name,person,total);
}
break;
case 5://查询所有记录
manager.showAllCard(person,total);
break;
case 0:
flag = true;
IdMenu(manager);//返回上一级
break;
default:
printf("*************************\n");
printf(" 欢迎再次使用本系统,谢谢 \n");
printf("*************************\n");
break;
}
}while (flag==false);
}
//打印个体用户头信息
void PrintPersonTitle()
{
cout "--------------------------------------------------------\n";
cout " 卡号 用户名 余额 开户日期 是否挂失 \n";
cout "--------------------------------------------------------\n";
}
//设置密码
void set_psw()
{
ofstream onfile;//写入文件类
string psw_set ,psw_check;
do
{
cout "You must set password first!\n";
cin psw_set;
cout "conform password:";
cin psw_check;
if(psw_check == psw_check)
{
cout "set password success!\n";
}
else
{
cout "error!\n";
}
}
while(psw_check != psw_set);
onfile.open("password.txt",ios::out);
onfile psw_set;
onfile.close();
}
//密码验证
int psw_check()
{
ifstream infile;//读取文件类
ofstream onfile;//文件写入类
unsigned int j=1;
string pword;
string password;
infile.open("password.txt",ios::in);
if (!infile.is_open())//如果打开失败,则重新设置密码
{
set_psw();//重新设置密码
}
//取值
infile password;
//打开成功验证密码
do {
cout "输入密码,你将有三次机会:" j "/3次机会" endl;
cin pword;
j++;
} while (password != pword j =3);
if (j =3) {
cout "恭喜登陆成功!" endl;
return 1;//打开成功
}
else
{
cout "你已经输入了三次了,打开文件失败!" endl;
return 0;
}
}
//身份选择菜单
void Show_Iden_menu()
{
cout " 欢迎您使用银行管理系统 \n";
cout "*******************************************************\n";
cout " 1.银行管理员 | 2.普通用户 \n";
cout "*******************************************************\n";
}
//显示管理员菜单
void Show_Managermenu()
{
cout " 欢迎您使用银行管理员管理系统 \n";
cout "******************************************************\n";
cout " 1.开户 | 2.销户 \n";
cout " 3.修改卡号信息 | 4.挂失/解锁 \n";
cout " 5.查询所有记录 | 0.返回上级 \n";
cout "******************************************************\n";
}
//显示普通用户功能菜单
void Show_PersonMenu()
{
cout " 欢迎您使用银行客户管理系统 \n";
cout "******************************************************\n";
cout " 1.查询余额 | 2.挂失/解锁 \n";
cout " 3.存款 | 4.取款 \n";
cout " 0.返回上级 | \n";
cout "******************************************************\n";
}
//普通用户接受菜单
int get_personmenu_choice()
{
int personmenu_ch;//菜单选项
do {
cout "请选择功能:";
cin personmenu_ch;
if (personmenu_ch 0||personmenu_ch 4) {
cout "输入有误!" endl;
}
} while (personmenu_ch 0||personmenu_ch 4);
return personmenu_ch;
}
//接受身份菜单选择
int get_Idemenu_choice()
{
int idmenu_ch;//菜单选项
do {
cout "请选择身份:";
cin idmenu_ch;
if (idmenu_ch 1||idmenu_ch 2) {
cout "输入有误!" endl;
}
} while (idmenu_ch 1||idmenu_ch 2);
return idmenu_ch;
}
//接受菜单选择
int get_managermenu_choice()
{
int menu_ch;//菜单选项
do {
cout "请选择菜单:";
cin menu_ch;
if (menu_ch 0||menu_ch 5) {
cout "error";
}
} while (menu_ch 0||menu_ch 5);
return menu_ch;
}
int main(int argc, const char * argv[])
{
Manager manager;
if (psw_check()) {
IdMenu(manager);
}
return 0;
}
==================== 迂者 丁小未 CSDN博客专栏=================
MyBlog:http://blog.csdn.net/dingxiaowei2013 MyQQ:1213250243
MyTel:13262983383
====================== 相互学习,共同进步 ===================
金融合同管理 本文研究全球及中国市场金融合同管理现状及未来发展趋势,侧重分析全球及中国市场的主要企业,同时对比北美、欧洲、中国、日本、东南亚和印度等地区的现状及未来发展趋势
今天,恒生银行和阿里云在一起了 3月26日,恒生银行(中国)有限公司(恒生中国)与阿里云正式达成合作,依托钉钉服务窗,打造出恒生版“银企通”,在钉钉平台上为企业客户提供金融服务。
阿里云财务软件好会计-好会计财务管理系统介绍 阿里云财务软件帮助企业降低税务风险,少交冤枉税。为小微企业量身打造专业云财务SAAS应用,提升中小微企业财务管理水平 随着2018年金税三期再升级,税务机关对企业的稽查力度和税控强度前所未有的严格,企业将面临的纳税难题也越来越多,阿里云财务软件好会计作为市面上唯一一款提供了提供税负检测工具智能云财务产品,帮助企业在税务稽查前完成风险自查,重点指标与金税三期保持一致,降低了企业税务风险,合理降低企业税负。
对于金融,区块链管理系统举足轻重 对于金融,区块链管理系统举足轻重 说起区块链,我们就要谈到金融,为什么金融行业离不开区块链呢?区块链应用在于金融领域的好处又有哪些呢?
蓬莱仙羽 麦子学院讲师,游戏蛮牛专栏作家,CSDN博客专家,热爱游戏开发,热爱Coding!
相关文章
- abp(net core)+easyui+efcore实现仓储管理系统——入库管理之七(四十三)
- abp(net core)+easyui+efcore实现仓储管理系统——EasyUI之货物管理二 (二十)
- abp(net core)+easyui+efcore实现仓储管理系统——展现层实现增删改查之增删改视图(八)
- 基于Java+MySQL实现(界面)医院管理系统【100010723】
- 基于 Java(SSM框架)+MySQL 实现的(Web)电影后台管理系统【100010558】
- 基于C#编写的图书管理系统【100010444】
- 基于C+++Oracle11实现(PC)学生成绩教务管理系统【100010050】
- Qt编写气体安全管理系统29-跨平台
- springboot+vue新生宿舍管理系统(源码+说明文档),一款优秀的毕业设计
- Java实例---简单的上课管理系统
- python开发实验管理系统(lims)中的标准管理--检测项目
- SpringBoot + React汽车租赁管理系统 附带详细运行指导视频
- 分享一个基于ligerui的系统应用案例ligerRM V2(权限管理系统)(提供下载)
- 解析弱电安防监控管理系统的安装技术重点