期末python实验一,二作业-对象编程【仅供参考】

目录

实验一西游游戏-对象

1,选择角色后,角色不能改

2,选择角色后,角色可以改

  实验二猜拳游戏-对象


 

实验一西游游戏-对象

老师给的题目材料:

第一步:系统登录
失败时允许重复输入三次!
第二步:系统登录成功后,展示西游记的游戏菜单
欢迎进入西游记游戏
1. 选择角色(1.唐僧,2.孙悟空,3.猪八戒,4.沙和尚)
2.   角色属性查询(1.唐僧,2.孙悟空,3.猪八戒,4.沙和尚)
3. 游戏帮助
4. 退出游戏
请选择游戏菜单:

第三步:在西游记的游戏菜单页面,选择查询英雄属性,并输出相应的属性值
角色名称   攻击力    防御力    装备 生命值
唐僧 100    600    裟锦襕袈裟,九环锡杖 500
孙悟空    800    300    如意金箍棒  900
猪八戒    500    400    九齿钉耙   600
沙和尚    300    500    降妖宝杖   500

需求分析】
1.为每个角色加上经验值信息,所有角色的初始经验值为0。
2.使用变量存储每个角色的信息。
3.通过变量输出角色列表的信息,使用变量格式化输出。
 【实现思路】
声明变量
为变量赋值
使用变量
需求分析】
装备有攻击力和防御力                                                   
角色的总攻击力 = 自身的攻击力+所有装备的攻击力,
角色的总防御力 = 自身的防御力+所有装备的防御力
比较2个角色总攻击力和总防御力的大小,输出比较结果。
【实现思路】
使用算术运算符计算角色的总攻击力和总防御力。
使用比较运算符比较角色的总攻击力和防御力。

 不同的人有不同的实现思路和实现效果(界面),所以这篇文章中的代码仅供参考,如有不足,请指出,谢谢。下面两个代码的不同之处就在选择角色之后,角色是否能够修改。

1,选择角色后,角色不能改

效果:

代码:

# -*- encoding: utf-8 -*-
class Ts:  # 唐僧
    initial_experience=0  # 初始经验0
    def __init__(self):   # 构造方法
        pass
    name="唐僧"
    attack = 100
    defense = 600
    str_zb1 = "裟锦襕袈裟"
    str_zb2 = "九环锡杖"
    life = 500
class Swk:  #孙悟空
    initial_experience=0  # 初始经验
    def __init__(self):
        pass
    name="孙悟空"
    attack = 100
    defense = 600
    str_zb1 = "如意金箍棒"
    life = 500
class Zbj:  #猪八戒
    initial_experience=0  # 初始经验
    def __init__(self):
        pass
    name="猪八戒"
    attack = 500
    defense = 400
    str_zb1 = "九齿钉耙"
    life = 600
class Shs:  #沙和尚
    initial_experience=0  # 初始经验
    name="沙和尚"
    def __init__(self):
        pass
    attack = 300
    defense = 500
    str_zb1 = "降妖宝杖"
    life = 500
def  printMC(OB):   # 打印角色名称的方法
    print(f"当前选中角色:{OB.name}")

def  printSX(ob):   # 打印属性的方法
    print(f"{ob.name}" + " " * 5 +
          f"{ob.attack}" + " " * 5 +
          f"{ob.defense}" + " " * 4 +
          f"{ob.str_zb1}" + " " * 10 +
          f"{ob.life}" + " " * 4+
          f"{ob.initial_experience}")
def  printSXsult1(ob1,ob2,str):
    if(str=="attack"):
        str2="总的攻击力"
    else:
        str2="总的防御力"
    print(f"{ob1.name}比{ob2.name}的{str2}大")
    if(ob1==ob2):
        print(f"两个角色的{str2}相同")
def  judgeAtackDefence(OB,ds,str):  # str用于决定该方法是进行攻击力判断还是防御力判断
    if (OB.name == ts.name):  # 唐僧有两套装备
        ob_total = getattr(OB,str)+ 100 * 2
        ds_total = getattr(ds,str) + 100
        if(ob_total>ds_total):
            printSXsult1(OB,ds,str)
        elif(ob_total<ds_total):
            printSXsult1(ds,OB,str)
        else:
            printSXsult1(OB,OB,str)
    elif (ds.name == ts.name):
        ob_total = getattr(OB,str) + 100
        ds_total = getattr(ds,str) + 100 * 2
        if(ob_total>ds_total):
            printSXsult1(OB,ds,str)
        elif(ob_total<ds_total):
            printSXsult1(ds,OB,str)
        else:
            printSXsult1(OB,OB,str)
    else:  # 双方均只有一个装备,就肉搏,纯靠自身攻击力力或防御力
        if (getattr(OB,str) > getattr(ds,str)):
            printSXsult1(OB,ds,str)
        elif (getattr(OB,str) < getattr(ds,str)):
            printSXsult1(ds,OB,str)
        else:
            printSXsult1(OB,OB,str)

if __name__ == '__main__':
    ts=Ts  # 唐僧对象
    swk=Swk  #孙悟空对象
    zbj=Zbj  #猪八戒对象
    shs=Shs  #沙和尚对象
    num_login = 3  # 输错之后还剩下的输入次数
    str_login = ""  # 存放登录成功的提示
    user = "admin"
    passwd = 123
    for i in range(1, num_login + 1):
        try:    #捕获用户输入的异常
            username = input("please the enter user:")  # 输入用户名
            password = int(input("please the enter passwd:"))  # 输入密码
        except  Exception  as ex:
            print("输入异常")
        else:
            if username == user and password == passwd:
                print("login successfull")
                str_login += "login successfull"
                break  # 如果输入成功后直接跳出for循环
            else:
                print("login failed")
                str_login += "login failed"
                if (num_login - i > 0):
                    print("您还有%d次机会,请重新输入" % (num_login - i))
                else:  # 机会用完之后给出提示
                    print("抱歉,您的机会已用完")
    if (str_login == "login successfull"):
        print("欢迎进入西游记游戏\n"
              f"1.选择角色(1.{ts.name},2.{swk.name},3.{zbj.name},4.{shs.name})\n"
              f"2.角色属性查询(1.{ts.name},2.{swk.name},3.{zbj.name},4.{shs.name})\n"
              "3.游戏帮助\n"
              "4.退出游戏\n"
              "5.属性比较【注意;用户需要先创建选中角色才能够进行属性比较】")
        str_js_title = "角色名称"+" "*3+"攻击力"+" "*3+"防御力"+" "*3+"装备"+" "*14+"生命值"+" "*3+"经验值"  # 属性抬头
        OB = None  # 空对象,
        ar_jsmc=[f"{ts.name}",f"{swk.name}",f"{zbj.name}",f"{shs.name}"]  # 后期用于角色之间攻击力,防御力的比较
        while(1):  # 死循环
            try:  # 捕获用户输入的异常
                num_choose_1 = int(input("选择游戏菜单:"))
            except Exception as ex:
                print("输入异常:输入非数字")
            else:
                if (num_choose_1 == 1): #选角,一旦选中就不可更改
                    if(OB is None):  #实现选中角色后不可再被赋值给OB
                        try:  # 捕获用户输入的异常
                            num1_choose_2 = int(input(f"选择角色(1.{ts.name},2.{swk.name},3.{zbj.name},4.{shs.name}):"))
                        except Exception as ex:
                            print("输入异常:输入非数字")
                        else:
                            if (num1_choose_2 == 1):
                                OB=ts   # 将用户选中的角色对象赋值给OB常量对象
                                printMC(OB)
                            elif (num1_choose_2 == 2):
                                OB=swk
                                printMC(OB)
                            elif (num1_choose_2 == 3):
                                OB=zbj
                                printMC(OB)
                            elif (num1_choose_2 == 4):
                                OB= shs
                                printMC(OB)
                            else:
                                print("该数字无对应角色,请输入1-4之间的数字")
                                continue # 继续下一个死循环
                    else:
                        print(f"已选中角色:{OB.name}")
                        continue # 继续下一个死循环
                elif (num_choose_1 == 2):   # 属性
                    num2_choose_2 = int(input(f"角色属性查询(1.{ts.name},2.{swk.name},3.{zbj.name},4.{shs.name}):"))
                    print(str_js_title)  # 角色属性抬头
                    if (num2_choose_2 == 1):  # 打印唐僧属性
                        print(f"{ts.name}"+" "*6+f"{ts.attack}"+" "*6+f"{ts.defense}"+" "*3+f"{ts.str_zb1},{ts.str_zb2}"+" "*3+f"{ts.life}"+" "*6+f"{ts.initial_experience}")
                    elif (num2_choose_2 == 2):
                        ob=Swk
                        printSX(ob)
                    elif (num2_choose_2 == 3):
                        ob=Zbj
                        printSX(ob)
                    elif (num2_choose_2 == 4):
                        ob=Shs
                        printSX(ob)
                elif (num_choose_1 == 3):  # 帮助
                    print(("装备有攻击力和防御力\n" \
                           "角色的总攻击力 = 自身的攻击力+所有装备的攻击力\n" \
                           "角色的总防御力 = 自身的防御力+所有装备的防御力"))
                elif (num_choose_1 == 4):
                    print(("退出游戏"))
                    break  # 结束死循环
                elif(num_choose_1==5 ):  #用户已选角色
                    if(OB!=None):
                        print("用户须知:输入大于3的数字,将自动结束属性比较")
                        while(1): # 进行多次属性比较
                            ar_jsmc=[mc for mc in ar_jsmc if mc !=OB.name]  # 列表推导式,将用户选中的角色剔除掉
                            # 默认多一个装备多100攻击力,100防御力
                            try:  # 捕获用户输入的异常
                                js_bj=int(input(f"选择与当前所选角色进行比较的角色(默认多一个装备多100攻击力,100防御力)\n(1.{ar_jsmc[0]},2.{ar_jsmc[1]},3.{ar_jsmc[2]}):"))
                            except Exception as ex:
                                print("输入异常:输入非数字")
                            else:
                                try:  # 捕获异常
                                    if(js_bj>3):
                                        print("结束属性比较")
                                        break  #跳出死循环
                                    str_mc= ar_jsmc[js_bj - 1]  # 用户选中要比较的对手ds角色
                                except Exception  as e:
                                    pass  # 异常不打印
                                else:
                                    if(str_mc==ts.name):
                                        ds=ts
                                    elif(str_mc==swk.name):
                                        ds=swk
                                    elif(str_mc==zbj.name):
                                        ds=zbj
                                    elif(str_mc==shs.name):
                                        ds=shs
                                    # 总攻击力比较
                                    judgeAtackDefence(OB,ds,"attack")
                                        # 总防御力比较
                                    judgeAtackDefence(OB,ds,"defense")
                    else:
                       print("请先选择角色")
                else:
                    print("请输入1-5的数字")
                    continue   # 继续下一个死循环

2,选择角色后,角色可以改

角色可以更改的代码大部分和不可更改时的代码是一模一样的,几个不同点:

  1. 不用在第一个的while(1)外面声明一个空的对象OB;
  2. 在进行多次属性比较时,存放角色名称的列表需要写入第二个死循环while(1)里面,保证不管进行多少次属性比较,列表都包含所有角色的名称

效果如下图:

代码如下:

# -*- encoding: utf-8 -*-
class Ts:  # 唐僧
    initial_experience=0  # 初始经验0
    def __init__(self):   # 构造方法
        pass
    name="唐僧"
    attack = 100
    defense = 600
    str_zb1 = "裟锦襕袈裟"
    str_zb2 = "九环锡杖"
    life = 500
class Swk:  #孙悟空
    initial_experience=0  # 初始经验
    def __init__(self):
        pass
    name="孙悟空"
    attack = 100
    defense = 600
    str_zb1 = "如意金箍棒"
    life = 500
class Zbj:  #猪八戒
    initial_experience=0  # 初始经验
    def __init__(self):
        pass
    name="猪八戒"
    attack = 500
    defense = 400
    str_zb1 = "九齿钉耙"
    life = 600
class Shs:  #沙和尚
    initial_experience=0  # 初始经验
    name="沙和尚"
    def __init__(self):
        pass
    attack = 300
    defense = 500
    str_zb1 = "降妖宝杖"
    life = 500
def  printMC(OB):   # 打印角色名称的方法
    print(f"当前选中角色:{OB.name}")

def  printSX(ob):   # 打印属性的方法
    print(f"{ob.name}" + " " * 5 +
          f"{ob.attack}" + " " * 5 +
          f"{ob.defense}" + " " * 4 +
          f"{ob.str_zb1}" + " " * 10 +
          f"{ob.life}" + " " * 4+
          f"{ob.initial_experience}")
def  printSXsult1(ob1,ob2,str):
    if(str=="attack"):
        str2="总的攻击力"
    else:
        str2="总的防御力"
    print(f"{ob1.name}比{ob2.name}的{str2}大")
    if(ob1==ob2):
        print(f"两个角色的{str2}相同")
def  judgeAtackDefence(OB,ds,str):  # str用于决定该方法是进行攻击力判断还是防御力判断
    if (OB.name == ts.name):  # 唐僧有两套装备
        ob_total = getattr(OB,str)+ 100 * 2
        ds_total = getattr(ds,str) + 100
        if(ob_total>ds_total):
            printSXsult1(OB,ds,str)
        elif(ob_total<ds_total):
            printSXsult1(ds,OB,str)
        else:
            printSXsult1(OB,OB,str)
    elif (ds.name == ts.name):
        ob_total = getattr(OB,str) + 100
        ds_total = getattr(ds,str) + 100 * 2
        if(ob_total>ds_total):
            printSXsult1(OB,ds,str)
        elif(ob_total<ds_total):
            printSXsult1(ds,OB,str)
        else:
            printSXsult1(OB,OB,str)
    else:  # 双方均只有一个装备,就肉搏,纯靠自身攻击力力或防御力
        if (getattr(OB,str) > getattr(ds,str)):
            printSXsult1(OB,ds,str)
        elif (getattr(OB,str) < getattr(ds,str)):
            printSXsult1(ds,OB,str)
        else:
            printSXsult1(OB,OB,str)

if __name__ == '__main__':
    ts=Ts  # 唐僧对象
    swk=Swk  #孙悟空对象
    zbj=Zbj  #猪八戒对象
    shs=Shs  #沙和尚对象
    num_login = 3  # 输错之后还剩下的输入次数
    str_login = ""  # 存放登录成功的提示
    user = "admin"
    passwd = 123
    for i in range(1, num_login + 1):
        try:    #捕获用户输入的异常
            username = input("please the enter user:")  # 输入用户名
            password = int(input("please the enter passwd:"))  # 输入密码
        except  Exception  as ex:
            print("输入异常")
        else:
            if username == user and password == passwd:
                print("login successfull")
                str_login += "login successfull"
                break  # 如果输入成功后直接跳出for循环
            else:
                print("login failed")
                str_login += "login failed"
                if (num_login - i > 0):
                    print("您还有%d次机会,请重新输入" % (num_login - i))
                else:  # 机会用完之后给出提示
                    print("抱歉,您的机会已用完")
    str_login="login successfull"
    if (str_login == "login successfull"):
        print("欢迎进入西游记游戏\n"
              f"1.选择角色(1.{ts.name},2.{swk.name},3.{zbj.name},4.{shs.name})\n"
              f"2.角色属性查询(1.{ts.name},2.{swk.name},3.{zbj.name},4.{shs.name})\n"
              "3.游戏帮助\n"
              "4.退出游戏\n"
              "5.属性比较【注意;用户需要先创建选中角色才能够进行属性比较】")
        str_js_title = "角色名称"+" "*3+"攻击力"+" "*3+"防御力"+" "*3+"装备"+" "*14+"生命值"+" "*3+"经验值"  # 属性抬头
        while(1):  # 死循环
            try:  # 捕获用户输入的异常
                num_choose_1 = int(input("选择游戏菜单:"))
            except Exception as ex:
                print("输入异常:输入非数字")
            else:
                if (num_choose_1 == 1):
                    try:  # 捕获用户输入的异常
                        num1_choose_2 = int(input(f"选择角色(1.{ts.name},2.{swk.name},3.{zbj.name},4.{shs.name}):"))
                    except Exception as ex:
                        print("输入异常:输入非数字")
                    else:
                        if (num1_choose_2 == 1):
                            OB = ts  # 将用户选中的角色对象赋值给OB常量对象
                            printMC(OB)
                        elif (num1_choose_2 == 2):
                            OB = swk
                            printMC(OB)
                        elif (num1_choose_2 == 3):
                            OB = zbj
                            printMC(OB)
                        elif (num1_choose_2 == 4):
                            OB = shs
                            printMC(OB)
                        else:
                            print("该数字无对应角色,请输入1-4之间的数字")
                            continue  # 继续下一个死循环
                elif (num_choose_1 == 2):  # 属性
                    num2_choose_2 = int(input(f"角色属性查询(1.{ts.name},2.{swk.name},3.{zbj.name},4.{shs.name}):"))
                    print(str_js_title)  # 角色属性抬头
                    if (num2_choose_2 == 1):  # 打印唐僧属性
                        print(f"{ts.name}" + " " * 6 + f"{ts.attack}" + " " * 6 + f"{ts.defense}" + " " * 3 + f"{ts.str_zb1},{ts.str_zb2}" + " " * 3 + f"{ts.life}" + " " * 6 + f"{ts.initial_experience}")
                    elif (num2_choose_2 == 2):
                        ob = Swk
                        printSX(ob)
                    elif (num2_choose_2 == 3):
                        ob = Zbj
                        printSX(ob)
                    elif (num2_choose_2 == 4):
                        ob = Shs
                        printSX(ob)
                elif (num_choose_1 == 3):  # 帮助
                    print(("装备有攻击力和防御力\n" 
                           "角色的总攻击力 = 自身的攻击力+所有装备的攻击力\n" 
                           "角色的总防御力 = 自身的防御力+所有装备的防御力"))
                elif (num_choose_1 == 4):
                    print(("退出游戏"))
                    break  # 结束死循环
                elif (num_choose_1 == 5):  # 用户已选角色
                    print("用户须知:输入大于3的数字,将自动结束属性比较")
                    while (1):  # 进行多次属性比较
                        ar_jsmc = [f"{ts.name}", f"{swk.name}", f"{zbj.name}", f"{shs.name}"]
                        ar_jsmc = [mc for mc in ar_jsmc if mc != OB.name]  # 列表推导式,将用户选中的角色剔除掉
                        # 默认多一个装备多100攻击力,100防御力
                        try:
                            js_bj = int(input(f"选择与当前所选角色进行比较的角色(默认多一个装备多100攻击力,100防御力)\n(1.{ar_jsmc[0]},2.{ar_jsmc[1]},3.{ar_jsmc[2]}):"))
                        except Exception as ex:
                            print("输入异常:输入非数字")
                        else:
                            if (js_bj > 3):
                                print("结束属性比较")
                                break  # 跳出死循环
                            str_mc = ar_jsmc[js_bj - 1]  # 用户选中要比较的对手ds角色
                            if (str_mc == ts.name):
                                ds = ts
                            elif (str_mc == swk.name):
                                ds = swk
                            elif (str_mc == zbj.name):
                                ds = zbj
                            elif (str_mc == shs.name):
                                ds = shs
                                # 总攻击力比较
                            judgeAtackDefence(OB, ds, "attack")
                            # 总防御力比较
                            judgeAtackDefence(OB, ds, "defense")
                else:
                    print("请输入1-5的数字")
                    continue   # 继续下一个死循环

  实验二猜拳游戏-对象

游戏过程如下:
(1)选取对战角色。
进入游戏后,选择对手,对手是由计算机虚构出的对象。
(2)猜拳。
开始对战,用户出拳,对手出拳,用户与对手进行比较,提示胜负信息。
(3)记录分数。
每局猜拳结束,获胜方加1分(平局双方均不加分),游戏结束时,显示对战次数及对战最终结果。
(4)记录分数。
每次猜拳结束,将双方的出拳情况保存到.csv文件。
类:
1,用户类:名字,积分,出拳
2,计算机类:名字,积分,出拳
3,游戏类:甲方用户,乙方用户,对战次数 |  初始化  开始游戏 判断猜拳结果 计算对战结果
 

效果如下:

代码如下:

 

# -*- encoding: utf-8 -*-
"""游戏过程如下:
(1)选取对战角色。
进入游戏后,选择对手,对手是由计算机虚构出的对象。
(2)猜拳。
开始对战,用户出拳,对手出拳,用户与对手进行比较,提示胜负信息。
(3)记录分数。
每局猜拳结束,获胜方加1分(平局双方均不加分),游戏结束时,显示对战次数及对战最终结果。
(4)记录分数。
每次猜拳结束,将双方的出拳情况保存到.csv文件。
类:
1,用户类:名字,积分,出拳
2,计算机类:名字,积分,出拳
3,游戏类:甲方用户,乙方用户,对战次数 |  初始化  开始游戏 判断猜拳结果 计算对战结果
"""
import random
import  csv
class Player:  # 用户类
    jifen = 0  # 积分为0
    def __init__(self, name):
        self.name = name  # 用户自己输入的名字
    def chuQuan(self):
         return  int(input("用户出拳:"))
class  Computer:  # 计算机类
    jifen=0  #积分为0
    def __init__(self,name):
        self.name=name  # 计算机的名字
    def  chuQuan(self):
         ar_computer = [0, 2, 5]  # 计算机会出的数字
         rd_computer = random.randint(0, 2)  # 选中计算机出的数字
         return ar_computer[rd_computer]
         # print("对手出拳:%d"%(ar_computer[rd_computer]))
class Game: #游戏类
    num_play = 0  # 对战次数
    def __init__(self):
        pass
    def  startPlay(num_play,player,computer):  #开始游戏
        headers = ['局数', '用户出拳情况', '对手出拳情况', "胜负信息"]
        with open('双方出拳情况.csv', 'a+', encoding='utf8', newline='') as f:
            # 生成的csv文件在py文件同一个目录
            writer = csv.writer(f)
            writer.writerow(headers)
        while (1):
            string=""  # 存放每次对战信息
            print("第%d局"%num_play)
            try:
                player_c=player.chuQuan()  #用户出拳
            except Exception as ex:
                print("用户输入异常,请输入纯数字", ex)
            else:
                computer_c=computer.chuQuan()  #对手出拳
                print("对手出拳:%d"%computer_c)
                if player_c == 0 or player_c == 2 or player_c == 5:
                    if (player_c == 0 and computer_c == 5):
                        print("对手胜利")
                        string += "对手胜利"
                        computer.jifen += 1   #  对手加一个积分
                    elif (player_c == 5 and computer_c == 0):
                        print("用户胜利")
                        string += "用户胜利"
                        player.jifen+= 1    #  用户加一个积分
                    elif (player_c < computer_c):
                        print("用户胜利")
                        string += "用户胜利"
                        player.jifen+= 1    #  用户加一个积分
                    elif (player_c > computer_c):
                        print("对手胜利")
                        string += "对手胜利"
                        computer.jifen += 1   #  对手加一个积分
                    else:
                        print("平局")
                        string += "平局"
                    rows = (num_play, player_c, computer_c, string)
                    num_play+= 1
                    with open('双方出拳情况.csv', 'a+', encoding='utf8', newline='') as f:
                        writer = csv.writer(f)
                        writer.writerow(rows)
                else:
                    print("退出游戏")
                    print("对战次数:%d" % (int(num_play) - 1))
                    if (player.jifen > computer.jifen):
                        print("对战最终结果:用户胜利")
                    elif (player.jifen < computer.jifen):
                        print("对战最终结果:对手胜利")
                    else:
                        print("对战最终结果:平局")
                    break  # 跳出死循环
if __name__ == '__main__':    # 主函数
    print((10 * "+") + "欢迎进入游戏" + (10 * "+")
          + "\n用户需知:\n"
            "1,对手为计算机(即此游戏为单机游戏)\n"
            "2,数字0表示石头,数字2表示剪刀,数字5表示布\n"
            "3,关于如何退出游戏:输入除0,2,5之外的其他数字即可退出游戏")
    player=Player("用户")
    computer=Computer("对手")
    game=Game
    game.startPlay(1,player,computer)

如果文章不够详细,依旧有问题的,请评论区回复或者是私信我。

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

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

设计 Mint.com

1. 梳理 User Case 和 约束 Use cases 作用域内的Use Case User 连接到 financial accountService 从 Account 中提取 transactions 日常 Update整理 transaction 所有的手动目录由 User 覆盖没有自动化的重排机制 - 通过目录分析月消费 Service 推荐 budget 允许 user 去…

小封装高稳定性振荡器 Sg2520egn / sg2520vgn, sg2520ehn / sg2520vhn

描述 随着物联网和ADAS等5G应用的实施&#xff0c;数据流量不断增长&#xff0c;网络基础设施变得比以往任何时候都更加重要。IT供应商一直在快速建设数据中心&#xff0c;并且对安装在数据中心内部/内部的光模块有很大的需求。此应用需要具有“小”&#xff0c;“低抖动”和“…

Redis分布式锁存在的问题以及解决方式

☆* o(≧▽≦)o *☆嗨~我是小奥&#x1f379; &#x1f4c4;&#x1f4c4;&#x1f4c4;个人博客&#xff1a;小奥的博客 &#x1f4c4;&#x1f4c4;&#x1f4c4;CSDN&#xff1a;个人CSDN &#x1f4d9;&#x1f4d9;&#x1f4d9;Github&#xff1a;传送门 &#x1f4c5;&a…

【前沿技术杂谈:智能对话的未来】深入比较ChatGPT与文心一言

【前沿技术杂谈&#xff1a;智能对话的未来】深入比较ChatGPT与文心一言 引言主体智能回复语言准确性知识库丰富度 深入分析&#xff1a;ChatGPT与文心一言的技术对比技术架构和算法数据处理和隐私用户界面和体验 应用场景分析未来展望技术进步的趋势潜在的挑战对社会的影响 结…

2018年认证杯SPSSPRO杯数学建模C题(第二阶段)机械零件加工过程中的位置识别全过程文档及程序

2018年认证杯SPSSPRO杯数学建模 基于轮廓提取与图像配准的零件定位问题研究 C题 机械零件加工过程中的位置识别 原题再现&#xff1a; 在工业制造自动生产线中&#xff0c;在装夹、包装等工序中需要根据图像处理利用计算机自动智能识别零件位置&#xff0c;并由机械手将零件…

JDBC编程详细教程与示例源码

版权声明 本文原创作者&#xff1a;谷哥的小弟作者博客地址&#xff1a;http://blog.csdn.net/lfdfhl JDBC概述 为了在Java语言中提供对数据库访问的支持&#xff0c;Sun公司于1996年提供了一套访问数据库的标准Java类库JDBC。JDBC的全称是Java数据库连接(Java Database Conn…

怎么样的布局是符合可制造性的PCB布局?

满足可制造性、可装配性、可维修性要求&#xff0c;方便调试的时候于检测和返修&#xff0c;能够方便的拆卸器件&#xff1a; 1&#xff09;极性器件的方向不要超过2种&#xff0c;最好都进行统一方向等要求&#xff0c;如图1-1所示&#xff1b; 图1-1 极性器件方向统一摆放 2…

CVE重要通用漏洞复现java php

在进行漏洞复现之前我们需要在linux虚拟机上进行docker的安装 我不喜欢win上安因为不知道为什么总是和我的vmware冲突 然后我的kali内核版本太低 我需要重新安装一个新的linux 并且配置网络 我相信这会话费我不少时间 查看版本 uname -a 需要5.5或以上的版本 看错了浪…

免费开源线上信息技术电子云书屋

1 概述 知命耳顺之际&#xff0c;时逢甲辰龙年到来&#xff0c;汇集半生研发积累和教育培训沉淀&#xff0c;以分布微服软件框架为基础&#xff0c;特别推出“线上电子云书屋”&#xff0c;陆续呈现编著的十余部信息技术教材和一些典型的软件架构平台&#xff0c;供给免费开源…

JVM-透彻理解字节码以及指令

一、字节码与指令概述 package ch13_bytecode;public class HelloWorld {public static void main(String[] args) {System.out.println("hello world");} }生成字节码&#xff1a; cafe babe 0000 0031 0022 0a00 0600 1409 0015 0016 0800 170a 0018 0019 0700 1a…

Docker(二)安装指南

作者主页&#xff1a; 正函数的个人主页 文章收录专栏&#xff1a; Docker 欢迎大家点赞 &#x1f44d; 收藏 ⭐ 加关注哦&#xff01; 安装 Docker Docker 分为 stable test 和 nightly 三个更新频道。 官方网站上有各种环境下的 安装指南&#xff0c;这里主要介绍 Docker 在…

css-动画效果学习示例

阴影 x-轴 y-轴 模糊度 颜色 (正负值可以表示角度问题) 可以加多个阴影 内置阴影 transition 可以添加动画延迟效果 向z轴缩进&#xff0c;开启透视respective 触发旋转效果 学习来源 &#xff1a;动画属性_哔哩哔哩_bilibili

应用Dockerfile编写及部署使用

dockerfile内容规范&#xff1a; FROM mycentos-jdk:latest # 基础镜像 MAINTAINER # 镜像作者信息 姓名邮箱 RUN # 镜像构建的时候运行的命令 ADD # copy内容到容器&#xff08;压缩包&#xff0c;自动解压&#xff09; COPY # 类似…

C++:类与结构体的对比

2024年1月18日 内容来自The Cherno:C系列 -------------------------------------------------------------------------------------------------------------------------------- C中关于class与struct&#xff0c;几乎没有区别&#xff0c;只有一个关于“可见度”的区别…

element-ui的el-upload组件实现上传拖拽排序图片顺序(sortablejs)

<template><!-- 省略其他配置 --><el-upload ref"upload" :file-list.sync"fileList"></el-upload></template><script>import Sortable from sortablejs;export default {data() {return {fileList: []};},mounted()…

【React】组件生命周期、组件通信、setState

文章目录 React的组件化类组件render函数的返回值函数组件 认识生命周期生命周期解析生命周期函数不常用生命周期函数 认识组件间的通信父组件传递子组件 - 类组件和函数组件参数propTypes子组件传递父组件 React中的插槽&#xff08;slot&#xff09;children实现插槽props实现…

three.js 缓动算法.easing(渐入相机动画)

效果&#xff1a;淡入&#xff0c;靠近物体 代码&#xff1a; <template><div><el-container><el-main><div class"box-card-left"><div id"threejs" style"border: 1px solid red"></div><div c…

地平线旭日 X3 开发板上手体验

最近嫖到一块旭日X3开发板&#xff0c;借此熟悉地平线 AI 芯片旭日 X3 模型部署流程&#xff0c;以及算法工具链。这里基本是跟着官方的用户手册进行操作&#xff0c;其中也遇到一些奇怪的问题。 1 烧写系统 1.1 系统选择 旭日X3派开发板支持Ubuntu 20.04 Desktop、Server两…

【数据结构与算法】排序算法:冒泡排序,冒泡排序优化,选择排序、选择排序优化

目录 一、冒泡排序 1、冒泡排序思想 2、冒泡排序算法的性能分析 代码实现&#xff1a; 二、选择排序 1、选择排序思想 2、选择排序算法的性能分析 代码实现&#xff1a; 一、冒泡排序 1、冒泡排序思想 冒泡排序的基本思想是通过相邻元素之间的比较和交换来逐步将最大…

轮胎侧偏刚度线性插值方法

一、trucksim取数据 步骤一 步骤二 二、数据导入到matlab中 利用simulink的look up table模块 1是侧偏角&#xff1b;2是垂直载荷&#xff1b;输出是侧向力。 侧向力除以侧偏角就是实时的侧偏刚度。