鱼非愚而为瑜 2024-04-08 09:45 采纳率: 50%
浏览 5

这个编程最终成果是什么,我有些不太明白?

img

一个软工课的编程,老师上课讲了讲,但我不太明白,无从下手,老哥们能帮我看看吗,指导一下该怎么做(谢谢老哥们了)

  • 写回答

3条回答 默认 最新

  • Kwan的解忧杂货铺 Java领域优质创作者 2024-04-08 09:45
    关注

    上午好☀️☀️☀️️
    本答案参考ChatGPT-3.5

    这个编程任务是要求设计和开发一个地图数据质检系统,包括用户管理和操作记录。具体的要求有:

    1. 功能要求:
    • 核心功能要求参见第二次作业A~D。
    • 运行环境:组织内部局域网。
    • 用户管理:支持多用户,不同客户端多用户同时使用,同一用户可在不同终端使用,进行用户登录等用户验证。
    • 用户操作记录:记录每个用户的地图数据提交情况、数据错误登记情况。
    1. 成果提交:
    • 软件架构说明。说明所采用的软件架构模式及主要优缺点。
    • 软件源码及可执行代码包。提示:独立部署运行的数据构件可选择开源的个人版或开发版DBMS(如MySQL等)。

    具体的解决方案如下:

    1. 核心功能要求:这里没有具体说明,可以参考第二次作业的内容来实现。具体来说,可以设计一个Web应用程序,采用MVC架构,前端使用HTML、CSS和JavaScript,后端使用Java或者Python等语言。具体实现包括以下几个方面:
    • 数据库设计及实现。可以使用MySQL等开源数据库,设计表格及其字段,提供接口供前端调用。
    • 地图数据质检。包括上传地图数据、显示地图数据、标识错误点、提交错误点等等。
    • 用户管理及操作记录。可以利用JWT等技术实现用户验证,同时记录用户的操作记录和错误点提交情况等。
    1. 软件架构说明:这里可以选择一种合适的架构模式来实现。可以考虑以下几种:
    • MVC(Model-View-Controller)模式:将应用程序分为三个部分,分别是数据(Model)、用户界面(View)和控制器(Controller),实现数据和用户界面的松耦合。
    • MVP(Model-View-Presenter)模式:类似MVC模式,区别在于将控制器改成了Presenter,实现View和Model的极大解耦,便于单元测试。
    • MVVM(Model-View-ViewModel)模式:是MVC模式和MVP模式的混合体,将Controller和Presenter都替换成ViewModel,实现View和Model的完全解耦。同时ViewModel还提供了数据绑定和命令绑定等功能。
    1. 软件源码及可执行代码包:这里可以根据具体的技术选择相应的开发工具和框架。下面提供Java + Spring框架的示例代码,仅供参考:
    @Controller
    @RequestMapping("/map")
    public class MapController {
    
        @Autowired
        private MapService mapService;
    
        @RequestMapping(value = "/upload", method = RequestMethod.POST)
        @ResponseBody
        public Map<String, Object> upload(@RequestBody Map<String, Object> body) {
            // 获取上传的数据
            String data = (String) body.get("data");
            int userId = (int) body.get("userId");
            // 处理数据
            boolean success = mapService.upload(data, userId);
            // 返回结果
            Map<String, Object> result = new HashMap<>();
            result.put("success", success);
            return result;
        }
    
        @RequestMapping(value = "/show", method = RequestMethod.GET)
        @ResponseBody
        public Map<String, Object> show() {
            // 获取地图数据
            String data = mapService.show();
            // 返回结果
            Map<String, Object> result = new HashMap<>();
            result.put("data", data);
            return result;
        }
    
        @RequestMapping(value = "/error", method = RequestMethod.POST)
        @ResponseBody
        public Map<String, Object> error(@RequestBody Map<String, Object> body) {
            // 获取提交的错误点
            String point = (String) body.get("point");
            int userId = (int) body.get("userId");
            // 处理错误点
            boolean success = mapService.error(point, userId);
            // 返回结果
            Map<String, Object> result = new HashMap<>();
            result.put("success", success);
            return result;
        }
    
    }
    

    其中@Autowired注释标志着Spring应该注入一个MapService实例。下面是MapService的示例代码:

    @Service
    public class MapService {
    
        @Autowired
        private MapDao mapDao;
    
        public boolean upload(String data, int userId) {
            // 将数据插入到数据库中
            return mapDao.insert(data, userId);
        }
    
        public String show() {
            // 从数据库中获取地图数据
            return mapDao.select();
        }
    
        public boolean error(String point, int userId) {
            // 将错误点插入到数据库中
            return mapDao.insert(point, userId);
        }
    
    }
    

    其中@Service注释标志着Spring应该注入一个MapDao实例,实现地图数据的上传、显示和错误点的提交。下面是MapDao的示例代码:

    @Repository
    public class MapDao {
    
        @Autowired
        private JdbcTemplate jdbcTemplate;
    
        public boolean insert(String data, int userId) {
            String sql = "INSERT INTO map_data (data, user_id) VALUES (?, ?)";
            int rows = jdbcTemplate.update(sql, data, userId);
            return rows > 0;
        }
    
        public String select() {
            String sql = "SELECT data FROM map_data ORDER BY id DESC LIMIT 1";
            return jdbcTemplate.queryForObject(sql, String.class);
        }
    
        public boolean insert(String point, int userId) {
            String sql = "INSERT INTO error_point (point, user_id) VALUES (?, ?)";
            int rows = jdbcTemplate.update(sql, point, userId);
            return rows > 0;
        }
    
    }
    

    其中@Repository注释标志着Spring应该注入一个JdbcTemplate实例,实现数据库的交互。

    评论 编辑记录

报告相同问题?

问题事件

  • 创建了问题 4月8日

悬赏问题

  • ¥15 在获取boss直聘的聊天的时候只能获取到前40条聊天数据
  • ¥20 关于URL获取的参数,无法执行二选一查询
  • ¥15 液位控制,当液位超过高限时常开触点59闭合,直到液位低于低限时,断开
  • ¥15 marlin编译错误,如何解决?
  • ¥15 有偿四位数,节约算法和扫描算法
  • ¥15 VUE项目怎么运行,系统打不开
  • ¥50 pointpillars等目标检测算法怎么融合注意力机制
  • ¥20 Vs code Mac系统 PHP Debug调试环境配置
  • ¥60 大一项目课,微信小程序
  • ¥15 求视频摘要youtube和ovp数据集