一,购物车概述
购物车是为消费者在网上购物中提供一个临时存储商品的地方。其主要功能包括:添加商品、删除商品、更改商品数量、商品金额小计、商品金额总计和清空购物车;还包括生成订单、订单打印、订单预览、提交订单和取消购物等。
购物车的操作流程:首先,登录到网站中浏览商品;然后,购买指定的商品,进入购物车页面中,在该页面可以实现更改商品数量、删除商品、清空购物车、继续购物等;最后,填写收货人信息,生成订单,订单打印、预览,提交订单等操作。

二,热点关键技术
1,Smarty模块的安装配置
smarty是一个使用PHP写出来的PHP模板引擎,它将一个应用程序分成两部分实现:视图和逻辑控制。即将UI和PHP代码分离。PHP没有内置Smarty模板类,需要单独下载和配置,而且Smarty要求服务器上PHP版本最低为4.0.6。PHP Smarty可以在http://www.smarty.net/download下载。将压缩包解压,其中有一个libs目录,包含Smarty类库的所有核心文件。包括smarty.class.php、smarty_Compiler.class.php、config_File.class.php和debug.tpl4个文件,还有internals和plug-ins两个目录。
复制libs目录到服务器根目录下,并重命名。这里将libs目录重新命名为smarty。到此Smarty模板安装完毕。
2,Smarty模板的配置
(1)首先确定Smarty目录的位置。因为Smarty类库是通用的,每一个项目基本都会使用,为了调用方便,习惯将smarty放置在根目录下。
(2)新建4个目录templates、templates_c、configs和cache,用于存储不同的文件。新建的4个目录位置是可以选择的,只要配置文件路径设置正确就可以了。
(3)创建配置文件。只要应用Smarty模板,那么就一定要包含Smarty类库和相关信息。每个页面都写一遍配置是不现实的,最好的方法就是将这些配置信息都写到一个文件中,通过include来调用配置文件。配置文件创建完成后保存在根目录下。本模块配置文件config.php代码如下:

[php] view plaincopyprint?
  1. <?php  
  2.     /*  定义服务器的绝对路径  */  
  3.     define('BASE_PATH','E:\PHPservices\\');  
  4.     /*  定义Smarty目录的绝地你路径  */  
  5.     define('SMARTY_PATH','SourceCode\12\01\\');  
  6.     /*  加载Smarty类库文件  */  
  7.     require BASE_PATH.SMARTY_PATH.'smarty\Smarty.class.php';  
  8.     /*  实例化一个Smarty对象  */  
  9.     $smarty = new Smarty;  
  10.     /*  定义各个目录的路径 */  
  11.     $smarty->template_dir = BASE_PATH.SMARTY_PATH.'./';  
  12.     $smarty->compile_dir = BASE_PATH.SMARTY_PATH.'templates_c/';  
  13.     $smarty->config_dir = BASE_PATH.SMARTY_PATH.'configs/';  
  14.     $smarty->cache_dir = BASE_PATH.SMARTY_PATH.'cache/';  
  15.     /*  定义定界符  */  
  16.     $smarty->left_delimiter = '<{';  
  17.     $smarty->right_delimiter = '}>';  
  18.     /*  使用Smarty赋值方法将一对儿名称/方法发送到模板中  */  
  19. ?>  
2,smarty模板动静分离
smarty模板最大的特点就是实现应用程序的动静分离,即将UI和PHP代码分离。下面介绍Smarty模板在实现动静分离的过程中常用的技术。
(1)在UI中获取PHP代码中模板变量的值
首先要确定Smarty模板的界定符,这里使用的是'<{'和'}>'。另外还应用到一些Smarty的内建函数section、php、if、elseif、else等。
a)section函数用于遍历数组中的数据。每个{section}标签必须与闭合标签{/section}成对出现,参数name和loop为必选项。
名称name是包含字母、数字和下划线的任意组合,可以嵌套但必须保证嵌套的name唯一。
变量loop(通常是数组)决定循环执行的次数,例如需要在section循环内输出变量时,必须在变量后加上中括号,中括号内包含name变量。
例如:

[php] view plaincopyprint?
  1. <{section name=data  loop=$myrow }>  
  2.     <tr>  
  3.         <td width="125" bgcolor="#FFFFFF"><{$myrow[data].tb_commodity_name}></td>  
  4.         <td bgcolor="#FFFFFF"><{$myrow[data].tb_commodity_price}></td>  
  5.     </tr>  
  6. <{/section}>  
b)php标签的作用是直接在模板中嵌入PHP脚本,标签的格式是"<{php}>"和"<{/php}>".
c)在Smarty的模板中同样也支持if、else语句,而且还增加了几个特性以适应模板引擎。if与/if必须成对出现;可以使用else和elseif字句;可使用以下条件修饰词:eq、ne、neq、gt、lt、lte、le、gte、ge、is even、is odd、is not even、is not odd、not、mod、div by、even by、odd by、===、!=、>、<、<=、>=。在使用修饰词时必须和变量或者常量用空格分隔开来。示例如下:

[php] view plaincopyprint?
  1. <{if $isShow=="F" }>  
  2.     <tr>  
  3.         <td height="22" colspan="5" bgcolor="#FFFFFF"><div align="center">对不起,您的购物车中暂无商品信息!</div></td>  
  4.     </tr>  
  5. <{else}>  
  6.     <{section name=data loop=$myrow }>  
  7.         <tr>  
  8.             <td height="22" align="center" bgcolor="#FFFFFF"><{$myrow[data].tb_commodity_name}></td>  
  9.             <td height="22" bgcolor="#FFFFFF"><div align="center"><{$myrow[data].tb_commodity_price}></div></td>  
  10.         </tr>  
  11.     <{/section}>  
  12. <{/if}>  
(2)在PHP代码中定义模板变量,为模板变量赋值
UI中的数据是来自于PHP代码中定义的模板变量。在PHP代码中,完成PHP代码的编写,将要输出的值赋给一个模板变量,最后制定模板页进行输出。
a)为模板变量赋值通过自定义函数assign()来完成,其中第一个参数是被赋值的变量名,第二个参数是赋给变量的值。应用assign()函数的关键代码如下:

[php] view plaincopyprint?
  1. $smarty->assign("myrow",$array); //通过assign方法将数组$array中的数据写入到myrow中  
b)模板页的指定是通过display方法来完成的,其语法如下:
void display(string template[,string cache_id[,string compile_id]])
该方法用于指定模板页,其中第一个必选参数是指定一个合法模板资源的类型和路径;第2个可选参数指定一个缓存号;第3个可选参数指定一个编译号,再把一个模板编译成不同版本时使用。display方法应用的关键代码如下:

[php] view plaincopyprint?
  1. $smarty->display("index.tpl");   //指定要输出的模板页  
3,Session购物车的创建
Session购物车主要应用Session变量来实现。而所谓的购物车就是通过session_register()函数创建的2个Session变量;其中goodsid存储商品的ID,goodsnum存储商品的数量。Session购物车创建的代码如下:

[php] view plaincopyprint?
  1. <?php      
  2.     session_start();        //初始化session变量  
  3.     session_register("goodsid");    //定义session变量用于存储商品ID  
  4.     session_register("goodsnum");   //定义session变量用于存储购买商品的数量  
  5. ?>  
session_register()函数,在整个域范围内增加一个Session变量。语法:boolean session_register(string name);
参数name用于指定新Session变量的名称。
4,通过数组函数判断购物车是否存在指定商品
为了避免在购物车中出现商品的重复添加,要对添加的商品与购物车中存储的商品进行判断。
a)应用explode()函数,将goodsid变量中存储的字符串以@为分隔符转换到数组中。
explode()函数,返回由字符串组成的数组,其中的每个元素都是由separator作为边界点分割出来的子字符串。
语法:array explode(string separator,string string,[ing limit])
参数说明:
separator:必须,规定在哪里分割字符串。不能为空字符串,否则explode()返回FALSE
string:必须,要分割的字符串。limit:可选,规定所返回的数组元素的最大数目。如果设置了limit参数,则返回的数组包含最多limit个元素,而最后那个元素将包含string的剩余部分。如果limit参数是负数,则返回除了最后的-limit个元素之外的所有元素。
b)in_array()函数判断数组中是否存在指定的商品ID,如果存在,则说明商品已经在购物车中;否则商品不存在,则将商品的ID添加到购物车中。
in_inarray()函数在数组中搜索给定的值。如果找到则返回True,否则返回False。
语法:bool in_array(mixed value,array array[,bool type])
参数说明:
value:必须,规定要在数组中搜索的值
array:必须,规定要搜索的数组。
type:可选,如果设置为true,则检查搜索的数据与数组的类型是否相同。
在购物车模块中,判断购物车中是否存在指定的商品的代码如下:

[php] view plaincopyprint?
  1. <?php      
  2.     session_start();    //初始化session变量  
  3.     session_register("goodsid");    //定义session变量用于存储商品ID  
  4.     session_register("goodsnum");   //定义session变量用于存储购买商品的数量  
  5.     if($_SESSION["goodsid"]=="" && $_SESSION["goodsnum"]==""){  //判断session变量是否为空  
  6.         $_SESSION["goodsid"]=$_GET["id"]."@";   //如果session变量为空,则为其赋值为商品的ID,并以@分隔  
  7.         $_SESSION["goodsnum"]="1@";     //如果session变量为空,则为其赋值为1,并以@分隔  
  8.     }else{  //如果session变量不为空  
  9.          $array=explode("@",$_SESSION["goodsid"]);  //则以@为分隔符,将session变量中的数据写入到数组中  
  10.          if(in_array($_GET["id"],$array)){  //如果判读数组中是否存在指定的ID  
  11.            echo "<script>alert('该商品已经被放入购物车!');history.back();</script>";  
  12.            exit;  
  13.          }  
  14.         //如果数组中不存在指定的ID,则说明该商品还没有放入购物车中  
  15.         $_SESSION["goodsid"].=$_GET["id"]."@";  //将该商品添加到购物车中  
  16.         $_SESSION["goodsnum"].="1@";    //更改商品数量  
  17.     }  
  18.     echo "<script>window.location.href='shopping_car.php';</script>";  
  19. ?>  
5,验证输入商品数量值是否有效
在preg_match()函数中,判断提交的商品数量的值是否符合正则表达式的标准,如果符合则有效,否则将给出提示信息。程序关键代码如下:

[php] view plaincopyprint?
  1. $id=$_POST["id"];                           //获取商品id  
  2. $num=$_POST["goodsnum"];                    //获取商品数量  
  3. $preg="/^[0-9]*[0-9]$|^[0-9]*[0-9]$/";      //编写正则表达式  
  4. if($num==""){                               //判断提交的值是否为空  
  5.     echo "<script>alert('数量不能为空!');history.back();</script>";  
  6.     exit;  
  7. }else if(!preg_match($preg,$num,$str)){     //判断提交的数据是否是正整数  
  8.     echo "<script>alert('数量只能为正整数!');history.back();</script>";  
  9.     exit;  
  10. }  
preg_match()函数,在字符串中搜索所有与给出的正则表达式匹配的内容,如果存在则返回True,否则返回False。语法如下:
语法:int preg_match(string pattern,string sbuject[,array matches[,int flags]])
参数说明:
pattern:必要参数,需要匹配的正则表达式
subject:必要参数,输入的字符串matches:可选参数。输出的搜索结果的数组,例如$out[0]将包含与整个模式匹配的结果,$out[1]将包含与第一个捕获的括号中的子模式所匹配的结果,一次类推
flags:可选参数,标记:PREG_OFFSET_CAPTURE,对每个出现的匹配结果页同时返回共附属的字符串偏移量

三,函数实现过程
1,添加商品功能
添加商品功能的实现原理是:首先创建一个购物车,然后以商品展示页中“购买”链接传递的商品ID($_GET[id])为依据,向购物车中添加商品(商品ID),并且不允许重复添加。向购物车中添加商品的操作通过by_commodity.php文件来完成。
首先,创建一个购物车。
然后,判断购物车中是否为空,如果为空,则将商品的ID和数量添加到购物车中;如果不为空,则要判断添加商品的ID是否在购物车中已经存在,如果存在则不能重复添加,否则将商品ID添加到购物车中。
添加商品程序代码如下:

[php] view plaincopyprint?
  1. <?php  
  2.     header("Content-type:text/html;charset= utf-8");  
  3.     session_start();        //初始化session变量  
  4.     session_register("goodsid");    //定义session变量用于存储商品ID  
  5.     session_register("goodsnum");   //定义session变量用于存储购买商品的数量  
  6.     if($_SESSION["goodsid"]=="" && $_SESSION["goodsnum"]==""){      //判断session变量是否为空  
  7.         $_SESSION["goodsid"]=$_GET["id"]."@";                       //如果session变量为空,则为其赋值为商品的ID,并以@分隔  
  8.         $_SESSION["goodsnum"]="1@";                     //如果session变量为空,则为其赋值为1,并以@分隔  
  9.     }else{                                              //如果session变量不为空  
  10.          $array=explode("@",$_SESSION["goodsid"]);      //则以@为分隔符,将session变量中的数据写入到数组中  
  11.          if(in_array($_GET["id"],$array)){              //如果判读数组中是否存在指定的ID  
  12.            echo "<script>alert('该商品已经被放入购物车!');history.back();</script>";  
  13.            exit;  
  14.          }  
  15.         //如果数组中不存在指定的ID,则说明该商品还没有放入购物车中  
  16.         $_SESSION["goodsid"].=$_GET["id"]."@";          //将该商品添加到购物车中  
  17.         $_SESSION["goodsnum"].="1@";                    //更改商品数量  
  18.     }  
  19.     echo "<script>window.location.href='shopping_car.php';</script>";  
  20. ?>  
2,删除购物车中商品功能的实现
删除购物车中商品的操作是根据“删除该项”超级链接中传递的商品ID($_GET[id])执行的。在delete_commodity.php文件中,根据$_GET[id]传递的值,执行删除购物车中商品的操作。
首先,获取$_GET[id]传递的值。然后,应用explode()函数,将Session变量中存储的商品ID和数量的数据写入数组,并以@作为分隔符。
接着,应用array_search()函数,获取数组中指定ID商品的键名,并根据获取的键名将数组中指定的数据赋值为空。
最后,将数组中重新赋值的空数据写入购物车中,从而完成删除购物车中指定商品的操作。

[php] view plaincopyprint?
  1. <?php  
  2.     session_start();                //初始化session变量  
  3.     require("config.php");          //连接smarty模板  
  4.     $id=$_GET["id"];                //获取要删除商品的ID  
  5.     $arrayid=explode("@",$_SESSION["goodsid"]);     //将购物车中存储的商品ID的字符串转换到数组中  
  6.     $arraynum=explode("@",$_SESSION["goodsnum"]);   //将购物车中存储的商品数量的字符串转换到数组中  
  7.     $key=array_search($id,$arrayid);                //获取到数组中指定的数据,并返回键名  
  8.     $arrayid[$key]="";                              //根据返回的键名,将数组中的数据赋值为空  
  9.     $arraynum[$key]="";                             //根据返回的键名,将数组中的数据赋值为空  
  10.     $_SESSION["goodsid"]=implode("@",$arrayid);     //重新将数组中的数据添加到购物车中  
  11.     $_SESSION["goodsnum"]=implode("@",$arraynum);   //重新将数组中的数据添加到购物车中  
  12.     echo "<script>window.location.href='shopping_car.php';</script>";  
  13.     $smarty->display("shopping_car.tpl");  
  14. ?>  
删除前$_SESSION["goodsid"]的值为"3@2@5@",删除$id=5后$_SESSION["goodsid"]的值为"3@2@@";这样Session中存在多余的数据@。
解决方法:

[php] view plaincopyprint?
  1. <?php  
  2.     session_register("goods"); //创建session数组  
  3.     $id=$_GET['id'];  
  4.     $arraygoods=$_SESSION["goods"];  
  5.     if($_SESSION["goods"]==""){  
  6.         $_SESSION["goods"][$id]="$id,1"//根据商品ID保存商品,键名为$id,键值为$id,1(商品ID和购买商品数量,默认购买数量为1)  
  7.     }else{  
  8.         if(array_key_exists($id,$_SESSION["goods"])){  
  9.              echo "<script>alert('该商品已经被放入购物车!');history.back();</script>";  
  10.              exit;  
  11.         }  
  12.         $_SESSION["goods"][$id]="$id,1";  
  13.     }  
  14. ?>  
商品信息以数组形式保存,[4] => 4,4。键名为商品ID,值为键名和购买商品数量。添加删除商品只需要根据ID号找到对应商品修改信息即可。
Array
(
[4] => 4,4
[3] => 3,5
[1] => 1,10
[2] => 2,1
)
3,生成订单功能的实现
生成订单功能就是从数据库中读取出填写的订单信息,对其内容进行重新整合,形成一个订单模式,并且实现订单打印和订单预览的功能。订单生成的操作通过两个文件来完成,一个是从数据库中读取数据,将所需的数据赋值给指定的Smarty模板变量,并指定模板页。

[php] view plaincopyprint?
  1. <?php   
  2.     session_start();  
  3.     header("Content-type:text/html;charset= utf-8");  
  4.     require_once("conn.php");  
  5.     require_once("config.php");  
  6.     $array=array();                             //定义一个空数组  
  7.     $ddnumber=base64_decode($_GET["ddno"]);  
  8.     mysql_query("set names utf8");  
  9.     $sql=mysql_query("select * from tb_commodity_order_form where ddnumber='".$ddnumber."'",$conn);  
  10.     $info=mysql_fetch_array($sql);  
  11.     array_push($array,$info);               //将获取的数组值写入到新的数组中  
  12.     $smarty->assign("info",$array);  
  13.     $array=explode("@",$info["spc"]);  
  14.     $arraynum=explode("@",$info["slc"]);  
  15.     $totalprice=0;                                  //定义价格变量  
  16.     $arrayinfo=array();                             //创建数组  
  17.     for($i=0;$i<count($array);$i++){  
  18.         if($array[$i]!=""){  
  19.             $sqlcart=mysql_query("select * from tb_commodity where tb_commodity_id='".$array[$i]."'",$conn);  
  20.             $infocart=mysql_fetch_array($sqlcart);  //读取数据库中数据  
  21.             $totalprices=$infocart["tb_commodity_price"]*$arraynum["$i"];       //计算总的价格  
  22.             array_push($infocart,$arraynum["$i"]);  //将购买数量的数据写入到数据库中返回的数组中      
  23.             array_push($infocart,$totalprices);  //将购买数量的数据写入到数据库中返回的数组中      
  24.             array_push($arrayinfo,$infocart);       //将整理的数据压入到创建的新数组中  
  25.             $totalprice+=$infocart["tb_commodity_price"]*$arraynum["$i"];       //计算总的价格  
  26.         }  
  27.     }  
  28.     session_unregister("goods");  
  29.     if(count($arrayinfo)>0){                     //判断数组是否为空  
  30.         $gnum=count($arrayinfo);  
  31.         $smarty->assign("isShow","T");  
  32.         $smarty->assign("gnum",$gnum);  
  33.         $smarty->assign("myrow",$arrayinfo);  
  34.         $smarty->assign("totalprice",$totalprice);  
  35.     }else{  
  36.         $smarty->assign("isShow","F");  
  37.     }  
  38.     $smarty->display("shopping_dd.tpl");  
  39. ?>  

另一个是shopping_dd.tpl模板页,输出模板变量中存储的数据,生成一个订单。

四,源代码下载地址详见 http://download.csdn.net/detail/zouyi615/4433907

查看全文
如若内容造成侵权/违法违规/事实不符,请联系编程学习网邮箱:809451989@qq.com进行投诉反馈,一经查实,立即删除!

相关文章

  1. 数据结构实验报告—学生成绩管理系统(Java实现)

    数据结构实验报告————学生成绩管理系统(Java实现)[具体下载链接]https://download.csdn.net/download/mmzian/10897535 部分代码展示 Test类import java.util.Scanner;public class Test {private static final String Score = null;public static void main(String[] ar…...

    2024/4/17 9:58:04
  2. CSS之鼠标移上去,向上浮动一点,移出还原

    .por_img{-webkit-transition: all 0.25s ease-in-out;-moz-transition: all 0.25s ease-in-out;transition: all 0.25s ease-in-out;} .por .por_1:hover .por_img{ /*这里改变的是图片(por_img)*/-webkit-transform: translateY(-5px);-moz-transform: translateY(-5px);-…...

    2024/5/3 2:57:23
  3. C语言实现动态菜单,智慧的C语言,零基础也可以学会

    前言学习源于兴趣,源于快乐,源于追求,在这里你将收获更多的学习乐趣。在这里你将用代码将未来编写为现实。思考在学习C语言的时候, 大家都做过很多管理系统。菜单往往很单调,是这样的学习知识要善于思考,思考,再思考。靠这个方法才能成为C/C++大牛哦。如果你学习时没有学…...

    2024/5/3 2:06:40
  4. php购物车类--初步实现

    <meta http-equiv=Content-Type content=text/html; charset=UTF-8> <?phpclass Cart {protected static $ins;// 实例变量protected $item = array();// 放商品容器// 禁止外部调用final protected function __construct(){}// 禁止克隆final protected function __…...

    2024/4/18 21:44:42
  5. java实验之包与接口以及常用工具类的使用

    一、实验目的: 了解 Java 中包(package)和接口(interface)的作用,掌握包和接口的设计方法。掌握Math类,String类和StringBuffer类的使用。  二、实验环境: 一台配置有java环境,装有eclipse的电脑。 三、实验内容:(写出主要的内容)(一) 实验要求1. 了解 Java 系…...

    2024/5/3 4:16:19
  6. 教你用C语言编写万年历,程序员超乎你的想象!

    学了C语言的小编闲来无事就想搞点事情做,发现可以用C语言做万年历,计算器,俄罗斯方块儿游戏之类的,就从万年历开始玩耍啦。Step 1. 新建一个程序 制作一个应用当然必不可少的就是新建程序啦,小编这里使用的是VC6.0,记住新建的一定要是文件里的C++ Source FileStep 2. 输入…...

    2024/5/2 23:18:44
  7. canvas.translate(x,y)使用

    /*** Preconcat the current matrix with the specified translation** @param dx The distance to translate in X* @param dy The distance to translate in Y */ public void translate(float dx, float dy) {native_translate(mNativeCanvasWrapper, dx, dy); }在X方向和Y方…...

    2024/4/17 9:57:58
  8. 实现一个易扩展的PHP购物车类

    很久之前写过购物车之类的项目,当时没怎么整理归纳,有时间回顾一下,实现一个易于扩展的实用类,包含了购物车中的增删改查以及各种计算功能。参考资料:http://www.daimajiayuan.com/sitejs-16964-1.html...

    2024/4/17 9:57:58
  9. 末尾不以.OK文件结尾的正则表达式匹配

    由于工作需要,需要写一个结尾不以.OK结尾的正则表达式,但是发现网上提供的好多都没法用。 最后经过调试,发现一定要在正则表达式前面加一个^才能测试通过。最后正则表达式如下: ^((?!\.OK).)*$ 后来又要新增几个需要排除的结尾,需要更改如下: ^((?!\.(OK|xls|XLS)).)*$…...

    2024/5/3 6:43:48
  10. java实验报告 第一个

    import java.util.Scanner;public class TheFirstDemo {public static void main(String[] args) {Scanner myinput = new Scanner(System.in);System.out.print("请输入你想产生的行数:");int col = myinput.nextInt();int i,j,k;for(i=1;i<=col;i++){for(j=1;j…...

    2024/4/18 6:59:14
  11. vue2.0路由切换后页面跳转后新页面滚动位置不变BUG

    解决办法很简单,如下,直接监测watch路由变化,然后将body的滚动距离scrollTop赋值为0。 export default {watch:{$route:function(to,from){document.body.scrollTop = 0;document.documentElement.scrollTop = 0;}}}...

    2024/4/17 9:58:34
  12. ls_正则表达式_验证rwx权限

    一、 正则表达式界限:^ 行开头; $ 行结尾。频率:? 出现0次或1次; + 出现至少1次。内容:d 字母; \d 数字; . 除了回车和换行之外的任意字符。二、 举例ls -l -F | grep [/s]图1-1 ls搭配正则表达式只显示目录ls -l | grep ^d图1-2 ls搭正则表达式只显…...

    2024/5/3 10:02:36
  13. 程序员用c语言教你实现汉诺塔游戏,网友:此乃装逼神技!

    个人觉得汉诺塔这个递归算法比电子老鼠的难了一些,不过一旦理解了也还是可以的,其实网上也有很多代码,可以直接参考。记得大一开始时就做过汉诺塔的习题,但是那时代码写得很长很长,也是不理解递归的结果。今天重新来实现一下操作就是:A B 号码A的塔顶一层放在号码B的塔顶…...

    2024/4/17 9:59:04
  14. java实验之GUI标准组件及事件处理

    一、实验目的:了解图形用户界面基本组件:框架、面板、按钮、标签、菜单、列表等的使用方法;了解如何使用布局管理器对组件进行管理;理解和掌握 Java 的事件处理机制。二、实验环境:一台配置有java环境,装有eclipse的电脑。三、实验内容:(写出主要的内容)实验要求 1. 了…...

    2024/5/3 2:41:02
  15. transform:translate(-50%,-50%)定位实现百分比居中

    HTML代码<div id="translateTest"></div>CSS代码#translateTest{position: absolute;top: 50%;left: 50%;transform: translate(-50%, -50%);width: 30%;height: 30%;background-color: blue;}实现一个水平居中的蓝色矩形(矩形的宽高分别为浏览器的30%,…...

    2024/4/17 9:58:52
  16. 正则表达式之匹配优先与忽略优先

    正则表达式之匹配优先与忽略优先 概述 正则表达式,又称规则表达式。(英语:Regular Expression,在代码中常简写为regex、regexp或RE),计算机科学的一个概念。正则表达式通常被用来检索、替换那些符合某个模式(规则)的文本。 标准匹配量词(?、*、+,以及{min,max})都是“…...

    2024/4/17 9:59:28
  17. C语言的图形界面?——简单外挂程序

    简单接触c语言图形界面后就想把之前的控制台外挂小程序变成图形界面,仅供娱乐,目前只完成了两个版本即年度版和中文版的阳光和金币修改,其他修改可自行搜索偏移地址,这里奉上一篇个人认为比较详细的ce寻找基址的攻略和植物大战僵尸的全地址,大神勿喷~~ 1.我爱秘籍植物大战…...

    2024/4/17 9:57:28
  18. php 购物车实例

    php 购物车实例<?php /**php 购物车实例 网上搜到的,简单容易理解。cookie存购物车ID,db存购物车数据。 购物车session的产生代码 */if(! $session && ! $scid) { /* session用来区别每一个购物车,相当于每个车的身份证号; scid只用来标识一个购物车id号,可以…...

    2024/4/18 16:22:49
  19. Java基础 实验二:类和对象

    1.实验目的 掌握类的声明、对象的创建、方法的定义和调用、构造函数的使用。2.实验内容 1)定义一个表示学生信息的类Student,要求如下: ① 类Student的成员变量:sNO 表示学号;sName 表示姓名;sSex 表示性别;sJava 表示Java课程成绩; ② 类Student的方法成员…...

    2024/4/18 5:04:50
  20. transform:translate(-50%,-50%)的应用场景

    最近在封装一个弹窗我css的代码是这样写position: absolute;top: 0;left: 0;right: 0;bottom: 0;margin: auto;background: #fff;width: 300px;height: 150px;z-index: 12;border-radius: 6px;overflow: auto;出来的效果也复合我的要求,如图:但是字数多几行之后就会出现这样的…...

    2024/4/1 11:34:47

最新文章

  1. Mac环境下ollama部署和体验

    欢迎访问我的GitHub 这里分类和汇总了欣宸的全部原创(含配套源码)&#xff1a;https://github.com/zq2599/blog_demos 关于ollama ollama和LLM&#xff08;大型语言模型&#xff09;的关系&#xff0c;类似于docker和镜像&#xff0c;可以在ollama服务中管理和运行各种LLM&…...

    2024/5/3 10:12:44
  2. 梯度消失和梯度爆炸的一些处理方法

    在这里是记录一下梯度消失或梯度爆炸的一些处理技巧。全当学习总结了如有错误还请留言&#xff0c;在此感激不尽。 权重和梯度的更新公式如下&#xff1a; w w − η ⋅ ∇ w w w - \eta \cdot \nabla w ww−η⋅∇w 个人通俗的理解梯度消失就是网络模型在反向求导的时候出…...

    2024/3/20 10:50:27
  3. C# 抽象类、接口

    &#xff08;1&#xff09;、抽象类和抽象方法的定义和实现&#xff1a;abstract override abstract class Vehicle{ public abstract void Run(); } 继承抽象类并且实现抽象方法 class RaceCar : Vehicle{ public override void Run(){ } } &#xff08;2&#xff09;、接口的…...

    2024/5/2 2:42:37
  4. 人工智能的真实盈利:掌握 ChatGPT-4 用于业务营销(全)

    原文&#xff1a;Artificial Intelligence, Real Profits 译者&#xff1a;飞龙 协议&#xff1a;CC BY-NC-SA 4.0 第一部分&#xff1a;理解基础知识 第一章&#xff1a; 人工智能和 ChatGPT-4 简介 在我们旅程的最初章节中&#xff0c;我们踏上了对人工智能&#xff08;AI…...

    2024/4/29 10:09:44
  5. 【外汇早评】美通胀数据走低,美元调整

    原标题:【外汇早评】美通胀数据走低,美元调整昨日美国方面公布了新一期的核心PCE物价指数数据,同比增长1.6%,低于前值和预期值的1.7%,距离美联储的通胀目标2%继续走低,通胀压力较低,且此前美国一季度GDP初值中的消费部分下滑明显,因此市场对美联储后续更可能降息的政策…...

    2024/5/1 17:30:59
  6. 【原油贵金属周评】原油多头拥挤,价格调整

    原标题:【原油贵金属周评】原油多头拥挤,价格调整本周国际劳动节,我们喜迎四天假期,但是整个金融市场确实流动性充沛,大事频发,各个商品波动剧烈。美国方面,在本周四凌晨公布5月份的利率决议和新闻发布会,维持联邦基金利率在2.25%-2.50%不变,符合市场预期。同时美联储…...

    2024/5/2 16:16:39
  7. 【外汇周评】靓丽非农不及疲软通胀影响

    原标题:【外汇周评】靓丽非农不及疲软通胀影响在刚结束的周五,美国方面公布了新一期的非农就业数据,大幅好于前值和预期,新增就业重新回到20万以上。具体数据: 美国4月非农就业人口变动 26.3万人,预期 19万人,前值 19.6万人。 美国4月失业率 3.6%,预期 3.8%,前值 3…...

    2024/4/29 2:29:43
  8. 【原油贵金属早评】库存继续增加,油价收跌

    原标题:【原油贵金属早评】库存继续增加,油价收跌周三清晨公布美国当周API原油库存数据,上周原油库存增加281万桶至4.692亿桶,增幅超过预期的74.4万桶。且有消息人士称,沙特阿美据悉将于6月向亚洲炼油厂额外出售更多原油,印度炼油商预计将每日获得至多20万桶的额外原油供…...

    2024/5/2 9:28:15
  9. 【外汇早评】日本央行会议纪要不改日元强势

    原标题:【外汇早评】日本央行会议纪要不改日元强势近两日日元大幅走强与近期市场风险情绪上升,避险资金回流日元有关,也与前一段时间的美日贸易谈判给日本缓冲期,日本方面对汇率问题也避免继续贬值有关。虽然今日早间日本央行公布的利率会议纪要仍然是支持宽松政策,但这符…...

    2024/4/27 17:58:04
  10. 【原油贵金属早评】欧佩克稳定市场,填补伊朗问题的影响

    原标题:【原油贵金属早评】欧佩克稳定市场,填补伊朗问题的影响近日伊朗局势升温,导致市场担忧影响原油供给,油价试图反弹。此时OPEC表态稳定市场。据消息人士透露,沙特6月石油出口料将低于700万桶/日,沙特已经收到石油消费国提出的6月份扩大出口的“适度要求”,沙特将满…...

    2024/4/27 14:22:49
  11. 【外汇早评】美欲与伊朗重谈协议

    原标题:【外汇早评】美欲与伊朗重谈协议美国对伊朗的制裁遭到伊朗的抗议,昨日伊朗方面提出将部分退出伊核协议。而此行为又遭到欧洲方面对伊朗的谴责和警告,伊朗外长昨日回应称,欧洲国家履行它们的义务,伊核协议就能保证存续。据传闻伊朗的导弹已经对准了以色列和美国的航…...

    2024/4/28 1:28:33
  12. 【原油贵金属早评】波动率飙升,市场情绪动荡

    原标题:【原油贵金属早评】波动率飙升,市场情绪动荡因中美贸易谈判不安情绪影响,金融市场各资产品种出现明显的波动。随着美国与中方开启第十一轮谈判之际,美国按照既定计划向中国2000亿商品征收25%的关税,市场情绪有所平复,已经开始接受这一事实。虽然波动率-恐慌指数VI…...

    2024/4/30 9:43:09
  13. 【原油贵金属周评】伊朗局势升温,黄金多头跃跃欲试

    原标题:【原油贵金属周评】伊朗局势升温,黄金多头跃跃欲试美国和伊朗的局势继续升温,市场风险情绪上升,避险黄金有向上突破阻力的迹象。原油方面稍显平稳,近期美国和OPEC加大供给及市场需求回落的影响,伊朗局势并未推升油价走强。近期中美贸易谈判摩擦再度升级,美国对中…...

    2024/4/27 17:59:30
  14. 【原油贵金属早评】市场情绪继续恶化,黄金上破

    原标题:【原油贵金属早评】市场情绪继续恶化,黄金上破周初中国针对于美国加征关税的进行的反制措施引发市场情绪的大幅波动,人民币汇率出现大幅的贬值动能,金融市场受到非常明显的冲击。尤其是波动率起来之后,对于股市的表现尤其不安。隔夜美国股市出现明显的下行走势,这…...

    2024/5/2 15:04:34
  15. 【外汇早评】美伊僵持,风险情绪继续升温

    原标题:【外汇早评】美伊僵持,风险情绪继续升温昨日沙特两艘油轮再次发生爆炸事件,导致波斯湾局势进一步恶化,市场担忧美伊可能会出现摩擦生火,避险品种获得支撑,黄金和日元大幅走强。美指受中美贸易问题影响而在低位震荡。继5月12日,四艘商船在阿联酋领海附近的阿曼湾、…...

    2024/4/28 1:34:08
  16. 【原油贵金属早评】贸易冲突导致需求低迷,油价弱势

    原标题:【原油贵金属早评】贸易冲突导致需求低迷,油价弱势近日虽然伊朗局势升温,中东地区几起油船被袭击事件影响,但油价并未走高,而是出于调整结构中。由于市场预期局势失控的可能性较低,而中美贸易问题导致的全球经济衰退风险更大,需求会持续低迷,因此油价调整压力较…...

    2024/4/26 19:03:37
  17. 氧生福地 玩美北湖(上)——为时光守候两千年

    原标题:氧生福地 玩美北湖(上)——为时光守候两千年一次说走就走的旅行,只有一张高铁票的距离~ 所以,湖南郴州,我来了~ 从广州南站出发,一个半小时就到达郴州西站了。在动车上,同时改票的南风兄和我居然被分到了一个车厢,所以一路非常愉快地聊了过来。 挺好,最起…...

    2024/4/29 20:46:55
  18. 氧生福地 玩美北湖(中)——永春梯田里的美与鲜

    原标题:氧生福地 玩美北湖(中)——永春梯田里的美与鲜一觉醒来,因为大家太爱“美”照,在柳毅山庄去寻找龙女而错过了早餐时间。近十点,向导坏坏还是带着饥肠辘辘的我们去吃郴州最富有盛名的“鱼头粉”。说这是“十二分推荐”,到郴州必吃的美食之一。 哇塞!那个味美香甜…...

    2024/4/30 22:21:04
  19. 氧生福地 玩美北湖(下)——奔跑吧骚年!

    原标题:氧生福地 玩美北湖(下)——奔跑吧骚年!让我们红尘做伴 活得潇潇洒洒 策马奔腾共享人世繁华 对酒当歌唱出心中喜悦 轰轰烈烈把握青春年华 让我们红尘做伴 活得潇潇洒洒 策马奔腾共享人世繁华 对酒当歌唱出心中喜悦 轰轰烈烈把握青春年华 啊……啊……啊 两…...

    2024/5/1 4:32:01
  20. 扒开伪装医用面膜,翻六倍价格宰客,小姐姐注意了!

    原标题:扒开伪装医用面膜,翻六倍价格宰客,小姐姐注意了!扒开伪装医用面膜,翻六倍价格宰客!当行业里的某一品项火爆了,就会有很多商家蹭热度,装逼忽悠,最近火爆朋友圈的医用面膜,被沾上了污点,到底怎么回事呢? “比普通面膜安全、效果好!痘痘、痘印、敏感肌都能用…...

    2024/4/27 23:24:42
  21. 「发现」铁皮石斛仙草之神奇功效用于医用面膜

    原标题:「发现」铁皮石斛仙草之神奇功效用于医用面膜丽彦妆铁皮石斛医用面膜|石斛多糖无菌修护补水贴19大优势: 1、铁皮石斛:自唐宋以来,一直被列为皇室贡品,铁皮石斛生于海拔1600米的悬崖峭壁之上,繁殖力差,产量极低,所以古代仅供皇室、贵族享用 2、铁皮石斛自古民间…...

    2024/4/28 5:48:52
  22. 丽彦妆\医用面膜\冷敷贴轻奢医学护肤引导者

    原标题:丽彦妆\医用面膜\冷敷贴轻奢医学护肤引导者【公司简介】 广州华彬企业隶属香港华彬集团有限公司,专注美业21年,其旗下品牌: 「圣茵美」私密荷尔蒙抗衰,产后修复 「圣仪轩」私密荷尔蒙抗衰,产后修复 「花茵莳」私密荷尔蒙抗衰,产后修复 「丽彦妆」专注医学护…...

    2024/4/30 9:42:22
  23. 广州械字号面膜生产厂家OEM/ODM4项须知!

    原标题:广州械字号面膜生产厂家OEM/ODM4项须知!广州械字号面膜生产厂家OEM/ODM流程及注意事项解读: 械字号医用面膜,其实在我国并没有严格的定义,通常我们说的医美面膜指的应该是一种「医用敷料」,也就是说,医用面膜其实算作「医疗器械」的一种,又称「医用冷敷贴」。 …...

    2024/5/2 9:07:46
  24. 械字号医用眼膜缓解用眼过度到底有无作用?

    原标题:械字号医用眼膜缓解用眼过度到底有无作用?医用眼膜/械字号眼膜/医用冷敷眼贴 凝胶层为亲水高分子材料,含70%以上的水分。体表皮肤温度传导到本产品的凝胶层,热量被凝胶内水分子吸收,通过水分的蒸发带走大量的热量,可迅速地降低体表皮肤局部温度,减轻局部皮肤的灼…...

    2024/4/30 9:42:49
  25. 配置失败还原请勿关闭计算机,电脑开机屏幕上面显示,配置失败还原更改 请勿关闭计算机 开不了机 这个问题怎么办...

    解析如下&#xff1a;1、长按电脑电源键直至关机&#xff0c;然后再按一次电源健重启电脑&#xff0c;按F8健进入安全模式2、安全模式下进入Windows系统桌面后&#xff0c;按住“winR”打开运行窗口&#xff0c;输入“services.msc”打开服务设置3、在服务界面&#xff0c;选中…...

    2022/11/19 21:17:18
  26. 错误使用 reshape要执行 RESHAPE,请勿更改元素数目。

    %读入6幅图像&#xff08;每一幅图像的大小是564*564&#xff09; f1 imread(WashingtonDC_Band1_564.tif); subplot(3,2,1),imshow(f1); f2 imread(WashingtonDC_Band2_564.tif); subplot(3,2,2),imshow(f2); f3 imread(WashingtonDC_Band3_564.tif); subplot(3,2,3),imsho…...

    2022/11/19 21:17:16
  27. 配置 已完成 请勿关闭计算机,win7系统关机提示“配置Windows Update已完成30%请勿关闭计算机...

    win7系统关机提示“配置Windows Update已完成30%请勿关闭计算机”问题的解决方法在win7系统关机时如果有升级系统的或者其他需要会直接进入一个 等待界面&#xff0c;在等待界面中我们需要等待操作结束才能关机&#xff0c;虽然这比较麻烦&#xff0c;但是对系统进行配置和升级…...

    2022/11/19 21:17:15
  28. 台式电脑显示配置100%请勿关闭计算机,“准备配置windows 请勿关闭计算机”的解决方法...

    有不少用户在重装Win7系统或更新系统后会遇到“准备配置windows&#xff0c;请勿关闭计算机”的提示&#xff0c;要过很久才能进入系统&#xff0c;有的用户甚至几个小时也无法进入&#xff0c;下面就教大家这个问题的解决方法。第一种方法&#xff1a;我们首先在左下角的“开始…...

    2022/11/19 21:17:14
  29. win7 正在配置 请勿关闭计算机,怎么办Win7开机显示正在配置Windows Update请勿关机...

    置信有很多用户都跟小编一样遇到过这样的问题&#xff0c;电脑时发现开机屏幕显现“正在配置Windows Update&#xff0c;请勿关机”(如下图所示)&#xff0c;而且还需求等大约5分钟才干进入系统。这是怎样回事呢&#xff1f;一切都是正常操作的&#xff0c;为什么开时机呈现“正…...

    2022/11/19 21:17:13
  30. 准备配置windows 请勿关闭计算机 蓝屏,Win7开机总是出现提示“配置Windows请勿关机”...

    Win7系统开机启动时总是出现“配置Windows请勿关机”的提示&#xff0c;没过几秒后电脑自动重启&#xff0c;每次开机都这样无法进入系统&#xff0c;此时碰到这种现象的用户就可以使用以下5种方法解决问题。方法一&#xff1a;开机按下F8&#xff0c;在出现的Windows高级启动选…...

    2022/11/19 21:17:12
  31. 准备windows请勿关闭计算机要多久,windows10系统提示正在准备windows请勿关闭计算机怎么办...

    有不少windows10系统用户反映说碰到这样一个情况&#xff0c;就是电脑提示正在准备windows请勿关闭计算机&#xff0c;碰到这样的问题该怎么解决呢&#xff0c;现在小编就给大家分享一下windows10系统提示正在准备windows请勿关闭计算机的具体第一种方法&#xff1a;1、2、依次…...

    2022/11/19 21:17:11
  32. 配置 已完成 请勿关闭计算机,win7系统关机提示“配置Windows Update已完成30%请勿关闭计算机”的解决方法...

    今天和大家分享一下win7系统重装了Win7旗舰版系统后&#xff0c;每次关机的时候桌面上都会显示一个“配置Windows Update的界面&#xff0c;提示请勿关闭计算机”&#xff0c;每次停留好几分钟才能正常关机&#xff0c;导致什么情况引起的呢&#xff1f;出现配置Windows Update…...

    2022/11/19 21:17:10
  33. 电脑桌面一直是清理请关闭计算机,windows7一直卡在清理 请勿关闭计算机-win7清理请勿关机,win7配置更新35%不动...

    只能是等着&#xff0c;别无他法。说是卡着如果你看硬盘灯应该在读写。如果从 Win 10 无法正常回滚&#xff0c;只能是考虑备份数据后重装系统了。解决来方案一&#xff1a;管理员运行cmd&#xff1a;net stop WuAuServcd %windir%ren SoftwareDistribution SDoldnet start WuA…...

    2022/11/19 21:17:09
  34. 计算机配置更新不起,电脑提示“配置Windows Update请勿关闭计算机”怎么办?

    原标题&#xff1a;电脑提示“配置Windows Update请勿关闭计算机”怎么办&#xff1f;win7系统中在开机与关闭的时候总是显示“配置windows update请勿关闭计算机”相信有不少朋友都曾遇到过一次两次还能忍但经常遇到就叫人感到心烦了遇到这种问题怎么办呢&#xff1f;一般的方…...

    2022/11/19 21:17:08
  35. 计算机正在配置无法关机,关机提示 windows7 正在配置windows 请勿关闭计算机 ,然后等了一晚上也没有关掉。现在电脑无法正常关机...

    关机提示 windows7 正在配置windows 请勿关闭计算机 &#xff0c;然后等了一晚上也没有关掉。现在电脑无法正常关机以下文字资料是由(历史新知网www.lishixinzhi.com)小编为大家搜集整理后发布的内容&#xff0c;让我们赶快一起来看一下吧&#xff01;关机提示 windows7 正在配…...

    2022/11/19 21:17:05
  36. 钉钉提示请勿通过开发者调试模式_钉钉请勿通过开发者调试模式是真的吗好不好用...

    钉钉请勿通过开发者调试模式是真的吗好不好用 更新时间:2020-04-20 22:24:19 浏览次数:729次 区域: 南阳 > 卧龙 列举网提醒您:为保障您的权益,请不要提前支付任何费用! 虚拟位置外设器!!轨迹模拟&虚拟位置外设神器 专业用于:钉钉,外勤365,红圈通,企业微信和…...

    2022/11/19 21:17:05
  37. 配置失败还原请勿关闭计算机怎么办,win7系统出现“配置windows update失败 还原更改 请勿关闭计算机”,长时间没反应,无法进入系统的解决方案...

    前几天班里有位学生电脑(windows 7系统)出问题了&#xff0c;具体表现是开机时一直停留在“配置windows update失败 还原更改 请勿关闭计算机”这个界面&#xff0c;长时间没反应&#xff0c;无法进入系统。这个问题原来帮其他同学也解决过&#xff0c;网上搜了不少资料&#x…...

    2022/11/19 21:17:04
  38. 一个电脑无法关闭计算机你应该怎么办,电脑显示“清理请勿关闭计算机”怎么办?...

    本文为你提供了3个有效解决电脑显示“清理请勿关闭计算机”问题的方法&#xff0c;并在最后教给你1种保护系统安全的好方法&#xff0c;一起来看看&#xff01;电脑出现“清理请勿关闭计算机”在Windows 7(SP1)和Windows Server 2008 R2 SP1中&#xff0c;添加了1个新功能在“磁…...

    2022/11/19 21:17:03
  39. 请勿关闭计算机还原更改要多久,电脑显示:配置windows更新失败,正在还原更改,请勿关闭计算机怎么办...

    许多用户在长期不使用电脑的时候&#xff0c;开启电脑发现电脑显示&#xff1a;配置windows更新失败&#xff0c;正在还原更改&#xff0c;请勿关闭计算机。。.这要怎么办呢&#xff1f;下面小编就带着大家一起看看吧&#xff01;如果能够正常进入系统&#xff0c;建议您暂时移…...

    2022/11/19 21:17:02
  40. 还原更改请勿关闭计算机 要多久,配置windows update失败 还原更改 请勿关闭计算机,电脑开机后一直显示以...

    配置windows update失败 还原更改 请勿关闭计算机&#xff0c;电脑开机后一直显示以以下文字资料是由(历史新知网www.lishixinzhi.com)小编为大家搜集整理后发布的内容&#xff0c;让我们赶快一起来看一下吧&#xff01;配置windows update失败 还原更改 请勿关闭计算机&#x…...

    2022/11/19 21:17:01
  41. 电脑配置中请勿关闭计算机怎么办,准备配置windows请勿关闭计算机一直显示怎么办【图解】...

    不知道大家有没有遇到过这样的一个问题&#xff0c;就是我们的win7系统在关机的时候&#xff0c;总是喜欢显示“准备配置windows&#xff0c;请勿关机”这样的一个页面&#xff0c;没有什么大碍&#xff0c;但是如果一直等着的话就要两个小时甚至更久都关不了机&#xff0c;非常…...

    2022/11/19 21:17:00
  42. 正在准备配置请勿关闭计算机,正在准备配置windows请勿关闭计算机时间长了解决教程...

    当电脑出现正在准备配置windows请勿关闭计算机时&#xff0c;一般是您正对windows进行升级&#xff0c;但是这个要是长时间没有反应&#xff0c;我们不能再傻等下去了。可能是电脑出了别的问题了&#xff0c;来看看教程的说法。正在准备配置windows请勿关闭计算机时间长了方法一…...

    2022/11/19 21:16:59
  43. 配置失败还原请勿关闭计算机,配置Windows Update失败,还原更改请勿关闭计算机...

    我们使用电脑的过程中有时会遇到这种情况&#xff0c;当我们打开电脑之后&#xff0c;发现一直停留在一个界面&#xff1a;“配置Windows Update失败&#xff0c;还原更改请勿关闭计算机”&#xff0c;等了许久还是无法进入系统。如果我们遇到此类问题应该如何解决呢&#xff0…...

    2022/11/19 21:16:58
  44. 如何在iPhone上关闭“请勿打扰”

    Apple’s “Do Not Disturb While Driving” is a potentially lifesaving iPhone feature, but it doesn’t always turn on automatically at the appropriate time. For example, you might be a passenger in a moving car, but your iPhone may think you’re the one dri…...

    2022/11/19 21:16:57