Qomo之快速上手-----
我发现,无论是哪种成功的语言,总是有一个快速入门的读物,而无论它们本身是
如何的复杂、艰涩或难于理解。反过来,不成功的语言,总是带有一堆技术性十足、
充满了想象和预期的文档。后者的这些文档,有些甚至比代码还多,但是这同样未
能挽救它们的失败。
于是,我同样地看到了Qomo。我发现Qomo发布过的文档中,总是有大量无法让人理
解的东西。如果你准备写一门语言,那么可能Qomo的文档和代码会给你许多启发。
而如果你只是打算用它,那么大概会变得很痛苦。然而,如果一个人因为想写一门
语言而去了解Qomo,那么他大概不会再使用Qomo,这是因为各自存有不同的目标。
于是,我想Qomo小组应该为“一个普通的使用者”而写一些东西。例如现在这篇。
一、装载Qomo
-----我们计划在将来为各种JavaScript应用环境加入一个定制的loader,用来装入Qomo
的其它部分。但现在,Qomo还主要是用在浏览器中。所以他的装载代码是这样:
-
-
<scriptsrc="js/Qomo.js"></script>
在这个示例中,我们假设你网站中的文件是按如下方式组织的:
-
<your_site>\test.html
-
<your_site>\js\Qomo.js
你可以将整个Qomo放在js目录下。这样它会是如下的目录结构:
-
<your_site>\js\Build\*.*
-
<your_site>\js\Components\*.*
-
<your_site>\js\Framework\*.*
-
<your_site>\js\Qomo.js
或者你也可以使用一个编码(压缩+混淆)过的版本,这会是一个独立的文件。
二、创建一个类,及其实例
-----Qomo主要扩展了一些面向对象的语法。最简单的用法,总是包括一个类注册的函
数。例如:
-
-
functionMyObject(){
-
- }
-
-
TMyObject=Class(TObject,'MyObject');
-
-
-
obj1=newMyObject();
- obj2=TMyObject.Create();
其中,TObject是Qomo类继承中关系中的基类。如果你构造更深层次的类,那么Class()
的第一个参数也可以TMyObject,或者其它任何的、Qomo识别的类。
三、如果你想为对象添加一些私有的属性(attributes)-----
如果你想这样做,那么你找对了东西,Qomo天生就是这种“私有”和“稳藏”而
设计的。这在上面的代码中,修改一下构造器就可以做到:
-
-
functionMyObject(){
-
Attribute(this,'Name','MyObject','r');
-
Attribute(this,'Size',100);
- }
-
-
TMyObject=Class(TObject,'MyObject');
-
-
-
obj1=newMyObject();
-
obj2=newMyObject();
-
-
-
obj1.set('Size',20);
-
alert(obj1.get('Size'));
-
alert(obj2.get('Size'));
四、让Qomo在网页中变得更有用-----
对于网页制作者来说,他们关心的只是网页中如何方便地使用Qomo,而并不是上面这些类、
子类如何创建。大多数情况下来说,的确如此。
而简单地说来,我们可能在关心在网页中如何存取一个页面上的东西,比如一个用ID标识
的对象。在Qomo中,这比较方便。
-
-
<scriptsrc="js/Qomo.js"></script>
-
-
<body>
-
<inputid="pwd"value="mypasswordinhere">
-
</body>
-
-
<script>
- //(*注)
- //$import('Components/Components.js');
-
-
el=THtmlController.Create('pwd');
- alert(el.get('value'));
-
</script>
(*注)在V2.1以前版本的Qomo缺省核心库中是不包括Components.js的。这种情况下需要使
用$import()来装载Components。但目前你正使用的这个版本,应该已经缺省包含了。在任
何情况下,你可以自行发布一个Qomo的集成(build)版本。这需要你用Qomo包中的:
Build\TestCase\T_CustomBuilder.html
来产生一个自己需要的Qomo代码包。记得选中“载入扩展界面控件”就好了。
上面这个例子说明,你可以为任意界面上的HTML元素添加一个THtmlController控制。它封
装了界面上的HTML元素的一些细节,如果你需要访问原始的HTML属性,那么使用el.get()
就可以了。
五、让Qomo做一个Html的控件-----
更进一步的说,你可以将任何界面上的一组Elements封装成为一个Qomo的类。这个类可以认
识界面上的这些组合在一起的东西是一个控件,或者其它。一个较为浅显的例子是:我们可
以将一个div与一个edit放在一起,使它变成一个TLabledEdit。这是个不错的主意:
-
<scriptsrc="js/Qomo.js"></script>
-
-
<body>
-
<divid="edLabled"><span>hello,TLabledEdit.</span><br>
-
<inputname="edit"value="...">
-
</div>
-
</body>
-
-
<script>
- //后续将说明的代码
- //……
-
</script>
那么我们到底如何将它实现为一个Html控件呢?首先,我们要在准确地找到所有要控制的
元素。下面是这样的一个基本框架:
- functionLabledEdit(){
-
Attribute(this,'_label',null,'r');
-
Attribute(this,'_edit',null,'r');
-
-
this.get_label=function(){
-
returnthis.assignedElement.children(0);
- }
-
this.get_edit=function(){
-
returnthis.assignedElement.children('edit');
- }
-
-
- }
接下来,我们可以尝试为这个控件添加几个特性,以直接控制界面上的东西:
-
functionLabledEdit(){
-
-
-
this.getLableText=function(){
-
returnthis.get('_label').innerText;
- }
-
this.setLableText=function(v){
-
this.get('_label').innerText=v;
- }
-
-
this.getvalue=
-
this.getValue=function(){
-
returnthis.get('_edit').value;
- }
-
-
this.setvalue=
-
this.setValue=function(v){
-
this.get('_edit').value=v;
- }
- }
然后注册它:
-
TLabledEdit=Class(THtmlController,'LabledEdit');
然后我们来看看效果:
-
vared=TLabledEdit.Create('edLabled');
-
alert(ed.get('LableText'));
-
ed.set('LableText','mylable:');
-
ed.set('Value','hello,world.');
六、如此麻烦地做一个组件有什么价值?-----
有什么价值呢?如果我们的确需要控制这么一个“看起来象组件的HTML代码块”,那么
我们直接用几行脚本就可以办到。例如:
-
document.getElementById('edLabled').children(2).value='hello,world.';
-
然而,组件系统的真正价值在于复用,类继承的价值亦复如此。如果偏离了复用来讨论
上述的一切,那无异于隔靴搔痒。我们来想象一下,如果我们需要一个使用FieldSet来
做标签的edit,那么又该如何做呢?更多的Editor?
好,我们在Qomo中基于上面的TLabledEdit代码来做一个。
- <body>
-
<fieldsetid="edLabled2">
- <legend>请输入:</legend>
-
<inputname="edit"value="...">
- </fieldset>
- </body>
-
- <script>
-
functionFieldSetEdit(){
- }
-
TFieldSetEdit=Class(TLabledEdit,'FieldSetEdit');
-
-
-
vared=TFieldSetEdit.Create('edLabled2');
-
ed.set('Value','hello,world.');
- </script>
真的吗?!FieldSetEdit实现时不需要任何的代码?!
是的。尽管两个组件的表达形式完全不一样,但是由于我们分离了逻辑实现与界面表
面,所以我们只需要调整少数(甚至于象这样无需修改)就可以适应变化了。
Oh。有高手看出来了,我实际上偷了个懒:这里的edLabled2的“HTML结构”与前一
种没有本质的不同。是的,好吧,为了让你相信Qomo具有“节省代码”的能力,那么
我们就弄复杂一点。
七、将一个控制层的组件,复用在其它框架库中
-----
我们找一个相对复杂的Edit,例如我们拿一个YahooUI中的、能自动完成的Edit。大概,
我们要装入一个YahooUI,然后初始化它。最后,再装入我们的代码。OK,就象这样:
- <!--loadyui-->
-
<linkrel="stylesheet"type="text/css"href="yui/build/fonts/fonts-min.css"/>
-
<linkrel="stylesheet"type="text/css"href="yui/build/autocomplete/assets/skins/sam/autocomplete.css"/>
-
<scripttype="text/javascript"src="yui/build/yahoo-dom-event/yahoo-dom-event.js"></script>
-
<scripttype="text/javascript"src="yui/build/animation/animation-min.js"></script>
-
<scripttype="text/javascript"src="yui/build/datasource/datasource-min.js"></script>
-
<scripttype="text/javascript"src="yui/build/autocomplete/autocomplete-min.js"></script>
-
- <!--yuicomponent,codecopyfromyuiexamples-->
-
<bodyclass="yui-skin-sam">
- <h3>Enterastate:</h3>
-
<divid="myAutoComplete">
-
<inputid="myInput"type="text">
-
<divid="myContainer"></div>
- </div>
-
-
<scripttype="text/javascript">
- YAHOO.example.Data={
- arrayStates:[
-
"Alabama",
-
"Alaska",
-
"Arizona",
-
"Arkansas",
-
"California",
-
"Colorado",
-
"Connecticut"]
- };
-
-
YAHOO.example.BasicLocal=function(){
-
-
varoDS=newYAHOO.util.LocalDataSource(YAHOO.example.Data.arrayStates);
-
-
oDS.responseSchema={fields:["state"]};
-
-
-
varoAC=newYAHOO.widget.AutoComplete("myInput","myContainer",oDS);
-
oAC.prehighlightClassName="yui-ac-prehighlight";
-
oAC.useShadow=true;
-
return{
- oDS:oDS,
- oAC:oAC
- };
- }();
- </script>
- </body>
- <!--endofyuiload-->
OH! 这么多代码~~ 不过都是Yahoo UI的。Qomo要做的事则很简单:
- <!--续上例-->
-
- <!--loadqomo-->
-
<scriptsrc="js/Qomo.js"></script>
-
- <!--ourscomponentanddemo-->
- <script>
-
functionLabledEdit(){
-
- }
-
TLabledEdit=Class(THtmlController,'LabledEdit');
-
-
-
YuiEdit=function(){
-
this.get_label=function(){
-
returnthis.assignedElement.previousSibling;
- }
-
this.get_edit=function(){
-
returnthis.assignedElement.children.tags('input')(0);
- }
- }
-
TYuiEdit=Class(TLabledEdit,'YuiEdit');
-
-
-
vared=TYuiEdit.Create('myAutoComplete');
-
alert(ed.get('LableText'));
-
ed.set('Value','hello,world.');
我们的示例代码,也就是应用程序的逻辑部分,相对于我们前面使用TLabledEdit的例子来说,并
未发生改变。而我们使用了非常复杂的——当然我也认为是非常不错的——Yahoo UI组件。
六、构造更深层次的类-----
如同上面的示例一样,我们总有可能在JavaScript中使用继承层次很深的类。如果并且JavaScript自
身的(原型继承的)方法来实现,那么我们需要调用父类的方法时就会比较麻烦。而在Qomo中,扩展
了调用父类方法的inherited(),使得这个过程变得很简单。
-
-
functionMyObject(){
-
Attribute(this,'Size',100);
- }
-
-
functionMyObjectEx(){
-
this.getSize=function(){
-
return2*this.get();
- }
-
-
this.aMethod=function(){
-
alert('hi,inMyObjectEx');
- }
- }
-
-
functionPowerObject(){
-
this.aMethod=function(){
-
this.inherited();
-
alert('hi,inPowerObject');
- }
- }
-
-
-
TMyObject=Class(TObject,'MyObject');
-
TMyObjectEx=Class(TMyObject,'MyObjectEx');
-
TPowerObject=Class(TMyObjectEx,'PowerObject');
-
-
-
obj=newMyObjectEx();
-
pw=newPowerObject();
-
alert(obj.get('Size'));
- pw.aMethod();
七、我需要Ajax!
-----
当然,我知道很多人需要Ajax,尽管也有相当一部分人不知道为什么他们需要。事实上,在
Qomo中的Ajax用起来很简单。
-
ajx=newAjax();
-
-
ajx.open("GET",'http://www.sina.com.cn/',false);
-
ajx.send(null);
-
- text=ajx.responseText;
-
alert('thepagesizeis:'+text.length);
不错,很多人能看出来这只是对XMLHttpRequest的一个简单封装。所以知道这一点的人也明
白如何用一个函数来响应ajx.onreadystatechange,以及使用ajx中的'POST'方法来获取一
个远程数据。因此我就不细讲这些内容了,下面讨论Qomo中一个更有用的封装:Ajax池。
其实它真实的名字,是叫HttpGetMachine。我们先看一下不使用Ajax池的情况:
-
functiondoAction(url,ctx){
-
alert('Url:%s\nLength:%s'.format(url,ctx.length));
- }
-
-
functiondoStateChange(state){
-
if(state!=4)return;
-
-
varajx=this.get('XMLHTTP');
-
if(ajx.status!=200&&ajx.status!=304&&ajx.status!=0)return;
-
-
doAction(this.data.src,ajx.responseText);
- }
-
-
-
varajx=newHttpGetMachine();
- ajx.OnStateChange.add(doStateChange);
-
ajx.data={src:'http://www.sina.com.cn/'};
-
ajx.OnStateChange('resume');
使用Ajax池也没什么复杂的:
- <!--在网页中,用于显示输出-->
- <body>
-
<textareaid="txt"style="width:800px;height:600px"></textarea>
- </body>
-
- <script>
-
functiondoAction(ord,url,ctx){
-
vartxt=document.getElementById('txt');
-
varstr='machie(%s)toprocessaurl\n\
- -Url:%s\n\
- -Length:%s\n\n';
-
- txt.value+=str.format(ord,url,ctx.length);
- }
-
-
functiondoStateChange(state){
-
if(state!=4)return;
-
-
with(this.get('XMLHTTP')){
-
switch(status){
-
case200:
-
case304:
-
case0:
-
doAction(this.id,this.data.src,responseText);break;
-
default:
-
-
alert('failed:'+status)
- }
- }
- }
-
-
-
varid=1;
-
functiondoOnStateChange_pool(mac,state){
-
if(!mac.id)mac.id=id++;
- doStateChange.call(mac,state);
- }
-
-
-
varpool=newPool(THttpGetMachine,3);
- pool.OnStateChange.add(doOnStateChange_pool);
-
pool.push({src:'http://www.sina.com.cn/'});
-
pool.push({src:'http://www.snda.com.cn/'});
-
pool.push({src:'http://www.tom.com/'});
-
pool.push({src:'http://www.google.com/'});
-
- </script>
Ajax池实质上是帮助用户管理THttpGetMachine的创建与调度,由pool来决定什么时候传给
哪个具体的Machine以数据,并如何响应这个数据的处理状态。
九、其它的东西
-----
Qomo V2.1将原来的LocalDB、Graphi等全部从代码包中移除了,我们将重写它。这个工作很快
就会开始。仅从复杂性上讲,V2.1有一个不错的开端,为此我们还移除了现有的大多数Controls。
Qomo V2.x有一个并行的项目,叫QoBean。QoBean目前还没有发布一个正式版本,但它已经有非
常好的表现:它比Qomo少%30多的代码,但性能却提供了30~40%。这个版本将会合并到Qomo V3中
去,以替代现有的Qomo内核。
Qomo中有一些小工具,例如Common\ParserLite.js,以及TimeMachine.js(不是时光穿梭机啊)。
还有一些用于检测效率,例如Debug\TestCase\RegExpPerformanceTool.html。当然,最重要的,
还是位于根目录下的Build工具,和一个相对无素的示例:Samples.html。
在FF3里,你必须使用根目录下的Samples.html来launch其它的演示,而不能从硬盘上直接打开
它们。这是因为FF3调整了本地文件的Ajax存取安全性设定。
在Qomo里,对象还有一些更为复杂的用法。例如注册接口,以及切面系统等。这些比较高级的用法,
你可以在Qomo的代码包中去查找示例,或者在Blog中找到有关机制的说明文档。
直接下载发布包:
http://download.csdn.net/source/689574
http://download.csdn.net/source/689579
Qomo最新的代码:
https://qomo.svn.sourceforge.net/svnroot/qomo/trunkQoBean最新的代码:
https://qomo.svn.sourceforge.net/svnroot/qomo/qobean
分享到:
相关推荐
基于java的校园美食交流系统设计与实现.docx
均包含代码,文章,部分项目包含ppt
基于python的酒店评论中文情感分析系统源码+设计文档+数据集.zip基于python的酒店评论中文情感分析系统源码+设计文档+数据集.zip基于python的酒店评论中文情感分析系统源码+设计文档+数据集.zip 个人大四的毕业设计、课程设计、作业、经导师指导并认可通过的高分设计项目,评审平均分达96.5分。主要针对计算机相关专业的正在做毕设的学生和需要项目实战练习的学习者,也可作为课程设计、期末大作业。 [资源说明] 不懂运行,下载完可以私聊问,可远程教学 该资源内项目源码是个人的毕设或者课设、作业,代码都测试ok,都是运行成功后才上传资源,答辩评审平均分达到96.5分,放心下载使用! 1、该资源内项目代码都经过测试运行成功,功能ok的情况下才上传的,请放心下载使用! 2、本项目适合计算机相关专业(如计科、人工智能、通信工程、自动化、电子信息等)的在校学生、老师或者企业员工下载学习,也适合小白学习进阶,当然也可作为毕设项目、课程设计、作业、项目初期立项演示等。 3、如果基础还行,也可在此代码基础上进行修改,以实现其他功能,也可用于毕设、课设、作业等。 下载后请首先打开README.md文件(如有),供学习参考。
1、资源项目源码均已通过严格测试验证,保证能够正常运行; 2、项目问题、技术讨论,可以给博主私信或留言,博主看到后会第一时间与您进行沟通; 3、本项目比较适合计算机领域相关的毕业设计课题、课程作业等使用,尤其对于人工智能、计算机科学与技术等相关专业,更为适合; 、4下载使用后,可先查看README.md或论文文件(如有),本项目仅用作交流学习参考,请切勿用于商业用途。 5、资源来自互联网采集,如有侵权,私聊博主删除。 6、可私信博主看论文后选择购买源代码。 1、资源项目源码均已通过严格测试验证,保证能够正常运行; 2、项目问题、技术讨论,可以给博主私信或留言,博主看到后会第一时间与您进行沟通; 3、本项目比较适合计算机领域相关的毕业设计课题、课程作业等使用,尤其对于人工智能、计算机科学与技术等相关专业,更为适合;、下载 4使用后,可先查看README.md或论文文件(如有),本项目仅用作交流学习参考,请切勿用于商业用途。 5、资源来自互联网采集,如有侵权,私聊博主删除。 6、可私信博主看论文后选择购买源代码。 1、资源项目源码均已通过严格测试验证,保证能够正常运行; 2、项目问题、技术讨论,可以给博主私信或留言,博主看到后会第一时间与您进行沟通; 3、本项目比较适合计算机领域相关的毕业设计课题、课程作业等使用,尤其对于人工智能、计算机科学与技术等相关专业,更为适合;、 4下载使用后,可先查看README.md或论文文件(如有),本项目仅用作交流学习参考,请切勿用于商业用途。 5、资源来自互联网采集,如有侵权,私聊博主删除。 6、可私信博主看论文后选择购买源代码。
1、资源项目源码均已通过严格测试验证,保证能够正常运行; 2、项目问题、技术讨论,可以给博主私信或留言,博主看到后会第一时间与您进行沟通; 3、本项目比较适合计算机领域相关的毕业设计课题、课程作业等使用,尤其对于人工智能、计算机科学与技术等相关专业,更为适合; 4、下载使用后,可先查看README.md或论文文件(如有),本项目仅用作交流学习参考,请切勿用于商业用途。 5、资源来自互联网采集,如有侵权,私聊博主删除。 6、可私信博主看论文后选择购买源代码。 1、资源项目源码均已通过严格测试验证,保证能够正常运行; 2、项目问题、技术讨论,可以给博主私信或留言,博主看到后会第一时间与您进行沟通; 3、本项目比较适合计算机领域相关的毕业设计课题、课程作业等使用,尤其对于人工智能、计算机科学与技术等相关专业,更为适合; 4、下载使用后,可先查看README.m或d论文文件(如有),本项目仅用作交流学习参考,请切勿用于商业用途。 5、资源来自互联网采集,如有侵权,私聊博主删除。 6、可私信博主看论文后选择购买源代码。 、1资源项目源码均已通过严格测试验证,保证能够正常运行; 2、项目问题、技术讨论,可以给博主私信或留言,博主看到后会第一时间与您进行沟通; 3、本项目比较适合计算机领域相关的毕业设计课题、课程作业等使用,尤其对于人工智能、计算机科学与技术等相关专业,更为适合; 4、下载使用后,可先查看README.md或论文文件(如有),本项目仅用作交流学习参考,请切勿用于商业用途。 5、资源来自互联网采集,如有侵权,私聊博主删除。 6、可私信博主看论文后选择购买源代码。
基于Django框架开发的协同过滤算法小说推荐系统是一种利用用户行为数据来提供个性化小说推荐的应用。该系统通过分析用户的历史阅读记录、评分和反馈,发现用户之间的相似性或小说之间的相似性,进而为用户推荐可能感兴趣的小说。以下是该系统可能包含的关键特性: 1. **用户账户管理**:允许用户创建账户、登录和编辑个人信息,同时跟踪用户的阅读历史和评分。 2. **小说数据库**:构建一个包含大量小说信息的数据库,每本小说都有详细的元数据,如作者、出版年份、流派、标签等。 3. **协同过滤引擎**:实现协同过滤算法,包括用户-用户协同过滤和项目-项目协同过滤,以发现相似用户或相似小说。 4. **推荐生成**:根据协同过滤引擎的结果,生成个性化的小说推荐列表,并提供给用户。 5. **评分系统**:允许用户对小说进行评分,这些评分数据将用于训练推荐算法,提高推荐的准确性。 6. **用户界面**:设计直观、易用的用户界面,使用户能够轻松浏览推荐的小说、查看详情和进行评分。 7. **搜索和筛选功能**:提供强大的搜索功能,允许用户根据标题、作者或流派等关键词搜索小说,并提供筛选
1、资源项目源码均已通过严格测试验证,保证能够正常运行; 2、项目问题、技术讨论,可以给博主私信或留言,博主看到后会第一时间与您进行沟通; 3、本项目比较适合计算机领域相关的毕业设计课题、课程作业等使用,尤其对于人工智能、计算机科学与技术等相关专业,更为适合; 4、下载使用后,可先查看README.md或论文文件(如有),本项目仅用作交流学习参考,请切勿用于商业用途。、资源 5来自互联网采集,如有侵权,私聊博主删除。 6、可私信博主看论文后选择购买源代码。 1、资源项目源码均已通过严格测试验证,保证能够正常运行; 2、项目问题、技术讨论,可以给博主私信或留言,博主看到后会第一时间与您进行沟通; 3、本项目比较适合计算机领域相关的毕业设计课题、课程作业等使用,尤其对于人工智能、计算机科学与技术等相关专业,更为适合; 4、下载使用后,可先查看README.md或论文文件(如有),本项目仅用作交流学习参考,请切勿用于商业用途。、资 5源来自互联网采集,如有侵权,私聊博主删除。 6、可私信博主看论文后选择购买源代码。 1、资源项目源码均已通过严格测试验证,保证能够正常运行; 2、项目问题、技术讨论,可以给博主私信或留言,博主看到后会第一时间与您进行沟通; 3、本项目比较适合计算机领域相关的毕业设计课题、课程作业等使用,尤其对于人工智能、计算机科学与技术等相关专业,更为适合; 4、下载使用后,可先查看README.md或论文文件(如有),本项目仅用作交流学习参考,请切勿用于商业用途。 5、资源来自互联网采集,如有侵权,私聊博主删除。 6、可私信博主看论文后选择购买源代码。
内容概要:本文是关于2020年度数字孪生技术的最新进展和发展趋势的研究报告。文中对数字孪生技术及其应用场景作出了详细的阐述,特别强调了数字孪生在智能制造、智慧城市、产品开发等多个领域内的实际应用成果,并讨论了数字孪生带来的信息安全方面的挑战和解决方案。 适用人群:面向希望深入了解和应用数字孪生技术的企业管理人员、研发工程师和学者。 使用场景及目标:适用于企业或机构寻求改进产品设计、生产制造、城市管理等领域效能的情况,助力相关人员理解和实现更加精细的管理决策和模拟预测,进而优化资源配置与提升工作效率。 其它说明:介绍了多项核心技术,包括但不限于数据收集、建模仿真、模型管理系统等,并分享了多个数字孪生的真实应用案例以展示其实效。
基于java的的德云社票务系统的设计与实现.docx
基于java的宜佰丰超市进销存管理系统设计与实现.docx
基于java的削面快餐店点餐服务系统的设计与实现.docx
用户体验分享和讨论.ppt
均包含代码,文章,部分项目包含ppt
1、资源项目源码均已通过严格测试验证,保证能够正常运行; 2、项目问题、技术讨论,可以给博主私信或留言,博主看到后会第一时间与您进行沟通; 3、本项目比较适合计算机领域相关的毕业设计课题、课程作业等使用,尤其对于人工智能、计算机科学与技术等相关专业,更为适合; 4、下载使用后,可先查看REaDme.md或论文文件(如有),本项目仅用作交流学习参考,请切勿用于商业用途。 5、资源来自互联网采集,如有侵权,私聊博主删除。 6、可私信博主看论文后选择购买源代码。 1、资源项目源码均已通过严格测试验证,保证能够正常运行; 2、项目问题、技术讨论,可以给博主私信或留言,博主看到后会第一时间与您进行沟通; 、3本项目比较适合计算机领域相关的毕业设计课题、课程作业等使用,尤其对于人工智能、计算机科学与技术等相关专业,更为适合; 4、下载使用后,可先查看REAdme.md或论文文件(如有),本项目仅用作交流学习参考,请切勿用于商业用途。 5、资源来自互联网采集,如有侵权,私聊博主删除。 6、可私信博主看论文后选择购买源代码。 1、资源项目源码均已通过严格测试验证,保证能够正常运行; 2、项目问题、技术讨论,可以给博主私信或留言,博主看到后会第一时间与您进行沟通; 、本项3目比较适合计算机领域相关的毕业设计课题、课程作业等使用,尤其对于人工智能、计算机科学与技术等相关专业,更为适合; 4、下载使用后,可先查看ReAdmE.md或论文文件(如有),本项目仅用作交流学习参考,请切勿用于商业用途。 5、资源来自互联网采集,如有侵权,私聊博主删除。 6、可私信博主看论文后选择购买源代码。
均包含代码,文章,部分项目包含ppt
项目工程资源经过严格测试可直接运行成功且功能正常的情况才上传,可轻松复刻,拿到资料包后可轻松复现出一样的项目,本人系统开发经验充足(全领域),有任何使用问题欢迎随时与我联系,我会及时为您解惑,提供帮助。 【资源内容】:包含完整源码+工程文件+说明(如有)等。答辩评审平均分达到96分,放心下载使用!可轻松复现,设计报告也可借鉴此项目,该资源内项目代码都经过测试运行成功,功能ok的情况下才上传的。 【提供帮助】:有任何使用问题欢迎随时与我联系,我会及时解答解惑,提供帮助 【附带帮助】:若还需要相关开发工具、学习资料等,我会提供帮助,提供资料,鼓励学习进步 【项目价值】:可用在相关项目设计中,皆可应用在项目、毕业设计、课程设计、期末/期中/大作业、工程实训、大创等学科竞赛比赛、初期项目立项、学习/练手等方面,可借鉴此优质项目实现复刻,设计报告也可借鉴此项目,也可基于此项目来扩展开发出更多功能 下载后请首先打开README文件(如有),项目工程可直接复现复刻,如果基础还行,也可在此程序基础上进行修改,以实现其它功能。供开源学习/技术交流/学习参考,勿用于商业用途。质量优质,放心下载使用。
志愿者招募网站,在网站首页可以查看首页,组织信息,志愿活动,新闻资讯,个人中心,后台管理等内容,并进行详细操作 用户注册,在用户注册页面通过填写账号,密码,确认密码,姓名,手机,所在学校,邮箱,验证码等信息进行注册操作 组织信息,在组织信息页面可以查看组织名称,组织编号,组织宣言,负责人,联系电话等内容,并进行评论和收藏操作 项目关键技术 开发工具:IDEA 、Eclipse 编程语言: Java 数据库: MySQL5.7+ 后端技术:ssm 前端技术:Vue 关键技术:springboot、SSM、vue、MYSQL、MAVEN 数据库工具:Navicat、SQLyog
全代码在里面,学完Java实训写出来的Java图书馆代码
项目工程资源经过严格测试可直接运行成功且功能正常的情况才上传,可轻松复刻,拿到资料包后可轻松复现出一样的项目,本人系统开发经验充足(全领域),有任何使用问题欢迎随时与我联系,我会及时为您解惑,提供帮助。 【资源内容】:包含完整源码+工程文件+说明(如有)等。答辩评审平均分达到96分,放心下载使用!可轻松复现,设计报告也可借鉴此项目,该资源内项目代码都经过测试运行成功,功能ok的情况下才上传的。 【提供帮助】:有任何使用问题欢迎随时与我联系,我会及时解答解惑,提供帮助 【附带帮助】:若还需要相关开发工具、学习资料等,我会提供帮助,提供资料,鼓励学习进步 【项目价值】:可用在相关项目设计中,皆可应用在项目、毕业设计、课程设计、期末/期中/大作业、工程实训、大创等学科竞赛比赛、初期项目立项、学习/练手等方面,可借鉴此优质项目实现复刻,设计报告也可借鉴此项目,也可基于此项目来扩展开发出更多功能 下载后请首先打开README文件(如有),项目工程可直接复现复刻,如果基础还行,也可在此程序基础上进行修改,以实现其它功能。供开源学习/技术交流/学习参考,勿用于商业用途。质量优质,放心下载使用。
项目工程资源经过严格测试可直接运行成功且功能正常的情况才上传,可轻松复刻,拿到资料包后可轻松复现出一样的项目,本人系统开发经验充足(全领域),有任何使用问题欢迎随时与我联系,我会及时为您解惑,提供帮助。 【资源内容】:包含完整源码+工程文件+说明(如有)等。答辩评审平均分达到96分,放心下载使用!可轻松复现,设计报告也可借鉴此项目,该资源内项目代码都经过测试运行成功,功能ok的情况下才上传的。 【提供帮助】:有任何使用问题欢迎随时与我联系,我会及时解答解惑,提供帮助 【附带帮助】:若还需要相关开发工具、学习资料等,我会提供帮助,提供资料,鼓励学习进步 【项目价值】:可用在相关项目设计中,皆可应用在项目、毕业设计、课程设计、期末/期中/大作业、工程实训、大创等学科竞赛比赛、初期项目立项、学习/练手等方面,可借鉴此优质项目实现复刻,设计报告也可借鉴此项目,也可基于此项目来扩展开发出更多功能 下载后请首先打开README文件(如有),项目工程可直接复现复刻,如果基础还行,也可在此程序基础上进行修改,以实现其它功能。供开源学习/技术交流/学习参考,勿用于商业用途。质量优质,放心下载使用。