国产 无码 综合区,色欲AV无码国产永久播放,无码天堂亚洲国产AV,国产日韩欧美女同一区二区

基于SpringBoot+Bootstrap的旅游管理系統(tǒng)的設(shè)計(jì)與實(shí)現(xiàn)

這篇具有很好參考價(jià)值的文章主要介紹了基于SpringBoot+Bootstrap的旅游管理系統(tǒng)的設(shè)計(jì)與實(shí)現(xiàn)。希望對大家有所幫助。如果存在錯(cuò)誤或未考慮完全的地方,請大家不吝賜教,您也可以點(diǎn)擊"舉報(bào)違法"按鈕提交疑問。

目錄

前言

?一、技術(shù)棧

二、系統(tǒng)功能介紹

登錄模塊的實(shí)現(xiàn)

景點(diǎn)信息管理界面

訂票信息管理界面

用戶評(píng)價(jià)管理界面

用戶管理界面

景點(diǎn)資訊界面

系統(tǒng)主界面

用戶注冊界面

景點(diǎn)信息詳情界面

訂票信息界面

三、核心代碼

1、登錄模塊

?2、文件上傳模塊

3、代碼封裝


前言

隨著旅游業(yè)的迅速發(fā)展,傳統(tǒng)的旅游信息查詢方式,已經(jīng)無法滿足用戶需求,因此,結(jié)合計(jì)算機(jī)技術(shù)的優(yōu)勢和普及,針對常州旅游,特開發(fā)了本基于Bootstrap的常州地方旅游管理系統(tǒng)。

本論文首先對常州地方旅游管理系統(tǒng)進(jìn)行需求分析,從系統(tǒng)開發(fā)環(huán)境、系統(tǒng)目標(biāo)、設(shè)計(jì)流程、功能設(shè)計(jì)等幾個(gè)方面進(jìn)行系統(tǒng)的總體設(shè)計(jì),開發(fā)出本基于Bootstrap的常州地方旅游管理系統(tǒng),主要實(shí)現(xiàn)了用戶功能模塊和管理員功能模塊兩大部分,用戶可查看景點(diǎn)信息、景點(diǎn)資訊等,注冊登錄后可進(jìn)行景點(diǎn)訂票操作,同時(shí)管理員可進(jìn)入系統(tǒng)后臺(tái)對系統(tǒng)進(jìn)行全面管理操作。通過對系統(tǒng)的功能進(jìn)行測試,測試結(jié)果證明該系統(tǒng)界面友好、功能完善,有著較高的使用價(jià)值,具有龐大的潛在用戶群體和較廣闊的應(yīng)用前景。

本常州地方旅游管理系統(tǒng)基于Springboot+Bootstrap框架、JAVA編程語言、MYSQL數(shù)據(jù)庫開發(fā)完成,“操作簡單,功能實(shí)用”這是本軟件設(shè)計(jì)的核心理念,本系統(tǒng)力求創(chuàng)造最好的用戶體驗(yàn)。

?一、技術(shù)棧

末尾獲取源碼
SpringBoot+Vue+JS+?jQuery+Ajax...

二、系統(tǒng)功能介紹

登錄模塊的實(shí)現(xiàn)

用戶要想進(jìn)入本系統(tǒng),必須通過正確的用戶名和密碼,選擇登錄類型進(jìn)行登錄操作,在登錄時(shí)系統(tǒng)會(huì)以用戶名、密碼和登錄類型為參數(shù)進(jìn)行登錄信息的驗(yàn)證,信息正確則登錄進(jìn)入對應(yīng)用戶功能界面可進(jìn)行功能處理,反之登錄失敗。

基于SpringBoot+Bootstrap的旅游管理系統(tǒng)的設(shè)計(jì)與實(shí)現(xiàn),bootstrap,旅游,前端,spring boot,后端,java,微服務(wù)

景點(diǎn)信息管理界面

管理員可添加、修改和刪除景點(diǎn)信息信息。

基于SpringBoot+Bootstrap的旅游管理系統(tǒng)的設(shè)計(jì)與實(shí)現(xiàn),bootstrap,旅游,前端,spring boot,后端,java,微服務(wù)

基于SpringBoot+Bootstrap的旅游管理系統(tǒng)的設(shè)計(jì)與實(shí)現(xiàn),bootstrap,旅游,前端,spring boot,后端,java,微服務(wù)?

訂票信息管理界面

管理員可查看所有訂票信息,并可的前進(jìn)行修改和刪除操作。

基于SpringBoot+Bootstrap的旅游管理系統(tǒng)的設(shè)計(jì)與實(shí)現(xiàn),bootstrap,旅游,前端,spring boot,后端,java,微服務(wù)

用戶評(píng)價(jià)管理界面

管理員可查看用戶評(píng)價(jià)信息,并可對其進(jìn)行審核、修改和刪除操作

基于SpringBoot+Bootstrap的旅游管理系統(tǒng)的設(shè)計(jì)與實(shí)現(xiàn),bootstrap,旅游,前端,spring boot,后端,java,微服務(wù)?

用戶管理界面

管理員可查看、添加、修改和刪除用戶信息

基于SpringBoot+Bootstrap的旅游管理系統(tǒng)的設(shè)計(jì)與實(shí)現(xiàn),bootstrap,旅游,前端,spring boot,后端,java,微服務(wù)

景點(diǎn)資訊界面

管理員可增刪改查景點(diǎn)資訊信息

基于SpringBoot+Bootstrap的旅游管理系統(tǒng)的設(shè)計(jì)與實(shí)現(xiàn),bootstrap,旅游,前端,spring boot,后端,java,微服務(wù)?

系統(tǒng)主界面

用戶進(jìn)入本系統(tǒng)可查看系統(tǒng)信息,包括網(wǎng)站首頁、景點(diǎn)信息以及景點(diǎn)資訊等

基于SpringBoot+Bootstrap的旅游管理系統(tǒng)的設(shè)計(jì)與實(shí)現(xiàn),bootstrap,旅游,前端,spring boot,后端,java,微服務(wù)

用戶注冊界面

未有賬號(hào)的用戶可進(jìn)入注冊界面進(jìn)行注冊操作

基于SpringBoot+Bootstrap的旅游管理系統(tǒng)的設(shè)計(jì)與實(shí)現(xiàn),bootstrap,旅游,前端,spring boot,后端,java,微服務(wù)?

景點(diǎn)信息詳情界面

用戶可選擇景點(diǎn)信息查看景點(diǎn)信息詳情信息,登錄后可進(jìn)行訂票操作。

基于SpringBoot+Bootstrap的旅游管理系統(tǒng)的設(shè)計(jì)與實(shí)現(xiàn),bootstrap,旅游,前端,spring boot,后端,java,微服務(wù)

訂票信息界面

用戶可查看個(gè)人訂票信息,并可選擇進(jìn)行支付或者評(píng)價(jià)操作。

基于SpringBoot+Bootstrap的旅游管理系統(tǒng)的設(shè)計(jì)與實(shí)現(xiàn),bootstrap,旅游,前端,spring boot,后端,java,微服務(wù)

基于SpringBoot+Bootstrap的旅游管理系統(tǒng)的設(shè)計(jì)與實(shí)現(xiàn),bootstrap,旅游,前端,spring boot,后端,java,微服務(wù)?文章來源地址http://www.zghlxwxcb.cn/news/detail-729092.html

三、核心代碼

1、登錄模塊

 
package com.controller;
 
 
import java.util.Arrays;
import java.util.Calendar;
import java.util.Date;
import java.util.Map;
 
import javax.servlet.http.HttpServletRequest;
 
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Controller;
import org.springframework.web.bind.annotation.GetMapping;
import org.springframework.web.bind.annotation.PathVariable;
import org.springframework.web.bind.annotation.PostMapping;
import org.springframework.web.bind.annotation.RequestBody;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RequestParam;
import org.springframework.web.bind.annotation.ResponseBody;
import org.springframework.web.bind.annotation.RestController;
 
import com.annotation.IgnoreAuth;
import com.baomidou.mybatisplus.mapper.EntityWrapper;
import com.entity.TokenEntity;
import com.entity.UserEntity;
import com.service.TokenService;
import com.service.UserService;
import com.utils.CommonUtil;
import com.utils.MD5Util;
import com.utils.MPUtil;
import com.utils.PageUtils;
import com.utils.R;
import com.utils.ValidatorUtils;
 
/**
 * 登錄相關(guān)
 */
@RequestMapping("users")
@RestController
public class UserController{
	
	@Autowired
	private UserService userService;
	
	@Autowired
	private TokenService tokenService;
 
	/**
	 * 登錄
	 */
	@IgnoreAuth
	@PostMapping(value = "/login")
	public R login(String username, String password, String captcha, HttpServletRequest request) {
		UserEntity user = userService.selectOne(new EntityWrapper<UserEntity>().eq("username", username));
		if(user==null || !user.getPassword().equals(password)) {
			return R.error("賬號(hào)或密碼不正確");
		}
		String token = tokenService.generateToken(user.getId(),username, "users", user.getRole());
		return R.ok().put("token", token);
	}
	
	/**
	 * 注冊
	 */
	@IgnoreAuth
	@PostMapping(value = "/register")
	public R register(@RequestBody UserEntity user){
//    	ValidatorUtils.validateEntity(user);
    	if(userService.selectOne(new EntityWrapper<UserEntity>().eq("username", user.getUsername())) !=null) {
    		return R.error("用戶已存在");
    	}
        userService.insert(user);
        return R.ok();
    }
 
	/**
	 * 退出
	 */
	@GetMapping(value = "logout")
	public R logout(HttpServletRequest request) {
		request.getSession().invalidate();
		return R.ok("退出成功");
	}
	
	/**
     * 密碼重置
     */
    @IgnoreAuth
	@RequestMapping(value = "/resetPass")
    public R resetPass(String username, HttpServletRequest request){
    	UserEntity user = userService.selectOne(new EntityWrapper<UserEntity>().eq("username", username));
    	if(user==null) {
    		return R.error("賬號(hào)不存在");
    	}
    	user.setPassword("123456");
        userService.update(user,null);
        return R.ok("密碼已重置為:123456");
    }
	
	/**
     * 列表
     */
    @RequestMapping("/page")
    public R page(@RequestParam Map<String, Object> params,UserEntity user){
        EntityWrapper<UserEntity> ew = new EntityWrapper<UserEntity>();
    	PageUtils page = userService.queryPage(params, MPUtil.sort(MPUtil.between(MPUtil.allLike(ew, user), params), params));
        return R.ok().put("data", page);
    }
 
	/**
     * 列表
     */
    @RequestMapping("/list")
    public R list( UserEntity user){
       	EntityWrapper<UserEntity> ew = new EntityWrapper<UserEntity>();
      	ew.allEq(MPUtil.allEQMapPre( user, "user")); 
        return R.ok().put("data", userService.selectListView(ew));
    }
 
    /**
     * 信息
     */
    @RequestMapping("/info/{id}")
    public R info(@PathVariable("id") String id){
        UserEntity user = userService.selectById(id);
        return R.ok().put("data", user);
    }
    
    /**
     * 獲取用戶的session用戶信息
     */
    @RequestMapping("/session")
    public R getCurrUser(HttpServletRequest request){
    	Long id = (Long)request.getSession().getAttribute("userId");
        UserEntity user = userService.selectById(id);
        return R.ok().put("data", user);
    }
 
    /**
     * 保存
     */
    @PostMapping("/save")
    public R save(@RequestBody UserEntity user){
//    	ValidatorUtils.validateEntity(user);
    	if(userService.selectOne(new EntityWrapper<UserEntity>().eq("username", user.getUsername())) !=null) {
    		return R.error("用戶已存在");
    	}
        userService.insert(user);
        return R.ok();
    }
 
    /**
     * 修改
     */
    @RequestMapping("/update")
    public R update(@RequestBody UserEntity user){
//        ValidatorUtils.validateEntity(user);
        userService.updateById(user);//全部更新
        return R.ok();
    }
 
    /**
     * 刪除
     */
    @RequestMapping("/delete")
    public R delete(@RequestBody Long[] ids){
        userService.deleteBatchIds(Arrays.asList(ids));
        return R.ok();
    }
}

?2、文件上傳模塊

package com.controller;
 
import java.io.File;
import java.io.FileNotFoundException;
import java.io.IOException;
import java.util.Arrays;
import java.util.Date;
import java.util.HashMap;
import java.util.List;
import java.util.Map;
import java.util.Random;
import java.util.UUID;
 
import org.apache.commons.io.FileUtils;
import org.apache.commons.lang3.StringUtils;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.http.HttpHeaders;
import org.springframework.http.HttpStatus;
import org.springframework.http.MediaType;
import org.springframework.http.ResponseEntity;
import org.springframework.util.ResourceUtils;
import org.springframework.web.bind.annotation.PathVariable;
import org.springframework.web.bind.annotation.RequestBody;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RequestParam;
import org.springframework.web.bind.annotation.RestController;
import org.springframework.web.multipart.MultipartFile;
 
import com.annotation.IgnoreAuth;
import com.baomidou.mybatisplus.mapper.EntityWrapper;
import com.entity.ConfigEntity;
import com.entity.EIException;
import com.service.ConfigService;
import com.utils.R;
 
/**
 * 上傳文件映射表
 */
@RestController
@RequestMapping("file")
@SuppressWarnings({"unchecked","rawtypes"})
public class FileController{
	@Autowired
    private ConfigService configService;
	/**
	 * 上傳文件
	 */
	@RequestMapping("/upload")
	public R upload(@RequestParam("file") MultipartFile file,String type) throws Exception {
		if (file.isEmpty()) {
			throw new EIException("上傳文件不能為空");
		}
		String fileExt = file.getOriginalFilename().substring(file.getOriginalFilename().lastIndexOf(".")+1);
		File path = new File(ResourceUtils.getURL("classpath:static").getPath());
		if(!path.exists()) {
		    path = new File("");
		}
		File upload = new File(path.getAbsolutePath(),"/upload/");
		if(!upload.exists()) {
		    upload.mkdirs();
		}
		String fileName = new Date().getTime()+"."+fileExt;
		File dest = new File(upload.getAbsolutePath()+"/"+fileName);
		file.transferTo(dest);
		FileUtils.copyFile(dest, new File("C:\\Users\\Desktop\\jiadian\\springbootl7own\\src\\main\\resources\\static\\upload"+"/"+fileName));
		if(StringUtils.isNotBlank(type) && type.equals("1")) {
			ConfigEntity configEntity = configService.selectOne(new EntityWrapper<ConfigEntity>().eq("name", "faceFile"));
			if(configEntity==null) {
				configEntity = new ConfigEntity();
				configEntity.setName("faceFile");
				configEntity.setValue(fileName);
			} else {
				configEntity.setValue(fileName);
			}
			configService.insertOrUpdate(configEntity);
		}
		return R.ok().put("file", fileName);
	}
	
	/**
	 * 下載文件
	 */
	@IgnoreAuth
	@RequestMapping("/download")
	public ResponseEntity<byte[]> download(@RequestParam String fileName) {
		try {
			File path = new File(ResourceUtils.getURL("classpath:static").getPath());
			if(!path.exists()) {
			    path = new File("");
			}
			File upload = new File(path.getAbsolutePath(),"/upload/");
			if(!upload.exists()) {
			    upload.mkdirs();
			}
			File file = new File(upload.getAbsolutePath()+"/"+fileName);
			if(file.exists()){
				/*if(!fileService.canRead(file, SessionManager.getSessionUser())){
					getResponse().sendError(403);
				}*/
				HttpHeaders headers = new HttpHeaders();
			    headers.setContentType(MediaType.APPLICATION_OCTET_STREAM);    
			    headers.setContentDispositionFormData("attachment", fileName);    
			    return new ResponseEntity<byte[]>(FileUtils.readFileToByteArray(file),headers, HttpStatus.CREATED);
			}
		} catch (IOException e) {
			e.printStackTrace();
		}
		return new ResponseEntity<byte[]>(HttpStatus.INTERNAL_SERVER_ERROR);
	}
	
}

3、代碼封裝

package com.utils;
 
import java.util.HashMap;
import java.util.Map;
 
/**
 * 返回?cái)?shù)據(jù)
 */
public class R extends HashMap<String, Object> {
	private static final long serialVersionUID = 1L;
	
	public R() {
		put("code", 0);
	}
	
	public static R error() {
		return error(500, "未知異常,請聯(lián)系管理員");
	}
	
	public static R error(String msg) {
		return error(500, msg);
	}
	
	public static R error(int code, String msg) {
		R r = new R();
		r.put("code", code);
		r.put("msg", msg);
		return r;
	}
 
	public static R ok(String msg) {
		R r = new R();
		r.put("msg", msg);
		return r;
	}
	
	public static R ok(Map<String, Object> map) {
		R r = new R();
		r.putAll(map);
		return r;
	}
	
	public static R ok() {
		return new R();
	}
 
	public R put(String key, Object value) {
		super.put(key, value);
		return this;
	}
}

到了這里,關(guān)于基于SpringBoot+Bootstrap的旅游管理系統(tǒng)的設(shè)計(jì)與實(shí)現(xiàn)的文章就介紹完了。如果您還想了解更多內(nèi)容,請?jiān)谟疑辖撬阉鱐OY模板網(wǎng)以前的文章或繼續(xù)瀏覽下面的相關(guān)文章,希望大家以后多多支持TOY模板網(wǎng)!

本文來自互聯(lián)網(wǎng)用戶投稿,該文觀點(diǎn)僅代表作者本人,不代表本站立場。本站僅提供信息存儲(chǔ)空間服務(wù),不擁有所有權(quán),不承擔(dān)相關(guān)法律責(zé)任。如若轉(zhuǎn)載,請注明出處: 如若內(nèi)容造成侵權(quán)/違法違規(guī)/事實(shí)不符,請點(diǎn)擊違法舉報(bào)進(jìn)行投訴反饋,一經(jīng)查實(shí),立即刪除!

領(lǐng)支付寶紅包贊助服務(wù)器費(fèi)用

相關(guān)文章

  • 基于Springboot的旅游網(wǎng)管理系統(tǒng)后臺(tái)

    基于Springboot的旅游網(wǎng)管理系統(tǒng)后臺(tái)

    旅游作為一種經(jīng)濟(jì)活動(dòng),已經(jīng)成為世界經(jīng)濟(jì)中不可或缺的一部分。旅游業(yè)的快速發(fā)展,使得旅游產(chǎn)品和服務(wù)的供應(yīng)和需求日益增加,其中旅游網(wǎng)站起著至關(guān)重要的作用。近年來,隨著移動(dòng)互聯(lián)網(wǎng)的普及和技術(shù)的進(jìn)步,旅游網(wǎng)站不斷創(chuàng)新和發(fā)展,為旅游市場的發(fā)展貢獻(xiàn)了巨大的

    2024年02月04日
    瀏覽(27)
  • 基于Springboot+thymeleaf旅游景區(qū)管理系統(tǒng)——LW模板

    基于java的旅游管理系統(tǒng) 隨著我國經(jīng)濟(jì)的快速發(fā)展以及改革開放政策的不斷完善,旅游已經(jīng)成為了人們假期放松旅游的主要方式之一。我國也越來越重視旅游業(yè)的發(fā)展,出臺(tái)了《關(guān)于促進(jìn)全域旅游發(fā)展的指導(dǎo)意見》、《“十四五”文化和旅游發(fā)展規(guī)劃》等政策予以扶持。旅游

    2024年02月11日
    瀏覽(23)
  • 基于web的旅游管理系統(tǒng)/旅游網(wǎng)站的設(shè)計(jì)與實(shí)現(xiàn)

    基于web的旅游管理系統(tǒng)/旅游網(wǎng)站的設(shè)計(jì)與實(shí)現(xiàn)

    隨著計(jì)算機(jī)技術(shù),網(wǎng)絡(luò)技術(shù)的迅猛發(fā)展,Internet 的不斷普及,網(wǎng)絡(luò)在各個(gè)領(lǐng)域里發(fā)揮了越來越重要的作用。特別是隨著近年人民生活水平不斷提高,在線旅游給 景區(qū)商家 的 業(yè)務(wù) 帶來了更大的發(fā)展機(jī)遇。 在經(jīng)濟(jì)快速發(fā)展的帶動(dòng)下,旅游業(yè)的發(fā)展 也是越來越快速。 人們對旅游

    2024年02月12日
    瀏覽(19)
  • Java旅游網(wǎng)站管理系統(tǒng)設(shè)計(jì)與實(shí)現(xiàn)(Idea+Springboot+mysql)

    Java旅游網(wǎng)站管理系統(tǒng)設(shè)計(jì)與實(shí)現(xiàn)(Idea+Springboot+mysql)

    ?博主介紹 :黃菊華老師《Vue.js入門與商城開發(fā)實(shí)戰(zhàn)》《微信小程序商城開發(fā)》圖書作者,CSDN博客專家,在線教育專家,CSDN鉆石講師;專注大學(xué)生畢業(yè)設(shè)計(jì)教育和輔導(dǎo)。 所有項(xiàng)目都配有從入門到精通的基礎(chǔ)知識(shí)視頻課程,學(xué)習(xí)后應(yīng)對畢業(yè)設(shè)計(jì)答辯。 項(xiàng)目配有對應(yīng)開發(fā)文檔、

    2024年03月08日
    瀏覽(27)
  • 基于java旅游網(wǎng)站管理系統(tǒng)(springboot框架)開題答辯常規(guī)問題

    ?博主介紹 :黃菊華老師《Vue.js入門與商城開發(fā)實(shí)戰(zhàn)》《微信小程序商城開發(fā)》圖書作者,CSDN博客專家,在線教育專家,CSDN鉆石講師;專注大學(xué)生畢業(yè)設(shè)計(jì)教育和輔導(dǎo)。 所有項(xiàng)目都配有從入門到精通的基礎(chǔ)知識(shí)視頻課程,免費(fèi) 項(xiàng)目配有對應(yīng)開發(fā)文檔、開題報(bào)告、任務(wù)書、

    2024年01月21日
    瀏覽(37)
  • 基于SpringBoot的旅游路線管理系統(tǒng)(源碼+講解+運(yùn)行)做畢設(shè)/課設(shè)均可

    基于SpringBoot的旅游路線管理系統(tǒng)(源碼+講解+運(yùn)行)做畢設(shè)/課設(shè)均可

    【畢設(shè)者】基于SpringBoot的無忌旅游路線規(guī)劃系統(tǒng) (源碼+講解+幫你調(diào)試運(yùn)行)做畢設(shè)課設(shè)均可 今日推薦個(gè)每個(gè) 功能都有講解 的項(xiàng)目,最后評(píng)論區(qū)會(huì)附上觀看地址 前后端分離 前端使用: Vue+ Element Plus 后端使用: SpringBoot + Mysql8.0 +Mybatis ? ? 分為 管理員端 和 用戶端 ? ? ? 評(píng)論區(qū)

    2024年02月09日
    瀏覽(24)
  • 基于小程序的個(gè)人旅游管理系統(tǒng)的設(shè)計(jì)與實(shí)現(xiàn)-附源碼75806

    基于小程序的個(gè)人旅游管理系統(tǒng)的設(shè)計(jì)與實(shí)現(xiàn)-附源碼75806

    在社會(huì)快速發(fā)展和人們生活水平提高的影響下,旅游產(chǎn)業(yè)蓬勃發(fā)展,旅游形式也變得多樣化,使個(gè)人旅游的管理變得比過去更加困難。依照這一現(xiàn)實(shí)為基礎(chǔ),設(shè)計(jì)一個(gè)快捷而又方便的基于小程序的個(gè)人旅游管理系統(tǒng)是一項(xiàng)十分重要并且有價(jià)值的事情。對于傳統(tǒng)的旅游攻略管理

    2024年02月02日
    瀏覽(24)
  • 案例102:基于微信小程序的旅游社交管理系統(tǒng)設(shè)計(jì)與實(shí)現(xiàn)

    案例102:基于微信小程序的旅游社交管理系統(tǒng)設(shè)計(jì)與實(shí)現(xiàn)

    文末獲取源碼 開發(fā)語言:Java 框架:SSM JDK版本:JDK1.8 數(shù)據(jù)庫:mysql 5.7 開發(fā)軟件:eclipse/myeclipse/idea Maven包:Maven3.5.4 小程序框架:uniapp 小程序開發(fā)軟件:HBuilder X 小程序運(yùn)行軟件:微信開發(fā)者 目錄 前言 系統(tǒng)展示 后臺(tái)模塊的實(shí)現(xiàn) 用戶信息管理 景點(diǎn)推薦管理 分享圈管理 美食

    2024年01月20日
    瀏覽(29)
  • 基于小程序的個(gè)人旅游管理系統(tǒng)的 計(jì)算機(jī)專業(yè)畢業(yè)設(shè)計(jì)源碼75806

    基于小程序的個(gè)人旅游管理系統(tǒng)的 計(jì)算機(jī)專業(yè)畢業(yè)設(shè)計(jì)源碼75806

    摘要 在社會(huì)快速發(fā)展和人們生活水平提高的影響下,旅游產(chǎn)業(yè)蓬勃發(fā)展,旅游形式也變得多樣化,使個(gè)人旅游的管理變得比過去更加困難。依照這一現(xiàn)實(shí)為基礎(chǔ),設(shè)計(jì)一個(gè)快捷而又方便的基于小程序的個(gè)人旅游管理系統(tǒng)是一項(xiàng)十分重要并且有價(jià)值的事情。對于傳統(tǒng)的旅游攻略

    2024年01月15日
    瀏覽(17)
  • 基于小程序的個(gè)人旅游管理系統(tǒng)的設(shè)計(jì)與實(shí)現(xiàn) 計(jì)算機(jī)專業(yè)畢業(yè)設(shè)計(jì)源碼75806

    基于小程序的個(gè)人旅游管理系統(tǒng)的設(shè)計(jì)與實(shí)現(xiàn) 計(jì)算機(jī)專業(yè)畢業(yè)設(shè)計(jì)源碼75806

    摘要 在社會(huì)快速發(fā)展和人們生活水平提高的影響下,旅游產(chǎn)業(yè)蓬勃發(fā)展,旅游形式也變得多樣化,使個(gè)人旅游的管理變得比過去更加困難。依照這一現(xiàn)實(shí)為基礎(chǔ),設(shè)計(jì)一個(gè)快捷而又方便的基于小程序的個(gè)人旅游管理系統(tǒng)是一項(xiàng)十分重要并且有價(jià)值的事情。對于傳統(tǒng)的旅游攻略

    2024年02月04日
    瀏覽(22)

覺得文章有用就打賞一下文章作者

支付寶掃一掃打賞

博客贊助

微信掃一掃打賞

請作者喝杯咖啡吧~博客贊助

支付寶掃一掃領(lǐng)取紅包,優(yōu)惠每天領(lǐng)

二維碼1

領(lǐng)取紅包

二維碼2

領(lǐng)紅包