使用Python实现银行管理系统

news2024/11/24 20:48:43

使用Python实现银行管理系统

    • 题目介绍
    • 程序演示
      • 登录
      • 开户
      • 查询
      • 取款
      • 存款
      • 转账
      • 锁定
      • 解锁
      • 存盘
      • 退出
    • 相关代码
      • 开户功能
      • 查询功能
      • 取款功能
      • 存款功能
      • 转账功能
      • 锁定功能
      • 解锁功能
      • 存盘功能
      • 加载存盘的数据
      • 登录/登出功能
      • 主程序
    • 完整代码

在本篇博文中,我们将使用Python编写一个简单的银行管理系统,该系统具有开户、查询、取款、存款、转账、锁定、解锁、存盘和退出等功能。我们将逐步分析每个功能,并提供相应的代码实现。

题目介绍

7.5 实例1: 银行管理系统
从早期的钱庄到现如今的银行,金融行业在不断地变革;随着科技的发展、计算机的普及、计算机技术在金融行业得到了广泛的应用“银行管理系统是一个集开户、查询、取款、存款、转账、锁定、解锁、退出等一系列功能的管理系统。该系统中各功能的介绍如下:
(1)开户功能:用户在ATM 机上根据提示“请输人姓名:”、“请输人身份证号:”、“请输入机号:”依次输人姓名、身份证号、手机号、预存金额、密码等信息,如果开户成功,系统随机生成一个不重复的6位数字卡号。
(2)查询功能:根据用户输人的卡号、密码查询卡中余额,如果连续 3 次输入错误密码,该卡号会被锁定。
(3)取款功能:首先根据用户输入的卡号、密码显示卡中余额,如果连续 3 次输人错误密码该卡号会被锁定;然后接收用户输人的取款金额,如果取款金额大于卡中余额或取款金额小于0系统进行提示并返回功能页面。
(4)存款功能:首先根据用户输人的卡号、密码显示卡中余额,如果连续 3 次输入错误密码该卡号会被锁定,然后接收用户输入的存款金额:如果存款金额小于 0,系统进行提示并返回功能页面。
(5)转账功能: 用户需要分别输人转出卡号与转人卡号,如果连续3次输入错误密码,卡号会被锁定。当输人转账金额后,需要用户再次确认是否执行转账功能;如果确定执行转账功能后转出卡与转入卡做相应金额计算;如果取消转账功能,则回退之前操作。
(6)锁定功能:根据输人的卡号、密码执行锁定功能,锁定之后该卡不能执行查询、取款存款、转账等操作。
(7)解锁功能:根据输入的卡号、密码执行解锁功能,解锁后的卡,能够执行查询、取款存款、转账等操作。
(8)存盘功能:执行存盘功能后,程序执行的数据会写入本地文件中
(9)退出功能:执行退出功能时,需要输人管理员的账户密码。如果输入的账号密码错误则返回功能页面;如果输人的账号密码正确,则执行存盘并退出系统。
本实例要求使用python编写程序,实现一个具有上述功能的银行管理系统

程序演示

登录

在这里插入图片描述

开户

在这里插入图片描述

查询

在这里插入图片描述

取款

在这里插入图片描述

存款

在这里插入图片描述

转账

在这里插入图片描述

锁定

在这里插入图片描述

解锁

在这里插入图片描述

存盘

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

退出

在这里插入图片描述

相关代码

开户功能

开户功能允许用户在ATM机上输入个人信息,并生成一个不重复的6位数字卡号。以下是实现开户功能的代码:

# 开户功能
def open_account():
    name = input("请输入姓名:")
    id_number = input("请输入身份证号:")
    phone = input("请输入手机号:")
    balance = float(input("请输入预存金额:"))
    password = input("请输入密码:")
    card_number = generate_card_number()

    users[card_number] = {
        "name": name,
        "id_number": id_number,
        "phone": phone,
        "balance": balance,
        "password": password
    }

    print("开户成功!您的卡号是:", card_number)

查询功能

查询功能允许用户通过输入卡号和密码来查询卡中的余额。如果连续3次输入错误密码,该卡号将被锁定。以下是实现查询功能的代码:

# 查询功能
def inquire():
    card_number = input("请输入卡号:")
    password = input("请输入密码:")

    if card_number in locked_cards:
        print("该卡号已被锁定,请联系银行解锁。")
        return

    user = users.get(card_number)
    if user and user["password"] == password:
        print("您的余额为:", user["balance"])
    else:
        print("卡号或密码错误!")
        if card_number in users:
            if card_number not in locked_cards:
                users[card_number].setdefault("wrong_password_count", 0)
                users[card_number]["wrong_password_count"] += 1
                if users[card_number]["wrong_password_count"] >= 3:
                    locked_cards.append(card_number)
                    print("连续输错密码已达3次,该卡已被锁定。")

取款功能

取款功能允许用户在输入卡号和密码后显示卡中的余额,并输入取款金额。如果连续3次输入错误密码,卡号将被锁定;如果取款金额大于卡中余额或小于0,系统将提示错误并返回功能页面。以下是实现取款功能的代码:

# 取款功能
def withdraw():
    card_number = input("请输入卡号:")
    password = input("请输入密码:")

    if card_number in locked_cards:
        print("该卡号已被锁定,请联系银行解锁。")
        return

    user = users.get(card_number)
    if user and user["password"] == password:
        print("您的余额为:", user["balance"])
        amount = float(input("请输入取款金额:"))
        if amount > user["balance"] or amount < 0:
            print("取款金额无效!")
        else:
            user["balance"] -= amount
            print("取款成功!")
            print("当前余额为:", user["balance"])
    else:
        print("卡号或密码错误!")
        if card_number in users:
            if card_number not in locked_cards:
                users[card_number].setdefault("wrong_password_count", 0)
                users[card_number]["wrong_password_count"] += 1
                if users[card_number]["wrong_password_count"] >= 3:
                    locked_cards.append(card_number)
                    print("连续输错密码已达3次,该卡已被锁定。")

存款功能

存款功能允许用户在输入卡号和密码后显示卡中的余额,并输入存款金额。如果连续3次输入错误密码,卡号将被锁定;如果存款金额小于0,系统将提示错误并返回功能页面。以下是实现存款功能的代码:

# 存款功能
def deposit():
    card_number = input("请输入卡号:")
    password = input("请输入密码:")

    if card_number in locked_cards:
        print("该卡号已被锁定,请联系银行解锁。")
        return

    user = users.get(card_number)
    if user and user["password"] == password:
        print("您的余额为:", user["balance"])
        amount = float(input("请输入存款金额:"))
        if amount < 0:
            print("存款金额无效!")
        else:
            user["balance"] += amount
            print("存款成功!")
            print("当前余额为:", user["balance"])
    else:
        print("卡号或密码错误!")
        if card_number in users:
            if card_number not in locked_cards:
                users[card_number].setdefault("wrong_password_count", 0)
                users[card_number]["wrong_password_count"] += 1
                if users[card_number]["wrong_password_count"] >= 3:
                    locked_cards.append(card_number)
                    print("连续输错密码已达3次,该卡已被锁定。")

转账功能

转账功能允许用户分别输入转出卡号和转入卡号。如果连续3次输入错误密码,卡号将被锁定。在输入转账金额后,用户需要再次确认是否执行转账功能。如果确定执行转账功能,将进行相应的金额计算;如果取消转账功能,则回退之前的操作。以下是实现转账功能的代码:

# 转账功能
def transfer():
    from_card_number = input("请输入转出卡号:")
    from_password = input("请输入密码:")

    if from_card_number in locked_cards:
        print("该卡号已被锁定,请联系银行解锁。")
        return

    from_user = users.get(from_card_number)
    if from_user and from_user["password"] == from_password:
        print("您的余额为:", from_user["balance"])
        to_card_number = input("请输入转入卡号:")
        to_user = users.get(to_card_number)

        if to_card_number in locked_cards:
            print("对方卡号已被锁定,无法转账。")
            return

        if not to_user:
            print("转入卡号不存在,无法转账。")
            return

        amount = float(input("请输入转账金额:"))
        if amount > from_user["balance"] or amount < 0:
            print("转账金额无效!")
            return

        confirm = input("确认执行转账功能?(Y/N)")
        if confirm.lower() == "y":
            from_user["balance"] -= amount
            to_user["balance"] += amount
            print("转账成功!")
            print("当前余额为:", from_user["balance"])
        else:
            print("已取消转账功能。")
    else:
        print("卡号或密码错误!")
        if from_card_number in users:
            if from_card_number not in locked_cards:
                users[from_card_number].setdefault("wrong_password_count", 0)
                users[from_card_number]["wrong_password_count"] += 1
                if users[from_card_number]["wrong_password_count"] >= 3:
                    locked_cards.append(from_card_number)
                    print("连续输错密码已达3次,该卡已被锁定。")

锁定功能

锁定功能允许用户根据卡号和密码执行锁定功能。锁定后,该卡不能进行查询、取款、存款、转账等操作。以下是实现锁定功能的代码:

# 锁定功能
def lock_card():
    card_number = input("请输入卡号:")
    password = input("请输入密码:")

    if card_number in locked_cards:
        print("卡号已被锁定,请联系客服解锁。")
        return

    user = users.get(card_number)
    if user and user["password"] == password:
        locked_cards.append(card_number)
        print("卡号已被锁定。")
    else:
        print("卡号或密码错误!")

解锁功能

解锁功能允许用户根据卡号和密码执行解锁功能。解锁后,该卡可以进行查询、取款、存款、转账等操作。以下是实现解锁功能的代码:

# 解锁功能
def unlock_card():
    card_number = input("请输入卡号:")
    password = input("请输入密码:")

    user = users.get(card_number)
    if user and user["password"] == password:
        if card_number in locked_cards:
            locked_cards.remove(card_number)
            print("卡号已解锁。")
        else:
            print("该卡号未被锁定。")
    else:
        print("卡号或密码错误!")

存盘功能

存盘功能允许将程序执行的数据写入本地文件中。以下是实现存盘功能的代码:

# 存盘功能
def save_data():
    with open("bank_data.txt", "w") as file:
        for card_number, user in users.items():
            file.write(
                f"{card_number},{user['name']},{user['id_number']},{user['phone']},{user['balance']},{user['password']}\n")

    with open("locked_cards.txt", "w") as file:
        file.write("\n".join(locked_cards))

    print("数据已保存到本地文件。")

加载存盘的数据

加载存盘的数据功能可以在程序启动时将之前保存的用户数据读取到内存中。以下是实现加载存盘数据功能的代码:

# 加载存盘的数据
def load_data():
    global users, locked_cards

    with open("bank_data.txt", "r") as file:
        for line in file:
            card_number, name, id_number, phone, balance, password = line.strip().split(",")
            users[card_number] = {
                "name": name,
                "id_number": id_number,
                "phone": phone,
                "balance": float(balance),
                "password": password
            }

    with open("locked_cards.txt", "r") as file:
        for line in file:
            locked_cards.append(line.strip())

登录/登出功能

退出功能要求输入管理员账户密码。如果输入的账号密码错误,则返回功能页面;如果输入的账号密码正确,则执行存盘并退出系统。以下是实现退出功能的代码:

# 登录或退出功能
def login_or_out(option):
    admin_account = "admin"
    admin_password = "admin123"

    account = input("请输入管理员账号:")
    password = input("请输入管理员密码:")

    if account == admin_account and password == admin_password:
        if option == 1:
            load_data()
            print("登录成功!")
            # continue with normal operations
        elif option == 2:
            save_data()
            print("已退出系统。")
            exit()
        else:
            print("无效的选项!请传入1或2。")
    else:
        print("管理员账号或密码错误!")

主程序

主程序用于提供用户界面和选项选择,根据用户的选择调用相应的功能函数。以下是主程序的代码:

login_or_out(1)
while True:
    print("=============== 欢迎使用银行管理系统 ===============")
    print("1. 开户    2. 查询    3. 取款")
    print("4. 存款    5. 转账    6. 锁定 ")
    print("7. 解锁    8. 存盘    9. 退出")
    print("================================================")

    choice = input("请输入您的选择(数字):")

    if choice == "1":
        open_account()
    elif choice == "2":
        inquire()
    elif choice == "3":
        withdraw()
    elif choice == "4":
        deposit()
    elif choice == "5":
        transfer()
    elif choice == "6":
        lock_card()
    elif choice == "7":
        unlock_card()
    elif choice == "8":
        save_data()
    elif choice == "9":
        login_or_out(2)
    else:
        print("无效的选择!")

以上是一个简单的银行管理系统的Python实现,通过以上代码可以实现开户、查询、取款、存款、转账、锁定、解锁、存盘和退出等功能。根据实际需求,你可以在此基础上进一步完善和优化代码。

完整代码

import random

# 存储用户信息的字典
users = {}

# 锁定的卡号列表
locked_cards = []

# 当前登录的用户
current_user = None


# 开户功能
def open_account():
    name = input("请输入姓名:")
    id_number = input("请输入身份证号:")
    phone = input("请输入手机号:")
    balance = float(input("请输入预存金额:"))
    password = input("请输入密码:")
    card_number = generate_card_number()

    users[card_number] = {
        "name": name,
        "id_number": id_number,
        "phone": phone,
        "balance": balance,
        "password": password
    }

    print("开户成功!您的卡号是:", card_number)


# 查询功能
def inquire():
    card_number = input("请输入卡号:")
    password = input("请输入密码:")

    if card_number in locked_cards:
        print("该卡号已被锁定,请联系银行解锁。")
        return

    user = users.get(card_number)
    if user and user["password"] == password:
        print("您的余额为:", user["balance"])
    else:
        print("卡号或密码错误!")
        if card_number in users:
            if card_number not in locked_cards:
                users[card_number].setdefault("wrong_password_count", 0)
                users[card_number]["wrong_password_count"] += 1
                if users[card_number]["wrong_password_count"] >= 3:
                    locked_cards.append(card_number)
                    print("连续输错密码已达3次,该卡已被锁定。")


# 取款功能
def withdraw():
    card_number = input("请输入卡号:")
    password = input("请输入密码:")

    if card_number in locked_cards:
        print("该卡号已被锁定,请联系银行解锁。")
        return

    user = users.get(card_number)
    if user and user["password"] == password:
        print("您的余额为:", user["balance"])
        amount = float(input("请输入取款金额:"))
        if amount > user["balance"] or amount < 0:
            print("取款金额无效!")
        else:
            user["balance"] -= amount
            print("取款成功!")
            print("当前余额为:", user["balance"])
    else:
        print("卡号或密码错误!")
        if card_number in users:
            if card_number not in locked_cards:
                users[card_number].setdefault("wrong_password_count", 0)
                users[card_number]["wrong_password_count"] += 1
                if users[card_number]["wrong_password_count"] >= 3:
                    locked_cards.append(card_number)
                    print("连续输错密码已达3次,该卡已被锁定。")


# 存款功能
def deposit():
    card_number = input("请输入卡号:")
    password = input("请输入密码:")

    if card_number in locked_cards:
        print("该卡号已被锁定,请联系银行解锁。")
        return

    user = users.get(card_number)
    if user and user["password"] == password:
        print("您的余额为:", user["balance"])
        amount = float(input("请输入存款金额:"))
        if amount < 0:
            print("存款金额无效!")
        else:
            user["balance"] += amount
            print("存款成功!")
            print("当前余额为:", user["balance"])
    else:
        print("卡号或密码错误!")
        if card_number in users:
            if card_number not in locked_cards:
                users[card_number].setdefault("wrong_password_count", 0)
                users[card_number]["wrong_password_count"] += 1
                if users[card_number]["wrong_password_count"] >= 3:
                    locked_cards.append(card_number)
                    print("连续输错密码已达3次,该卡已被锁定。")


# 转账功能
def transfer():
    from_card_number = input("请输入转出卡号:")
    from_password = input("请输入密码:")

    if from_card_number in locked_cards:
        print("该卡号已被锁定,请联系银行解锁。")
        return

    from_user = users.get(from_card_number)
    if from_user and from_user["password"] == from_password:
        print("您的余额为:", from_user["balance"])
        to_card_number = input("请输入转入卡号:")
        to_user = users.get(to_card_number)

        if to_card_number in locked_cards:
            print("对方卡号已被锁定,无法转账。")
            return

        if not to_user:
            print("转入卡号不存在,无法转账。")
            return

        amount = float(input("请输入转账金额:"))
        if amount > from_user["balance"] or amount < 0:
            print("转账金额无效!")
            return

        confirm = input("确认执行转账功能?(Y/N)")
        if confirm.lower() == "y":
            from_user["balance"] -= amount
            to_user["balance"] += amount
            print("转账成功!")
            print("当前余额为:", from_user["balance"])
        else:
            print("已取消转账功能。")
    else:
        print("卡号或密码错误!")
        if from_card_number in users:
            if from_card_number not in locked_cards:
                users[from_card_number].setdefault("wrong_password_count", 0)
                users[from_card_number]["wrong_password_count"] += 1
                if users[from_card_number]["wrong_password_count"] >= 3:
                    locked_cards.append(from_card_number)
                    print("连续输错密码已达3次,该卡已被锁定。")


# 锁定功能
def lock_card():
    card_number = input("请输入卡号:")
    password = input("请输入密码:")

    if card_number in locked_cards:
        print("卡号已被锁定,请联系客服解锁。")
        return

    user = users.get(card_number)
    if user and user["password"] == password:
        locked_cards.append(card_number)
        print("卡号已被锁定。")
    else:
        print("卡号或密码错误!")


# 解锁功能
def unlock_card():
    card_number = input("请输入卡号:")
    password = input("请输入密码:")

    user = users.get(card_number)
    if user and user["password"] == password:
        if card_number in locked_cards:
            locked_cards.remove(card_number)
            print("卡号已解锁。")
        else:
            print("该卡号未被锁定。")
    else:
        print("卡号或密码错误!")


# 生成不重复的6位数字卡号
def generate_card_number():
    card_number = str(random.randint(100000, 999999))
    while card_number in users:
        card_number = str(random.randint(100000, 999999))
    return card_number


# 存盘功能
def save_data():
    with open("bank_data.txt", "w") as file:
        for card_number, user in users.items():
            file.write(
                f"{card_number},{user['name']},{user['id_number']},{user['phone']},{user['balance']},{user['password']}\n")

    with open("locked_cards.txt", "w") as file:
        file.write("\n".join(locked_cards))

    print("数据已保存到本地文件。")

#加载存盘的数据
def load_data():
    global users, locked_cards

    with open("bank_data.txt", "r") as file:
        for line in file:
            card_number, name, id_number, phone, balance, password = line.strip().split(",")
            users[card_number] = {
                "name": name,
                "id_number": id_number,
                "phone": phone,
                "balance": float(balance),
                "password": password
            }

    with open("locked_cards.txt", "r") as file:
        for line in file:
            locked_cards.append(line.strip())


# 退出功能
def login_or_out(option):
    admin_account = "admin"
    admin_password = "admin123"

    account = input("请输入管理员账号:")
    password = input("请输入管理员密码:")

    if account == admin_account and password == admin_password:
        if option == 1:
            load_data()
            print("登录成功!")
            # continue with normal operations
        elif option == 2:
            save_data()
            print("已退出系统。")
            exit()
        else:
            print("无效的选项!请传入1或2。")
    else:
        print("管理员账号或密码错误!")


# 主程序
login_or_out(1)
while True:
    print("=============== 欢迎使用银行管理系统 ===============")
    print("1. 开户    2. 查询    3. 取款")
    print("4. 存款    5. 转账    6. 锁定 ")
    print("7. 解锁    8. 存盘    9. 退出")
    print("================================================")

    choice = input("请输入您的选择(数字):")

    if choice == "1":
        open_account()
    elif choice == "2":
        inquire()
    elif choice == "3":
        withdraw()
    elif choice == "4":
        deposit()
    elif choice == "5":
        transfer()
    elif choice == "6":
        lock_card()
    elif choice == "7":
        unlock_card()
    elif choice == "8":
        save_data()
    elif choice == "9":
        login_or_out(2)
    else:
        print("无效的选择!")

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

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

相关文章

优雅写代码之《idea中配置封装快捷键代码、生成类方法注释》-详细配置+配置代码--可重用为封装快捷键模板,加速重复代码编写

阿丹&#xff1a; 会写注释的程序员配享太庙&#xff01;哈哈哈&#xff0c;阿丹发现还是有小伙伴不会配置注释的模板甚至还是有一些小伙伴在手写一些简单可生产的注释&#xff0c;这个文章就一次性给大家解决一下&#xff01;这些问题&#xff01;&#xff01;&#xff01; 其…

uniapp页面使用多个echarts出现数据渲染错乱问题解决

首先&#xff0c;uniapp当中使用echarts是在通过使用renderjs的script模板的前提下实现的&#xff0c;在官方提供的案例当中&#xff0c;核心代码是这一部分&#xff1a; 但如果将其封装为组件&#xff0c;并在一个页面当中引用多次来生成多个charts图标&#xff0c;那么这个时…

大语言模型:以Amazon Titan等大语言模型为例介绍

大语言模型&#xff08;Large Language Model&#xff09;是一种人工智能技术&#xff0c;通过对海量文本数据进行训练&#xff0c;学习语言的结构、规则和语义&#xff0c;从而可以生成具有自然语言风格的文本或回答自然语言的问题。大语言模型一般基于神经网络技术&#xff0…

如何销售产品说话技巧

如何销售产品说话技巧 在销售产品的过程中&#xff0c;说话技巧的重要性不言而喻。一个出色的销售人员必须掌握如何运用流畅、通顺的语言&#xff0c;措辞优美&#xff0c;更有吸引力地表达自己的观点。以下是一些有助于提高销售产品说话技巧的建议&#xff1a; 1. 深入了解你…

03_歌词滚动效果

03_歌词滚动效果 文章目录 03_歌词滚动效果效果一、数据准备①&#xff1a;歌词②&#xff1a;音频等 二、代码实现①&#xff1a;首页②&#xff1a;样式③&#xff1a;js逻辑④&#xff1a;测试 效果 一、数据准备 ①&#xff1a;歌词 var lrc [00:00.95]夜微凉 - 徐珊 [0…

Windows10 下 CUDA 新旧多版本共存

前言 为了运行一个 Tensorflow1.6.0 的项目&#xff0c;CPU 跑了三个多小时才完成一个 epoch&#xff0c;还得用 GPU。但这个版本的 TF 只能在 10 以下的 CUDA 平台&#xff0c;但是以前的 Pytorch 也要继续啊。所以需要在本地 Windows 下安装多个版本 CUDA&#xff0c;其实有两…

MySQL事务(简单明了)

目录 1. 事务的特性&#xff08;ACID&#xff09;&#xff1a; 2. 事务的语法&#xff1a; 3. 隔离级别&#xff1a; 4. 保存点&#xff08;Savepoints&#xff09;&#xff1a; 5. 示例&#xff1a; 1. 事务的特性&#xff08;ACID&#xff09;&#xff1a; 原子性&#…

每日一练2023.11.27——考试座位号【PTA】

题目要求&#xff1a; 每个 PAT 考生在参加考试时都会被分配两个座位号&#xff0c;一个是试机座位&#xff0c;一个是考试座位。正常情况下&#xff0c;考生在入场时先得到试机座位号码&#xff0c;入座进入试机状态后&#xff0c;系统会显示该考生的考试座位号码&#xff0c…

sCrypt 现已支持各类主流前端框架

sCrypt 现已支持各类主流前端框架&#xff0c;包括&#xff1a; ReactNext.jsAngularSvelteVue 3.x or 2.x bundled with Vite or Webpack 通过在这些支持的前端框架中集成sCrypt开发环境&#xff0c;你可以直接在前端项目里访问合约实例和调用合约&#xff0c;方便用户使用Se…

js用到的算法

1.对象数组中&#xff0c;对象中有对象&#xff0c;数组根据对象中的对象打平 [{indexValueMap: { 68443: 0, 68457: 0 },rowName1: 固定收益类,rowName2: 交易类,rowName3: 次级},{indexValueMap: { 68443: 0, 68457: 0 },rowName1: 固定收益类,rowName2: 交易类,rowName3: 中…

Skywalking接入实际应用做日志跟踪

Skywalking客户端挂载 从官网下载skywalking-agent客户端&#xff0c;并挂在到应用服务器指定目录 挂载到应用主机中,好处是解决打包应用镜像的时候&#xff0c;镜像过大&#xff0c;部署成本过高。 docker-compose部署应用,并接入skywalking服务,这里以gateway为例 versio…

【活动回顾】sCrypt在2023伦敦区块链大会上的精彩表现

2023伦敦区块链大会&#xff0c;是本年度最盛大的比特币及区块链行业活动。大会于2023年5月31日至6月2日&#xff0c;在伦敦女王伊丽莎白二世中心举行&#xff0c;旨在展示BSV区块链的真正潜力。 sCrypt Inc 的创始人兼 CEO 刘晓晖&#xff0c; 作为演讲嘉宾出席了会议。他向大…

FreeImage 编译安装

FreeImage下载&#xff1a; The FreeImage Project 点击第6行&#xff1a; Download FreeImage 3.18.0 或&#xff1a; wget http://downloads.sourceforge.net/freeimage/FreeImage3170.zip #解压 unzip FreeImage3170.zip -d freeImage 编译FreeImage源代码可能需要遵循…

BUUCTF刷题之路--ciscn_2019_es_21

这题考察的是一个栈迁移的知识。作为入门学习栈迁移是个不可多得的好题。程序简单并且是32位的架构。保护也没有开&#xff0c;因此对于理解栈迁移再好不过了。看一下这题的基本信息&#xff1a; 栈迁移的基本原理其实就是栈的空间不够我们利用。也就是不不足以覆盖返回地址&am…

基于单片机设计的超声波测距仪(采用HC-SR04模块)

一、前言 本项目是基于单片机设计的超声波测距仪&#xff0c;主要采用了STC89C52单片机和HC-SR04超声波测距模块。通过LCD1602液晶显示屏来展示测量的距离信息。 超声波测距技术是一种常见的非接触式测距方法&#xff0c;利用超声波的传播速度测量物体与测距器之间的距离。它…

「C++」类和对象1

&#x1f387;个人主页&#xff1a;Ice_Sugar_7 &#x1f387;所属专栏&#xff1a;C启航 &#x1f387;欢迎点赞收藏加关注哦&#xff01; 文章目录 &#x1f349;前言&#xff1a;初识面向对象&#x1f349;类&#x1f34c;类的定义&#x1f34c;访问限定符&#x1f95d;类的…

CloudCompare 源码编译

一、下载源码 二、cmake 编译 这里面有四个比较重要的地方 1、源码的位置 2、生成的位置 3、项目的位置 4、qt 的位置 三、编译 开始测试&#xff0c;先用那个项目做测试 没有问题 然后用build的那个打开 加入Qt 的相关库到qcc中 启动项目生成cloudcompare 启动 ok ,完成…

阿里云ACE认证之国际版与国内版对比!

大厂疯狂裁员&#xff0c;互联网行业迎来寒冬&#xff0c;技术人员被动陷入疯狂内卷。在愈加内卷的IT领域&#xff0c;“云计算”作为少有的蓝海&#xff0c;无疑是打工人未来实现职场提升、摆脱内卷的绝佳选择&#xff01; 对于云计算行业的人来说&#xff0c;最值得考的肯定是…

守护机器智能时代,上海迅软科技终端防泄密方案横空出世!

客户简要介绍 某智能科技股份有限公司是一家专注于数字化、自动化和新能源的机器人公司。公司致力于为劳动密集程度比较高的行业制造有用且价格合理的机器人&#xff0c;目前已广泛应用于农业、园艺、施工、测绘和设施服务等领域。在新加坡、美国、瑞典、大陆及香港等多地有研发…

C++相关闲碎记录(1)

1、C绘制爱心图像 #include <iostream> #include <cmath>using namespace std;int main() {// 心形曲线公式 (x^2 y^2 - a)^3 - x^2*y^3 0double a 1;double bound 1.5 * sqrt(a);double step 0.05;for (double y bound; y > -bound; y - step) {for (do…