💕💕作者:计算机源码社
💕💕个人简介:本人 八年开发经验,擅长Java、Python、PHP、.NET、Node.js、Android、微信小程序、爬虫、大数据、机器学习等,大家有这一块的问题可以一起交流!
💕💕学习资料、程序开发、技术解答、文档报告
💕💕如需要源码,可以扫取文章下方二维码联系咨询
💕💕Java项目
💕💕微信小程序项目
💕💕Android项目
💕💕Python项目
💕💕PHP项目
💕💕ASP.NET项目
💕💕Node.js项目
💕💕选题推荐
Java、python、php舞蹈工作室管理系统舞蹈课程预约
1、研究背景
随着社会对健康生活方式和个性化兴趣爱好的重视,舞蹈作为一种集健身、娱乐、艺术于一体的活动,受到了越来越多人的喜爱。舞蹈工作室作为舞蹈学习和交流的重要场所,其管理需求日益增加。然而,传统的手工管理方式存在效率低下、信息不准确、数据无法共享等问题,难以满足现代化管理的需要。特别是对于拥有多种舞蹈课程、不同类型用户的舞蹈工作室来说,如何高效地管理学员信息、课程安排、老师资源、财务统计等,是亟待解决的问题。因此,开发一套功能完善的舞蹈工作室管理系统显得尤为重要。
2、研究目的和意义
舞蹈工作室管理系统的开发旨在实现对工作室的全面数字化管理,提高管理效率和服务质量。系统通过角色划分,为用户、前台人员、舞蹈老师、工作室主管及系统管理员等提供定制化的功能模块,涵盖了用户注册登录、课程预订、课表管理、老师排班、学员考勤、费用缴纳、财务报表生成等多项功能。系统的开发旨在整合信息流,简化操作流程,减少手工操作带来的误差和工作量,从而实现对舞蹈工作室的精准管理,提升用户体验和工作室的运营效益。
开发舞蹈工作室管理系统不仅可以显著提高管理的规范化和信息化水平,还能为舞蹈工作室提供重要的决策支持。通过数据分析功能,管理者可以及时了解各类课程的受欢迎程度、老师的教学效果、学员的出勤率等关键信息,从而优化课程设置和资源配置。此外,系统的开发还将提高学员的满意度,增强工作室的市场竞争力和品牌效应。同时,该系统的成功应用将为其他类似的艺术培训机构提供参考,为推动行业的数字化转型和智能化发展贡献力量。
3、系统研究内容
舞蹈工作室管理系统的研究内容主要涵盖系统需求分析、系统设计、功能模块实现、系统测试及优化等多个方面。具体内容如下:
1. 系统需求分析
在系统需求分析阶段,研究将深入探讨各角色的具体需求,包括用户、前台人员、舞蹈老师、工作室主管和系统管理员。通过调研和访谈,明确不同角色的核心需求和交互方式,如用户的课程查询与报名、前台人员的日常管理操作、舞蹈老师的排课和考勤记录、工作室主管的课程与财务管理,以及系统管理员对系统权限的控制和维护。分析结果将作为系统设计的重要依据,确保系统的功能性和用户体验能够满足实际业务需求。
2. 系统设计与功能模块实现
系统设计是研究的核心部分,涵盖整体架构设计、数据库设计和具体功能模块的实现。系统将基于B/S架构,采用前后端分离的设计方式,前端使用Vue.js等主流技术,后端采用Java或Python等开发语言,数据库使用MySQL等关系型数据库。主要功能模块包括:用户管理模块(用户注册、登录、信息管理等)、课程管理模块(课程安排、预约、取消等)、教师管理模块、系统管理模块。每个模块的实现过程都将详细描述功能逻辑、界面设计及与其他模块的交互关系。
3. 系统测试与优化
系统测试与优化部分将对系统的各个功能模块进行全面测试,包括单元测试、集成测试、系统测试和用户验收测试,以确保系统的稳定性、可靠性和安全性。通过功能测试验证系统是否实现预期功能,通过性能测试评估系统在高并发情况下的表现,并通过安全性测试发现潜在的漏洞和风险。在测试过程中发现的问题将进行归纳分析,并制定相应的优化策略,如优化数据库查询效率、改善用户界面交互体验、提升系统的响应速度等。此外,还将考虑系统的可扩展性,为未来功能的增加和用户规模的扩大提供技术支持。研究的最终目的是开发出一套高效、易用、稳定且可持续发展的舞蹈工作室管理系统。
4、系统页面设计
如需要源码,可以扫取文章下方二维码联系咨询
5、参考文献
[1]朱依晨,李御之,田丰.基于Kinect的舞蹈教学系统的设计与实现[J].工业控制计算机,2022,35(04):107-109.
[2]车紫辉,孙建华,李超.普通高校招生舞蹈测试管理系统的设计与实现[J].保定学院学报,2021,34(02):118-122.DOI:10.13747/j.cnki.bdxyxb.2021.02.019.
[3]孙梦瑶.智慧虚拟少数民族音乐舞蹈实景系统设计构想[J].艺术品鉴,2020,(15):151-152+156.
[4]李昂,李窦逗.iOS平台舞蹈教学直播系统设计与实现[J].戏剧之家,2019,(35):103.
[5]张轶骏,谢婷.大学英语实验课程预约系统的设计与实现[J].校园英语,2019,(24):17-18.
[6]吴晶晶.基于实验室管理系统的设计性实验平台的建构与研究[J].信息技术与信息化,2018,(06):175-176.
[7]孙桂芳,叶杰,刘思彤,等.实验室管理系统中实验预约的研究[J].亚太教育,2016,(32):164.DOI:10.16550/j.cnki.2095-9214.2016.32.128.
[8]钟群锋,杨璐,李朱耕.开放实验网上预约系统的设计与实现[J].实验室科学,2014,17(05):73-75.
[9]高宏宇.基于Android的在线课程预约系统的设计与实现[D].南京大学,2014.
[10]刘一山,魏佳佳,邹锐标.实验选修课程预约系统的设计与实现[J].电子设计工程,2013,21(11):7-9.DOI:10.14022/j.cnki.dzsjgc.2013.11.043.
[11]张洁.开放课程预约系统的设计与介绍[J].实验室科学,2008,(02):93-96.
[12]徐晓光,潘伟.基于JSP技术的课程预约系统的开发[J].信息技术,2006,(10):30-32.
6、核心代码
<?php
session_start();
class KechengxinxiController extends CommonController {
public function __construct()
{
header("Access-Control-Allow-Origin: *");
header("Access-Control-Allow-Methods: POST, GET, OPTIONS, PUT, DELETE");
header('Access-Control-Allow-Headers:Origin,Content-Type,Accept,token,X-Requested-With,device');
}
public $columData = [
'id','addtime'
,'kechengbianhao'
,'kechengmingcheng'
,'kechengleixing'
,'wuzhongleixing'
,'tupian'
,'jiage'
,'banjirenshu'
,'xueshizhang'
,'kaikeshijian'
,'jiaoshixingming'
,'kechengxiangqing'
,'thumbsupnum'
,'crazilynum'
,'clicktime'
,'clicknum'
,'storeupnum'
];
/**
* 分页,列表
* get
*/
public function page(){
$token = $this->token();
$tokens = json_decode(base64_decode($token),true);
if (!isset($tokens['id']) || empty($tokens['id'])) exit(json_encode(['code'=>401,'msg'=>"你还没有登录。"]));
$userid = $tokens['id'];
$where = " where 1 ";//查询条件
$orwhere = '';
if($tokens['tablename'] == 'jiaoshi') {
$where .= " and `jiaoshixingming` = '".$tokens['username']."' ";
}
$page = isset($_REQUEST['page'])?$_REQUEST['page']:"1";
$limt = isset($_REQUEST['limit'])?$_REQUEST['limit']:"10";
$sort = isset($_REQUEST['sort'])?$_REQUEST['sort']:"id";
$order = isset($_REQUEST['order'])?$_REQUEST['order']:"asc";
foreach ($_REQUEST as $k => $val){
if(in_array($k, $this->columData)){
if ($val != ''){
$where.= " and ".$k." like '".$val."'";
}
}
}
$base = json_decode(base64_decode($token),true);
if ($base['isAdmin']!=1 || ($base['isAdmin']==1 && $base['tablename'] != "users")){
$md5 = md5($userid."+10086");
$colum = "jiaoshixingming";
$columData = $base['columData'];
if (isset($_SESSION[$md5]) && in_array($colum, $columData)){
if($base['tablename'] == 'jiaoshi'){
$orsign = false;
if(!$orsign) {
$where .= " and `jiaoshixingming` = '".$_SESSION[$md5]."'";
}
}
}
}
$sql = "select * from `kechengxinxi` ".$where;
$count = table_sql($sql);
if ($count->num_rows < 1){
$numberCount = 0;
}else{
$numberCount = $count->num_rows;
}
$page_count = ceil($numberCount/$limt);//页数
$startCount = ($page-1)*$limt;
$where .= empty($orwhere) ? '' : "and (".$orwhere.")";
$lists = "select * from `kechengxinxi` ".$where." order by ".$sort." ".$order." limit ".$startCount.",".$limt;
$result = table_sql($lists);
$arrayData = array();
if ($result->num_rows > 0) {
while ($datas = $result->fetch_assoc()){
array_push($arrayData,$datas);
}
}
exit(json_encode([
'code'=>0,
'data' => [
"total" => $numberCount,
"pageSize" => $limt,
"totalPage" => $page_count,
"currPage" => $page,
"list" => $arrayData
]
]));
}
/**
* 分页,列表list
* get
*/
public function lists(){
$sql = "select * from `kechengxinxi`";
$result = table_sql($sql);
$arrayData = array();
if ($result->num_rows > 0) {
while ($datas = $result->fetch_assoc()){
array_push($arrayData,$datas);
}
}
exit(json_encode([
'code'=>0,
'data' =>$arrayData
]));
}
/**
* 分页,列表list
* get
*/
public function list(){
$page = isset($_REQUEST['page'])?$_REQUEST['page']:"1";
$limt = isset($_REQUEST['limit'])?$_REQUEST['limit']:"10";
$sort = isset($_REQUEST['sort'])?$_REQUEST['sort']:"id";
$order = isset($_REQUEST['order'])?$_REQUEST['order']:"asc";
$refid = isset($_REQUEST['refid']) ? $_REQUEST['refid'] : "0";
$where = " where 1 ";//查询条件
if(isset($_REQUEST['goodid'])) {
$where .= " and goodid = ".$_REQUEST['goodid']." ";
}
$sorts = explode(",", $sort);
$orders = explode(",", $order);
$sortorders = "";
foreach ($sorts as $index => $value) {
if($index == count($sorts)-1){
$sortorders =$sortorders.$value." ".$orders[$index];
}else{
$sortorders =$sortorders.$value." ".$orders[$index].",";
}
}
foreach ($_REQUEST as $k => $val){
if(in_array($k, $this->columData)){
$where.= " and ".$k." like '".$val."'";
}
}
$sql = "select * from `kechengxinxi`".$where;
$count = table_sql($sql);
if ($count->num_rows < 1){
$numberCount = 0;
}else{
$numberCount = $count->num_rows;
}
$page_count = ceil($numberCount/$limt);//页数
$startCount = ($page-1)*$limt;
$lists = "select * from `kechengxinxi` ".$where." order by ".$sortorders." limit ".$startCount.",".$limt;
$result = table_sql($lists);
$arrayData = array();
if ($result->num_rows > 0) {
while ($datas = $result->fetch_assoc()){
array_push($arrayData,$datas);
}
}
exit(json_encode([
'code'=>0,
'data' => [
"total" => $numberCount,
"pageSize" => $limt,
"totalPage" => $page_count,
"currPage" => $page,
"list" => $arrayData
]
]));
}
/**
* 新增数据接口
* post
*/
public function save(){
$token = $this->token();
$tokens = json_decode(base64_decode($token),true);
if (!isset($tokens['id']) || empty($tokens['id'])) exit(json_encode(['code'=>401,'msg'=>"你还没有登录。"]));
$uid = $tokens['id'];
$keyArr = $valArr = array();
$tmpData = strval(file_get_contents("php://input"));//Content-Type: application/json 需要用到php://input 处理输入流
if (!empty($tmpData)&& isset($tmpData)){
$postData = json_decode($tmpData,true);
foreach ($postData as $key => $value){
if (in_array($key, $this->columData)){
if(!empty($value) || $value === 0) {
if ($key == 'id') {
continue;
}
array_push($keyArr,"`".$key."`");
if($key == 'clicktime') {
array_push($valArr,"'".date('Y-m-d h:i:s', time())."'");
} else {
array_push($valArr,"'".$value."'");
}
}
}
}
}
$k = implode(',',$keyArr);
$v = implode(',',$valArr);
$sql = "INSERT INTO `kechengxinxi` (".$k.") VALUES (".$v.")";
$result = table_sql($sql);
exit(json_encode(['code'=>0]));
}
/**
* 新增数据接口 add
* post
*/
public function add(){
$keyArr = $valArr = array();
$token = $this->token();
$tokens = json_decode(base64_decode($token),true);
if (!isset($tokens['id']) || empty($tokens['id'])) exit(json_encode(['code'=>401,'msg'=>"你还没有登录。"]));
$uid = $tokens['id'];
$tmpData = strval(file_get_contents("php://input"));
if (!empty($tmpData)&& isset($tmpData)){
$postData = json_decode($tmpData,true);
foreach ($postData as $key => $value){
if (in_array($key, $this->columData)){
if(!empty($value) || $value === 0) {
if ($key == 'id') {
continue;
}
array_push($keyArr,"`".$key."`");
if($key == 'clicktime') {
array_push($valArr,"'".date('Y-m-d h:i:s', time())."'");
} else {
array_push($valArr,"'".$value."'");
}
}
}
}
}
$k = implode(',',$keyArr);
$v = implode(',',$valArr);
$sql = "INSERT INTO `kechengxinxi` (".$k.") VALUES (".$v.")";
$result = table_sql($sql);
exit(json_encode(['code'=>0]));
}
/**
* 更新接口
* post
*/
public function update(){
$token = $this->token();
$tokens = json_decode(base64_decode($token),true);
if (!isset($tokens['id']) || empty($tokens['id'])) exit(json_encode(['code'=>401,'msg'=>"你还没有登录。"]));
$uid = $tokens['id'];
$tmpData = strval(file_get_contents("php://input"));
$postData = json_decode($tmpData,true);
$v = array();
foreach ($postData as $key => $value){
if (in_array($key, $this->columData)){
if ($key == "id"){
$id = $value;
}
if(!empty($value) || $value === 0) {
array_push($v,$key." = '".$value."'");
}
}
}
$value = implode(',',$v);
$sql = "UPDATE kechengxinxi SET ".$value." where id = ".$id;
$result = table_sql($sql);
exit(json_encode(['code'=>0]));
}
/**
* 删除
* post
*/
public function delete(){
$ids = strval(file_get_contents("php://input"));//发现接收的是字符串
preg_match_all('/\d+/',$ids,$arr);
$str = implode(',',$arr[0]);//拼接字符,
$sql = "delete from kechengxinxi WHERE id in({$str})";
$result = table_sql($sql);
exit(json_encode(['code'=>0]));
}
/**
* 查询一条数据
* get
*/
public function info($id=false){
$token = $this->token();
$tokens = json_decode(base64_decode($token),true);
if (!isset($tokens['id']) || empty($tokens['id'])) exit(json_encode(['code'=>401,'msg'=>"你还没有登录。"]));
$userid = $tokens['id'];
$name = isset($_REQUEST['name'])? $_REQUEST['name']:"";
if (!empty($id)){
$where = "`id` = ".$id;
}else{
$where = "`name` = ".$name;
}
$this->andone('kechengxinxi',$id,$column='clicknum',$num=1);
$clicktime = "update kechengxinxi set clicktime = '".date('Y-m-d H:i:s',time())."' where ".$where;
table_sql($clicktime);
$sql = "select * from `kechengxinxi` where ".$where;
$result = table_sql($sql);
if ($result->num_rows > 0) {
// 输出数据
while($row = $result->fetch_assoc()) {
$lists = $row;
}
}
exit(json_encode([
'code'=>0,
'data'=> $lists
]));
}
/**
* 查询一条数据
* get
*/
public function detail($id=false){
$name = isset($_REQUEST['name'])? $_REQUEST['name']:"";
if ($id){
$where = "`id` = ".$id;
}else{
$where = "`name` = ".$name;
}
$this->andone('kechengxinxi',$id,$column='clicknum',$num=1);
$clicktime = "update kechengxinxi set clicktime = '".date('Y-m-d H:i:s',time())."' where ".$where;
table_sql($clicktime);
$sql = "select * from `kechengxinxi` where ".$where;
$result = table_sql($sql);
if (!$result) exit(json_encode(['code'=>500,'msg'=>"查询数据发生错误。"]));
if ($result->num_rows > 0) {
// 输出数据
while($row = $result->fetch_assoc()) {
$lists = $row;
}
}
exit(json_encode([
'code'=>0,
'data'=> $lists
]));
}
/**
* 按值统计接口
**/
public function value(){
$url = explode('?',$_SERVER['REQUEST_URI']);
$request = explode('/',$url[0]);
$xColumnName = $request[4];
$yColumnName = $request[5];
$token = $this->token();
$tokens = json_decode(base64_decode($token),true);
$where = " where 1 ";
if($tokens['isAdmin'] != 1 && $tokens['tablename'] == 'jiaoshi') {
$where .= " and `jiaoshixingming` = '".$tokens['username']."' ";
}
$sql = "SELECT ".$xColumnName.",sum(".$yColumnName.") total FROM kechengxinxi ".$where." group by ".$xColumnName;
if(urldecode($request[6]) == '日') {
$sql = "SELECT DATE_FORMAT(".$xColumnName.", '%Y-%m-%d') ".$xColumnName.", sum(".$yColumnName.") total FROM kechengxinxi ".$where." GROUP BY DATE_FORMAT(".$xColumnName.", '%Y-%m-%d')";
}
if(urldecode($request[6]) == '月') {
$sql = "SELECT DATE_FORMAT(".$xColumnName.", '%Y-%m') ".$xColumnName.", sum(".$yColumnName.") total FROM kechengxinxi ".$where." GROUP BY DATE_FORMAT(".$xColumnName.", '%Y-%m')";
}
if(urldecode($request[6]) == '年') {
$sql = "SELECT DATE_FORMAT(".$xColumnName.", '%Y') ".$xColumnName.", sum(".$yColumnName.") total FROM kechengxinxi ".$where." GROUP BY DATE_FORMAT(".$xColumnName.", '%Y')";
}
$result = table_sql($sql);
if ($result->num_rows > 0) {
// 输出数据
$total = array();
while($row = $result->fetch_assoc()) {
array_push($total,array('total' => intval($row['total']),$xColumnName => $row[$xColumnName]));
}
}
exit(json_encode(['code'=>0,'data'=>$total]));
}
/**
* (按值统计)时间统计类型(多)
**/
public function valueMul(){
$url = explode('?',$_SERVER['REQUEST_URI']);
$request = explode('/',$url[0]);
$xColumnName = $request[4];
$yColumnName = isset($_REQUEST['yColumnNameMul'])? $_REQUEST['yColumnNameMul']:"";
$token = $this->token();
$tokens = json_decode(base64_decode($token),true);
$where = " where 1 ";
if($tokens['isAdmin'] != 1 && $tokens['tablename'] == 'jiaoshi') {
$where .= " and `jiaoshixingming` = '".$tokens['username']."' ";
}
$valueData = array();
foreach(explode(",", $yColumnName) as $item){
$sql = "SELECT ".$xColumnName.",sum(".$item.") total FROM kechengxinxi ".$where." group by ".$xColumnName." LIMIT 10";
if(urldecode($request[6]) == '日') {
$sql = "SELECT DATE_FORMAT(".$xColumnName.", '%Y-%m-%d') ".$xColumnName.", sum(".$item.") total FROM kechengxinxi ".$where." GROUP BY DATE_FORMAT(".$xColumnName.", '%Y-%m-%d') LIMIT 10";
}
if(urldecode($request[6]) == '月') {
$sql = "SELECT DATE_FORMAT(".$xColumnName.", '%Y-%m') ".$xColumnName.", sum(".$item.") total FROM kechengxinxi ".$where." GROUP BY DATE_FORMAT(".$xColumnName.", '%Y-%m') LIMIT 10";
}
if(urldecode($request[6]) == '年') {
$sql = "SELECT DATE_FORMAT(".$xColumnName.", '%Y') ".$xColumnName.", sum(".$item.") total FROM kechengxinxi ".$where." GROUP BY DATE_FORMAT(".$xColumnName.", '%Y') LIMIT 10";
}
$result = table_sql($sql);
if ($result->num_rows > 0) {// 输出数据
$total = array();
while($row = $result->fetch_assoc()) {
array_push($total,array('total' => intval($row['total']),$xColumnName => $row[$xColumnName]));
}
$valueData[] = $total;
}
}
exit(json_encode(['code'=>0,'data'=>$valueData]));
}
/**
* 赞和踩
**/
public function thumbsup($id=false){
$type = isset($_REQUEST['type'])?$_REQUEST['type']:"";
if ($type==1){
$result = $this->andone('kechengxinxi',$id,$column = 'thumbsupnum',$num = 1);
}else{
$result = $this->andone('kechengxinxi',$id,$column = 'crazilynum',$num = 1);
}
exit(json_encode(['code'=>0,'msg'=>"投票成功"]));
}
public function autoSort(){
$limt = isset($_REQUEST['limit'])?$_REQUEST['limit']:"5";
$sort = 'clicknum';
$whereConditions = [];
foreach (array_slice($_REQUEST, 1) as $key => $value) {
if ($key !== "page" && $key !== "limit"&& $key !== "order"&& $key !== "sort") {
$whereConditions[] = "$key = '$value'";
}
}
$where = implode(" AND ", $whereConditions);
if ($where) {
$lists = "select * from `kechengxinxi` where ".$where." order by ".$sort." desc limit 0,".$limt;
}else{
$lists = "select * from `kechengxinxi` order by ".$sort." desc limit 0,".$limt;
}
$result = table_sql($lists);
$arrayData = array();
if ($result->num_rows > 0) {
while ($datas = $result->fetch_assoc()){
array_push($arrayData,$datas);
}
}
exit(json_encode([
'code'=>0,
'data' => [
"total" => 0,
"pageSize" => $limt,
"totalPage" => 0,
"currPage" => 0,
"list" => $arrayData
]
]));
}
/**
* 获取需要提醒的记录数接口
* get
*/
public function remind($columnName,$type){
$remindStart = isset($_GET['remindstart'])?$_GET['remindstart']:"";
$remindEnd = isset($_GET['remindend'])?$_GET['remindend']:"";
$token = $this->token();
$tokens = json_decode(base64_decode($token),true);
$where = " where 1 ";//查询条件
if($tokens['isAdmin'] != 1 && $tokens['tablename'] == 'jiaoshi') {
$where .= " and `jiaoshixingming` = '".$tokens['username']."' ";
}
if ($type == 1){//数字
if ($remindStart && $remindEnd){
$where .= " and ".$columnName."<='".$remindEnd."' and ".$columnName.">='".$remindStart."'";
}elseif($remindStart){
$where .= " and ".$columnName.">='".$remindStart."'";
}elseif($remindEnd){
$where .= " and ".$columnName."<='".$remindEnd."'";
}
}else{
if ($remindStart && $remindEnd){
$where .= " and ".$columnName."<='".date("Y-m-d",strtotime("+".$remindEnd." day"))."' and ".$columnName.">='".date("Y-m-d",strtotime("+".$remindStart." day"))."'";
}elseif($remindStart){
$where .= " and ".$columnName.">='".date("Y-m-d",strtotime("+".$remindStart." day"))."'";
}elseif($remindEnd){
$where .= " and ".$columnName."<='".date("Y-m-d",strtotime("+".$remindEnd." day"))."'";
}
}
$sql = "select * from `kechengxinxi` ".$where;
$result = table_sql($sql);
exit(json_encode(['code'=> 0 ,'count' => $result->num_rows]));
}
public function group($columnName){
$token = $this->token();
$tokens = json_decode(base64_decode($token),true);
$where = " where 1 ";
if($tokens['isAdmin'] != 1 && $tokens['tablename'] == 'jiaoshi') {
$where .= " and `jiaoshixingming` = '".$tokens['username']."' ";
}
$sql = "SELECT ".$columnName.",count(".$columnName.") as total FROM kechengxinxi ".$where." GROUP BY ".$columnName." ORDER BY $columnName asc";
$result = table_sql($sql);
if ($result->num_rows > 0) {
// 输出数据
$total = array();
while($row = $result->fetch_assoc()) {
array_push($total,array('total' => $row['total'],$columnName => $row[$columnName]));
}
}
exit(json_encode(['code'=>0,'data'=>$total]));
}
}
💕💕作者:计算机源码社
💕💕个人简介:本人 八年开发经验,擅长Java、Python、PHP、.NET、Node.js、Android、微信小程序、爬虫、大数据、机器学习等,大家有这一块的问题可以一起交流!
💕💕学习资料、程序开发、技术解答、文档报告
💕💕如需要源码,可以扫取文章下方二维码联系咨询