- 浏览: 13782398 次
- 性别:
- 来自: 洛杉矶
-
文章分类
- 全部博客 (1994)
- Php / Pear / Mysql / Node.js (378)
- Javascript /Jquery / Bootstrap / Web (435)
- Phone / IOS / Objective-C / Swift (137)
- Ubuntu / Mac / Github / Aptana / Nginx / Shell / Linux (335)
- Perl / Koha / Ruby / Markdown (8)
- Java / Jsp (12)
- Python 2 / Wxpython (25)
- Codeigniter / CakePHP (32)
- Div / Css / XML / HTML5 (179)
- WP / Joomla! / Magento / Shopify / Drupal / Moodle / Zimbra (275)
- Apache / VPN / Software (31)
- AS3.0/2.0 / Flex / Flash (45)
- Smarty (6)
- SEO (24)
- Google / Facebook / Pinterest / SNS (80)
- Tools (22)
最新评论
-
1455975567:
xuezhongyu01 写道wocan23 写道我想问下那个 ...
Mysql: LBS实现查找附近的人 (两经纬度之间的距离) -
xuezhongyu01:
wocan23 写道我想问下那个111.1是怎么得来的我也看不 ...
Mysql: LBS实现查找附近的人 (两经纬度之间的距离) -
18335864773:
试试 pageoffice 在线打开 PDF 文件吧. pag ...
jquery在线预览PDF文件,打开PDF文件 -
青春依旧:
opacity: 0.5; 个人喜欢这种方式!关于其他css特 ...
css透明度的设置 (兼容所有浏览器) -
July01:
推荐用StratoIO打印控件,浏览器和系统的兼容性都很好,而 ...
搞定网页打印自动分页问题
(E文,没时间翻译)
首先做一个Ajax的helper,下面是说明,很简单,粘贴复制就可以了。。。
<?php if (!defined('BASEPATH')) exit('No direct script access allowed'); function is_ajax() { return isset($_SERVER['HTTP_X_REQUESTED_WITH']) && $_SERVER['HTTP_X_REQUESTED_WITH'] == 'XMLHttpRequest'; } ?>
Copy the following code into a file. Save the file as ajax_helper.php and save in your application/helpers/ folder.
Load it if you need if by:
Normal loading
This is pretty much how we normally include helpers. This is the best approach unless you would use the ajax helper most of the time.
$this->load->helper('ajax');
Autoloading
Open your config.php file located at application/config/ . Look for this line.
$autoload['helper'] = array();
Add yours to the list
$autoload['helper'] = array('ajax');
You should not add _helper when adding it to the autoload['helper'] array.
下面是详细说明: 初中英语够你看懂以下内容了 (最后一行还有测试页面呢~~)
AJAX can be seen almost everywhere on the web. Yahoo uses it. Google uses it. My boss uses it. My grandmother uses it — well maybe not but that shouldn't stop you from using it.
Here's an awesome tutorial to use AJAX with CodeIgniter.
This tutorial assumes that you have a form set-up like so:
<?php echo form_open(current_url(), array('id' => 'registration_form'));?> <label for="username">Username: </label> <input type="text" class="span-2" value="" name="username" id="username" /><br /> <label for="first_name">First Name: </label> <input type="text" value="" name="first_name" id="first_name" /><br /> <label for="last_name">Last Name: </label> <input type="text" value="" name="last_name" id="last_name" /><br /> <label for="desc">Password: </label> <input type="password" value="" name="password" id="password" /><br /> <label for="desc">Repeat Password: </label> <input type="password" value="" name="passconf" id="passconf" /><br /> <label for="desc">Email: </label> <input type="text" value="" name="email" id="email" /><br /> <label for="register"> </label> <input type="submit" value="Register" name="register" id="register" class="update" /> </form>
The form starts with the usual form helper , form_open(). The rest is pretty much normal.
Now with the Javascript. In this tutorial, we will use jQuery
<script type="text/javascript" src="http://ajax.googleapis.com/ajax/libs/jquery/1.3.2/jquery.min.js"></script>
Now we do AJAX
Javascript
<script type="text/javascript"> $(document).ready(function() { $('#registration_form').submit(function(){ $.post("<?php echo site_url(current_url());?>", { username: $('#username').val(), first_name: $('#first_name').val(), last_name: $('#last_name').val(), password: $('#password').val(), passconf: $('#passconf').val(), email: $('#email').val(), }, function(data){ alert(data); } ); return false; }); }); </script>
Explanation
$.post("<?php echo site_url(current_url());?>", {
The fourth line of the previous code will request to the current url. This means that if you are on '/this/page/', it will request to '/this/page/'.
username: $('#username').val(), first_name: $('#first_name').val(), last_name: $('#last_name').val(), password: $('#password').val(), passconf: $('#passconf').val(), email: $('#email').val()
The above will be the information we will post. For example, username: $('#username').val()
will pass the value
of the element with the id, username. In our case, that would be one of the inputs.
function(data){ alert(data); }
The above is the callback. From here we accept the response from our request. In our case, we alert the response.
CodeIgniter
function ajax_with_codeigniter() { $this->load->library('form_validation'); $this->load->helper(array('ajax', 'form')); $this->form_validation->set_rules('username', 'Username', 'callback_username_check'); $this->form_validation->set_rules('first_name', 'First Name', 'required'); $this->form_validation->set_rules('last_name', 'Last Name', 'required'); $this->form_validation->set_rules('password', 'Password', 'required|matches[passconf]'); $this->form_validation->set_rules('passconf', 'Password Confirmation', 'required'); $this->form_validation->set_rules('email', 'Email', 'required|valid_email'); if ($_POST) { if (is_ajax() AND $this->form_validation->run() === TRUE) { echo "Registration Successful"; } else { echo validation_errors(' ',' '); } } else { $this->load->view('code/ajax_with_codeigniter/ajax_with_codeigniter'); } }
Explanation
$this->load->library('form_validation'); $this->load->helper(array('ajax','form'));
The above code will load the library ajax helper, the form helper and the form validation library.
$this->form_validation->set_rules('username', 'Username', 'callback_username_check'); $this->form_validation->set_rules('first_name', 'First Name', 'required'); $this->form_validation->set_rules('last_name', 'Last Name', 'required'); $this->form_validation->set_rules('password', 'Password', 'required|matches[passconf]'); $this->form_validation->set_rules('passconf', 'Password Confirmation', 'required'); $this->form_validation->set_rules('email', 'Email', 'required|valid_email');
The above code is how we set rules. Pretty normal if you have used CodeIgniter in the past.
if ($_POST) { if (is_ajax() AND $this->form_validation->run() === TRUE) { echo "Registration Successful"; } else { echo validation_errors(' ', ' '); } } else { $this->load->view('code/ajax_with_codeigniter/ajax_with_codeigniter'); }
The last piece of code checks for anything POST ed. Remember that we are requesting to the same method so we should check for anything POST ed before we output anything. This conditional statement is only used because of the situation. You normally won't have this checkpoint.
There's something POST ed
When we know that there was something POST ed, we check if the request was done via the ajax_helper. This is just some check if we only want AJAX requests. The second part of the condition is if the data passed passes the validation rules we set up. If it checks out fine, we send our message, "Registration successful". If not, we send the errors.
Nothing was POST ed
When we know that nothing was POST ed, we load the view. This pretty much activates when we just loaded the page.
Demo
You can visit our AJAX with CodeIgniter demo .
发表评论
-
CakePHP你必须知道的21条技巧
2012-10-19 06:25 1897原文链接:http://www.avatarfinancial ... -
cakephp 1.3 Views
2012-10-09 06:12 1455Section 1 Views 视图 一个vie ... -
cakephp 1.3 Models
2012-10-09 06:07 2511Section 1 What is a model? ... -
cakephp 1.3 Controller
2012-10-09 05:49 3344Controller 一个controller用于管理 ... -
cakephp 1.3 配置CakePHP
2012-10-09 05:31 4660Section 1 数据库配置 app/config/ ... -
CakePHP 2.x十分钟博客教程
2012-10-07 01:27 244401. CakePHP2十分钟博客教 ... -
Create an Admin panel with CodeIgniter
2010-05-23 02:15 4188Create an Admin panel with Code ... -
Codeigniter Grid 使用方法 (flexigrid)
2010-05-23 02:05 2831来源:http://codeigniter.com/forum ... -
CI集成 ckeditor 配置
2010-05-23 01:34 3764配置 ckeditor 1.上传 下载 ckedito ... -
codeigniter 辅助函数 - 敏感词过滤
2010-05-05 06:18 4592我们都知道有些敏感的词汇是不适合出现在互联网上的,特别是在有用 ... -
实现简单 codeigniter 缓存 (cache)
2010-04-30 23:47 5300代码 class Test extends Contr ... -
CKEditor Helper for CodeIgniter
2010-04-19 00:37 4000Using CKEditor as a plugin in y ... -
codeigniter 生成 excel
2010-04-19 00:33 3344Excel Plugin Th ... -
CakePHP 中文手册
2010-04-14 21:04 2358基本概念 Section1 简介 ... -
利用 Cache_Lite代替codeigniter中的cache功能
2010-01-29 06:15 5576codeigniter的功能纵然强大,也有不足之处。其cach ... -
CodeIgniter 操作PDF ( Generating PDF files using CodeIgniter )
2010-01-03 04:03 3628PDF files rock! Some of the p ... -
CodeIgniter 合作 Authorize.net
2009-12-30 00:25 1629function payment(){ // 略... ... -
CodeIgniter 合作paypal
2009-12-30 00:15 2375<?php class Paypal extend ... -
CodeIgniter 操作 CSV
2009-12-29 07:17 4662A Comma separated values (CSV) ... -
codeigniter 操作 Rss
2009-12-29 07:12 2000I wrote a codeigniter library t ...
相关推荐
描述中的"完整可用亲测 非常好,大家可以下载来试试"意味着这个源码已经过测试,并且被认为在功能和性能上都是完整的。它暗示了源码的可靠性,开发者或使用者可以放心下载并进行实际操作。同时,这可能是一个开源...
【描述】提到的"公开课网站系统(PHP+Mysql)源码全套,亲测可用,便于二次开发修改"意味着这套源码已经经过了实际测试,可以正常运行,并且为开发者提供了充足的灵活性,以便根据需求进行定制和优化。二次开发是...
内容概要:本文详细介绍了基于结构不变补偿的电液伺服系统低阶线性主动干扰抑制控制(ADRC)方法的实现过程。首先定义了电液伺服系统的基本参数,并实现了结构不变补偿(SIC)函数,通过补偿非线性项和干扰,将原始系统转化为一阶积分链结构。接着,设计了低阶线性ADRC控制器,包含扩展状态观测器(ESO)和控制律,用于估计系统状态和总干扰,并实现简单有效的控制。文章还展示了系统仿真与对比实验,对比了低阶ADRC与传统PID控制器的性能,证明了ADRC在处理系统非线性和外部干扰方面的优越性。此外,文章深入分析了参数调整与稳定性,提出了频域稳定性分析和b0参数调整方法,确保系统在参数不确定性下的鲁棒稳定性。最后,文章通过综合实验验证了该方法的有效性,并提供了参数敏感性分析和工程实用性指导。 适合人群:具备一定自动化控制基础,特别是对电液伺服系统和主动干扰抑制控制感兴趣的科研人员和工程师。 使用场景及目标:①理解电液伺服系统的建模与控制方法;②掌握低阶线性ADRC的设计原理和实现步骤;③学习如何通过结构不变补偿简化复杂系统的控制设计;④进行系统仿真与实验验证,评估不同控制方法的性能;⑤掌握参数调整与稳定性分析技巧,确保控制系统在实际应用中的可靠性和鲁棒性。 阅读建议:本文内容详尽,涉及多个控制理论和技术细节。读者应首先理解电液伺服系统的基本原理和ADRC的核心思想,然后逐步深入学习SIC补偿、ESO设计、控制律实现等内容。同时,结合提供的代码示例进行实践操作,通过调整参数和运行仿真,加深对理论的理解。对于希望进一步探索的读者,可以关注文中提到的高级话题,如频域稳定性分析、参数敏感性分析等,以提升对系统的全面掌控能力。
蓝桥杯嵌入式
PCB_PCB_2021-01-22_16-58-07_2025-03-02.json
【项目资源】: 适用于从基础到高级的各种项目,特别是在性能要求较高的场景中,比如操作系统开发、嵌入式编程和底层系统编程。如果您是初学者,可以从简单的控制台程序开始练习;如果是进阶开发者,可以尝试涉及硬件或网络的项目。 【项目质量】: 所有源码都经过严格测试,可以直接运行。 功能在确认正常工作后才上传。 【适用人群】: 适用于希望学习不同技术领域的小白或进阶学习者。 可作为毕设项目、课程设计、大作业、工程实训或初期项目立项。 【附加价值】: 项目具有较高的学习借鉴价值,也可直接拿来修改复刻。 对于有一定基础或热衷于研究的人来说,可以在这些基础代码上进行修改和扩展,实现其他功能。 【沟通交流】: 有任何使用上的问题,欢迎随时与博主沟通,博主会及时解答。 鼓励下载和使用,并欢迎大家互相学习,共同进步。 # 注意 1. 本资源仅用于开源学习和技术交流。不可商用等,一切后果由使用者承担。 2. 部分字体以及插图等来自网络,若是侵权请联系删除。
内容概要:汇编语言是一种低级编程语言,它作为计算机硬件与高级语言间的桥梁,使用助记符表示机器指令。起源于20世纪40年代末至50年代初,目的是替代难以理解的机器语言。汇编语言的特点在于高效性和灵活性,可直接与硬件交互,充分利用硬件资源。它广泛应用于操作系统开发(如中断处理、内存管理)、嵌入式系统(如实时控制系统)以及对安全性和可靠性要求极高的软件开发中。学习汇编语言有助于深入了解计算机工作原理,提升程序性能优化、复杂问题调试及高性能软件开发的能力,培养逻辑思维和关注细节的习惯。; 适合人群:对计算机底层原理感兴趣的程序员、计算机科学专业学生或希望深入理解计算机硬件与软件交互机制的人士。; 使用场景及目标:①理解计算机底层工作原理;②提高程序性能优化能力;③增强复杂问题调试技巧;④开发高性能、高可靠性的软件。; 其他说明:尽管现代编程更多使用高级语言,但汇编语言的学习价值依然很高,特别是在涉及硬件交互和性能优化方面。建议学习时结合实际项目进行练习,以加深理解。
【项目资源】: 单片机项目适用于从基础到高级的各种项目,特别是在性能要求较高的场景中,比如操作系统开发、嵌入式编程和底层系统编程。如果您是初学者,可以从简单的控制台程序开始练习;如果是进阶开发者,可以尝试涉及硬件或网络的项目。 【项目质量】: 所有源码都经过严格测试,可以直接运行。 功能在确认正常工作后才上传。 【适用人群】: 适用于希望学习不同技术领域的小白或进阶学习者。 可作为毕设项目、课程设计、大作业、工程实训或初期项目立项。 【附加价值】: 项目具有较高的学习借鉴价值,也可直接拿来修改复刻。 对于有一定基础或热衷于研究的人来说,可以在这些基础代码上进行修改和扩展,实现其他功能。 【沟通交流】: 有任何使用上的问题,欢迎随时与博主沟通,博主会及时解答。 鼓励下载和使用,并欢迎大家互相学习,共同进步。 # 注意 1. 本资源仅用于开源学习和技术交流。不可商用等,一切后果由使用者承担。 2. 部分字体以及插图等来自网络,若是侵权请联系删除。
本书名为《Web Programming for Business: PHP Object-Oriented Programming with Oracle》,由David Paper撰写,主要面向希望在商业环境中解决数据和技术问题的学生。本书采用Oracle作为后端数据库,内容版本中立,即使PHP和Oracle发生变更,书中代码依然有效。书中代码示例清晰,注重解决方案,并详细解释了如何利用XML、RSS和AJAX等技术在商业应用中。章节内容涵盖了数据库功能、安全编程以及数据转换编程。此外,书中还提供了PowerPoint幻灯片、应用考试题目和示例代码的源文件,旨在通过实例教学帮助读者掌握PHP面向对象编程。大卫·佩珀教授拥有德州仪器和IBM等大公司的实际工作经验,目前在美国犹他州立大学教授计算机科学和商业专业。
内容概要:本文详细解析了一个用于电动汽车转弯制动时ABS(防抱死系统)与DYC(横摆力矩控制)协同工作的Simulink模型。模型采用7自由度设计,涵盖纵向、横向、横摆运动及四轮旋转自由度,并引入轮胎魔术公式来精确模拟轮胎力特性。文章重点介绍了ABS系统中的滑移率观测与PID控制策略,以及DYC系统的滑模控制设计,特别是两者之间的协同控制逻辑。通过双移线工况测试验证,该模型能够显著提高车辆稳定性,将横摆角控制在3度以内,并缩短制动距离1.2米。文中还提供了关于模型优化、参数调试的具体建议,以及针对特定工况的仿真技巧。 适合人群:从事车辆控制系统开发的工程师、研究生及对汽车主动安全技术感兴趣的科研人员。 使用场景及目标:①研究ABS与DYC在电动汽车中的协同控制机制;②探索不同路面条件下车辆动态性能优化;③为ESP或TCS系统开发提供参考模型;④比较滑模控制与LQR控制在车辆控制中的应用效果。 阅读建议:建议读者重点关注7自由度模型的设计思路、轮胎魔术公式的实现方式、滑模控制参数调试过程以及ABS和DYC协同控制策略。由于模型涉及较多数学公式和Simulink实现细节,建议结合相关文献深入理解,并通过实际仿真加深认识。
# 基于LVGL图形库的PC模拟器 ## 项目简介 本项目是基于LVGL图形库的PC模拟器。LVGL是为嵌入式系统设计的开源图形库,用于创建嵌入式系统的图形用户界面。该项目将LVGL移植到PC上,让开发者无需嵌入式硬件,就能在PC上进行LVGL应用的开发、调试和测试,节约成本且能提升开发效率。 ## 项目的主要特性和功能 1. 跨平台支持可在Windows、Linux和OSX等操作系统上运行。 2. 图形用户界面模拟借助LVGL图形库的各种GUI组件和工具进行模拟。 3. 模拟输入设备能模拟鼠标和键盘的输入操作。 4. 灵活调试通过PC模拟器开发和调试应用程序,便于查找和修复错误。 5. Docker支持便于在Docker容器中运行和测试项目。 ## 安装使用步骤 假设用户已经下载了本项目的源码文件 ### 安装依赖
【项目资源】: 单片机项目适用于从基础到高级的各种项目,特别是在性能要求较高的场景中,比如操作系统开发、嵌入式编程和底层系统编程。如果您是初学者,可以从简单的控制台程序开始练习;如果是进阶开发者,可以尝试涉及硬件或网络的项目。 【项目质量】: 所有源码都经过严格测试,可以直接运行。 功能在确认正常工作后才上传。 【适用人群】: 适用于希望学习不同技术领域的小白或进阶学习者。 可作为毕设项目、课程设计、大作业、工程实训或初期项目立项。 【附加价值】: 项目具有较高的学习借鉴价值,也可直接拿来修改复刻。 对于有一定基础或热衷于研究的人来说,可以在这些基础代码上进行修改和扩展,实现其他功能。 【沟通交流】: 有任何使用上的问题,欢迎随时与博主沟通,博主会及时解答。 鼓励下载和使用,并欢迎大家互相学习,共同进步。 # 注意 1. 本资源仅用于开源学习和技术交流。不可商用等,一切后果由使用者承担。 2. 部分字体以及插图等来自网络,若是侵权请联系删除。
【项目资源】: 适用于从基础到高级的各种项目,特别是在性能要求较高的场景中,比如操作系统开发、嵌入式编程和底层系统编程。如果您是初学者,可以从简单的控制台程序开始练习;如果是进阶开发者,可以尝试涉及硬件或网络的项目。 【项目质量】: 所有源码都经过严格测试,可以直接运行。 功能在确认正常工作后才上传。 【适用人群】: 适用于希望学习不同技术领域的小白或进阶学习者。 可作为毕设项目、课程设计、大作业、工程实训或初期项目立项。 【附加价值】: 项目具有较高的学习借鉴价值,也可直接拿来修改复刻。 对于有一定基础或热衷于研究的人来说,可以在这些基础代码上进行修改和扩展,实现其他功能。 【沟通交流】: 有任何使用上的问题,欢迎随时与博主沟通,博主会及时解答。 鼓励下载和使用,并欢迎大家互相学习,共同进步。 # 注意 1. 本资源仅用于开源学习和技术交流。不可商用等,一切后果由使用者承担。 2. 部分字体以及插图等来自网络,若是侵权请联系删除。
内容概要:本文介绍了SymPy,一个用于符号数学的Python库。SymPy起源于2007年,由Ondřej Čertík和Aaron Meurer发起,现已发展成一个活跃的开源社区项目。SymPy的核心功能包括符号计算、数学表达式的解析与简化、微积分、线性代数、物理学和工程学应用、可视化、代码生成等。它支持符号变量的创建和基本代数运算,能求解方程、执行符号积分与微分、计算极限与级数、进行矩阵操作等。此外,SymPy在物理问题(如量子力学中的谐振子问题和经典力学中的运动方程)和数学问题(如函数图形和矩阵变换的可视化)的实际应用中表现出色。安装SymPy可通过pip完成,安装后可通过导入库来验证安装是否成功。SymPy与NumPy的区别在于前者专注于符号数学,后者侧重于数值计算。调试SymPy代码时,可以使用print语句、pprint函数、simplify函数以及断点和调试器等工具。 适合人群:对符号数学感兴趣的程序员、研究人员、教师和学生,尤其是那些希望在Python环境中进行数学研究和教育的人群。 使用场景及目标:①用于符号数学计算,如代数运算、微积分、解方程等;②在物理学和工程学中解析和求解微分方程;③结合Matplotlib等库进行数学表达式的可视化;④将符号表达式转换为其他编程语言的代码,适用于高性能计算和嵌入式系统。 阅读建议:由于SymPy涵盖了广泛的数学功能,建议读者从基础功能入手,逐步深入到高级应用。同时,结合实际案例和可视化工具,以更好地理解和掌握SymPy的强大功能。在学习过程中,可以利用提供的调试工具确保代码的正确性。
安装包
# 基于Spring Boot框架的ABrowse基因组浏览器 ## 项目简介 ABrowse是一款轻量级的通用基因组浏览器框架,目标是助力生物学家搭建便捷易用的基因组浏览器。其可视化引擎在浏览器端运行,能为用户带来出色的交互体验。该框架支持GTF、BedGraph、SAM等数据格式以及自定义的存储转录剪接位点的数据格式,数据可通过其提供的接口导入本地mongoDB,开发者还能基于API扩展对更多数据格式的支持。此外,ABrowse支持为同一种数据格式提供多种可视化形式,并且可以借助JavaScript API进一步添加更多可视化方法。软件采用Browser Server架构,后端运用Spring Boot框架,前端由HTML5 + JavaScript实现。 ## 项目的主要特性和功能 1. 多数据格式支持支持GTF、BedGraph、SAM等常见格式以及自定义的转录剪接位点数据格式。
解码 -getitem- 和 -len- - 自定义序列的钥匙
# 基于Raspberry Pi和INA226芯片的直流电压电流监测系统 ## 项目简介 ## 主要特性和功能 1. 实时监测通过INA226芯片实时采集直流电压和电流数据。 2. JSON输出默认输出格式为JSON,便于后续处理和分析。 3. 硬件兼容性支持多种Raspberry Pi型号,硬件连接简单。 4. 配置灵活支持自定义I2C地址、分流电阻值、最大预期电流等参数。 5. 模拟器支持提供无需硬件的模拟器,便于开发和测试。 6. 测试支持包含简单的测试脚本,确保代码的正确性。 ## 安装和使用步骤 ### 1. 硬件设置 确保Raspberry Pi的I2C功能已启用,可以通过raspiconfig或在bootconfig.txt中取消注释dtparami2carmon来实现。 将INA226芯片的GND、SDA、SCL引脚连接到Raspberry Pi对应的I2C引脚。
资源内项目源码是来自个人的毕业设计,代码都测试ok,包含源码、数据集、可视化页面和部署说明,可产生核心指标曲线图、混淆矩阵、F1分数曲线、精确率-召回率曲线、验证集预测结果、标签分布图。都是运行成功后才上传资源,毕设答辩评审绝对信服的保底85分以上,放心下载使用,拿来就能用。包含源码、数据集、可视化页面和部署说明一站式服务,拿来就能用的绝对好资源!!! 项目备注 1、该资源内项目代码都经过测试运行成功,功能ok的情况下才上传的,请放心下载使用! 2、本项目适合计算机相关专业(如计科、人工智能、通信工程、自动化、电子信息等)的在校学生、老师或者企业员工下载学习,也适合小白学习进阶,当然也可作为毕设项目、课程设计、大作业、项目初期立项演示等。 3、如果基础还行,也可在此代码基础上进行修改,以实现其他功能,也可用于毕设、课设、作业等。 下载后请首先打开README.txt文件,仅供学习参考, 切勿用于商业用途。