计算机毕业设计选题推荐-短文写作竞赛微信小程序/安卓APP-项目实战

news2024/11/17 19:37:59

作者主页:IT毕设梦工厂✨
个人简介:曾从事计算机专业培训教学,擅长Java、Python、微信小程序、Golang、安卓Android等项目实战。接项目定制开发、代码讲解、答辩教学、文档编写、降重等。
☑文末获取源码☑
精彩专栏推荐⬇⬇⬇
Java项目
Python项目
安卓项目
微信小程序项目

文章目录

  • 一、前言
  • 二、开发环境
  • 三、系统界面展示
  • 四、部分代码设计
  • 五、论文参考
  • 六、系统视频
  • 结语

一、前言

在当今信息化社会,科技和教育的发展日新月异,对人才的培养提出了更高的要求。短文写作能力作为学生的基本素养之一,越来越受到重视。为了提高学生的短文写作水平,各类短文写作竞赛应运而生。然而,如何进行竞赛管理,公平公正地评选作品,成为了一个亟待解决的问题。这正是本课题研究的背景。

当前,短文写作竞赛的管理和评选大多依赖于线下模式,如纸质提交、人工评审等。这种方式存在一些难以避免的问题:一是效率低下,线下操作流程繁琐,费时费力;二是难以保证公平公正,人为因素容易影响评选结果。因此,开发一款基于微信小程序/安卓APP的短文写作竞赛管理系统,具有十分重要的现实意义和必要性。

本课题旨在开发一款基于微信小程序/安卓APP的短文写作竞赛管理系统,主要有以下功能:
竞赛报名:学生可以通过微信小程序/安卓APP在线报名参加竞赛;
提交竞赛成果:学生在规定时间内在线提交自己的短文作品,作品将自动保存并提交至服务器;
评分:评委可以通过微信小程序/安卓APP在线对提交的作品进行评分。

通过本课题的研究,将实现短文写作竞赛的管理和评选过程的公平公正,提高竞赛效果和参与度,同时为其他类似竞赛活动的管理和评选提供参考和借鉴。

二、开发环境

  • 开发语言:Java
  • 数据库:MySQL
  • 后端:SpringBoot
  • 前端:微信小程序/android+uniapp+Vue

三、系统界面展示

  • 短文写作竞赛微信小程序/安卓APP界面展示:
    短文写作竞赛微信小程序/安卓APP-竞赛信息
    短文写作竞赛微信小程序/安卓APP-禁赛详情
    短文写作竞赛微信小程序/安卓APP-竞赛成果信息
    短文写作竞赛微信小程序/安卓APP-竞赛成果提交
    短文写作竞赛微信小程序/安卓APP-竞赛报名管理
    短文写作竞赛微信小程序/安卓APP-竞赛成果管理
    短文写作竞赛微信小程序/安卓APP-专业管理

四、部分代码设计

  • 短文写作竞赛微信小程序/安卓APP项目实战-代码参考:
@RestController
@RequestMapping("/admin")
public class AdminController {
    @Autowired
    private AdminService adminService;

    @Autowired
    private College_CompService college_compService;

    @Autowired
    private CompService compService;

    @Autowired
    private ProjectService projectService;

    @GetMapping("/getUserAdminById")
    public Admin getUserAdminById(@RequestParam int id){
        Admin admin = adminService.getAdminById(id);
        return admin;
    }

    /**
     * 保存或者更新管理员账户
     * @param admin
     * @return
     */
    @PostMapping("/updateAdmin")
    public UserInfo updateAdmin(Admin admin){
        System.out.println(admin.getId());
        return adminService.updateAdmin(admin);
    }

    /**
     * 创建学院账号
     * @param college
     * @return
     */
    @PostMapping("/createCollege")
    public UserInfo createCollege(College college){
        return adminService.createCollege(college);
    }

    /**
     * 得到未处理的比赛申请集合
     * @return
     */
    @PostMapping("/getUndoApplyCompList")
    public List<College_Comp> getUndoApplyCompList(){
        return college_compService.getUndoApplyComp();
    }

    /**
     * 得到已处理的比赛申请集合
     * @return
     */
    @PostMapping("/getDoneApplyCompList")
    public List<College_Comp> getDoneApplyCompList(){
        return college_compService.getDoneApplyComp();
    }

    /**
     * 同意比赛申请
     * @param collegeCompId
     * @return
     */
    @GetMapping("applyComp/{collegeCompId}")
    public CompResult applyComp(@PathVariable Integer collegeCompId){
        return compService.applyComp(collegeCompId);
    }

    /**
     * 拒绝比赛申请
     * @param collegeCompId
     * @return
     */
    @GetMapping("refuseComp/{collegeCompId}")
    public CompResult refuseComp(@PathVariable Integer collegeCompId){
        return compService.refuseComp(collegeCompId);
    }

    /**
     * 得到所有的竞赛项目
     * @return
     */
    @GetMapping("/getAllProjects")
    public List<Project> getAllProjects(){
        List<Project> result=new ArrayList<>();
        List<Project> allProjects = projectService.getAllProjects();
        for (Project allProject : allProjects) {
            if (allProject.getApplyState()==1){
                result.add(allProject);
            }
        }
        return result;
    }

    /**
     * 得到未处理的添加竞赛的申请列表
     * @return
     */
    @GetMapping("/getUndoAddCompList")
    public List<College_Comp> getUndoAddCompList(){
        return college_compService.getUndoAddCompList();
    }

    @GetMapping("/getDoneAddCompList")
    public List<College_Comp> getDoneAddCompList(){
        return college_compService.getDoneAddCompList();
    }

    @GetMapping("/checkComp/{compId}")
    public List<Comp> checkComp(@PathVariable Integer compId){
        List<Comp> compList=new ArrayList<>();
        compList.add(compService.findCompById(compId));
        return compList;
    }

    @GetMapping("/applyAddCommp/{comp_collegeId}")
    public CompResult applyAddCommp(@PathVariable Integer comp_collegeId){
        CompResult compResult=new CompResult();
        College_Comp collegeComp = college_compService.getCollegeComp(comp_collegeId);
        Comp comp = compService.findCompById(collegeComp.getComp().getId());
        comp.setVisiable(true);
        comp.setPublishTime(new Date());
        compService.save(comp);
        collegeComp.setUpdateApplyDate(new Date());
        collegeComp.setApplyOrJoin(5);
        College_Comp save = college_compService.save(collegeComp);
        if(save!=null){
            compResult.setCode(200);
            compResult.setMessage("操作成功!");
        }else {
            compResult.setCode(400);
            compResult.setMessage("操作失败!");
        }
        return compResult;
    }

    @GetMapping("/refuseAddComp/{comp_collegeId}")
    public CompResult refuseAddComp(@PathVariable Integer comp_collegeId){
        CompResult compResult=new CompResult();
        College_Comp collegeComp = college_compService.getCollegeComp(comp_collegeId);
        collegeComp.setApplyOrJoin(6);
        College_Comp save = college_compService.save(collegeComp);
        if(save!=null){
            compResult.setCode(200);
            compResult.setMessage("操作成功!");
        }else {
            compResult.setCode(400);
            compResult.setMessage("操作失败!");
        }
        return compResult;
    }
}
@RestController
@RequestMapping("/student")
public class StudentController {

    @Autowired
    private StudentService studentService;

    @Autowired
    private Student_ProjectService student_projectService;

    @Autowired
    private ProjectService projectService;

    @Autowired
    private UploadFileUtils uploadFileUtils;

    @Autowired
    private WorkFileService workFileService;

    @Autowired
    private WorkService workService;

    private static String OS = System.getProperty("os.name").toLowerCase();

    @Value("${file-upload.image.winUrl}")
    private String winUrl;

    @Value("${file-upload.image.linuxUrl}")
    private String linuxUrl;

    /**
     * 根据老师id得到院内的比赛项目
     */
    @GetMapping("/getProjectByCollegeWithStudent/{studentId}")
    public List<Project> getProjectByCollegeWithStudent(@PathVariable Integer studentId){

        List<Project> projectByCollegeWithStudent = projectService.getProjectByCollegeWithStudent(studentId);
        projectByCollegeWithStudent.sort(Comparator.naturalOrder());
        return projectByCollegeWithStudent;
    }


    /**
     * 学生申请加入项目
     * @param projectId
     * @param studentId
     * @return
     */
    @GetMapping("/applyJoinProject/{projectId}/{studentId}")
    public ProResult applyJoinProject(@PathVariable Integer projectId,@PathVariable Integer studentId){
        return studentService.applyJoinProject(studentId,projectId);
    }

    /**
     * 学生重新申请加入项目
     * @param student_projectd
     * @return
     */
    @GetMapping("/reApplyJoinProject/{student_projectd}")
    public ProResult reApplyJoinProject(@PathVariable Integer student_projectd){
        Integer studentId=student_projectService.getStudentProjectById(student_projectd).getStudent().getId();
        Integer projectId=student_projectService.getStudentProjectById(student_projectd).getProject().getId();
        return studentService.applyJoinProject(studentId,projectId);
    }

    /**
     * 根据学生的id返回学生的未处理的请求
     * @param studentId
     * @return
     */
    @GetMapping("/getUndoApplyProjectList/{studentId}")
    public List<Student_Project> getUndoApplyProjectList(@PathVariable Integer studentId){
        List<Student_Project> undoApplyProjectList = student_projectService.getUndoApplyProjectList(studentId);
        undoApplyProjectList.sort(Comparator.naturalOrder());
        return undoApplyProjectList;
    }

    /**
     * 根据学生的id返回学生的处理过的请求
     * @param studentId
     * @return
     */
    @GetMapping("/getDoneApplyProjectList/{studentId}")
    public List<Student_Project> getDoneApplyProjectList(@PathVariable Integer studentId){
        List<Student_Project> doneApplyProjectList = student_projectService.getDoneApplyProjectList(studentId);
        doneApplyProjectList.sort(Comparator.naturalOrder());
        return doneApplyProjectList;
    }

    /**
     * 得到学生信息
     * @param studentId
     * @return
     */
    @GetMapping("/getStudentInfoById/{studentId}")
    public Student getStudentInfoById(@PathVariable Integer studentId){
        return studentService.getStudentById(studentId);
    }

    /**
     * 更新学生信息
     * @param student
     * @return
     */
    @PostMapping("/updateStudent")
    public UserInfo updateStudent(Student student){
        Integer studentId=student.getId();
        return studentService.updateStudent(student);
    }

    @GetMapping("/exitProject/{studentId}/{projectId}")
    public ProResult exitProject(@PathVariable Integer studentId, @PathVariable Integer projectId){
        return studentService.exitProject(studentId,projectId);
    }

    @PostMapping("/workUpload")
    public ProResult workUpload(@RequestParam(value = "uploadFile") MultipartFile[] uploadFile, Work work,Integer projectId){
        ProResult proResult=new ProResult();
        if(uploadFile==null){
            proResult.setCode(400);
            proResult.setMessage("请添加作品附件!");
            return proResult;
        }
        Project project = projectService.getProjectById(projectId);
        if(project.getWork()!=null){
            work.setId(project.getWork().getId());
        }else {
            work.setApplyDate(new Date());
        }
        String infoPath="/"+project.getCreateByTeacher().getCollege().getNickname()+"/"+project.getComp().getCompName()+"/"+project.getProjectName()+"/";
        List<WorkFile> workFiles = uploadFileUtils.uploadFile(uploadFile, infoPath);
        try {
            work.setIfMark(false);
            work.setProject(project);
            work = workService.save(work);
            for (WorkFile workFile : workFiles) {
                WorkFile workFileById = workFileService.findWorkFileById(workFile.getId());
                workFileById.setWork(work);
                workFileService.save(workFile);
            }
            proResult.setCode(200);
            proResult.setMessage("提交成功!");
        }catch (Exception e){
            proResult.setCode(400);
            proResult.setMessage("提交失败!");
        }
        return proResult;
    }

    @PostMapping("/editWork")
    public ProResult editWork(@RequestParam(value = "workFile") MultipartFile workFile,Integer workFileId) throws FileNotFoundException {
        ProResult proResult=new ProResult();
        String rootBean;
        if(OS.startsWith("win")){
            rootBean=winUrl;
        }else {
            rootBean=linuxUrl;
        }
        WorkFile workFileById = workFileService.findWorkFileById(workFileId);
        Project project = workFileById.getWork().getProject();
        String fileUrl = workFileById.getFileUrl();
        File fileDelete=new File(rootBean+fileUrl);
        fileDelete.delete();
        try {
            String infoPath = "/" + project.getCreateByTeacher().getCollege().getNickname() + "/" + project.getComp().getCompName() + "/" + project.getProjectName() + "/";
            String workPath = uploadFileUtils.uploadWorkFile(workFile, infoPath);
            workFileById.setFileName(workFile.getOriginalFilename());
            workFileById.setFileUrl(workPath);
            workFileService.save(workFileById);
            proResult.setCode(200);
            proResult.setMessage("修改成功!");
            return proResult;
        }catch (Exception e){
            proResult.setCode(400);
            proResult.setMessage("修改失败!");
            return proResult;
        }
    }

    @GetMapping("/deleteWorkFile/{workFileId}")
    public ProResult deleteWorkFile(@PathVariable Integer workFileId){
        ProResult proResult=new ProResult();
        String rootBean;
        if(OS.startsWith("win")){
            rootBean=winUrl;
        }else {
            rootBean=linuxUrl;
        }
        WorkFile workFileById = workFileService.findWorkFileById(workFileId);
        Work work = workFileById.getWork();
        String fileUrl = workFileById.getFileUrl();
        File file=new File(rootBean+fileUrl);
        try {
            file.delete();
            workFileService.delete(workFileId);
            proResult.setCode(200);
            proResult.setMessage("删除成功!");
            return proResult;
        }catch (Exception e){
            proResult.setCode(400);
            proResult.setMessage("删除失败!");
            return proResult;
        }



    }

    /**
     * 没有提交做作品的
     * @param studentId
     * @return
     */
    @GetMapping("/getUnHandOutWorks/{studentId}")
    public List<Project> getUnHandOutWorks(@PathVariable Integer studentId){
        List<Project> projectList=new ArrayList<>();
        List<Project> projectByCollegeWithStudent = projectService.getStudentProjects(studentId);
        for (Project project : projectByCollegeWithStudent) {
            Integer compState = project.getComp().getCompState();
            if(compState<3&&project.getWork()==null){
                projectList.add(project);
            }
        }
        return projectList;
    }

    /**
     * 提交过作品的
     * @param studentId
     * @return
     */
    @GetMapping("/getHandOutWorks/{studentId}")
    public List<Work> getHandOutWorks(@PathVariable Integer studentId){
        List<Work> workList=new ArrayList<>();
        List<Project> projectByCollegeWithStudent = projectService.getStudentProjects(studentId);
        for (Project project : projectByCollegeWithStudent) {
            Integer compState = project.getComp().getCompState();
            if(project.getWork()!=null){
                if(project.getWork().getIfMark()==false)
                    workList.add(project.getWork());
            }
        }
        return workList;
    }

    /**
     * 提交过作品的
     * @param studentId
     * @return
     */
    @GetMapping("/getWorksMark/{studentId}")
    public List<Work> getWorksMark(@PathVariable Integer studentId){
        List<Work> workList=new ArrayList<>();
        List<Project> projectByCollegeWithStudent = projectService.getStudentProjects(studentId);
        for (Project project : projectByCollegeWithStudent) {
            Integer compState = project.getComp().getCompState();
            if(project.getWork()!=null){
                if(project.getWork().getIfMark()==true)
                    workList.add(project.getWork());
            }
        }
        return workList;
    }
}
@RestController
@RequestMapping("/notice")
public class NoticeController {
    @Autowired
    private NoticeService noticeService;

    /**
     * 查询所有的公告信息
     * @return
     */
    @GetMapping("/findAllNotice")
    public List<Notice> findAllNotice(){
        List<Notice> allNotice = noticeService.findAllNotice();
        allNotice.sort(Comparator.naturalOrder());
        return allNotice;
    }

    /**
     * 发布新的公告
     * @param notice
     * @return
     */
    @PostMapping("/addNotice")
    public String addNotice(Notice notice){
        System.out.println(notice.getTime());
        return noticeService.addNotice(notice);
    }

    /**
     * 更新新的公告
     * @param notice
     * @return
     */
    @PostMapping("/updateNotice")
    public String updateNotice(Notice notice){
        return noticeService.addNotice(notice);
    }

    /**
     * 根据id删除公告
     * @param id
     * @return
     */
    @GetMapping("/deleteNoticeById")
    public String deleteNoticeById(int id){
        return noticeService.deleteNoticeById(id);
    }

    /**
     * 查询所有公告,并以类型分类,都以级别从高到底排列。
     * @return
     */
    @GetMapping("/selectAllByTypeOrderBYLevelDesc")
    public Map<String,List<Notice>> selectAllByTypeOrderBYLevelDesc(){
        return noticeService.findNoticeByTypeOrderByLevelDesc();
    }
}

五、论文参考

  • 计算机毕业设计选题推荐-短文写作竞赛微信小程序/安卓APP-论文参考:
    计算机毕业设计选题推荐-短文写作竞赛微信小程序/安卓APP-论文参考

六、系统视频

短文写作竞赛微信小程序/安卓APP-项目视频:

计算机毕业设计选题推荐-短文写作竞赛微信小程序/安卓APP

结语

计算机毕业设计选题推荐-短文写作竞赛微信小程序/安卓APP-项目实战
大家可以帮忙点赞、收藏、关注、评论啦~
源码获取:私信我

精彩专栏推荐⬇⬇⬇
Java项目
Python项目
安卓项目
微信小程序项目

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/1155833.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

物联网的音视频基础设施,谁在提供最优解?

声网在作为RTC服务商的同时&#xff0c;也更在成为赛道的核心布道者和推动者&#xff0c;通过一个个场景的逐步落地&#xff0c;进而推动RTC行业产生更大的想象力。 作者|斗斗 出品|产业家 某海外物流企业的控制室内&#xff0c;工作人员正聚精会神地注视着高清视频画面&a…

深入浅出排序算法之快速排序(重要)⭐⭐⭐⭐⭐

目录 1. 算法介绍⭐⭐⭐⭐⭐ 1.1 图示解析 2. 执行流程和代码实现 2.1 挖坑法⭐⭐⭐⭐ 2.2 Hoare法⭐⭐⭐⭐ 2.3 前后指针法&#xff08;了解即可&#xff09; 2.4 非递归实现快速排序&#xff08;了解即可&#xff09; 4. 性能分析 5. 算法改进 5.1 三数选中法 5.2…

ChatGPT正在测试原生文件分析功能,DALL·E 3能P图啦!

10月29日&#xff0c;有部分用户在社交平台上分享&#xff0c;ChatGPT Plus正在测试原生文件上传、分析功能&#xff0c;可以通过文本问答的方式&#xff0c;对上传的PDF等数据文件进行提问、搜索。 例如&#xff0c;上传一份50页的员工手册PDF文件&#xff0c;然后向ChatGPT提…

基于Qt Designer 操作教程

​本章将简介使用 Qt Creator 里自带的 Qt Designer,使用 Qt Designer 比较方便的构造 UI 界面。特点是方便布局,比较形象。 ## 使用 UI 设计器开发程序 在这小节里我们继续学习如何使用 Qt Designer 开发程序,Qt Designer 是属于 Qt Creator 的一个功能而已,大家不要搞混…

一款针对SpringBootEnv页面进行快速漏洞利用

参考GitHub - 0x727/SpringBootExploit: 项目是根据LandGrey/SpringBootVulExploit清单编写&#xff0c;目的hvv期间快速利用漏洞、降低漏洞利用门槛。 &#x1f4dd; TODO 支持Eureka XStream deserialization RCE支持Fastjson 内存马注入支持更多可以使用JNDI内存马注入反序…

英语——歌曲篇——My Heart Will Go On——我心永恒

My Heart Will Go On [Celine Dion我心永恒] Every night in my dreams I see you,I feel you, That is how I know you go on Far across the distance And spaces between us You have come to show you go on Near,far,wherever you are I believe that the heart does g…

huggingface离线模式及默认保存路径

T5Tokenizer.from_pretrained()函数会在线下载huggingface上的模型&#xff0c;并自动保存在C盘的.cache路径下&#xff1a; C:\Users\xxxxx\.cache\huggingface\hub\models--google--t5-v1_1-base # 这里xxxxx代表自己电脑用户名huggingface离线下载 以google/t5-v1_1-base为…

RabbitMQ入门到实战教程,消息队列实战,改造配置MQ

RabbitMQ入门到实战教程&#xff0c;MQ消息中间件&#xff0c;消息队列实战-CSDN博客 3.7.Topic交换机 3.7.1.说明 Topic类型的Exchange与Direct相比&#xff0c;都是可以根据RoutingKey把消息路由到不同的队列。 只不过Topic类型Exchange可以让队列在绑定BindingKey 的时候…

吊打98%的JAVA同行,这份阿里P8架构师升级手册登上天梯!

前言&#xff1a; 我们都是IT人&#xff0c;所以&#xff0c;我们注定了很像。 前段时间有个朋友去阿里面试&#xff0c;作为一个社招生&#xff0c;太多痛苦了。都知道进大厂最好的时机就是应届生的时候。作为社招生&#xff0c;太难了。 我这位朋友经历了五轮面试最后才上…

【AIFEM案例操作】水泵强度分析

AIFEM是由天洑自主研发的一款通用的智能结构仿真软件&#xff0c;助力用户解决固体结构相关的静力学、动力学、振动、热力学等实际工程问题&#xff0c;软件提供高效的前后处理工具和高精度的有限元求解器&#xff0c;帮助用户快速、深入地评估结构的力学性能&#xff0c;加速产…

reactor (百万并发服务器) -- 1

为了从点滴开始&#xff0c;文章会先从一些基础socket去补充一些经常发生但是没有很深入去思考的细节。然后我们再开始去设计reactor的设计&#xff0c;可以选择跳过起过前面部分。 为了能从0开始去设计&#xff0c;测试&#xff0c;优化...整个过程会分为2-3篇文章输出&#x…

【NI-DAQmx入门】传感器基础知识

1.什么是传感器&#xff1f; 传感器可将真实的现象&#xff08;例如温度或压力&#xff09;转换为可测量的电流和电压&#xff0c;因而对于数据采集应用必不可少。接下来我们将介绍您所需的测量类型及其对应的传感器类型。在开始之前&#xff0c;您还可以先了解一些传感器术语&…

优化python程序执行速度

1、问题背景 最近使用python编写的一个蓝牙应用程序&#xff0c;在使用过程中发现传输大量数据时会产生丢包&#xff0c;导致无法接收到完整的数据包。蓝牙接收程序的代码如下。 #蓝牙数据接收处理线程def bt_recv_thread(self):recv_time time.time()while(self.thread_run)…

BUUCTF 神秘龙卷风 1

BUUCTF:https://buuoj.cn/challenges 题目描述&#xff1a; 神秘龙卷风转转转&#xff0c;科学家用四位数字为它命名&#xff0c;但是发现解密后居然是一串外星人代码&#xff01;&#xff01;好可怕&#xff01; 密文&#xff1a; 下载附件&#xff0c;解压得到一个.rar压缩…

动态蛇形卷积管状结构分割【CVPR 2023】

论文下载地址&#xff1a;Excellent-Paper-For-Daily-Reading/nn-block at main 类别&#xff1a;模块 时间&#xff1a;2023/10/31 摘要 血管和道路等管状结构在各种临床和自然环境中具有极其重要的意义&#xff0c;在这些环境中&#xff0c;精确分割对于下游任务的准确性…

C++ Set

定义 set不同于vector,strin,list这种存储容器&#xff0c;set是一种关联式容器&#xff0c;底层是搜二叉&#xff1b; 功能 set可以确定唯一的值&#xff0c;可以排序去重。 接口 insert() #include <iostream> #include<set> using namespace std;int main…

机泵设备如何通过设备健康管理平台实施预测性维护

机泵设备在工业生产中起着至关重要的作用&#xff0c;但长时间运行和频繁使用容易引发各种故障。为了提高机泵设备的可靠性和效率&#xff0c;预测性维护成为一种重要的管理策略。设备健康管理平台作为一种先进的工具&#xff0c;为机泵设备的预测性维护提供了有力支持。本文将…

第七届山东省黄炎培职业教育创新创业大赛圆满结束

山东省黄炎培职业教育创新创业大赛作为职教领域的一项品牌赛事&#xff0c;自举办以来&#xff0c;参赛院校覆盖面不断扩大&#xff0c;大赛水平和社会影响力不断提高&#xff0c;已成为全省职业教育领域的品牌赛事&#xff0c;是激发创新创业活力的重要抓手和有效载体&#xf…

UIAlertController 修改 title 或 message 样式相关

UIAlertController 文字换行后默认对齐方式为居中,若想调整其相关样式属性可以借鉴如下方式进行修改,具体实现方式 code 如下: NSString *msg "1、注销≠退出登录;\n注销:对不再使用的账号进行清空移除;注销后,App中数据将全部丢失,不可再找回;\n2、注销后,与账号相关的…

【Linux】配置JDKTomcat开发环境及MySQL安装和后端项目部署

目录 一、jdk安装配置 1. 传入资源 2. 解压 3. 配置 二、Tomcat安装 1. 解压开启 2. 开放端口 三、MySQL安装 1. 解压安装 2. 登入配置 四、后端部署 1. 数据库 2. 导入.war包 3. 修改端口 4.开启访问 一、jdk安装配置 打开虚拟机 Centos 登入账号&#xff…