版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
实训1 PHP开发平台搭建P1.1.1PHP环境1.操作系统准备PHP80打开indows(indowsregedit,HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\HTTPStart的项(EG_DOD类型,将其值改为0,如图1所示。图1修改注册表Start项的值StartHTTPSYSTEM2所示。ApachePHP了。图2设置SYSTEM的权限2.安装Apache服务器(1)获取Apache软件包Apache是开源软件,可以免费获得。访问Apache官网下载页/downlodo.cgi,得到安装包文件名为httpd-2.4.54-o111s-x64-vs16.zip。(2)定义服务器根目录将安装包解压至C:\ProgramFiles\Php\Apache24目录下,进入其下的\conf子目录,找到Apache的配置文件httpd.conf,用indows记事本打开,在其中定义服务器根目录(如图3所示: DefineSRVROOT"C:/ProgramFiles/Php/Apache24" (3)Apache服务
图3定义Apache服务器根目录Windowsbin子目录,输入以下命令安装Apache服务(如图4所示: httpd.exe-kinstall-napache (4)Apache
图4安装Apache服务C:\ProgramFiles\Php\Apache24\binApacheMonitor.exe,在桌面任务栏右下角出现一图标,图标内的三角形为绿色时表示服务正在运行,为红色时表示服务停止。双击该图标会弹出Apache服务管理界面,如图5所示,单击其上的“StartStop”和“estart”按钮可分别启动、停止和重启Apache服务。图5Apache服务管理界面至此,Apache安装完成。读者可以测试一下看是否成功,在浏览器地址栏中输入http://localhost或后回车。如果安装成功,会出现如图6所示的页面。3.安装PHP
图6Apache安装成功WindowsPHP/download/PHP7.4php-.4.3-in3-vc5-4.zi(线程安全\ProgramFiles\Php\php7目录下。(1)指定扩展库目录C:\ProgramFiles\Php\php7php.ini-productionphp.ini(作为PHP的配置文件使用,用indows记事本打开,在其中指定扩展库目录(如图7所示:extension_dir="C:/ProgramFiles/Php/php7"Onwindows:extension_dir="C:/ProgramFiles/Php/php7"Onwindows:extension_dir="C:/ProgramFiles/Php/php7/ext"图7指定PHP扩展库目录(2)开放扩展库(.dll)extension=curlextension=gd2extension=mbstringextension=mysqliextension=pdo_mysql接着,在php.ini文件中,设置开放(去掉行前分号)以下这些基本的扩展库(如图8所示:extension=curlextension=gd2extension=mbstringextension=mysqliextension=pdo_mysql4.Apache整合PHP
图8开放PHP基本扩展库C:\ProgramFiles\Php\Apache24\confApache(如图9所示:LoadModulephp7_module"C:/ProgramFiles/Php/php7/php7apache2_4.dll"AddTypeapplication/x-httpd-php.php.html.htmLoadModulephp7_module"C:/ProgramFiles/Php/php7/php7apache2_4.dll"AddTypeapplication/x-httpd-php.php.html.htmPHPIniDir"C:/ProgramFiles/Php/php7/"图9Apache2.4整合PHP7配置将php解压文件中的libssh2.dll放入Apache2.4解压目录下的bin文件夹。配置完后重启Apache服务管理器,其下方的状态栏会显示“Apache/2.4.54(Win64)OpenSSL/1.1.1cPHP7.4.3310所示,这说明PHP已经安装成功。P1.1.2Eclipse
图10Apache已支持PHP1.安装JDKEclipse需要JRE的支持,而JRE包含在JDK中,故先要安装JDK。(1)下载JDK可以从Oracle官网下载到最新版本的JDK,网址为https://www.or/java/technologies/downloads,选择适合自己操作系统的JDK。笔者下载JDK17,得到的文件名为“jdk-17_windows-x6M(Oracle经常会发布DK的更新版本,到本书出版的时候,JDK。(2)安装JDK导航到浏览器下载安装文件的位置,并双击执行该文件。一旦安装开始,将会看到安装向导,Windows安装程C:\ProgramFiles\Java\。要更改安装目录的位置,可单击“更改”按钮。本书安装12。图11JDK安向导 图12选择JDK的安装目录2.安装EclipseEclipseeclipse-inst-jre-win64.exe的EclipeIDEEclipeIDEfrPHPDevelopes(即PHP版13程要始终确保联网以实时下载所需的文件。13PHPEclipse点“INSTALL”开始安装,如图14所示。14Eclipse安装过程中会出现对话框确认许可协议条款,如图15所示,点“AcceptNow”接受。图15接受全部协议条款安装完成点“LAUNCH”启动并设置工作区,如图16所示。3.更改工作区
图16初次启动EclipseEclipse17所示。图17Eclipse主界面欢迎页及开发环境ApacheProgramFiesPhpApache24htdocsEclipse的工作区也更改为与此路径一致。选择主菜单“File”→“SwitchWorkspace”→“Other”项,弹出对话框,点“Workspace”栏后的“Browse”按钮选取新的工作区,如图18所示,这里设为“C:\ProgramFiles\Php\Apache24htdocsLaunch”按钮重启Eclipe使设置生效。图18选取新的工作区第1章 MySQL安装MySQLCommunityServer的安装包可从MySQL官网(/downloads)免费下载。在安装MySQL前,须确保系统中已安装了最新的Microsoft.NETFramework。1.MySQL的安装(1)双击安装文件弹出欢迎窗口,然后开始进行安装。在询问是否需要赋予权限时,回答“是”。如果系统中已经存在MySQL,则系统自动列出已经安装的内容。(2)弹出“LicenseAgreement”窗口,该窗口列出用户使用本产品相应接受的项目(用户许可协议。选中“Iacceptthelicenseterms”复选框,然后单击“Next”按钮。(3)系统进入“SelectProductsandFeatures(选择安装项目)窗口,如图1所示。图1选择安装项目vailableProductsProductsFeaturesoeIntalled”中列出SLrs是yLasMySQLConnectorsMySQLDocumentation(初学者可以仅仅选择安装MySQLServers项目,单击“Next”按钮进入下一个窗口。(4“Installation2Back”按钮可返回上一个窗口重新选择,单击“Next完成后相应的项目前自动打勾。图2安装成功窗口至此,MySQL安装成功(Intallsuccess单击“Next”按钮,可进入服务器配置过程。2.MySQL服务器配置(1)进入服务器配置窗口(ProductConfiguration)后,单击“Next”按钮,进入“TypeandNetworking”窗口,采用系统默认的“StandaloneMySQLServer(标准MySQL服务器。单击“Next”按钮,进入“TypeandNetworking-ServerConfigurationType”配置窗口,配置MySQL服务器运行的参数,如图3所示。图3配置MySQL服务器运行的参数其中部分参数的用法如下。3DevelopmentMachne(开发者机器:将MySQL服务器配置成使用最少的系统资源。ServerMachine(服务器机器:将MySQL服务器配置成使用适当比例的系统资源。DedicatedMySQLServerMachine(专用MySQL服务器机器:将MySQL服务器配置成使用所有可用系统资源。作为初学者,建议选择“DevelopmentMachine”就可以了。“ConnectivityMySQL的参数。默认情况下启用TP/IP网络;默认端口为3306(必须保证该端口号没有被占用;打开通过网络存取数据库防火墙功能。同时取消勾选命名管道和共享内存功能。“AdvancedConfigurationShowAdvanced对于初学者,使用默认配置即可。单击“Next”按钮进入下一个窗口。(2)系统显示“AccountsandRoles”窗口,配置Root账户和角色,如图4所示。图4配置Root账户和角色设置ootMySQLootPasword(输入新密码epeatPaword(确认密码)123456。也可以单击下方的“AddUser”按钮另行创建新的用户,设置有关角色。单击“Next”按钮进入下一个窗口。(3)系统显示“WindowsService”窗口,配置Windows程序运行参数。系统默认Windows启动时自动启动MySQL程序,进程名为MySQL57。Windows启动时采用StandardSytemAccount标准账户,保留默认值即可。单击“Next”按钮,进入下一个窗口。PluginsandMySQL(5)系统显示“Applyonfguration(应用服务配置过程)窗口。单击“Execute”按钮,系统将根据列出的应用服务顺序进行配置,直到项目前全部打勾表示完成。单击“Finish”按钮,进入下一个窗口。(6)系统显示“ProductConfiguration”窗口,其中显示MySQLServer配置完成。单击“Next”按钮,进入显示完成窗口。单击“Finish”按钮,结束配置。实训2 MySQL数据库准备WindowsMySQL5.7mysql>SQL语句。也NavicatSQL语句执SQL语Navicat看看执行结果或者根据需要通过界面修改内容。创建数据库数据库名称:pxscj。字符集和相应的排序规则:utf8SQL语句如下:CREATEDATABASEpxscjCREATEDATABASEpxscjDEFAULTCHARACTERSETutf8DEFAULTCOLLATEutf8_general_ci;Navicatpxscj1所示。创建学生表(xs)
图1“新建数据库”窗口学生表(xs)结构如表1所示。表1 学生表(xs)结构项目名列名数据类型不可空说明姓名xmchar(4)主键性别xbtinyint1男0女出生时间cssjdate总学分zxfint由成绩表(cj)触发器同步更新备注bztext照片zpblob);#();#(b)#(c)NOTNULLPRIMARYKEY,NOTNULLDEFAULT1CHECK(xbIN(1,0)),NOTNULL,NULL,NULL,NULLxm char(4)xb tinyint(1)cssj datezxf int(2)bz textzp blob#(a)USEpxscj;DROPTABLEIFEXISTSxs;CREATETABLExs(说明:(a)为了防止原来xs已经存在,若存在xs表时先删除它,CREATETABLExs才能执行。xmb11或者0值。创建成绩表(cj)成绩表(cj)结构如表2所示。表2 成绩表(cj)结构项目名列名数据类型不可空说明姓名xmchar(4)主键课程名kcmvarchar(10)主键成绩cjtinyint范围:0~100);#();#(a)#(b)PRIMARYKEY(xm,kcm),CHECK(cj>=0ANDcj<=100)NOTNULL,NOTNULL,NULL,DROPTABLEIFEXISTScj;CREATETABLEcj(xm char(4)kcm varchar(10)cj tinyint(1)说明:(a)因为主键由(xm,kcm)列共同组成,所以只能在所有列定义后单独定义。(b)仅仅涉及成绩列(cj)完整性也可以在所有列后单独定义。#(#(c)#(a)#(b)USEpxscj;INSERTINTOxsVALUES('周何骏',1,'1998-09-25',0,null,null);INSERTINTOxsVALUES('徐鹤',DEFAULT,'1997-11-08',0,null,null);INSERTINTOxsVALUES('林雪',0,'1997-10-19',0,null,null);INSERTINTOxsVALUES('王新平',1,'1998-03-06',0,null,null);UPDATExsSETbz='通信工程转入'WHERExm='周何骏';SELECT*FROMxs;说明:(a)VALUESxs表结构定义的列的前后null填入。注意,nullnull属性列。(b)如果采用默认值,需要填入DEFAULT。(c)因为记录已经存在,所以只能更新记录列值或者改变原来值。如果插入的列数据不符合定义时的完整性要求,就会显示错误,插入记录不会成功。例如:姓名(xm)='周何骏 ',null:字符串长度为5超过最大长度,列不能为空。另外,因为该列为主键,两条记录姓名不能相同。性别(xb)=2:xb01。出生时间(cssj)='1998-09-00':日期数据不正确;学分(xf)=10:超过范围。#(#(b)#(a)林雪',50);INSERTINTOcj(kcm,xm,cjVALUES('计算机导论','周何骏',82);INSERTINTOcj(kcm,xm,cjVALUES('计算机网络','徐鹤',85);INSERTINTOcj(kcm,xm,cjVALUES('C++','周何骏',82);INSERTINTOcj(kcm,xm,cjVALUES('计算机导论','王新平',65);SELECT*FROMcjORDERBYxm;INSERTINTOcj(kcm,xm,cj)VALUES('Java','周何骏',70),('Java','徐鹤',80),('Java','说明:VALUES(b)xm排序,所有学生的记录同一个人的成绩记录排在一起。实训2SpringBoot开发环境配置P2.1.1JDK1.下载JDKOraclehttps://www.or/technetwork/java/javase/downloads/index.htmlJDKJDK(Oracle经常会发布DK的更新版本,到本书出版的时候,JDK。2.安装JDK导航到浏览器下载安装文件的位置,并双击执行该文件。一旦安装开始,将会看到安装向导,1Windows中,JDK安装程C:\ProgramFiles\Java\。要更改安装目录的位置,可单击“更改”按钮。本书安装2。图1JDK安向导 图2选择JDK的安装目录3.配置环境变量3所示。图3Windows10的环境变量JDKC:\ProgramFiles\Java\jdk-17.0.54所示。图4新建JAVA_HOME环境变量接下来添加系统Path环境变量,在“系统变量”列表中选中“Path5Path %JAVA_HOME%\bin 图5添加Path环境变量连续三次单击“确定”按钮,Windows接受这些修改并返回到最初的“设置”窗口。这样,系统就在原来的Path路径上增加了一个指向新安装JDK的查找路径。P2.1.2Maven1.下载Maven打开官网/download.cgi,在“Download”页“Files”下载区点“apache-maven-3.9.0-bin.zip”链接,下载得到压缩包文件apache-maven-3.9.0-bin.zip,如图6所示。2.解压将其解压到一个路径下,如C:\mvn\apache-maven-3.9.0。3.配置环境变量要配置两处,如图7所示。(1)C:\mvn\apache-maven-3.9.0(读者请按照自己下Maven的实际解压路径来配置。(2)编辑Path变量,加上:%MAVEN_HOME%\bin。图6下载Maven图7配置环境变量4.检查安装打开Windows命令行,输入: mvn-V 若出现如图8所示的一堆信息,开头包含了Maven的路径、Java版本、操作系统版本等,说明安装成功。5.配置Maven仓库
图8检查安装(1)在Maven安装目录下创建文件夹repository。(2)进入Maven安装目录下的conf文件夹,打开文件settings.xml,找到localRepository标签(此时是被注释掉的,在下面配置路径: <localRepository>C:\mvn\apache-maven-3.9.0\repository</localRepository> 这样以后Maven管理下载的JAR包就都会放在这个路径下。(3)配置远程仓库,在settings.xml中找到mirrors标签,在下面添加配置:<mirror><mirror><id>nexus-aliyun</id><mirrorOf>*</mirrorOf><name>Nexusaliyun</name><url>/nexus/content/groups/public</url></mirror>MavenJARsettings.xml9所示。图9配置Maven仓库P2.1.3IDEA1.下载IDEA访问IDEA官网https:///idea/download/#section=windows,选择下载Ultimate版本,得到安装包文件(例如:ideaIU-20223.2.xe。2.安装IDEA(1)双击安装包ideaIU-2022.3.2.xe,启动IDEA安装向导,如图10所示。单击“NextInstallLocation图10IDEA安向导 图11指定初始安装默认录(2)单击“NexIntallationOption”界面,如图12所示。 图12指定装选项 图13指定(命名)启动单文件夹其中各项的选择及作用如下:IntelliJIDEAIDEA的快捷方式。Add"bin"foldertotheIDEAbin环境变量中,以方便此后对该目录下文件的查找和执行。Add"OpenFolderasProject":增加“OpenFolderasProjectIDEA上下文菜单。.javaIDEAJava语言程序。.groovyIDEAgroovy语言程序。.ktIDEAKotlin语言程序。.ktsIDEAKotlin脚本语言文件。(3hooeStartMenuFolder(命名(Jetrain,13所示。(4)单击“Install”开始安装,显示安装进度,如图14所示。最后在“CompletingIntelliJIDEASetup”界面勾选“Rebootnow”,点“Finish”按钮结束安装并重启计算机,如图15所示。图14显示装进度 图15安装结束重启计3.初次启动(1)初次启动需要先接受用户许可条款,如图16所示,勾选底部“IconfirmthatIhavereadandacceptthetermsofthisUserAgreement”选项,单击“Continue”按钮。图16接受用户许可条款(2)系统弹出激活(Activate)License,可选中“ActivateIntelliJStarttrial(30,如图17所示。图17激活(Activate)对话框(3)IDEA启动后首先进入IntelliJIDEA欢迎界面,如图18所示。图18IntelliJIDEA欢迎界面5个选项页,通过左侧的选项标签进行切换,默认处于“Projects”页,此页上布置IDEAVCSVCSIntelliJIDEAVCSURLGITURL地址可以克隆并下载项目。IDEACustomize”页来另行定制,选中左侧栏上的“Customize19所示。图19定制开发界面从“Colortheme”栏的下拉列表中选“IntelliJLight”,界面立即变为清爽的亮白色。接下来就可以用IDEA创建SpringBoot项目并进入到开发环境了。4.整合MavenSpringBoot在IDEA开发环境中,选择主菜单“e”→“SettingsSetting”配置窗口,展开左uild,Execution,Depoyment”→“uildools”→“MavenMaven配20所示。图20Maven配置界面从“MavenhomepathMaven的解压路径(C:/mvn/apache-mave-39.0勾“Userettingsfile栏后面“Override选项后单“按钮从弹SelectUserSettingsMaven安装路径下的用户配置文件(etting.xml,如图21所示。21Maven单击“OK”按钮,回到“Settings”配置窗口,此时“Mavenhomepath”及其后两栏的内容显示如图22所示。单击“OK”按钮保存设置。
图22Maven路径配置完成实训3 MySQL数据库准备WindowsMySQL5.7mysql>SQL语句。也NavicatSQL语句执SQL语Navicat看看执行结果或者根据需要通过界面修改内容。创建数据库数据库名称:pxscj。字符集和相应的排序规则:utf8SQL语句如下:CREATEDATABASEpxscjCREATEDATABASEpxscjDEFAULTCHARACTERSETutf8DEFAULTCOLLATEutf8_general_ci;Navicatpxscj1所示。创建课程表(kc)
图1“新建数据库”窗口课程表(kc)结构如表1所示。表1 课程表(kc)结构项目名列名数据类型不可空说明课程名kcmvarchar(10)主键学分xftinyint范围:1~6考试人数krsint平均成绩pjcjfloat(5.2)SQL语句如下:DROPTABLEIFEXISTSkc;CREATETABLEkc(kcmvarchar(10)NOTNULLPRIMARYKEY,xftinyint(1)NOTNULLCHECK(xf>0ANDxf<=6),krsint(2)NULL,pjcjfloat(5.2)NULL);说明:课程名(kcm)列实际内容存储长度差别较大,所以选择varchar(10)。创建成绩表(cj)成绩表(cj)结构如表2所示。表2 成绩表(cj)结构项目名列名数据类型不可空说明姓名xmchar(4)主键课程名kcmvarchar(10)主键成绩cjtinyint范围:0~100);#();#(a)#(b)PRIMARYKEY(xm,kcm),CHECK(cj>=0ANDcj<=100)NOTNULL,NOTNULL,NULL,DROPTABLEIFEXISTScj;CREATETABLEcj(xm char(4)kcm varchar(10)cj tinyint(1)说明:(a)因为主键由(xm,kcm)列共同组成,所以只能在所有列定义后单独定义。(b)仅仅涉及成绩列(cj)完整性也可以在所有列后单独定义。创建存储过程(cj_kAverage)在成绩表(cj)中按照课程名(kcm)统计考试人数(即记录数)和平均成绩,保存到课程表(kc)对应课程的相应列中。1.存储过程的创建#(b#(b)#(c.2)#(c.3)#(d)#(c.4)#(c.5)#(a)#(a)#(a)#(c.1)USEpxscj;DELIMITER$$DROPPROCEDUREIFEXISTScj_kAverage;PROCEDUREcj_kAverage()BEGINDECLAREkcm1varchar(10);DECLAREkrs1int(2);DECLAREpjcj1float(5.2);DECLAREmyfoundbooleanDEFAULTtrue;DECLAREmykcjCURSORFORSELECTkcm'课程名',count(kcm)AS'考试人数',avg(cj)AS'平均成绩'FROMcjGROUPBYkcmORDERBYkcm;DECLARECONTINUEHANDLERFORNOTFOUNDSETmyfound=false;OPENmykcj;mylabel:LOOPFETCHmykcjINTOkcm1,krs1,pjcj1;IFNOTmyfoundTHENLEAVEmylabel;ELSEUPDATEkcSETkrs=krs1,pjcj=pjcj1WHEREkcm=kcm1;ENDIF;##(d)#(c.6)ENDLOOPmylabel;CLOSEmykcj;END$$DELIMITER;说明:(a定义3(kcm1(kr1(pjcj1DECLAREmykcjCURSORFORSELECTkcm'课程名',count(kcm)AS'DECLAREmykcjCURSORFORSELECTkcm'课程名',count(kcm)AS'考试人数',avg(cj)AS'平均成绩'FROMcjGROUPBYkcmORDERBYkcm;先按照课程名排序(ORDERYkcm,相同课程排在一起;再按照课程名分组(GOUPYkcm;按照课程名统计(count(kcm))改显示列名(AS考试人数';按照课程名计算成绩的平均值并改显示列名(avg(cj)AS'平均成绩;查询输出课程名(kcm、考试人数和平均成绩。(c)与游标控制有关的语句。(c.1)定义逻辑变量(myfound,初值为真(rue(c.2)根据定位游标结果,如果没有找到,则myfound=false。(c.3)打开游标。((kcm1,krs1,pjcj1)中。(c.5(NOTmyfound(LEVE(UPDTE)课程表(kc)对应课程名的考试人数(krs)和平均成绩(pjcj)列数据。(c.6)关闭游标。(d)循环开始和循环结束语句。注意:由于存储过程是相对于数据库而不是某个表而言的,所以在存储过程创建后,在pxscj数据库的“函数”对象中就会出现cj_kAverage函数。2.存储过程的执行存储过程定义后,通过下列语句执行: CALLcj_kAverage(); INSERTINTOkc(kcm,xf)VALUES('计算机导论INSERTINTOkc(kcm,xf)VALUES('计算机导论',2),('计算机网络',4),('Java',5);INSERTINTOkc(kcm,xf)VALUES('C++',4);INSERTINTOkc(kcm,xf)VALUES('大数据',3);INSERT语句可以同时插入多条记录。INSERTINTOcj(kcm,xm,cj)VALUES('Java','周何骏INSERTINTOcj(kcm,xm,cj)VALUES('Java','周何骏',70),('Java','徐鹤',80),('Java','林雪',50); #(a)INSERTINTOcj(kcm,xm,cj)VALUES('计算机导论','周何骏',82);INSERTINTOcj(kcm,xm,cj)VALUES('计算机网络','徐鹤',85);INSERTINTOcj(kcm,xm,cj)VALUES('C++','周何骏',82);##(b)INSERTINTOcj(kcm,xm,cjVALUES('计算机导论','王新平',65);SELECT*FROMcjORDERBYxm;说明:VALUES(b)xm排序,所有学生的记录同一个人的成绩记录排在一起。UPDATEkcSETkrs=0,pjcj=0;UPDATEkcSETkrs=0,pjcj=0;CALLcj_kAverage();SELECT*FROMkc;2所示。图2存储过程统计每门课的考试人数和平均成绩1Python3.9
实训3安装Python环境PHP80(1)下载安装包在Python官方网站:https:///downloads/windows/获取对应的Python安装文件,Windows要求选择Windows7以上64位操作系统版本,在浏览器浏览Python官网下载页面,在下载列表中选择Windows平台64位安装包,下载后得到的文件名为python-3.9.13-amd64.exe。(2)安装Python双击安装包,启动Python安装向导,如图1所示。图1Python安装向导InstallPython(AddPython3.9toPythonWindowsPath的路径中。单击“IntallNowPython安装过程,安装完毕显示如图2所示的成功界面。图2成功界面点“Disablepathlengthlimit”取消路径长度限制,单击“Close”按钮结束安装。(3)验证安装安装了Python后,在Windows开始菜单中就会包含Python的程序组,如图3所示。图3Python程序组为了验证Pythonindowspython--verionPython的版本信息,就表示安装是成功的。读者也可以用“pythonPython语Python4所示。2.安装PyCharm
图4验证Python安装是否成功PyCharmJetBrainsPythonPythonPython程序。PyCharm官网:/pycharm/PyCharmCommunity(免费开源的版本,得到安装包文件名为pycharm-cmmnity-222..1.exe。(2)双击安装包,启动安装向导,如图5所示。单击“Next”按钮。图5PyCharm安装向导(3)进入安装路径选择界面,如图6所示。点“Browse…”可以改变PyCharm安装目录。图6选择PyCharm安装路径(4)单击“Next”按钮,进入安装选项界面,如图7所示。在此界面上可通过勾选设置PyCharm的一些安装选项。图7设置PyCharm的安装选项PyrmiytinPyChrmAddn"leroteHPm的nis当前AddenlrastPyChm工程设置完成后单击“Next”按钮。(5)PyCharmWindows(或创建命名一个新的)8所示,通常采用默认文件夹。单击“Install”按钮启动安装进程。图8选择(创建)PyCharm的Windows开始菜单文件夹(6安装过程结束后显示Pyharm9ebootnowFinish”按钮重启计算机。(7)PyCharm
图9PyCharm安装完成界面PyCharmPyCharm官方发送使用统计信息。勾选“IconfirmthatIhavereadandacceptthetermsofthisUserAgreement”接受条款,点“ontinueDontSend(不发送使用统计信息,如图10所示。图10接受许可协议条款、不发送使用统计信息接着出现启动画面,然后进入如图11所示的欢迎界面。图11PyCharm欢迎界面PyCharm默认的界面风格是暗黑背景,看起来很不舒服,大多数用户都会将它改成亮白色,方法是:选中欢迎界面左侧“Customize”选项,在出现界面的“Colortheme”栏下拉列表中选择“IntelliJLight”,界面立马就变得明亮整洁了,如图12所示。12PyCharm当然,读者也可以在使用PyCharm的时候再更换界面风格,方法是:选择主菜单“File”→“Setting...Appearance&eaviorAppearanceme”栏下拉列表中选择“IntelliJLight13所示。13PyCharm3.为PyCharm工程配置Python解释器PyCharmPython语言的解释器,但这个解释器与本地计算机上PythonPythonPyCharm工程虚拟环境中无法识别PythonPyCharm工程的解释器更换为计算机上所安装Python环境的解释器,这一步很关键!介绍如下。(1)在PyCharm欢迎界面上点“NewProject”按钮新建一个PyCharm工程,如图14所示。14PyCharm工程出现“NewProject”窗口,在“Location”栏配置PyCharm工程的存放路径和工程名,其他保持默认,单击“Create”按钮创建工程,如图15所示。15PyCharm(2)创建好工程后,自动进入PyCharm开发环境,如图16所示。图16PyCharm开发环境选择主菜单“File”→“Setting...Project:xxx(xxx为当前工程名)下面的“PythonInterpreterPython17所示。图17Python解释器配置界面这时顶部“PythonInterpreter”栏里显示的解释器是PyCharm工程虚拟环境的而非之前计算机上所安装的Python,必须更换。(3)添加和更换Python解释器有两种操作方法(如图18所示:①从“PythonInterpreter”栏的下拉列表中选“ShowAll...PythonInterpreters”对话框点左上角按钮。②直接选择“PythonInterpreter”栏右侧的“AddInterpreter”→“AddLocalInterpreter...”选项。操作方法①操作方法②18Python解释器进入到“AddPythonInterpreter”窗口,如图19所示,左侧选“SystemInterpreter”选项,在右边界面配置新的解释器。图19配置新的解释器栏右边的按钮出“SelectPython对话框单击其顶部PythonAppDatapython.exe,选中,单击“OK20所示。回到“PythonInterpreters(如图21所示,它才是本地计算机上安装Python的解释器,选中它,再先后单击对话框底部“ApplyOK”按钮。此时返回Python解释器配置界面,其顶部“PythonInterpreter”栏下拉列表里就有了新添加的解释器选项,选中后单击“OK”按钮即可。图20找到并选中本地Python解释器图21解释器添加成功1JDK
实训4 Android开发工具安装无论移动端还是服务器端程序的开发机器上都要安装JDK,最好版本一致。(1)下载JDK可以从Oracle官网下载到最新版本的JDK,网址为https://www.or/technetwork/java/javase/downloads/index.htmlJDKJDK(Oracle经常会发布DK的更新版本,到本书出版的时候,JDK。(2)安装JDK导航到浏览器下载安装文件的位置,并双击执行该文件。一旦安装开始,将会看到安装向导,1Windows中,JDK安装程C:\ProgramFiles\Java\。要更改安装目录的位置,可单击“更改”按钮。本书安装2。图1JDK安向导 图2选择JDK的安装目录(3)配置环境变量配置环境变量的目的是为了让后面安装的AndroidStudio和Eclipse能够找到JDK。3所示。图3Windows10的环境变量JDKC:\ProgramFiles\Java\jdk-17.0.54所示。图4新建JAVA_HOME环境变量接下来添加系统Path环境变量,在“系统变量”列表中选中“Path5Path %JAVA_HOME%\bin 图5添加Path环境变量连续三次单击“确定”按钮,Windows接受这些修改并返回到最初的“设置”窗口。这样,系统就在原来的Path路径上增加了一个指向新安装JDK的查找路径。2.安装AndroidStudio在移动端开发机器上安装AndroidStudio。(1)下载AndroidStudio去Android官网下载AndroidStudio的安装包,网址为:/stuAndroidStudioDOWNLOADANDROID6所示。(2)AndroidStudio
图6下载AndroidStudio4.1因为在AndroidStudioWindows防火墙和杀毒软件。双击执行下载得到的文件,启动安装向导,如7所示。单击“Next”按钮向前推进界面,每一步都采用默认设置,直至安装完成到达“CompletingAndroidStudioSetup8StartAndroidStudioAndroidStudio在FinihFinihAndroidStudio将会启动。AndroidStudio。图7启动AndroidStudio安装向导 图8完成AndroidStudio的装(3)第一次启动AndroidStudioAndroidStudio9接着出现启动画面,如图10所示,在弹出的“DataSharing”对话框中点选“Don’tsend”拒绝谷歌对个人隐私信息的采集,接下来弹出的“AndroidStudioFirstRun”提示框中点“Cancel”忽略系统对AndroidSDK的检查。图9AndroidStudio的初始设置图10不发送个人信息及不进行SDK检查接着出现AndroidStudioSetupWizard的Welcome(欢迎)界面,如图11所示。SetupWizard。单击“Next”按钮。Standar(标准,单击“NextUI主题界面风格,如图12所示。AndroidSDK组件的详细信Finish”按钮,SetupWizardAndroidStudio13所示。稍等一会儿,待完成后单击“Finish”按钮,关闭SetupWizard。图11SetupWizard欢迎界面 图12采用默认的UI主题面风格3.安装Eclipse
图13SetupWizard下载组件在服务器端开发机器上安装Eclipse,使用最新的EclipseIDE2022‑12作为开发Web端Java程序的工具,目前官方只提供Eclipse安装器的下载,下载地址:https://www./downloads/,获取文件名为:eclipse-inst-jre-win64.exe。eclipse-inst-jre-win64.exe选择要安装的EclipeIDEEclipeIDEforEntrprieavaandebDevelpers(即aveEE版,如图14所示,安装全过程要始终确保联网以实时下载所需的文件。14JavaEEEclipse点“INSTALL”开始安装,如图15所示。15Eclipse安装完成点“LAUNCH”启动并设置工作区,如图16所示。4.安装Tomcat
图16初次启动/download-10.cgiapache-tomcat-9.0.71.exe17所示。图17Tomcat安装向导ServerShutdownPort”由-1改为8005(或者在安装完成之后由配置文件中改再重启omcat,如图18所示,只有这样修改之后才Eclipse实例来调试程序。图18修改“ServerShutdownPort”JDK17JREJREJDK目录即可,如图19所示。19JDKJRE目录5.配置Eclipse环境中的Tomcat要将Tomcat与EclipseIDE整合起来,才能在开发调试程序时使用。下面简述整合的步骤:(1在EclipeindowPreferencesPreferencesServer”→“untimeEnvirnmensAdd20所示。图20配置服务器运行时环境(2)在接下来的“NewServerRuntimeEnvironmentApacheomcatv90reateanewlocalerver21所示,点“Next图21选择创建服务器的类型(3)9.0JRE就是本地计算机上所安装的DK(这里是“jdk-17.05,如图22所示。22TomcatJRE经上述配置后,就可以从Eclipse环境启动Tomcat来调试运行程序。注意:注意:Eclipse实训4 MySQL数据库准备WindowsMySQL5.7mysql>SQL语句。也NavicatSQL语句执SQL语Navicat看看执行结果或者根据需要通过界面修改内容。创建数据库数据库名称:pxscj。字符集和相应的排序规则:utf8SQL语句如下:CREATEDATABASEpxscjCREATEDATABASEpxscjDEFAULTCHARACTERSETutf8DEFAULTCOLLATEutf8_general_ci;Navicatpxscj1所示。创建学生表(xs)
图1“新建数据库”窗口学生表(xs)结构如表1所示。表1 学生表(xs)结构项目名列名数据类型不可空说明姓名xmchar(4)主键性别xbtinyint1男0女出生时间cssjdate总学分zxfint由成绩表(cj)触发器同步更新备注bztext照片zpblob);#();#(b)#(c)NOTNULLPRIMARYKEY,NOTNULLDEFAULT1CHECK(xbIN(1,0)),NOTNULL,NULL,NULL,NULLxm char(4)xb tinyint(1)cssj datezxf int(2)bz textzp blob#(a)USEpxscj;DROPTABLEIFEXISTSxs;CREATETABLExs(说明:(a)为了防止原来xs已经存在,若存在xs表时先删除它,CREATETABLExs才能执行。xmb11或者0值。创建课程表(kc)课程表(kc)结构如表2所示。表2 课程表(kc)结构项目名列名数据类型不可空说明课程名kcmvarchar(10)主键学分xftinyint范围:1~6考试人数krsint平均成绩pjcjfloat(5.2)SQL语句如下:DROPTABLEIFEXISTSkc;CREATETABLEkc(kcmvarchar(10)NOTNULLPRIMARYKEY,xftinyint(1)NOTNULLCHECK(xf>0ANDxf<=6),krsint(2)NULL,pjcjfloat(5.2)NULL);说明:课程名(kcm)列实际内容存储长度差别较大,所以选择varchar(10)。创建成绩表(cj)成绩表(cj)结构如表3所示。表3 成绩表(cj)结构项目名列名数据类型不可空说明姓名xmchar(4)主键课程名kcmvarchar(10)主键成绩cjtinyint范围:0~100);#();#(a)#(b)PRIMARYKEY(xm,kcm),CHECK(cj>=0ANDcj<=100)NOTNULL,NOTNULL,NULL,DROPTABLEIFEXISTScj;CREATETABLEcj(xm char(4)kcm varchar(10)cj tinyint(1)说明:(a)因为主键由(xm,kcm)列共同组成,所以只能在所有列定义后单独定义。(b)仅仅涉及成绩列(cj)完整性也可以在所有列后单独定义。记录完整性包括下列三个方面:对应的记录则不能插入。(kcm)对应的记录,则不能插入。USEpxscj;ALTERTABLEcjADDCONSTRAINTwzx_xmFOREIGNKEY(xm)REFERENCESxs(xm)ONUPDATERESTRICT,ADDCONSTRAINTwzx_kcmFOREIGNKEY(kcm)REFERENCESkc(kcm)ONUPDATERESTRICTUSEpxscj;ALTERTABLEcjADDCONSTRAINTwzx_xmFOREIGNKEY(xm)REFERENCESxs(xm)ONUPDATERESTRICT,ADDCONSTRAINTwzx_kcmFOREIGNKEY(kcm)REFERENCESkc(kcm)ONUPDATERESTRICT说明:cj表上述表间记录完整性后,xsxmkckcm列结构不能修改,也不能删除表(DROPALE,否则需要先删除有关完整性约束。②因为学生表(xs)记录与成绩表(cj)记录之间存在关联,虽然可以创建下列完整性:在学生表(xs)中删除指定姓名(xm)记录,同时也会删除成绩表(cj)中对应该姓名(xm)的所(cj)中没有对应的学生记录才能删除。同理,判断成绩表(cj)中没有对应的课程记录时,才能删除课程表(kc)中的记录。创建触发器在成绩表(cj)中创建下列3个触发器:成绩表(cj)插入触发器中对应该学生记录的总学分(zxf)加课程对应的学分数。#(a#(a)#(b)USEpxscj;DELIMITER$$DROPTRIGGERIFEXISTScj_insert_zxf;CREATETRIGGERcj_insert_zxfAFTERINSERTONcjFOREACHROWBEGINDECLAREvxfintDEFAULT0;SELECTxfFROMkcWHERENEW.kcm=kcmINTOvxf;UPDATExsSETzxf=zxf+vxfWHERENEW.xm=xmANDNEW.cj>=60;END$$DELIMITER;说明:(a)查询插入成绩记录课程名(NEW.kcm)在课程表(kc)中对应该课程名(kcm)的学分,保存到vxf变量中。(b)如果成绩大于等于60学分,对应学生总学分(zxf)加课程学分(vxf成绩表(cj)删除触发器中对应该学生记录的总学分(zxf)减课程对应的学分数。USEpxscj;DELIMITER$$DROPTRIGGERIFEXISTScj_delete_zxf;CREATETRIGGERcj_delete_zxfAFTERDELETEONcjFOREACHROWBEGINUSEpxscj;DELIMITER$$DROPTRIGGERIFEXISTScj_delete_zxf;CREATETRIGGERcj_delete_zxfAFTERDELETEONcjFOREACHROWBEGINDECLAREvxfintDEFAULT0;SELECTxfFROMkcWHEREkcm=OLD.kcmINTOvxf;UPDATExsSETzxf=zxf-vxfWHERExm=OLD.xmANDOLD.cj>=60;END$$DELIMITER;成绩表(cj)更新触发器在成绩表(cj)6060,则学生表(xs)中对应该学生记录的总学分(zxf)6060,对应该学生总学分(zxf)加课程对应的学分数。USEpxscj;USEpxscj;DELIMITER$$DROPTRIGGERIFEXISTScj_update_zxf;TRIGGERcj_update_zxfAFTERONcjFOREACHROWBEGINDECLAREvxfintDEFAULT0;SELECTxfFROMkcWHEREkcm=OLD.kcmINTOvxf;IF(OLD.cj>=60ANDNEW.cj<60)THENUPDATExsSETzxf=zxf-vxfWHERExm=OLD.xm;ENDIF;IF(OLD.cj<60ANDNEW.cj>=60)THENUPDATExsSETzxf=zxf+vxfWHERExm=OLD.xm;ENDIF;END$$DELIMITER;#(#(c)#(a)#(b)USEpxscj;INSERTINTOxsVALUES('周何骏',1,'1998-09-25',0,null,null);INSERTINTOxsVALUES('徐鹤',DEFAULT,'1997-11-08',0,null,null);INSERTINTOxsVALUES('林雪',0,'1997-10-19',0,null,null);INSERTINTOxsVALUES('王新平',1,'1998-03-06',0,null,null);UPDATExsSETbz='通信工程转入'WHERExm='周何骏';SELECT*FROMxs;说明:(a)VALUESxs表结构定义的列的前后null填入。注意,nullnull属性列。(b)如果采用默认值,需要填入DEFAULT。(c)因为记录已经存在,所以只能更新记录列值或者改变原来值。如果插入的列数据不符合定义时的完整性要求,就会显示错误,插入记录不会成功。例如:姓名(xm)='周何骏 ',null:字符串长度为5超过最大长度,列不能为空。另外,因为该列为主键,两条记录姓名不能相同。性别(xb)=2:xb01。出生时间(cssj)='1998-09-00':日期数据不正确;学分(xf)=10:超过范围。INSERTINTOkc(kcm,xf)VALUES('计算机导论INSERTINTOkc(kcm,xf)VALUES('计算机导论',2),('计算机网络',4),('Java',5);INSERTINTOkc(kcm,xf)VALUES('C++',4);INSERTINTOkc(kcm,xf)VALUES('大数据',3);INSERT语句可以同时插入多条记录。#(#(b)#(a)林雪',50);INSERTINTOcj(kcm,xm,cjVALUES('计算机导论','周何骏',82);INSERTINTOcj(kcm,xm,cjVALUES('计算机网络','徐鹤',85);INSERTINTOcj(kcm,xm,cjVALUES('C++','周何骏',82);INSERTINTOcj(kcm,xm,cjVALUES('计算机导论','王新平',65);SELECT*FROMcjORDERBYxm;INSERTINTOcj(kcm,xm,cj)VALUES('Java','周何骏',70),('Java','徐鹤',80),('Java','说明:VALUES(b)xm排序,所有学生的记录同一个人的成绩记录排在一起。触发器功能测试(1)插入触发器(cj_insert_zxf) SELECTxm'姓名',zxf'总学分'FROMxs; 2所示。图2插入触发器累加学分 图3新触发器修改学分说明:表插入记录前,zxf(总学分cj表插入记录后,zxf(总学分)就会累加上所有成绩>=60课程对应的学分。INSERTINTOcj(kcm,xm,cj)VALUES('大数据','王新平',50);SELECTxm'姓名INSERTINTOcj(kcm,xm,cj)VALUES('大数据','王新平',50);SELECTxm'姓名',zxf'总学分'FROMxsWHERExm='王新平';UPDATEcjSETcj=60WHERExm='UPDATEcjSETcj=60WHERExm='王新平'ANDkcm='大数据';SELECTxm'姓名',zxf'总学分'FROMxsWHERExm='王新平';50修改为60,在xs表“王新平”的zxf增加了3(大数据课程学分,显示如图3所示。(3)删除触发器(cj_delete_zxf)DELETEFROMcjWHERExm='DELETEFROMcjWHERExm='王新平'ANDkcm='大数据';SELECTxm'姓名',zxf'总学分'FROMxsWHERExm='王新平';说明:王新平的zxf(总学分)减去了3。xskcxskc表记录没有定义任何参考完整性。INSERTINTOcj(kcm,xm,cj)VALUES('Java','郭一方',65);INSERTINTOcj(kcm,xm,cj)VALUES('人工智能','周何骏',82);cjxskc表记录更新(UPDATE)参考完整性(wzx_xmwzx_kcm)约束,INSERTINTOcj(kcm,xm,cj)VALUES('Java','郭一方',65);INSERTINTOcj(kcm,xm,cj)VALUES('人工智能','周何骏',82);cjxskcxskc表中没有“人工智能”记录。实训5 MySQL数据库准备WindowsMySQL5.7mysql>SQL语句。也NavicatSQL语句执SQL语Navicat看看执行结果或者根据需要通过界面修改内容。创建数据库数据库名称:pxscj。字符集和相应的排序规则:utf8SQL语句如下:CREATEDATABASEpxscjCREATEDATABASEpxscjDEFAULTCHARACTERSETutf8DEFAULTCOLLATEutf8_general_ci;Navicatpxscj1所示。创建学生表(xs)
图1“新建数据库”窗口学生表(xs)结构如表1所示。表1 学生表(xs)结构项目名列名数据类型不可空说明姓名xmchar(4)主键性别xbtinyint1男0女出生时间cssjdate总学分zxfint由成绩表(cj)触发器同步更新备注bztext照片zpblob);#();#(b)#(c)NOTNULLPRIMARYKEY,NOTNULLDEFAULT1CHECK(xbIN(1,0)),NOTNULL,NULL,NULL,NULLxm char(4)xb tinyint(1)cssj datezxf int(2)bz textzp blob#(a)USEpxscj;DROPTABLEIFEXISTSxs;CREATETABLExs(说明:(a)为了防止原来xs已经存在,若存在xs表时先删除它,CREATETABLExs才能执行。xmb11或者0值。创建成绩表(cj)成绩表(cj)结构如表2所示。表2 成绩表(cj)结构项目名列名数据类型不可空说明姓名xmchar(4)主键课程名kcmvarchar(10)主键成绩cjtinyint范围:0~100);#();#(a)#(b)PRIMARYKEY(xm,kcm),CHECK(cj>=0ANDcj<=100)NOTNULL,NOTNULL,NULL,DROPTABLEIFEXISTScj;CREATETABLEcj(xm char(4)kcm varchar(10)cj tinyint(1)说明:(a)因为主键由(xm,kcm)列共同组成,所以只能在所有列定义后单独定义。(b)仅仅涉及成绩列(cj)完整性也可以在所有列后单独定义。#(#(c)#(a)#(b)USEpxscj;INSERTINTOxsVALUES('周何骏',1,'1998-09-25',0,null,null);INSERTINTOxsVALUES('徐鹤',DEFAULT,'1997-11-08',0,null,null);INSERTINTOxsVALUES('林雪',0,'1997-10-19',0,null,null);INSERTINTOxsVALUES('王新平',1,'1998-03-06',0,null,null);UPDATExsSETbz='通信工程转入'WHERExm='周何骏';SELECT*FROMxs;说明:(a)VALUESxs表结构定义的列的前后null填入。注意,nullnull属性列。(b)如果采用默认值,需要填入DEFAULT。(c)因为记录已经存在,所以只能更新记录列值或者改变原来值。如果插入的列数据不符合定义时的完整性要求,就会显示错误,插入记录不会成功。例如:姓名(xm)='周何骏 ',null:字符串长度为5超过最大长度,列不能为空。另外,因为该列为主键,两条记录姓名不能相同。性别(xb)=2:xb01。出生时间(cssj)='1998-09-00':日期数据不正确;学分(xf)=10:超过范围。#(#(b)#(a)林雪',50);INSERTINTOcj(kcm,xm,cjVALUES('计算机导论','周何骏',82);INSERTINTOcj(kcm,xm,cjVALUES('计算机网络','徐鹤',85);INSERTINTOcj(kcm,xm,cjVALUES('C++','周何骏',82);INSERTINTOcj(kcm,xm,cjVALUES('计算机导论','王新平',65);SELECT*FROMcjORDERBYxm;INSERTINTOcj(kcm,xm,cj)VALUES('Java','周何骏',70),('Java','徐鹤',80),('Java','说明:VALUES(b)xm排序,所有学生的记录同一个人的成绩记录排在一起。实训5 Qt的安装P5.1.1访问Qt官网https://www.qt.io,点主页右上角按钮进入“GetQt&QA”页,找TryQtFrameworkand1DownloadQt申请2所示。图1“TryQtFrameworkandTools”版块图2申请免费账号6位短信,在随后出现的验证对话框输3所示。图3申请账号成功后的页面该页面包含两个方面信息:(1)提供在线安装器下载。(2)提示用户根据Qt官方发送的邮件链接尽快登录验证,因为该链接有时效,使用后不能再用。进入该链接网页,如图4完成Qt账号登录。(a) (b)图4完成Qt账号登录P5.1.2Qt5.15安装前要确保计算机是处于联网状态。(1)5Qt账号(也就是刚刚申请的免费账号,输入完单击“下一步”按钮。图5输入账号(2)QtQt-Qt安装所需的元信息,进入“ContributetoQtDevelopmentQt官方发送(或不发送)Qt使用的统计信息。单击“下一步”按钮。(4)在“安装文件夹”页显示如图6所示。图6指定安装目录及安装模式默认安装目录为:Qtutomintallation(自定义安装(组件)安装。勾选底部“AsociatecommonfiletypeswithQtreato.Creator关联。单击“下一步”按钮。(5)在“选择组件”页选择要安装的组件,如图7所示。因为要安装的是Qt5.15,我们在界面中央区树状视图的“Qt”节点下找到“Qt5.15.2”项,展开,看到其包含的所有组件,只须选择其中的部分进行安装。图7选择组件页首先要选的是QtMSVC20154-biMSVC20192-biMSVC20194-biMinGW8.1.032-bi”和“MinGW8.1.064-bi”都是Qt的编译器,Qt主流的编译器就是MSVC与MinGW,本实训开发使用的是MinGW编译器,笔者操作系统是64位的indows10专业版,故勾选“MinGW8.1.04-bi其他模块大家可根据实际应用开发需要灵活选择。(6)在“许可协议”页,选中“Ihavereadandagreetothetermscontainedinthelicenseagreements.”接受许可协议,单击“下一步”按钮。(7)在“开始菜单快捷方式”页可命名Qt启动菜单名,这里保持默认名,单击“下一步”按钮。(8)在“准备安装”页显示需要的磁盘空间,点“安装”按钮,开始在线安装Qt5.15。安装的过程通过进程条显示,安装速度取
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 2025年度厂房租赁保证金退还协议4篇
- 2025年度智能设备价格信息保密及市场推广协议4篇
- 2025年度厂房租赁合同附带员工宿舍租赁条款4篇
- 二零二四唐山骨瓷品牌创新设计研发合作协议3篇
- 2025年度企业品牌策划合同范本(十)4篇
- 2024年04月江苏上海浦发银行南京分行在线视频笔试历年参考题库附带答案详解
- 2024美容美发店加盟合同
- 2025年茶叶出口基地承包经营合同范本4篇
- 专项工程承揽协议样本(2024年版)版B版
- 2024年03月浙江中国农业银行浙江省分行春季招考笔试历年参考题库附带答案详解
- 地理2024-2025学年人教版七年级上册地理知识点
- 2024 消化内科专业 药物临床试验GCP管理制度操作规程设计规范应急预案
- 2024-2030年中国电子邮箱行业市场运营模式及投资前景预测报告
- 基础设施零星维修 投标方案(技术方案)
- 人力资源 -人效评估指导手册
- 大疆80分钟在线测评题
- 2024届广东省广州市高三上学期调研测试英语试题及答案
- 中煤平朔集团有限公司招聘笔试题库2024
- 2023年成都市青白江区村(社区)“两委”后备人才考试真题
- 不付租金解除合同通知书
- 区域合作伙伴合作协议书范本
评论
0/150
提交评论