【实训项目】易行APP设计(c2c二手交易平台)

news2024/11/26 1:48:54

1.设计摘要

1.1市场背景

随着经济的迅速发展与科技日新月异的进步,家庭内的各项物品更新换代频率越来越快,人们购买新商品后越来越多旧的商品积压需要处理;在互联网电商的各种营销刺激下,消费者非常容易形成“冲动”消费,因而产生了大量的闲置、二手物品。现阶段物价越来越高,加之生活压力越来越大,人们生活成本也在逐步提高。随着经济意识的不断增强,生活习惯和消费观念也在悄然改变,人们逐渐倾向于购买便宜而又实惠的二手商品。对于废旧物品,有人会拿到当地的二手交易市场去交易,有人会因离二手市场较远或二手物品不易搬运而把它当废品卖掉甚至扔掉。这不仅不利于环保,还浪费了社会资源。

1.2产品介绍

易行APP是一个大型二手货交易APP,用户可以随时随地以较低的价格购买自己想要的二手货物。易行在具有普通购物APP优点的基础上,增加了用户悬赏功能,随时发布悬赏,告诉卖家自己想要的货物,以合适的价格,较快的速度,购买到自己急需的商品。而且,易行APP使得每个人都可以是卖家,随时上架自己不需要的二手货物,审批合格后即可上架,对人们的日常生产生活提供了极大的便利。

2.设计的模式及产品目标

2.1设计的模式

“易行”APP采用C2C二手交易平台,使得客户和客户可以直接交流沟通。对于卖家来说,可以很方便的售卖自己不需要的物品,而不需要丢弃或者给回收站。对于买家来说,可以快速地找到自己所需的旧物并以自己理想的价格进行购买。APP的收入主要来源于交易额的抽取、广告的植入以及现金提现的手续费。

2.2产品目标

(1)卖家方面

由于二手市场难以维护,卖方的商品很可能在销售过程中被损坏或盗窃,线上的APP可以有效防止这类事故的发生。此外,卖家可以随时上架自己想卖的物品,有效及时地处理二手货物,尽可能多地赚取利益。

(2)买家方面

二手市场通常人数较多,物品种类多而杂,非常不方便买方的出行与选择,而线上的APP很好的解决了这些问题。此外,APP的使用可以使得买方可以随时随地参与二手物品的购买,无需前往二手市场,在家也可挑选所需的二手货物。同时还可以发布悬赏令,向附近用户发出寻求,及时解决自己急需。

3.创新与优势

“易行”APP保留传统购物APP在线购物,分类挑选等优点的基础上,增加了传统二手市场讲价的特点,买家可以根据卖家的起价和卖家沟通进行讲价以及验证商品的好坏性,然后双方确认价格后完成付款,使得买卖双方都能获得最大利益。此外,“易行”APP中有悬赏功能,使得买方能够将急需的物品发布给附近用户,解决买方的需要也能使卖家赚取更多的利益。所以,“易行”APP对于买卖双方都有着巨大的利益,让人们更好的处理不需要但能用的旧物,而且对生态环境的保护也有着相当大的好处。

4.设计思路

系统设计思路:

4.1调研,完成一份详细的需求文档

(1)系统要实现什么功能;

(2)性能上有什么特别的要求;

(3)哪些是技术难点,可以的话对技术难点首先测试攻关。

4.2确定系统的运行环境

(1)系统运行的操作系统;

(2)使用何种编程语言;

(3)使用何种界面交互环境;

(4) 需要使用哪些第三方库。

4.3划分系统模块,设计总体框图

(1)整个系统从大的方向来划分的话,可以分为哪几个模块,每个模块又可以继续划分为哪几个小模块;

(2)每个模块的提供的功能是什么;

(3)模块之间怎么交互。

4.4分析模块的需求,抽象出实现模块功能的各个类

(1)本模块可以设计哪些类,哪些类是作为本模块对外的接口;

(2)模块内部的类之间怎么交互?模块间的类之间怎么交互;

(3)类的设计时,需要考虑是否可以通过继承、组合等方式简化设计;

(4)画出简单的UML设计图。

4.5设计每个类的属性和方法

(1)每个类有哪些成员变量,提供哪些功能函数;

(2)哪些功能通过继承获取,哪些功能需要用到重载,哪些功能需要利用多态;

(3)完成类的头文件的定义。

4.6实现每个类的功能及集成测试

(1)编码实现每个类的功能;

(2)根据前面的设计,完成类之间的交互代码,实现系统所需要的功能;

(3)集成和测试,优化代码,修改bug;

5.可行性论证

在之前的项目的市场背景下,大量二手物品交易市场应运而生,二手物品的交易已成为国民经济中不可缺少的一部分。二手商品交易APP,是基于一种新的思想,文化,理念的生活方式,伴随互联网及移动端的高速发展,快速、便利、精准地为人们提供高性价比的二手物品,既能满足人们日益增长的生活需要,又可促进可利用资源的循环使用,减少资源的浪费。在注重商品交易的同时,更多的考虑到环境保护因素,贴合时下主流文化,让每个人在交易的同时,能够参与到环境保护中。所以该方案是可行的,有市场的。

6.需求分析

6.1 主界面功能

用户的主界面主要显示首页、推荐、悬赏,我的这四类基础总功能;

性能需求

6.2系统主要功能要求:

首页:

(1)类别:将上架售卖的商品事先分好类别,例如电子产品,衣物,书籍,其他生活用品等等。

(2)刚刚上架/火热销售:首页推荐商品。

(3)搜索:输入搜索查找商品

推荐:

根据用户的浏览记录推荐相关商品。

悬赏:

(1)我的悬赏:可以发布一些悬赏令来悬赏急需的物品而在交易中心没有查找到的。

(2)附近悬赏:可以查看其他人的悬赏,来以一个较高的价格出售二手商品。

我的:

(1)个人资料:保存用户个人详细信息。

(2)上架货物:用户在作为卖家时上架货物的清单。

(3)我要上架:上架自己想要出售的二手物品。

(4)浏览记录:用户在使用APP时浏览商品的记录,方便查找。

(5)个人订单:用户在作为买家时购买物品后的订单。

(6)收货地址:用户可以设置或修改收货地址                           

6.3运行需求

(1)用户界面

其用户界面要求为包括简洁、易用、易懂,美观,具备一定的兼容性;同时符合用户的操作习惯。

(2)尚需解决的问题

预留软件更新功能,添加新收货地址,买卖双方交流平台

6.4其他专门要求:

软件质量要求为:易用、兼容性好、运行稳定、有一定安全保障。

7.项目总体设计

“易行”APP一共分为五大模块:个人中心、用户注册、悬赏中心、交易中心、推荐。

系统结构图如下:

8.详细设计与实现

8.1首页板块

由广告栏,类别栏,首页推荐栏三大部分组成,广告栏用于展示商品广告,并有响应的货物连接。类别栏,链接至对应类别的商品列表。首页推荐栏,用于展示卖家要求的推荐货物信息。总体采用HTML、CSS、JavaScript等前端技术实现。

 

8.2 推荐板块

根据用户的浏览历史表中货物的相关信息,将类似的物品推荐给用户,采用HTML、CSS、JavaScript,jQuery等技术实现商品展示。 

 8.3悬赏板块

可以查看用户已经发布的悬赏或者接受用户的悬赏,也可以发布自己的悬赏,采用HTML、CSS、JavaScript实现。

 8.4我的板块

里面有多个小板块,都采用HTML、CSS等技术。内容如下:

(1)个人中心:提供个人信息的超链接,可查看自己的详细信息。

(2)上架货物:用户在作为卖家时上架货物的清单。

 (3)我要上架:上架自己想要出售的二手物品。

 (4)个人订单:用户在作为买家时购买物品后的订单。

 (5)收货地址:用户可以设置或修改收货地址

 (6)登录界面

 (7)注册界面

(8)我的首页

 9.项目测试与运行

前端页面的测试过程中常常出现CSS未正常现实、图片未显示等问题,都是因为图片或者CSS文件的路径不对,在将对应路径修改正确后即可正确显示。

后端代码的测试过程中,出现了Ajax不能访问Servlet的问题。通过前端页面alert()方法确定到jQuery未能正常工作,最终发现jQuery放置在WEB-INF文件夹下,而在运行过程中此文件夹下的文件不可获取,所以产生错误。将jQuery放至外部文件夹后,便可正常运行。

测试过程主要遇到以上两种问题,解决后整个系统便可成功运行。

10.项目小组分工

组长:首页页面,商品页面,页面整合,页面优化,测试APP,后端开发。

组员1:登录页面,我的页面,注册页面。

组员2:商品列表,查询素材。

组员3:悬赏列表,发布悬赏,上架物品。

组员4:我的订单,填补素材。

组员5:收货地址页面,PPT的制作,素材收集  

11.心得体会

组长:经过此次课程设计,使我充分了解了Java语言在Android系统上的APP开发的流程,虽然类似于JavaWeb系统的开发,但又新加入了特有的API,也使我们在短时间内学会了一种新工具的使用,锻炼了我们快速学习的能力。此外,此次课程设计也使我在Java编程方面更加的熟练,对jQuery Ajax的使用尤为深刻,因为这项技术不同于以前jsp中的同步的前后端交互模式,可以异步实现,并对页面局部进行刷新,可以实现静态页面与后端的完美交互。总之,这次的课程设计使我受益颇多,不仅学习巩固的编程技术,也对软件开发的整个流程有了更加明确的认识,所以我希望这样的课程设计可以时间安排长一些,将自己的项目完善的更好。

组员1:通过本次课程设计,第一次有了手机App的开发经验,初步掌握和熟悉了手机App开发工具APICloud的使用和App的开发流程,并且了解了手机前端和PC前端开发的区别和联系。借鉴于以前PC前端的开发经验,本次课设的前端工作基本上能够很好地适应,只不过需要注意一下API的使用。但是在后端实现方面,由于时间上的紧张所以并没有实现很多功能,所以对于后端方面,我还需要努力学习,加以改进。

组员2:经过本次课程设计认识到了合作的重要性,还有复习了Java Web的前端代码的设计与实现,并且还把后端的部分链接数据库的代码复习了一边。再学习到了ADPCloud的使用。了解手机APP的初步开发与实现。在本次课程设计中,在组长的带领下学习到了许多知识,同时对合作开发有了一定的理念。

组员3:通过本次课程设计我深刻认识到团队以及合作得重要性,在如此短的时间里要完成一个项目得设计必须要有明确的分工,在组长的带领下我们完成了应用开发。同时学习了APICloud的使用,了解了APP的开发流程,如何应用javaweb开发APP,但由于是ios系统,很遗憾没能在自己手机上体验一番自己小组设计的APP。

组员4:此次实验,不仅使我对Android平台app的开发技术有了一定的掌握,还使我对实际中项目的开发流程有了一定的了解。而且我还深切体会到了团队合作的重要性,相信这对我今后的学习和工作都有很大的益处。由于时间的紧迫和对技术的掌握有限,造成了产品中还存在许多不足,功能上还不够完善,与实际的产品仍存在很大差距。这让我们认识到了自己的不足,在之后的学习中去尽力弥补,争取成为一名合格的从业人员。

组员5:通过本次实验,我掌握了app制作的基本技术,并且学会了创造一个有商用价值的产品需要思考哪些方面,更难得的是体会到了团队合作的重要性和必要性。明确的分工、共同的理念目标使得小组任务得以出色完成。遗憾的是由于个人考研原因,在前期的工作中没有过多的参与到项目的制作中。今后在工作生活中会努力将所学知识应用于实践,创造出更多更好的产品。

12.参考文献

[1] Bruce Eckel.Thinking in Java[M].北京:机械工业出版社,2007:880.

[2] Ryan Benedetti,Ronan Cranley.Head First jQuery[M].北京:中国电气出版社,2005

13.核心代码

<!DOCTYPE html>
<html>
<head>
	<meta charset="UTF-8">
	<title>全部分类</title>
	<link rel="stylesheet" type="text/css" href="../css/api.css" />
    <link rel="stylesheet" type="text/css" href="../css/common.css" />

	<style>
		html, body {width: 100%;min-height: 100%;background: #f0f0f0;}
		.h80 {height: 80px;}
		.h40 {height: 40px;}
		.h20 {height: 20px;}
    	.h10 {height: 10px;background: #f0f0f0;}
		.h1 {height: 1px;margin-left: 15px;background: #f0f0f0;}
		.fr {float: right;}
		.fl {float: left;}
		.hightitem {background-color: #fff;}
		.inwrap {margin: 0 10px;}

		/* 2X2样式 */
		.row {display: -webkit-box;display: -webkit-flex;}
		.col {-webkit-box-flex:1; -webkit-flex:1; flex:1;position: relative;}
		.col img {position: absolute; right: 0; width: 80px; top: 0;}
		.col .matrixcell {display: table-cell;vertical-align: middle; padding-left: 10px;}
		.col .matrixcell .title {margin-bottom: 10px;}
		.matrix {display: table;height: inherit;}

		/* 1. 2X2 */
		.flipcard {height: 30px; line-height: 30px; text-align: center; margin: 5px 5px 3px 5px; color: #000; background-color: #fff; font-size: 14px;}
		.darktitle {height: 40px;line-height: 40px;margin-left: 15px;font-size: 14px;color: #666;}

		/* 2. 三列 */
		.scratch02 .word {margin-top: 10px;margin-left: 10px;}
		.scratch02 .word .title{font-size: 18px;}
		.scratch02 .word .info{font-size: 12px;color: #666;}
		.scratch02 img {position: relative;width: 60px; height: 50px;}
		.showposter {text-align: center;margin-top: 5px;padding-bottom: 10px;}

		/* 列表 */
		.classify {height: 60px;line-height: 60px;background-color: #fff;position: relative;border-bottom: 1px solid #e0e0e0;}
		.classify .sublogo {width: 30px;margin-top: 15px;margin-left: 15px;float: left;}
		.classify .arrow {position: absolute;vertical-align: top;right: 15px;top:20px;height: 20px;}
		.classify .info {line-height: 20px; float: left; height: 60px;margin-left: 10px;}
		.classify .info .title {font-size: 15px; color: #000; margin-top: 10px;}
		.classify .info .subtitle {font-size: 12px; color: #666; margin-top: 5px;}
		.subclass {display: none;}
		.subclass .flipcard {margin:0;}
		.brb {border-right: 1px solid #e0e0e0;border-bottom: 1px solid #e0e0e0;}
		.bb {border-bottom: 1px solid #e0e0e0;}

		.presshover {background-color: #FAFAFA;}
	</style>
</head>
<body>
	<!-- 1 2X2 -->
	<div class="darktitle">热门搜索</div>
	<div class="row inwrap">
		<div class="col flipcard" tapmode="presshover" onclick="openDetail()">球鞋</div>
		<div class="col flipcard" tapmode="presshover" onclick="openDetail()">键盘</div>
		<div class="col flipcard" tapmode="presshover" onclick="openDetail()">计算器</div>
	</div>
	<!--<div class="row inwrap">
		<div class="col flipcard" tapmode="presshover" onclick="openDetail()">亚运</div>
		<div class="col flipcard" tapmode="presshover" onclick="openDetail()">望京</div>
		<div class="col flipcard" tapmode="presshover" onclick="openDetail()">国贸</div>
	</div>-->

</body>
<script type="text/javascript" src="../script/api.js"></script>
<script>
function openDetail()
{
	api.openWin({
		name: 'tuandetail',
		url: './tuandetail_header.html',
		// delay:200
		bounces: false
	});
}
</script>
</html>

<!DOCTYPE html>	
<html>	
<head>	
	<meta charset="utf-8">	
	<title>frame</title>	
	<meta name="viewport" content="maximum-scale=1.0,minimum-scale=1.0,user-scalable=0,width=device-width,initial-scale=1.0"/>	
	<link rel="stylesheet" type="text/css" href="../css/api.css" />	
    <link rel="stylesheet" type="text/css" href="../css/common.css" />	
	
	<style>	
		html, body {width: 100%;min-height: 100%;background: #e5e5e5;}	
		.h80 {height: 80px;}	
		.h40 {height: 40px;}	
		.h20 {height: 20px;}	
    	.h10 {height: 10px;background: #e5e5e5;}	
		.h1 {height: 1px;margin-left: 15px;background: #e5e5e5;}	
		.fr {float: right;}	
		.fl {float: left;}	
		.hightitem {background-color: #fff;}	
		.inwrap {padding-right: 15px;padding-left: 15px;}	
	
		/* 2. 价格样式 */	
		.priceitem {height: 60px; line-height: 60px;border-bottom: 1px solid #ccc;}	
		.priceitem .price, .priceitem .symbol {color: #6ab494;}	
		.priceitem .price {font-size: 20px;}	
		.priceitem .o-price {font-size: 12px; color: #666;}	
		.priceitem .buynow {background-color: #6ab494; color: #fff; height: 25px; line-height: 25px; border-radius: 3px;padding: 10px 20px;margin-top: 7px;}	
	
		/* 3. */	
		.brief .title {height: 50px;line-height: 50px;font-size: 18px;color: #000;}	
		.brief .describe {color: #666;font-size: 14px;line-height: 20px;}	
		.brief .ico {height: 50px;line-height: 50px;font-size: 14px;color: #7AB388;}	
		.brief .ico img {height: 14px;}	
		/* 4. */	
		.goodcomment {height: 50px;line-height: 50px;font-size: 14px;}	
		.goodcomment img {height: 15px;padding-right: 5px;}	
		.goodcomment .arrow {float: right;height: 20px;padding-top: 15px;}	
		.goodcomment .commentnum {font-size: 15px;color: #666;padding-right: 5px;float: right;}	
	
		/* 5. */	
		.darktitle {height: 50px;line-height: 50px;font-size: 14px;color: #666;}	
		.firstrow {position: relative;}	
		.secrow {font-size: 14px;color: #666;border-bottom: 1px solid #e0e0e0;padding-bottom: 15px;}	
		.shopinfo .left {height: 60px;padding: 10px 0;}	
		.shopinfo .right {position: absolute;top: 0px; right: -15px; padding: 15px;border-left: 1px solid #e0e0e0;} 	
		.shopinfo .right img {height: 36px;}	
		.shopinfo .shopname {font-size: 20px;}	
		.moreshop {height: 50px;line-height: 50px;font-size: 14px;}	
	
		/* 6. */	
		.tuanitem {height: 50px;line-height: 50px;font-size: 14px;border-bottom: 1px solid #e0e0e0;}	
		.tuanitem .tuan02,.tuanitem .tuan03,.tuantotalprice .totalprice01, .tuantotalprice .totalprice02, .tuanrealprice .realprice01, .tuanrealprice .realprice02 {float: right; width: 50px;font-size: 14px;}	
		.tuantotalprice {margin-top: 10px;}	
		.tuantotalprice, .tuanrealprice {height: 30px;}	
		.tuanrealprice .realprice02 {font-size: 16px;color: #6ab494;}	
		.tuanitem .tuan03, .tuantotalprice .totalprice02, .tuanrealprice .realprice02 {text-align: right;}	
		.smallitem .averageprice {float: right;}	
		.smallitem {height: 20px;line-height: 20px;font-size: 14px;}	
		.recommandtitle {line-height: 25px; font-size: 14px; color: #666;}	
		.recommanddish {line-height: 22px; font-size: 14px;}	
		.moredetail {height: 50px;line-height: 50px;font-size: 14px;border-top: 1px solid #e0e0e0;}	
		.lastitem {padding-bottom: 10px;}
	
		/* 7. */	
		.buyinfo .infotitle {line-height: 25px;font-size: 14px;color: #666;}	
		.buyinfo li {line-height: 24px;font-size: 13px;color: #000;}	
		.buyinfo li img {height: 5px; padding-right: 5px;}	
		.arrow {float: right;height: 20px;padding-top: 15px;}	
	
		/* 8. */	
		.othertuan {height: 50px;line-height: 50px;}	
		.othertuan .price, .othertuan .symbol {color: #6ab494;}	
		.othertuan .price {font-size: 15px;}	
		.othertuan .o-price {font-size: 12px; color: #666;}	
		.othertuan .price01 {display: inline-block; width: 30%; vertical-align: top;}	
		.othertuan .title {width: 50%; white-space: nowrap; text-overflow: ellipsis; word-wrap: normal; overflow: hidden;}	
		.bb {border-bottom: 1px solid #e0e0e0;}	
	
		.presshover {background-color: #FAFAFA;}	
		.buyhover {background: rgba(252, 85, 0, 0.6);}	
		.swipe {	
			width: 100%;	
	        background-color: #fff;	
	        overflow: hidden;	
	        position: relative;	
	    }	
	    .swipe-wrap {	
	        overflow: hidden;	
	        position: relative;	
	    }	
	    .swipe-wrap .swipe-box {	
	        float: left;	
	        width: 100%;	
	        position: relative;	
	    }	
	    .swipe-box img{	
	    	width:100%;	
	    }	
	</style>	
</head>	
<body>	
	<!-- 1. 头部swipe -->	
	<div id="swipe" class="swipe">	
		<div class="swipe-wrap">	
			<div class="swipe-box"> 	
				<img src="../image/good/20160112161653_16475.jpg" alt="">	
			</div>	
			<div class="swipe-box">	
				<img src="../image/good/20160112161653_16475.jpg" alt="">	
			</div>	
			<div class="swipe-box">	
				<img src="../image/good/20160112161653_16475.jpg" alt="">	
			</div>	
		</div>	
	</div>	
	<!-- 2. 价格样式 -->	
	<div class="priceitem hightitem inwrap">	
		<span class="symbol">¥</span>	
        <span class="price">6499</span>	
        <!--<del class="o-price">¥30</del>-->	
        <div class="buynow fr" tapmode="buyhover" onclick="">立即购买</div>	
	</div>	
	<!-- 3.  -->	
	<div class="brief inwrap hightitem">	
		<div class="title">九成新苹果手机</div>	
		<div class="describe">苹果机就是牛!</div>	
		<div class="ico"></div>	
	</div>	
</body>	
<script type="text/javascript" src="../script/api.js"></script>	
<script type="text/javascript" src="../script/swipe.js"></script>	
<script>	
		
	window.onload = function() {	
		var mySwiper = Swipe($api.byId('swipe'),{	
			continuous: true	
		});	
	}	
</script>	
</html>	

14.汇报PPT展示

 喜欢的点赞收藏加关注私信作者沟通交流

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

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

相关文章

【Spring】一次性打包学透 Spring | 阿Q送书第五期

文章目录 如何竭尽可能确保大家学透Spring1. 内容全面且细致2. 主题实用且本土化3. 案例系统且完善4. 知识有趣且深刻 关于作者丁雪丰业内专家推图书热卖留言提前获赠书 不知从何时开始&#xff0c;Spring 这个词开始频繁地出现在 Java 服务端开发者的日常工作中&#xff0c;很…

leetcode:只出现一次的数字Ⅲ(详解)

题目&#xff1a; 给你一个整数数组 nums&#xff0c;其中恰好有两个元素只出现一次&#xff0c;其余所有元素均出现两次。 找出只出现一次的那两个元素。你可以按 任意顺序 返回答案。 你必须设计并实现线性时间复杂度的算法且仅使用常量额外空间来解决此问题。 示例 1&…

没消费?复购难?不如试试即拼七人拼团模式

在当今的社会环境下&#xff0c;快消品、大健康、美容等行业一直是人们生活中不可或缺的一部分。它们各具特色&#xff0c;不断满足大众的需求&#xff0c;因此受到广泛欢迎。但由于市场品种繁多、竞争激烈&#xff0c;消费者的选择也变得更加多样化。为了提高各行业的竞争性&a…

EPS导出为带cass属性的dwg文件

1、在EPS软件中打开一幅画好的地形图&#xff0c;如下&#xff1a; 2、点击菜单栏里面的工具--运行脚本--数据转换--cass10.具体操作如下&#xff1a; 3、设置输出模式&#xff0c;具体如下图。 4、输出结果如下&#xff0c;在cass中打开输出的dwg文件&#xff0c;结果如下&…

多核异构核间通信Mailbox vs rpmsg

目录 一、关键术语解释 二、Mailbox与rpmsg对比 三、rpmsg传输流程 异构核间数据通过共享内存实现数据传递&#xff0c;通过中断来触发发送、接收。 一、关键术语解释 IPC Inter-Processor Communication MailBox IP which provides queued interrupt mechanism for comm…

压力传感器模拟信号(频率)转数字信号的问题

压力传感器模拟信号&#xff08;频率&#xff09;转数字信号的问题 三河凡科科技飞讯教学篇&#xff1a;压力传感器模拟信号&#xff08;频率&#xff09;转数字信号是现代控制系统中十分重要的一个问题。在许多工业应用中&#xff0c;压力传感器模拟信号需要被准确地转换成数…

MyBatis进阶:告别SQL注入!MyBatis分页与特殊字符的正确使用方式

目录 引言 一、使用正确的方式实现分页 1.1.什么是分页 1.2.MyBatis中的分页实现方式 1.3.避免SQL注入的技巧 二、特殊字符的正确使用方式 2.1.什么是特殊字符 2.2.特殊字符在SQL查询中的作用 2.3.如何避免特殊字符引起的问题 2.3.1.使用CDATA区段 2.3.2.使用实体引…

微服务中间件--MQ服务异步通信

MQ服务异步通信 MQ服务异步通信a.消息可靠性1) 生产者消息确认2) 消息持久化3) 消费者消息确认4) 消费者失败重试4.a) 本地重试4.b) 失败策略 b.死信交换机1) 初识死信交换机2) TTL3) 延迟队列a) 安装延迟队列插件b) SpringAMQP使用延迟队列插件 c.惰性队列1) 消息堆积问题2) 惰…

redis实战-缓存三剑客穿透击穿雪崩解决方案

缓存穿透 定义 缓存穿透 &#xff1a;缓存穿透是指客户端请求的数据在缓存中和数据库中都不存在&#xff0c;这样缓存永远不会生效&#xff0c;这些请求都会打到数据库&#xff0c;造成数据库压力&#xff0c;也让缓存没有发挥出应有的作用 解决方案 缓存空对象 当我们客户端…

《Go 语言第一课》课程学习笔记(十一)

控制结构 if 的“快乐路径”原则 针对程序的分支结构&#xff0c;Go 提供了 if 和 switch-case 两种语句形式&#xff1b;而针对循环结构&#xff0c;Go 只保留了 for 这一种循环语句形式。 if 语句 if 语句是 Go 语言中提供的一种分支控制结构&#xff0c;它也是 Go 中最常…

人机对抗智能-部分可观测异步智能体协同(POAC)

环境链接&#xff1a;数据中心-人机对抗智能 (ia.ac.cn)http://turingai.ia.ac.cn/data_center/show/10 1.环境配置 Ubuntu 20.04 Anaconda python版本3.6 1.1 安装torch0.4.1失败 参考文章&#xff1a; 安装torch0.4.1的神坑_torch0.4.1_DEMO_Tian的博客-CSDN博客 co…

外卖点餐系统开发定制:数字化餐饮体验的新里程

在现代社会&#xff0c;外卖已经成为了人们日常生活的一部分。为了更好地满足消费者的需求&#xff0c;外卖点餐系统开发定制成为了餐饮业的一个重要方向。通过数字化技术&#xff0c;商家能够为消费者提供更加个性化、便捷的订餐体验。本文将深入探讨外卖点餐系统开发定制&…

《中国区块链发展报告(2023)》发布 和数集团推动区块链发展

北京区块链技术应用协会与社会科学文献出版社日前在京共同发布《区块链蓝皮书&#xff1a;中国区块链发展报告&#xff08;2023&#xff09;》。蓝皮书归纳梳理了2022年区块链产业发展现状及趋势&#xff0c;并结合行业热点Web3.0、AIGC&#xff0c;探讨我国区块链发展的热点话…

Vue脚手架安装(全网最详细)

目录 1、环境准备 1.1 安装node 1.1.2 判断你是否安装成功 1.1.3 在命令提示符中查看node版本 1.2 安装webpack 1.3 安装vue-cli3.x以上 2、创建工程 2.1 创建 2.2 选择 2.2.1 选择自定义设置&#xff1a; 2.2.2 选择Vue版本&#xff1a; 2.2.3 是否使用历史模式选择…

应用在红外遥控领域中的心率传感信号接收芯片

远程遥控技术又称为遥控技术&#xff0c;是指实现对被控目标的遥远控制&#xff0c;在工业控制、航空航天、家电领域应用广泛。红外遥控是一种无线、非接触控制技术&#xff0c;具有抗干扰能力强&#xff0c;信息传输可靠&#xff0c;功耗低&#xff0c;成本低&#xff0c;易实…

力扣HOT100.4,两个正序数组的中位数,拓展寻找第K小

题目&#xff1a;给定两个大小分别为 m 和 n 的正序&#xff08;从小到大&#xff09;数组 nums1 和 nums2。请你找出并返回这两个正序数组的 中位数 。 输入&#xff1a;nums1 [1,3], nums2 [2] 输出&#xff1a;2.00000 解释&#xff1a;合并数组 [1,2,3] &#xff0c;中位…

不会编写正则表达式?试试“biu正则”,体验点一下就给你想要的正则表达式!

biu正则介绍 “biu正则”是一款非常实用的正则表达式生成工具。它的主要功能是帮助用户快速生成各种正则表达式&#xff0c;从而减少编写正则表达式的时间。比如&#xff0c;如果您需要编写一个匹配邮箱的正则表达式&#xff0c;只需要输入一个邮箱地址&#xff0c;点击“Clik…

横扫“盲区”、“看透”缺陷,维视智造推出短波红外相机

在可见光领域&#xff0c;工业相机的视觉应用已经十分成熟&#xff0c;但在日常的客户咨询中&#xff0c;我们也经常接到一些“超纲需求”——客户想要检测“白底上的白色缺陷”、“不透明包装内的透明物体有无”等&#xff0c;均属于可见光无法实现的检测&#xff0c;而市面上…

gPRC与SpringBoot整合教程

&#x1f337;&#x1f341; 博主猫头虎 带您 Go to New World.✨&#x1f341; &#x1f984; 博客首页——猫头虎的博客&#x1f390; &#x1f433;《面试题大全专栏》 文章图文并茂&#x1f995;生动形象&#x1f996;简单易学&#xff01;欢迎大家来踩踩~&#x1f33a; &a…

基于静态编译构建微服务应用

作者&#xff1a;饶子昊&#xff08;铖朴&#xff09; Java 的局限性 传统的一个 Java 应用从代码编写到启动运行大致可以分为如下步骤&#xff1a; 首先&#xff0c;编写 .java 源代码程序。然后&#xff0c;借助 javac 工具将 .java 文件翻译为 .class 的字节码&#xff0…