计算机毕业设计选题推荐-网上产品商城-Python项目实战

news2024/11/16 3:47:31

作者主页:IT研究室✨
个人简介:曾从事计算机专业培训教学,擅长Java、Python、微信小程序、Golang、安卓Android等项目实战。接项目定制开发、代码讲解、答辩教学、文档编写、降重等。
☑文末获取源码☑
精彩专栏推荐⬇⬇⬇
Java项目
Python项目
安卓项目
微信小程序项目

文章目录

  • 一、前言
  • 二、开发环境
  • 三、系统界面展示
  • 四、代码参考
  • 五、论文参考
  • 六、系统视频
  • 结语

一、前言

随着互联网技术的普及和移动设备的广泛使用,网上产品商城已经成为消费者购物的重要渠道。在这样的背景下,研究和开发一个功能完善、易于使用且具有良好用户体验的网上产品商城具有重要的现实意义。课题的必要性在于满足消费者多样化的购物需求,同时为商家提供一个便捷的在线销售平台。

尽管现有的网上商城解决方案在一定程度上满足了用户和商家的需求,但仍然存在一些问题。例如,部分商城的用户界面不够友好,导致用户在购物过程中遇到困难;商品分类和信息管理不够清晰,影响用户的购物体验;订单处理功能不完善,可能导致用户在购物过程中产生不满。这些问题进一步强调了开发一个更加便捷的网上产品商城的必要性。

本课题旨在研究和开发一个集成用户管理、商品分类管理、商品信息管理、订单管理、公告管理等主要功能的网上产品商城。通过实现这些功能,我们希望能够为用户带来更加便捷、愉悦的购物体验,同时为商家提供一个便捷易用的在线销售和管理工具。本课题的研究目的在于提高网上产品商城的整体性能,满足用户和商家的需求。

本课题的研究意义主要体现在以下几个方面:首先,它有助于推动电子商务行业的发展,为消费者提供更好的购物体验;其次,通过解决现有解决方案中存在的问题,本课题有助于提高网上产品商城的竞争力;再次,本课题的研究成果将为相关领域的研究者提供有益的参考,进一步增进计算机科学与技术领域的发展。

二、开发环境

  • 开发语言:Java/Python两个版本
  • 数据库:MySQL
  • 系统架构:B/S
  • 后端:SSM/SpringBoot/Django三个版本
  • 前端:Vue

三、系统界面展示

  • 网上产品商城界面展示:
    网上产品商城-产品信息
    网上产品商城-产品详情
    网上产品商城-购物车
    网上产品商城-我的订单
    网上产品商城-产品类型管理
    网上产品商城-产品信息管理
    网上产品商城-订单管理

四、代码参考

  • Python项目实战代码参考:
def add_order(request):
    uid = request.session.get('uid')
    cart_ids = request.POST.getlist('cart_id')
    cart_list = []
    cart_id_list_str = ''
    # 购物车数据
    for cart_id in cart_ids:
        cart = CartInfo.objects.get(id=cart_id)
        cart_list.append(cart)
        cart_id_list_str += cart_id+','
    # 收货地址信息
    address_list = AddressInfo.objects.filter(uid=uid).order_by('-is_default')
    context = {
        'cart_list': cart_list,
        'address_list': address_list,
        'cart_id_list': cart_id_list_str,
        'title': '提交订单',
        'app_name': '提交订单'
    }
    return render(request, 'order/place_order.html', context)


@transaction.atomic()
def handle_order(request):
    address_id = request.POST.get('address')
    cart_id_list = request.POST.get('cart_id_list').split(',')
    sp = transaction.savepoint()
    try:
        # 订单表
        order = Order()
        now_str = datetime.datetime.now().strftime('%Y%m%d%H%M%S')
        order.id = '%s%s' % (now_str, random_str())
        order.user_id = request.session['uid']
        order.address_id = address_id
        order.save()
        total_price = 0
        # 订单详情表
        cart_list = CartInfo.objects.filter(id__in=cart_id_list)
        for cart in cart_list:
            if cart.count <= cart.goods.store:
                detail = OrderDetail()
                detail.order = order
                detail.goods = cart.goods
                detail.count = cart.count
                detail.price = cart.goods.price*detail.count
                detail.save()

                goods = cart.goods
                goods.store -= cart.count
                goods.save()

                cart.delete()
                total_price += detail.price
        order.total_price = total_price
        order.save()
        transaction.savepoint_commit(sp)
        return HttpResponseRedirect('/user/order/')
    except Exception:
        transaction.savepoint_rollback(sp)
        return HttpResponseRedirect('/cart/')


def random_str(random_len=6):
    str = ''
    chars = '0123456789'
    # 依据长度,随机chars中下标,依据随机下标获取数据
    for i in range(random_len):
        str += chars[random.randint(0, (len(chars) - 1))]
    return str
def register(request):
    """
    用户注册
    :param request:
    :return:
    """
    if request.method == 'POST':
        post = request.POST
        username = post.get('username')
        password = post.get('password')
        email = post.get('email')
        is_username_exist = UserInfo.objects.filter(username=username).count() == 0
        is_email_exist = UserInfo.objects.filter(email=email).count() == 0
        if is_email_exist and is_username_exist:
            user = UserInfo()
            user.username = username
            user.email = email
            user.password = sha1(password.encode('utf8')).hexdigest()
            user.save()
            # 发送验证邮件
            token = uuid.uuid1()
            redis = StrictRedis()
            key = 'user_verify_email_key_' + str(user.id)
            redis.set(key, token)
            html_message = "<a href='http://127.0.0.1:8000/user/verify_email/?id=%d&token=%s'>激活邮箱</a>" % (user.id, token)
            task.send_verify_email.delay('生鲜商城用户注册邮箱激活', user.email, html_message)
            return render(request, 'tips.html', {'info': '请登录邮箱进行激活操作'})
        else:
            return render(request, 'user_center/register.html', {'error': '用户名或邮箱已经存在'})
    else:
        return render(request, 'user_center/register.html', {'title': '注册', 'hide_header': True})


def login(request):
    """登录处理"""
    if request.method == 'POST':
        # pre_url = request.session.get('pre_url')  # 上次访问的URL
        pre_url = request.session.get('pre_url', '/')
        try:
            post = request.POST
            username = post.get('username')
            password = post.get('password')
            user = UserInfo.objects.get(username=username)
            remember = post.get('remember')
            if sha1(password.encode('utf8')).hexdigest() == user.password:
                # 密码校验成功
                # 邮箱激活校验
                if user.verification is False:
                    code = 403
                    msg = '请您登录邮箱点击激活邮箱链接'
                else:
                    code = 200
                    msg = '登录成功'
                    # 保存用户信息到session
                    request.session['uid'] = user.id
                    request.session['username'] = user.username
            else:
                # 密码校验失败
                code = 401
                msg = '密码错误'
        except:
            # 密码校验失败
            code = 402
            msg = '用户名错误'
        # 返回数据
        response = JsonResponse({'code': code, 'msg': msg, 'pre_url': pre_url})
        if code == 200 and remember == '1':
            # 登录成功设置cookies
            now = datetime.datetime.now()
            date = now + datetime.timedelta(days=7)
            response.set_cookie('username', user.username, expires=date)
        return response
    else:
        username = request.COOKIES.get('username', '')
        from_url = request.GET.get('from', '')
        context = {
                   'title': '登录',
                   'username': username,
                   'hide_header': True,
                    'from_url': from_url
        }
        return render(request, 'user_center/login.html', context)


def username_exist(request):
    """
    检测用户名是否重名
    :param request:
    :return:
    """
    username = request.GET.get('username')
    num = UserInfo.objects.filter(username=username).count()
    if num > 0:
        return JsonResponse({'code': 400, 'msg': '该用户名已存在,请您更换用户名注册'})
    else:
        return JsonResponse({'code': 200, 'msg': '该用户名可以注册'})


def email_exist(request):
    """
    检测邮箱是否重名
    :param request:
    :return:
    """
    email = request.GET.get('email')
    num = UserInfo.objects.filter(email=email).count()
    if num > 0:
        return JsonResponse({'code': 400, 'msg': '该邮箱已被占用,请您更换邮箱注册'})
    else:
        return JsonResponse({'code': 200, 'msg': '该邮箱可以注册'})


def verify_email(request):
    try:
        get = request.GET
        uid = get.get('id')
        key = 'user_verify_email_key_' + str(uid)
        user_token = get.get('token')
        redis = StrictRedis()
        redis_token = redis.get(key)
        verify_flag = False # 邮箱激活成功与否flag
        if user_token == bytes.decode(redis_token):
                user = UserInfo.objects.get(id=uid)
                if user.verification is False:
                    user.verification = True
                    user.save()
                    verify_flag = True
                    # 激活成功后,删除token
                    redis.delete(key)
    except:
        pass
    if verify_flag is True:
        return HttpResponseRedirect('/user/login/')
    else:
        return render(request, 'tips.html', {'info': '邮箱验证失败,请您重试'})


def find_password(request):
    """
    找回密码
    :param request:
    :return:
    """
    if request.method == 'POST':
        post = request.POST
        username = post.get('username')
        email = post.get('email')
        try:
            user = UserInfo.objects.get(username=username)
            if user.email == email:
                # 发送验证邮件
                token = uuid.uuid1()
                redis = StrictRedis()
                key = 'user_verify_fpwd_email_key_' + str(user.id)
                redis.set(key, token)
                html_message = "<a href='http://127.0.0.1:8000/user/verify_fpwd_email/?id=%d&token=%s'>找回密码验证</a>" % (user.id, token)
                task.send_verify_email.delay('生鲜商城用户找回密码邮箱验证', user.email, html_message)
                code = 200
                msg = '请您登录邮箱,点击邮件里的邮箱验证链接'
            else:
                code = 401
                msg = '输入的邮箱不正确'
        except:
            code = 400
            msg = '该用户名尚未注册'
        return JsonResponse({'code': code, 'msg': msg})
    else:
        return render(request, 'user_center/find_password.html')


def reset_password(request):
    try:
        post = request.POST
        uid = post.get('id')
        key = 'user_verify_fpwd_email_key_' + str(uid)
        user_token = post.get('token')
        pwd = post.get('pwd')
        cpwd = post.get('cpwd')
        redis = StrictRedis()
        redis_token = redis.get(key)
        if user_token == bytes.decode(redis_token) and pwd == cpwd:
            user = UserInfo.objects.get(id=uid)
            user.password = sha1(pwd.encode('utf8')).hexdigest()
            user.save()
            redis.delete(key)
            info = '密码重置成功'
        else:
            info = '密码重置失败'
    except:
        info = '密码重置失败'

    return render(request, 'tips.html', {'info': info})


def verify_fpwd_email(request):
    """
    验证找回密码邮箱链接
    :param request:
    :return:
    """
    try:
        get = request.GET
        uid = get.get('id')
        key = 'user_verify_fpwd_email_key_' + str(uid)
        user_token = get.get('token')
        redis = StrictRedis()
        redis_token = redis.get(key)
        verify_flag = False  # 邮箱验证成功与否flag
        if user_token == bytes.decode(redis_token):
            verify_flag = True
            # redis.delete(key)
    except:
        pass
    if verify_flag is True:
        return render(request, 'user_center/reset_password.html', {'title': '重置密码', 'id': uid, 'token':user_token})
    else:
        return render(request, 'tips.html', {'info': '邮箱验证失败,请您重试'})


def center(request):
    """
    用戶中心
    :param request:
    :return:
    """
    # 用户信息
    user = UserInfo.objects.get(id=request.session.get('uid'))
    # 浏览记录
    view_goods = []
    view_goods_str = request.COOKIES.get('view_goods', '')
    view_goods_list = view_goods_str.split(',')
    view_goods_list.pop()
    if view_goods_str != '':
        for goods_id in view_goods_list:
            goods = GoodsInfo.objects.get(id=goods_id)
            view_goods.append(goods)
    context = {
             'title': '用户中心',
             'app_name': '用户中心',
             'user': user,
             'view_goods': view_goods
    }
    return render(request, 'user_center/user_center_info.html', context)


def logout(request):
    """
    退出登录
    :param request:
    :return:
    """
    request.session.flush()
    return HttpResponseRedirect('/')


def address(request):
    """地址列表"""
    uid = request.session.get('uid')
    address_list = AddressInfo.objects.filter(uid=uid)
    if len(address_list) > 0:
        new_list = list()
        for add in address_list:
            province_name = AreaInfo.get_province_name(add.province_id)
            city_name = AreaInfo.get_city_name(add.province_id, add.city_id)
            district_name = AreaInfo.get_district_name(add.province_id, add.city_id, add.district_id)
            data={
                'area': province_name + city_name + district_name,
                'address': add.address,
                'realname': add.realname,
                'phone': add.phone,
                'is_default': add.is_default,
                'id': add.id,
                'app_name': '用户中心',
                'title': '收货地址列表',
            }
            new_list.append(data)
        return render(request, 'user_center/user_center_site.html', {'address_list': new_list})
    else:
        return HttpResponseRedirect('/user/add_address/')


def add_address(request):
    """添加或编辑收货地址"""
    if request.method == 'POST':
        uid = request.session.get('uid')
        post = request.POST
        address_id = post.get('address_id')
        if address_id != '':
            # 编辑
            address = AddressInfo.objects.get(id=address_id)
        else:
            # 新增
            address = AddressInfo()
        address.uid = uid
        address.realname = post.get('realname')
        address.province_id = post.get('province')
        address.city_id = post.get('city')
        address.district_id = post.get('district')
        address.address = post.get('detail')
        address.phone = post.get('phone')
        address.save()
        return HttpResponseRedirect('/user/address/')
    else:
        # 查询全部省份
        # province = AreaInfo.objects.filter(Q(city_id=0) & Q(district_id=0))
        province = AreaInfo.objects.filter(city_id=0, district_id=0)
        context = {
            'app_name': '用户中心',
            'title': '添加收货地址',
            'province': province
        }
        return render(request, 'user_center/user_center_site_edit.html', context)


def get_address_city(request):
    """ajax获取一个省下的城市"""
    province_id = request.GET.get('province_id')
    city_list = AreaInfo.objects.filter(province_id=province_id, city_id__gt=0, district_id=0).values('city_id', 'name')
    return JsonResponse({"city_list": list(city_list)})


def get_address_district(request):
    """ajax获取一个市下的县区"""
    city_id = request.GET.get('city_id')
    district_list = AreaInfo.objects.filter(city_id=city_id,district_id__gt=0).values('district_id', 'name')
    return JsonResponse({'district_list': list(district_list)})


def edit_address(request, address_id):
    """编辑收货地址信息"""
    province = AreaInfo.objects.filter(city_id=0, district_id=0)
    address_info = AddressInfo.objects.get(id=address_id)
    city = AreaInfo.objects.filter(province_id=address_info.province_id,city_id__gt=0, district_id=0)
    district = AreaInfo.objects.filter(province_id=address_info.province_id, city_id=address_info.city_id, district_id__gt=0)
    context = {
        'province': province,
        'address_info': address_info,
        'city': city,
        'district': district,
        'app_name': '用户中心',
        'title': '编辑收货地址',
    }
    return render(request, 'user_center/user_center_site_edit.html',context)


def del_address(request, address_id):
    """删除地址"""
    try:
        AddressInfo.objects.filter(id=address_id).delete()
        return JsonResponse({'code': 200, 'msg': '删除成功'})
    except Exception:
        return JsonResponse({'code': 400, 'msg': '删除失败'})


@transaction.atomic
def set_default_address(request, address_id):
    """设置默认地址"""
    address = AddressInfo.objects.get(id=address_id)
    # 记录事务开始保存点
    save_point = transaction.savepoint()
    try:
        # 设置(取消)默认地址
        address.is_default = not address.is_default
        address.save()
        undefault_address_id = 0  # 记录被取消默认地址的id
        if not address.is_default:
            # 如果当前选中的不是默认地址
            # 就要考虑有没有其他地址是默认地址
            uid = request.session.get('uid')
            address_list = AddressInfo.objects.filter(uid=uid, is_default=True)
            # 如果有其他地址是已经被设置为默认地址,就把这个取消掉
            if len(address_list) == 1:
                address_list[0].is_default = False
                undefault_address_id = address_list[0].id
                address_list[0].save()
        # 事务提交
        transaction.savepoint_commit(save_point)
        return JsonResponse({'code': 200, 'msg': '设置成功', 'undefault_address_id': undefault_address_id})
    except Exception:
        # 事务回滚
        transaction.savepoint_rollback(save_point)
        return JsonResponse({'code': 400, 'msg': '设置失败'})


def order(request):
    """用户订单列表"""
    current_page = int(request.GET.get('page', '1'))

    uid = request.session['uid']
    order_list = Order.objects.filter(user_id=uid).order_by('-add_time')

    paginator = Paginator(order_list, 1)
    order_list = paginator.page(current_page)

    context = {
               'title': '用户中心',
               'order_list': order_list
    }
    return render(request, 'user_center/user_center_order.html', context)


def del_view_goods(request):
    """删除浏览记录"""
    try:
        response = JsonResponse({'code': 200, 'msg': '删除成功'})
        goods_id = request.POST.get('goods_id')
        view_goods = request.COOKIES.get('view_goods').split(',')
        # goods_id 为0 时,删除全部
        # 不为0时,删除某一个
        if goods_id != '0':
            if goods_id in view_goods:
                view_goods.remove(goods_id)
            view_goods_str = ','.join(view_goods)
            response.set_cookie('view_goods', view_goods_str, max_age=7 * 86400)
        else:
            response.set_cookie('view_goods', '', max_age=7 * 86400)
        return response
    except Exception:
        return JsonResponse({'code': 400, 'msg': '删除失败'})

五、论文参考

  • 计算机毕业设计选题推荐-网上产品商城论文参考:
    计算机毕业设计选题推荐-网上产品商城论文参考

六、系统视频

网上产品商城项目视频:

结语

计算机毕业设计选题推荐-网上产品商城-Python项目实战
大家可以帮忙点赞、收藏、关注、评论啦~
源码获取:⬇⬇⬇

精彩专栏推荐⬇⬇⬇
Java项目
Python项目
安卓项目
微信小程序项目

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

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

相关文章

同为科技(TOWE)工业连接器:保障高效、可靠、安全的电气连接

国内经济快速的发展&#xff0c;人们生活水平的不断提高&#xff0c;基础设施的建设是发展的基础&#xff0c;完善的基础设施对加速经济的发展起到至关重要的作用。其中&#xff0c;基础建设中机场、港口、电力、通讯等公共设施必须配套相应的电气设施&#xff0c;工业用插头插…

华为无线ac+fit三层组网,每个ap发射不同的业务vlan

ap管理dhcp在ac控制器上&#xff0c;业务dhcp在汇聚上 配置WLAN业务 &#xff08;1&#xff09;配置VAP模板 • 配置员工网络的VAP模板&#xff08;employee&#xff09; [AC-wlan-view] security-profile name employee //创建名为“employee”的安全模板 [AC-wlan-sec-prof-…

Windows to Go U盘系统制作(未测完成)

三、Windows U盘系统制作 1、下载windows镜像&#xff0c;并通过Windows To Go方式制作&#xff0c;具体选项参考下面截图 2、选择Windows版本 3、配置Windows 体验相关参数

dvwa 代码注入impossible代码审计

dvwa 代码注入impossible代码审计 <?phpif( isset( $_POST[ Submit ] ) ) {// Check Anti-CSRF tokencheckToken( $_REQUEST[ user_token ], $_SESSION[ session_token ], index.php ); // 检查token值是否正确// Get input$target $_REQUEST[ ip ]; $target stripslas…

Tensorrt 实现 yolov5-cls 遇到的问题

yolov5-6.2增加了分类训练、验证、预测和导出&#xff08;所有 11 种格式&#xff09;&#xff0c;还提供了 ImageNet 预训练的 YOLOv5m-cls、ResNet&#xff08;18、34、50、101) 和 EfficientNet (b0-b3) 模型. 官方Git : https://github.com/ultralytics/yolov5 分类模型与…

树莓派的的串口通信协议

首先&#xff0c;回顾一下串口的核心知识点&#xff0c;也是面试重点&#xff1a; 串口通信通常使用在多机通讯中串口通信是全双工的决定串口通信的成功与否的是 数据格式 和 波特率数据格式&#xff1a;1. 数据位 2.停止位 3. 奇偶校验位 树莓派恢复串口 回忆前几节树莓派刷机…

ES 查询语法-详解

文章目录 1.DSL查询文档1.1.DSL查询分类1.2.全文检索查询1.2.1.使用场景1.2.2.基本语法1.2.3.总结 1.3.精准查询1.3.1.term查询1.3.2.总结 1.DSL查询文档 elasticsearch的查询依然是基于JSON风格的DSL来实现的。 1.1.DSL查询分类 Elasticsearch提供了基于JSON的DSL&#xff…

gwas数据获取如何获取完整的GWAS summary数据(1)------GWAS catalog数据库

IEU OpenGWAS project (mrcieu.ac.uk) UK Biobank - UK Biobank GWAS Catalog 在孟德尔随机化&#xff08;Mendelian randomization&#xff0c;MR&#xff09;研究中&#xff0c;对于暴露数据我们只需要那些显著的SNP信息&#xff0c;这样的信息在各种GWAS数据库中都是很容…

2019ICPC南京站

A A Hard Problem 题意&#xff1a;给定一个正整数 n &#xff0c;你需要找出最小整数 k&#xff0c;满足&#xff1a;从{1,2,⋯,n}中任意选择长度为k的子集&#xff0c;存在两个不同的整数 u,v∈T, 且 u 是 v 的因数。 思路&#xff1a;打表找规律 #include <bits/std…

分类问题的评价指标

一、logistic regression logistic regression也叫做对数几率回归。虽然名字是回归&#xff0c;但是不同于linear regression&#xff0c;logistic regression是一种分类学习方法。 同时在深度神经网络中&#xff0c;有一种线性层的输出也叫做logistic&#xff0c;他是被输入…

【docker下安装jenkins】(一)

目的&#xff1a;在Linux操作系统&#xff08;x86_64)下&#xff0c;使用docker部署jenkins&#xff0c;python使用压缩包安装 安装jenkins的步骤 &#xff11;、编排jenkins的docker-compose.yml文件 说明&#xff1a;这里遇到部署jenkins后&#xff0c;占用内存8G,所以重新…

智能时代的智能工具(gpt)国产化助手

目前gpt对代码以及其他领域都是可以支持&#xff0c;在国内有很多&#xff0c;常用的百度的 文心一言 &#xff0c;阿里的 通义千问 &#xff0c;还有&#xff08;“豆包”&#xff0c;“”讯飞星火“”&#xff09;等&#xff0c;除了写代码可以外&#xff0c;也可以很好的支持…

设计模式—结构型模式之享元模式

设计模式—结构型模式之享元模式 享元模式(Flyweight Pattern)&#xff0c;运用共享技术有效地支持大量细粒度对象的复用。系统只使用少量的对象&#xff0c;而这些对象都很相似&#xff0c;状态变化很小&#xff0c;可以实现对象的多次复用。对象结构型。 在享元模式中可以共…

OpenCV中的形态学8

文章目录 形态学概述图像全局二值化阈值类型自适应阈值二值化OpenCV腐蚀获取形态学卷积核OpenCV膨胀开运算闭运算形态学梯度顶帽运算黑帽操作小结 形态学概述 开运算&#xff1a;先做腐蚀后做膨胀&#xff08;腐蚀可以理解为缩小&#xff09; 闭运算&#xff1a;先膨胀后腐蚀 …

LeetCode209.长度最小的子数组(滑动窗口法、暴力法)

LeetCode209.长度最小的子数组 1.问题描述2.解题思路3.代码4.知识点 1.问题描述 给定一个含有 n 个正整数的数组和一个正整数 target 。找出该数组中满足其总和大于等于 target 的长度最小的 连续子数组 [numsl, numsl1, ..., numsr-1, numsr] &#xff0c;并返回其长度。如果…

OpenGeometry 开源社区特聘子虔科技云CAD专家 共建云几何内核

11月5日&#xff0c;由广东省工业和信息化厅、广东省科学技术厅、广东省教育厅、深圳市人民政府主办的2023工业软件生态大会在广东省深圳市召开。 开幕式上&#xff0c;备受关注的云几何内核开源平台——OpenGeometry开源社区正式发布。这意味着在几何引擎领域将通过开源这个模…

界面控件DevExpress WPF流程图组件,完美复制Visio UI!(一)

DevExpress WPF Diagram&#xff08;流程图&#xff09;控件帮助用户完美复制Microsoft Visio UI&#xff0c;并将信息丰富且组织良好的图表、流程图和组织图轻松合并到您的下一个WPF项目中。 P.S&#xff1a;DevExpress WPF拥有120个控件和库&#xff0c;将帮助您交付满足甚至…

专业课140+总分420+东南大学920专业综合考研,信息学院通信专业考研分享

专业课140总分420东南大学920专业综合考研&#xff0c;信息学院通信专业考研分享 我是三月开始系统考研备战&#xff0c;寒假先看的高数全书&#xff0c;奈何在家效率极其低下&#xff0c;才草草看了前三四章。回校后学习的比较认真&#xff0c;每天大概保持10个小时左右&…

List操作的一些常见问题

文章目录 阿里巴巴开发手册强制规约&#xff1a;1. Arrays.asList转换基本类型数组2. Arrays.asList返回的List不支持增删操作3. 对原始数组的修改会影响到我们获得的那个List4. ArrayList.subList强转ArrayList导致异常5. ArrayList中的subList切片造成OOM6.Copy-On-Write 是什…