• 【计算机毕业设计源码】PHP单招志愿采集系统


    目录

     

    一、程序介绍:

    三、文档目录:

    四、运行截图:

    五、数据库表:

    六、代码展示:

    七、更多学习目录:

    八、互动留言


    一、程序介绍:

    1. 文档:开发技术文档、参考LW、答辩PPT,部分项目另有其他文档
    2. 开发环境:Phpstorm丨微信开发者工具丨navicat12丨mysql5.7
    3. 配套工具:涉及项目开发运行的全部软件均提供
    4. 项目运行视频或截图:提供
    5. 运行电脑配置要求:内存≥8G,  CPU  i3及以上
    6. 运行教学:指导
    7. 项目修改教学:有
    8. 代码讲解:代码结构讲解

    三、文档目录:

    四、运行截图:

     

    五、数据库表:

     

    六、代码展示:

    1. /**
    2. * +----------------------------------------------------------------------
    3. * | 应用公共文件
    4. * +----------------------------------------------------------------------
    5. * .::::.
    6. * .::::::::. | Author: xxx
    7. * ::::::::::: | EMAIL: XXXXXXXXXX@qq.com
    8. * ..:::::::::::' | EMAIL: XXXXXXXXXX
    9. * '::::::::::::' | WECHAT: xxx
    10. * .:::::::::: | DATETIME: 20XX/XX/XX
    11. * '::::::::::::::..
    12. * ..::::::::::::.
    13. * ``::::::::::::::::
    14. * ::::``:::::::::' .:::.
    15. * ::::' ':::::' .::::::::.
    16. * .::::' :::: .:::::::'::::.
    17. * .:::' ::::: .:::::::::' ':::::.
    18. * .::' :::::.:::::::::' ':::::.
    19. * .::' ::::::::::::::' ``::::.
    20. * ...::: ::::::::::::' ``::.
    21. * ```` ':. ':::::::::' ::::..
    22. * '.:::::' ':'````..
    23. * +----------------------------------------------------------------------
    24. */
    25. // 定义插件目录
    26. define('ADDON_PATH', Env::get('root_path') . 'addons' . DIRECTORY_SEPARATOR);
    27. // 闭包自动处理插件钩子业务
    28. Hook::add('app_init', function () {
    29. // 获取开关
    30. $autoload = true;
    31. // 配置自动加载时直接返回
    32. if ($autoload) return;
    33. // 非正时表示后台接管插件业务
    34. // 当debug时不缓存配置
    35. $config = config('app_debug') ? [] : (array)cache('addons');
    36. if (empty($config)) {
    37. //读取插件通过文件夹的形式来读取
    38. $hooks = get_addon_list();
    39. foreach ($hooks as $hook) {
    40. //是否开启该插件,只有开启的插件才加载
    41. if($hook['status']==1)
    42. $config['hooks'][$hook['name']] = explode(',', $hook['addons']);
    43. }
    44. cache('addons', $config);
    45. }
    46. config('addons', $config);
    47. });
    48. /**
    49. * 过滤数组元素前后空格 (支持多维数组)
    50. * @param $array 要过滤的数组
    51. * @return array|string
    52. */
    53. function trim_array_element($array){
    54. if(!is_array($array))
    55. return trim($array);
    56. return array_map('trim_array_element',$array);
    57. }
    58. /**
    59. * 将数据库中查出的列表以指定的 值作为数组的键名,并以另一个值作为键值
    60. * @param $arr
    61. * @param $key_name
    62. * @return array
    63. */
    64. function convert_arr_kv($arr,$key_name,$value){
    65. $arr2 = array();
    66. foreach($arr as $key => $val){
    67. $arr2[$val[$key_name]] = $val[$value];
    68. }
    69. return $arr2;
    70. }
    71. /**
    72. * 验证输入的邮件地址是否合法
    73. */
    74. function is_email($user_email)
    75. {
    76. $chars = "/^([a-z0-9+_]|\\-|\\.)+@(([a-z0-9_]|\\-)+\\.)+[a-z]{2,6}\$/i";
    77. if (strpos($user_email, '@') !== false && strpos($user_email, '.') !== false) {
    78. if (preg_match($chars, $user_email)) {
    79. return true;
    80. } else {
    81. return false;
    82. }
    83. } else {
    84. return false;
    85. }
    86. }
    87. /**
    88. * 验证输入的手机号码是否合法
    89. */
    90. function is_mobile_phone($mobile_phone)
    91. {
    92. $chars = "/^13[0-9]{1}[0-9]{8}$|15[0-9]{1}[0-9]{8}$|18[0-9]{1}[0-9]{8}$|17[0-9]{1}[0-9]{8}$/";
    93. if (preg_match($chars, $mobile_phone)) {
    94. return true;
    95. }
    96. return false;
    97. }
    98. /**
    99. * 邮件发送
    100. * @param $to 接收人
    101. * @param string $subject 邮件标题
    102. * @param string $content 邮件内容(html模板渲染后的内容)
    103. * @throws Exception
    104. * @throws phpmailerException
    105. */
    106. function send_email($to,$subject='',$content=''){
    107. $mail = new PHPMailer\PHPMailer\PHPMailer();
    108. $arr = Db::name('config')->where('inc_type','smtp')->select();
    109. $config = convert_arr_kv($arr,'name','value');
    110. $mail->CharSet = 'UTF-8'; //设定邮件编码,默认ISO-8859-1,如果发中文此项必须设置,否则乱码
    111. $mail->isSMTP();
    112. $mail->SMTPDebug = 0;
    113. //调试输出格式
    114. //$mail->Debugoutput = 'html';
    115. //smtp服务器
    116. $mail->Host = $config['smtp_server'];
    117. //端口 - likely to be 25, 465 or 587
    118. $mail->Port = $config['smtp_port'];
    119. if($mail->Port == '465') {
    120. $mail->SMTPSecure = 'ssl';
    121. }// 使用安全协议
    122. //Whether to use SMTP authentication
    123. $mail->SMTPAuth = true;
    124. //发送邮箱
    125. $mail->Username = $config['smtp_user'];
    126. //密码
    127. $mail->Password = $config['smtp_pwd'];
    128. //Set who the message is to be sent from
    129. $mail->setFrom($config['smtp_user'],$config['email_id']);
    130. //回复地址
    131. //$mail->addReplyTo('replyto@example.com', 'First Last');
    132. //接收邮件方
    133. if(is_array($to)){
    134. foreach ($to as $v){
    135. $mail->addAddress($v);
    136. }
    137. }else{
    138. $mail->addAddress($to);
    139. }
    140. $mail->isHTML(true);// send as HTML
    141. //标题
    142. $mail->Subject = $subject;
    143. //HTML内容转换
    144. $mail->msgHTML($content);
    145. return $mail->send();
    146. }
    147. function string2array($info) {
    148. if($info == '') return array();
    149. eval("\$r = $info;");
    150. return $r;
    151. }
    152. function array2string($info) {
    153. if($info == '') return '';
    154. if(!is_array($info)){
    155. $string = stripslashes($info);
    156. }
    157. foreach($info as $key => $val){
    158. $string[$key] = stripslashes($val);
    159. }
    160. $setup = var_export($string, TRUE);
    161. return $setup;
    162. }
    163. //文本域中换行标签输出
    164. function textareaBr($info) {
    165. $info = str_replace("\r\n","
      "
      ,$info);
    166. return $info;
    167. }
    168. // 无限分类-栏目
    169. function tree_cate($cate , $lefthtml = '|— ' , $pid=0 , $lvl=0 ){
    170. $arr=array();
    171. foreach ($cate as $v){
    172. if($v['parentid']==$pid){
    173. $v['lvl']=$lvl + 1;
    174. $v['lefthtml']=str_repeat($lefthtml,$lvl);
    175. $v['lcatname']=$v['lefthtml'].$v['catname'];
    176. $arr[]=$v;
    177. $arr= array_merge($arr,tree_cate($cate,$lefthtml,$v['id'], $lvl+1 ));
    178. }
    179. }
    180. return $arr;
    181. }
    182. //组合多维数组
    183. function unlimitedForLayer ($cate, $name = 'sub', $pid = 0) {
    184. $arr = array();
    185. foreach ($cate as $v) {
    186. if ($v['parentid'] == $pid) {
    187. $v[$name] = unlimitedForLayer($cate, $name, $v['id']);
    188. $v['url'] = getUrl($v);
    189. $arr[] = $v;
    190. }
    191. }
    192. return $arr;
    193. }
    194. //传递一个父级分类ID返回当前子分类
    195. function getChildsOn ($cate, $pid) {
    196. $arr = array();
    197. foreach ($cate as $v) {
    198. if ($v['parentid'] == $pid) {
    199. $v['sub'] = getChilds($cate, $v['id']);
    200. $v['url'] = getUrl($v);
    201. $arr[] = $v;
    202. }
    203. }
    204. return $arr;
    205. }
    206. //传递一个父级分类ID返回所有子分类
    207. function getChilds ($cate, $pid) {
    208. $arr = array();
    209. foreach ($cate as $v) {
    210. if ($v['parentid'] == $pid) {
    211. $v['url'] = getUrl($v);
    212. $arr[] = $v;
    213. $arr = array_merge($arr, getChilds($cate, $v['id']));
    214. }
    215. }
    216. return $arr;
    217. }
    218. //传递一个父级分类ID返回所有子分类ID
    219. function getChildsId ($cate, $pid) {
    220. $arr = [];
    221. foreach ($cate as $v) {
    222. if ($v['parentid'] == $pid) {
    223. $arr[] = $v;
    224. $arr = array_merge($arr, getChildsId($cate, $v['id']));
    225. }
    226. }
    227. return $arr;
    228. }
    229. //格式化分类数组为字符串
    230. function getChildsIdStr($ids,$pid=''){
    231. $result='';
    232. foreach ($ids as $k=>$v){
    233. $result.=$v['id'].',';
    234. }
    235. if($pid){
    236. $result = $pid.','.$result;
    237. }
    238. $result = rtrim($result,',');
    239. return $result;
    240. }
    241. //传递一个子分类ID返回所有的父级分类
    242. function getParents ($cate, $id) {
    243. $arr = array();
    244. foreach ($cate as $v) {
    245. if ($v['id'] == $id) {
    246. $arr[] = $v;
    247. $arr = array_merge(getParents($cate, $v['parentid']), $arr);
    248. }
    249. }
    250. return $arr;
    251. }
    252. //URL设置
    253. function getUrl($v){
    254. //判断是否直接跳转
    255. if(trim($v['url'])!==''){
    256. }else{
    257. //判断是否跳转到下级栏目
    258. if($v['is_next']==1){
    259. $is_next = Db::name('cate')->where('parentid',$v['id'])->order('sort ASC,id DESC')->find();
    260. if($is_next){
    261. $v['url'] = getUrl($is_next);
    262. }
    263. }else{
    264. $moduleurl = Db::name('module')->where('id',$v['moduleid'])->value('name');
    265. if($v['catdir']){
    266. $v['url'] = url(request()->module().'/'.$v['catdir'].'/index', 'catId='.$v['id']);
    267. }else{
    268. $v['url'] = url(request()->module().'/'.$moduleurl.'/index', 'catId='.$v['id']);
    269. }
    270. }
    271. }
    272. return $v['url'];
    273. }
    274. //获取详情URL
    275. function getShowUrl($v){
    276. if($v){
    277. //$home_rote[''.$v['catdir'].'-:catId/:id'] = 'home/'.$v['catdir'].'/index';
    278. $cate = Db::name('cate')->field('id,catdir,moduleid')->where('id',$v['catid'])->find();
    279. $moduleurl = Db::name('module')->where('id',$cate['moduleid'])->value('name');
    280. if($cate['catdir']){
    281. $url = url(request()->module().'/'.$cate['catdir'].'/info', ['catId'=>$cate['id'],'id'=>$v['id']]);
    282. }else{
    283. $url = url(request()->module().'/'.$moduleurl.'/info', ['catId'=>$cate['id'],'id'=>$v['id']] );
    284. }
    285. }
    286. return $url;
    287. }
    288. //获取所有模版
    289. function getTemplate(){
    290. //查找设置的模版
    291. $system = Db::name('system')->where('id',1)->find();
    292. $path = './template/home/'.$system['template'].'/'.$system['html'].'/';
    293. $tpl['list'] = get_file_folder_List($path , 2, '*_list*');
    294. $tpl['show'] = get_file_folder_List($path , 2, '*_show*');
    295. return $tpl;
    296. }
    297. /**
    298. * 获取文件目录列表
    299. * @param string $pathname 路径
    300. * @param integer $fileFlag 文件列表 0所有文件列表,1只读文件夹,2是只读文件(不包含文件夹)
    301. * @param string $pathname 路径
    302. * @return array
    303. */
    304. function get_file_folder_List($pathname,$fileFlag = 0, $pattern='*') {
    305. $fileArray = array();
    306. $pathname = rtrim($pathname,'/') . '/';
    307. $list = glob($pathname.$pattern);
    308. foreach ($list as $i => $file) {
    309. switch ($fileFlag) {
    310. case 0:
    311. $fileArray[]=basename($file);
    312. break;
    313. case 1:
    314. if (is_dir($file)) {
    315. $fileArray[]=basename($file);
    316. }
    317. break;
    318. case 2:
    319. if (is_file($file)) {
    320. $fileArray[]=basename($file);
    321. }
    322. break;
    323. default:
    324. break;
    325. }
    326. }
    327. return $fileArray;
    328. }
    329. function changeFields($list,$moduleid){
    330. $info = [];
    331. foreach ($list as $k=>$v){
    332. $url = getShowUrl($v);
    333. $list[$k] = changeField($v,$moduleid);
    334. $info[$k] = $list[$k];//定义中间变量防止报错
    335. $info[$k]['url'] = $url;
    336. }
    337. return $info;
    338. }
    339. function changefield($info,$moduleid){
    340. $fields = Db::name('field')->where('moduleid','=',$moduleid)->select();
    341. foreach ($fields as $k=>$v){
    342. $field = $v['field'];
    343. if($info[$field]){
    344. switch ($v['type'])
    345. {
    346. case 'textarea'://多行文本
    347. break;
    348. case 'editor'://编辑器
    349. $info[$field]=($info[$field]);
    350. break;
    351. case 'select'://下拉列表
    352. break;
    353. case 'radio'://单选按钮
    354. break;
    355. case 'checkbox'://复选框
    356. $info[$field]=explode(',',$info[$field]);
    357. break;
    358. case 'images'://多张图片
    359. $info[$field]=json_decode($info[$field],true);
    360. break;
    361. default:
    362. }
    363. }
    364. }
    365. return $info;
    366. }
    367. /**
    368. * 判断当前访问的用户是 PC端 还是 手机端 返回true 为手机端 false 为PC 端
    369. * 是否移动端访问访问
    370. * @return boolean
    371. */
    372. function isMobile()
    373. {
    374. // 如果有HTTP_X_WAP_PROFILE则一定是移动设备
    375. if (isset ($_SERVER['HTTP_X_WAP_PROFILE']))
    376. return true;
    377. // 如果via信息含有wap则一定是移动设备,部分服务商会屏蔽该信息
    378. if (isset ($_SERVER['HTTP_VIA']))
    379. {
    380. // 找不到为flase,否则为true
    381. return stristr($_SERVER['HTTP_VIA'], "wap") ? true : false;
    382. }
    383. // 脑残法,判断手机发送的客户端标志,兼容性有待提高
    384. if (isset ($_SERVER['HTTP_USER_AGENT']))
    385. {
    386. $clientkeywords = array ('nokia','sony','ericsson','mot','samsung','htc','sgh','lg','sharp','sie-','philips','panasonic','alcatel','lenovo','iphone','ipod','blackberry','meizu','android','netfront','symbian','ucweb','windowsce','palm','operamini','operamobi','openwave','nexusone','cldc','midp','wap','mobile');
    387. // 从HTTP_USER_AGENT中查找手机浏览器的关键字
    388. if (preg_match("/(" . implode('|', $clientkeywords) . ")/i", strtolower($_SERVER['HTTP_USER_AGENT'])))
    389. return true;
    390. }
    391. // 协议法,因为有可能不准确,放到最后判断
    392. if (isset ($_SERVER['HTTP_ACCEPT']))
    393. {
    394. // 如果只支持wml并且不支持html那一定是移动设备
    395. // 如果支持wml和html但是wml在html之前则是移动设备
    396. if ((strpos($_SERVER['HTTP_ACCEPT'], 'vnd.wap.wml') !== false) && (strpos($_SERVER['HTTP_ACCEPT'], 'text/html') === false || (strpos($_SERVER['HTTP_ACCEPT'], 'vnd.wap.wml') < strpos($_SERVER['HTTP_ACCEPT'], 'text/html'))))
    397. {
    398. return true;
    399. }
    400. }
    401. return false;
    402. }
    403. /**
    404. * 获得本地插件列表
    405. * @return array
    406. */
    407. function get_addon_list()
    408. {
    409. $results = scandir(ADDON_PATH);
    410. $list = [];
    411. foreach ($results as $name) {
    412. if ($name === '.' or $name === '..')
    413. continue;
    414. if (is_file(ADDON_PATH . $name))
    415. continue;
    416. $addonDir = ADDON_PATH . $name . DIRECTORY_SEPARATOR;
    417. if (!is_dir($addonDir))
    418. continue;
    419. if (!is_file($addonDir . ucfirst($name) . '.php'))
    420. continue;
    421. //这里不采用get_addon_info是因为会有缓存
    422. //$info = get_addon_info($name);
    423. $info_file = $addonDir . 'info.ini';
    424. if (!is_file($info_file))
    425. continue;
    426. $info = Config::parse($info_file, '', "addon-info-{$name}");
    427. //$info['url'] = addon_url($name);
    428. $list[$name] = $info;
    429. }
    430. return $list;
    431. }
    432. /**
    433. * 判断文件或文件夹是否可写
    434. * @param string $file 文件或目录
    435. * @return bool
    436. */
    437. function is_really_writable($file)
    438. {
    439. if (DIRECTORY_SEPARATOR === '/') {
    440. return is_writable($file);
    441. }
    442. if (is_dir($file)) {
    443. $file = rtrim($file, '/') . '/' . md5(mt_rand());
    444. if (($fp = @fopen($file, 'ab')) === FALSE) {
    445. return FALSE;
    446. }
    447. fclose($fp);
    448. @chmod($file, 0777);
    449. @unlink($file);
    450. return TRUE;
    451. } elseif (!is_file($file) OR ($fp = @fopen($file, 'ab')) === FALSE) {
    452. return FALSE;
    453. }
    454. fclose($fp);
    455. return TRUE;
    456. }
    457. /**
    458. * 插件更新配置文件
    459. *
    460. * @param string $name 插件名
    461. * @param array $array
    462. * @return boolean
    463. * @throws Exception
    464. */
    465. function set_addon_fullconfig($name, $array)
    466. {
    467. $file = ADDON_PATH . $name . DIRECTORY_SEPARATOR . 'config.php';
    468. if (!is_really_writable($file)) {
    469. throw new Exception("文件没有写入权限");
    470. }
    471. if ($handle = fopen($file, 'w')) {
    472. fwrite($handle, " . "return " . var_export($array, TRUE) . ";\n");
    473. fclose($handle);
    474. } else {
    475. throw new Exception("文件没有写入权限");
    476. }
    477. return true;
    478. }
    479. /**
    480. * 插件更新ini文件
    481. *
    482. * @param string $name 插件名
    483. * @param array $array
    484. * @return boolean
    485. * @throws Exception
    486. */
    487. function set_addon_fullini($name, $array)
    488. {
    489. $file = ADDON_PATH . $name . DIRECTORY_SEPARATOR . 'info.ini';
    490. if (!is_really_writable($file)) {
    491. throw new Exception("文件没有写入权限");
    492. }
    493. $str = '';
    494. foreach($array as $k=>$v){
    495. $str .= $k." = ".$v."\n";
    496. }
    497. if ($handle = fopen($file, 'w')) {
    498. fwrite($handle, $str);
    499. fclose($handle);
    500. } else {
    501. throw new Exception("文件没有写入权限");
    502. }
    503. return true;
    504. }

    七、更多学习目录:

    1.基于ssm的甘肃旅游系统
    2.基于SSM的旅游企业财务管理系统
    3.基于SSM的疫情防疫项目(带爬虫)
    4.基于springboot的人力资源管理系统
    5.基于SSM的民生置业有限公司信息管理系统
    6.基于ssm的在线挂号小程序系统
    7.基于Java(spring boot框架)新冠疫苗预约管理系统
    8.基于SSM的校园小助手系统
    9.基于springboot的点餐小程序系统
    10.基于ssm的健康食谱推荐小程序
    11.基于ssm的健康食谱小程序
    12.基于ssm的二手汽车拍卖系统小程序
    13.基于ssm的二手汽车拍卖系统app
    14.基于springboot的客户关系管理系统
    15.基于SSM的校园活动管理小程序
    16.基于SSM的个人健康饮食管理小程序系统
    17.基于ssm的微信小程序水果商城
    18.基于微信小程序的一起运动吧活动管理系统
    19.基于springboot的微信小程序的在线商城系统(根据收藏类别推荐+点击率推荐)
    20.基于SSM新闻网站
    21.基于ssm的在线租房网站
    22.基于springboot的中学校园管理微信小程序
    23.基于Springboot学生在线考试系统
    24.基于SSM的网上奶茶购买平台 
    25.基于springboot的高校社团管理系统(多用户角色)
    26.基于springboot个性化学习推荐网站
    27.基于微信小程序的西藏特产在线商城系统
    28.基于SSM的微信小程序的查寝系统
    29.基于ssm的微信小程序的口袋故事系统
    30.基于SSM的小区物业管理系统
    31.基于SSM的小程序任务调度管理信息系统
    32.基于SSM的团员信息管理系统
    33.基于SSM框架的法律学习小程序
    34.基于springboot的学校监考小程序
    35.基于SSM的超市财务管理系统 
    36.基于springboot的学生宿舍管理系统
    37.基于SSM的课程设计管理系统
    38.基于SSM的课设管理小程序
    39.基于springboot的果蔬交易与物流微信小程序
    40.基于ssm的果蔬交易与物流微信小程序
    41.基于SSM的红色文化展示小程序系统
    42.基于SSM的小区物业管理系统
    43.基于javaweb的机械博物馆展品管理系统
    44.基于springboot的实验室设备管理系统
    45.基于SSM企业人力资源管理系统
    46.基于springboot的实验室物资管理小程序
    47.基于springboot的高校选课系统
    48.基于SSM小程序蔬菜水果零食销售系统
    49.基于SSM的园第二课堂小程序
    50.基于ssm的全球地震数据信息管理系统
    51.基于ssm的足球联赛管理系统
    52.基于SSM的小程序的人工智能类竞赛管理系统
    53.基于SSM的智慧医疗问诊小程序
    54.基于SSM的微信小程序直播在线教育平台
    55.基于springboot+爬虫的新闻网站系统
    56.基于SSM的自驾游小程序
    57.基于SSM的高校宿舍管理小程序系统
    58.基于SSM的微信小程序在线学习平台
    59.基于Android的防疫信息管理系统
    60.基于springboot的患者术后康复的小程序
    61.基于ssm微信小程序的校园换物系统
    62.基于SSM微信小程序的智慧党史系统
    63.基于SSM的家庭理财系统
    64.基于SSM的高校学籍信息管理系统
    65.基于SSM微信小程序的航班查询和订票系统
    66.基于ssm的医院挂号系统
    67.基于SSM的在线阅读系统
    68.基于SSM的疫情社区物资配送系统
    69.基于ssm的加油服务系统小程序系统
    70.基于ssm的XX学院校友录小程序系统
    71.基于ssm的药店管理系统微信小程序系统
    72.基于ssm的装潢应用系统小程序系统
    73.基于ssm的学生公寓生活管理系统
    74.基于ssm的计算机维修服务微信小程序
    75.基于ssm的微信音乐播放器小程序
    76.基于ssm的中医药配方小程序
    77.基于ssm的二手交易微信小程序
    78.基于ssm的的家教信息小程序管理系统
    79.基于ssm的鲜花销售小程序系统
    80.基于ssm的预约挂号小程序系统
    81.基于ssm的在线考试小程序系统
    82.基于ssm的慢性疾病管理微信小程序
    83.基于springboot的在线考试系统小程序
    84.基于springboot的批发零售业商品管理小程序系统
    85.基于ssm的图书借阅到期提醒小程序系统
    86.基于springboot的服装企业人事管理小程序系统
    87.基于nodejs的电商管理系统
    88.基于nodejs的知识分享网站
    89.基于nodejs的宠物医生预约平台
    90.基于nodejs的外卖平台
    91.基于nodejs的大学生心理咨询微信小程序
    92.基于nodejs的房屋租赁管理系统
    93.基于nodejs的拼车网站
    94.基于nodejs的博客系统
    95.基于nodejs的家政服务微信小程序
    96.基于nodejs的物物交换平台
    97.基于php的实验室安全系统
    98.基于php的单招志愿采集系统
    99.基于php的网上买卖管理系统
    100.基于php的XX学院兼职小程序系统
    101.基于php的计算机信息管理学院网站
    102.基于python+Django图书馆智能推荐系统python3.85版本
    103.基于Python的个性化电影推荐的算法
    104.基于python+django图书推荐系统
    105.基于Python的个性化电影推荐的算法
    106.基于django的爬虫新闻网站系统
    107.基于Python的人事档案管理系统 
    108.基于python的汽车销售系统
    109.基于python的《C语言程序设计》课程案例库研究
    110.基于python的飞机票销售系统
    111.基于python的旧衣物捐赠系统
    112.基于python的超市进销存
    113.基于python的在线办公系统
    114.基于python的大学生职业推荐平台
    115.基于python的个性化服装系统
    116.基于python的酒店住房管理系统
    117.基于python的三甲妇幼保健院网站
    118.基于python的大学生生活信息交互平台
    119.基于python的学生兼职平台系统
    120.基于python的主机硬件配置推荐系统
    121.基于python的本地健康宝微信小程序
    122.基于python的鲜花销售小程序
    123.基于JSP的网上订餐管理系统
    124.基于jAVAWeb停车场管理系统
    125.基于SSM幼儿园信息管理系统
    126.基于Springboot电影订票系统
    127.基于ssm人力资源考勤系统
    128.基于javaweb作业管理系统
    129.基于javaweb校园二手物品交易
    130.基于javaweb的停车场管理系统
    131.基于javaweb学生选课系统
    132.基于SSM实现的人力资源管理系统
    133.基于javaweb项目疫情宿舍管理
    134.基于SSM的图书商城系统
    135.基于ssm的微信小程序家教系统
    136.基于ssm的旅游管理系统travel
    137.基于SSM的微信小程序图书借阅系统
    138.基于web的微信小程序家政预约系统
    139.基于web的微信小程序菜谱系统
    140.基于web的微信小程序服装商城系统
    141.基于web的微信小程序校园活动管理系统
    142.基于web的微信小程序记事本系统
    143.基于ssm的基于微信小程序的农产品销售系统
    144.基于ssm的微信小程序旅游服务系统
    145.基于springboot的微信小程序在线考试管理系统
    146.基于ssm的微信小程序电影院购票系统
    147.基于ssm的微信小程序房屋交易系统
    148.基于ssm的微信小程序培训机构管理系统
    149.基于web的微信小程序电影购票系统
    150.基于ssm的酒店管理系统
    151.基于javaweb点餐系统
    152.基于javaweb宿舍管理系统
    153.基于springboot的信息化管理系统
    154.基于SSM的美妆商城系统
    155.基于javaweb学生成绩管理系
    156.基于SSM的新闻发布系统
    157.基于SSM实现的小区物业管理系统
    158.基于SSH的城市公交查询系统
    159.基于S2SH的人力资源管理系统
    160.基于S2SH酒店点餐收款系统
    161.基于JSP的在线调查问卷系统
    162.基于JSP的网上订餐管理系统
    163.基于JSP实现的飞机票售票管理系统
    164.基于SSM农场信息管理系统
    165.基于javaweb花店管理系统
    166.基于javaweb药房库存管理系统
    167.基于SSM的甜品店系统
    168.基于S2SH的药膳馆会员管理系统
    169.基于javaweb的学籍管理系统
    170.基于web的网上书城系统
    171.基于web的学生成绩系统
    172.基于SSH的客运站网上售票系统
    173.基于S2SH校园论坛系统
    174.基于javaweb旅游管理系统
    175.基于SSH的旅游管理系统
    176.基于SSM垃圾分类管理系统
    177.基于ssm宠物销售系统
    178.基于javaweb的在线人才招聘系统
    179.基于S2SH小区物业系统
    180.基于ssm人事管理系统
    181.基于web的淘淘商城系统

    八、互动留言

  • 相关阅读:
    关于图灵测试和中文屋Chinese room的理解
    ps神经网络滤镜安装包,ai神经网络滤镜安装包
    Go 之为什么 rune 是 int32 的别名而不是 uint32 的别名
    抢先体验! 在浏览器里写 Flutter 是一种什么体验?
    C 嵌入式系统设计模式 17:静态优先级模式
    提升生产力:是时候升级你的命令行工具了
    vue 封装菜单组件 来回跳转使菜单高亮
    模型训练前后显卡占用对比、多卡训练GPU占用分析【一文读懂】
    BP神经网络算法基本原理,bp神经网络算法的优点
    Redis-02
  • 原文地址:https://blog.csdn.net/aicood/article/details/126082994