小练习-----银行提款机系统

 

'''
人
类名:Person
属性: 姓名  身份证号  电话号  卡

卡
类名:Card
属性:卡号  密码  余额
行为:

银行
类名:bank
属性:用户列表  提款机

提款机
类名:ATM
属性:用户字典
行为: 开户 查询 取款 存储 转账 改密 锁定 解锁 补卡 销户

管理员
类名:admin
属性:
行为:管理员界面  管理员登录 系统功能界面 退出
'''
from admin import Admin
from atm import ATM
import time,pickle,os
def main():
    #存储所有用户信息
    # all_user={}


    #打印界面
    admin=Admin()

    #管理员开机
    admin.printAdminView()
    if admin.admin_option():

        return -1

    #提款机对象
    file_path = os.path.join(os.getcwd(), "all_users.txt")
    with open(file_path, "rb") as f:
        all_users = pickle.load(f)
    print(all_users)
    atm=ATM(all_users)

    while True:
        # 管理员开机界面
        admin.printSysFunctionView()
        #等待用户操作
        option=input("请输入您的操作选项:").strip()
        if option=="1":
            print("开户")
            atm.create_user()
        elif option=="2":
            atm.search_user_info()
        elif option=="3":
            pass
        elif option=="4":
            pass
        elif option=="5":
            pass
        elif option=="6":
            pass
        elif option=="7":
            atm.lock_user()
        elif option=="8":
            atm.unlock_user()
        elif option=="9":
            pass
        elif option=="0":
            pass
        elif option=="t":
            if not admin.admin_option():
                with open(file_path,"wb") as f:
                    pickle.dump(atm.all_users,f)
                return -1
        else:
            print("输入有误。请重新输入。")
        time.sleep(2)

if __name__=="__main__":
    main()
main.py
from card import Card
from user import User
import random
class ATM(object):
    def __init__(self,all_users):
        self.all_users=all_users
    def create_user(self):
        name=input("请输入您的姓名:").strip()
        id_card=input("输入您的身份证号码:").strip()
        phone=input("请输入您的电话号码").strip()

        pre_store_money=int(input("请输入预存款金额:").strip())
        if pre_store_money<0:
            print("预存款输入有误,开户失败")
            return -1
        one_passwd=input("请输入密码").strip()
        if not self.check_password(one_passwd):
            print("秘密输入错误,开户失败。")
            return -1
        card_str=self.random_card_id()
        card=Card(card_str,one_passwd,pre_store_money)
        user=User(name,id_card,phone,card)
        self.all_users[card_str]=user
        print("开户成功,请牢记卡号:%s和密码:%s"%(card_str,one_passwd))

    def search_user_info(self):
        car_num=input("请输入您的卡号").strip()
        user=self.all_users.get(car_num)
        if not user:
            print("该卡号不存在!查询失败。。。。。")
            return -1

        if user.card.card_lock:
            print("该卡已经被锁定!!请解锁后再使用其他功能。。。。")
        if not self.check_password(user.card.card_passwd):
            user.card.card_lock = True
            print("秘密错误。该卡已经被锁定!!请解锁后再使用其他功能。。。。")
            return -1
        print("账号:%s    余额:%d"%(user.card.card_id,user.card.card_money))
    def get_money(self):
        car_num = input("请输入您的卡号").strip()
        user = self.all_users.get(car_num)
        if not user:
            print("该卡号不存在!取款失败。。。。。")
            return -1

        if user.card.card_lock:
            print("该卡已经被锁定!!请解锁后再使用其他功能。。。。")
        if not self.check_password(user.card.card_passwd):
            user.card.card_lock = True
            print("秘密错误。该卡已经被锁定!!请解锁后再使用其他功能。。。。")
            return -1

        money=int(input("请输入要取款金额").strip())
        if money>user.card.card_money:
            print("余额不足,取款失败。")
            return -1
        if money<user.card.card_money:
            print("金额错误,取款失败。")
            return -1
        user.card.card_money-=money
        print("取款成功!!!账号:%s    余额:%d" % (user.card.card_id, user.card.card_money))

    def save_money(self):
        pass
    def transfer_money(self):
        pass
    def change_passwd(self):
        pass
    def lock_user(self):
        car_num=input("请输入您的卡号").strip()
        user=self.all_users.get(car_num)
        if not user:
            print("该卡号不存在!锁卡失败。。。。。")
            return -1
        if user.card.card_lock:
            print("该卡已经被锁定!!请解锁后再使用其他功能。。。。")
        if not self.check_password(user.card.card_passwd):
            print("秘密错误。锁卡失败。。。。。。。")
            return -1
        temp_id_card=input("请输入 您的身份证号码:").strip()
        if temp_id_card != user.id_card:
            print("身份证号码验证错误。锁卡失败。。。。。。。")
            return -1
        user.card.card_lock=True
        print("锁卡成功")
    def unlock_user(self):
        car_num = input("请输入您的卡号").strip()
        user = self.all_users.get(car_num)
        if not user:
            print("该卡号不存在!解锁失败。。。。。")
            return -1
        if not user.card.card_lock:
            print("该卡没有被锁定!!无需解锁。。。。")

        if not self.check_password(user.card.card_passwd):
            print("秘密错误。解卡失败。。。。。。。")
            return -1
        temp_id_card=input("请输入 您的身份证号码:").strip()
        if temp_id_card != user.id_card:
            print("身份证号码验证错误。解卡失败。。。。。。。")
            return -1
        user.card.card_lock=False
        print("解卡成功")
    def new_card(self):
        pass
    def kill_user(self):
        pass

    def check_password(self,real_passwd):
        for i in range(3):
            temp_passwd=input("请输入密码")
            if temp_passwd == real_passwd:
                return True
            else:
                print("密码输入错误。")
        return False

    def random_card_id(self):
        while True:

            str1=""
            for i in range(6):
                ch=chr(random.randrange(ord("0"),ord("9")+1))
                str1+=ch
            if not self.all_users.get(str1):
                return str1
            # if str1 in self.all_users:
            #     print("有人,重新来过。")
            # else:
            #     self.all_users[str1]=None
            #     return str1
atm.py
import time
class Admin(object):
    admin="1"
    password="1"

    def printAdminView(self):
        print("**************************************************************************")
        print("**************************************************************************")
        print("                           欢迎登录中国银行                               ")
        print("**************************************************************************")
        print("**************************************************************************")

    def printSysFunctionView(self):
        print("**************************************************************************")
        print("*                  开户(1)           查询( 2)                        *")
        print("*                  取款(3)           存款( 4)                        *")
        print("*                  转账(5)           改密(6)                         *")
        print("*                  锁定(7)           解锁(8)                        *")
        print("*                  补卡(9)           销户(0)                         *")
        print("*                             退出(t)                                *")

    def admin_option(self):
        input_admin = input("请输入管理员账号:").strip()
        if self.admin != input_admin:
            print("输入账号有误")
            return -1
        input_passwd = input("请输入管理员密码").strip()
        if self.password != input_passwd:
            print("秘密输入有误。")
            return -1
        print("操作成功!请稍后。。。。。。。。。")
        time.sleep(2)
        return 0
admin.py
class User(object):
    def __init__(self,name,id_card,phone,card):
        self.name=name
        self.id_card=id_card
        self.phone=phone
        self.card=card
user.py
class Card(object):
    def __init__(self,card_id,card_passwd,card_money):
        self.card_id=card_id
        self.card_passwd=card_passwd
        self.card_money=card_money
        self.card_lock=False
card.py

 

转载于:https://www.cnblogs.com/Mengchangxin/p/9886717.html

系统是本人刚做的毕业设计,内容比较简单,但是网上这方面的毕业设计参考文档比较少,于是就将自己的漏作传上来了,只是为了给做此题目的同学一些参考,希望能够帮到大家。 摘要:随着数字经济时代的到来和互联网的普及,传统银行300年来赖以生存的基础已经发生了根本的变化。从发达国家到发展中国家,都普遍重视Web银行系统的使用。我国改革开放至今,银行业的信息化建设取得了一定的成绩,整体竞争能力和现代化水平都有所提高,但逐步完成的数据大集中并非金融信息化建设的终点,尤其是我国加入WTO之后,国内金融业的竞争将更加激烈、白热化,基于Web的银行系统作为各个银行提高效率的出发点和竞争的焦点,已备受瞩目。因此,三峡地区基于Web的银行系统的发展前景也十分广阔。 本文主要阐述了研究和设计一个基于Web的银行业务管理系统的整体流程,详细的分析和描述了系统的设计方法,设计流程,开发过程。通过对开发技术的详细描述,读者可迅速了解该系统开发所使用的开发工具、开发使用的技术、体统的设计思路,进而对系统的整体结构有所了解。 关键词:基于Web 银行 管理 竞争 效率 目 录 摘要 I Abstract II 1 引言 1 1.1 用户需求分析 1 1.2 本项目要解决的问题 1 1.3 系统目标 1 2 系统开发模式、平台和技术介绍 2 2.1 系统开发模式(Brower/Server模式) 2 2.2 系统开发技术介绍 3 2.1.1 Struts2框架技术 3 2.2.2 Hibernate框架技术 4 2.3 开发工具介绍 5 2.3.1 MyEclipse介绍 5 2.3.2 MySQL5.0介绍 5 3 需求分析 6 3.1 可行性分析 6 3.2 功能需求 6 3.3 性能需求 7 3.4 数据需求 7 3.5 数据字典 7 4 总体设计 9 4.1 总体功能设计 9 4.2 处理流程 10 4.2.1 开户流程 10 4.2.2 销户流程 11 4.2.3 存款流程 11 4.2.4 取款流程 12 4.2.5 挂失流程 12 4.2.6 利率修改流程 13 5 数据库设计 13 5.1 E-R模型 13 5.2 表设计 16 5.3 表结构 17 5.4 表间关系 20 6 系统实现 22 6.1 操作员管理功能实现 22 6.1.1 登录功能实现 22 6.1.2 操作员注册功能实现 24 6.1.3 页面身份验证 27 7 系统试运行结果与评价 28 8 结束语 28 致 谢 28 参考文献 29
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值