实验14:20211030 1+X 中级实操考试(id:2498)
实验14:20211030 1+X 中级实操考试(id:2498)
- 一、项目背景说明
- 二、表结构
- 三、步骤
- 【5 分】步骤 1:项目准备
- 【5 分】步骤 2:完成实体类 Member
- 【10 分】步骤 3:完成实体类 Goods
- 【10 分】步骤 4:完成工具类 DateUtil的convertFromStringToDate方法
- 【10 分】步骤 5:完成工具类 DateUtil的convertFromDateToString 方法
- 【10 分】步骤 6:完成 GoodsDaoImpl 的 queryExpensiveGoods 方法
- 【10 分】步骤 7:完成 GoodsDaoImpl 的 querySum 方法
- 【10 分】步骤 8:完成 MemberDaoImpl 的 updatePwd 方法
- 【10 分】步骤 9:完成 MemberDaoImpl 的 updateRank 方法
- 【10 分】步骤 10:完成 OrderDaoImpl 的 queryNum 方法
- 【10 分】步骤 11:完成 OrderDaoImpl 的 queryMax 方法
一、项目背景说明
超市管理系统是超市、商店等单位使用的一套系统,本项目使用控制台来模拟其部分功能。
- 在超市管理系统中涉及到的实体类有:会员类 Member、商品类 Goods、订单类 Order。
- 对应的数据表有:会员表 member、商品表 goods、订单表 order。
- 功能主要涉及到:会员管理、查看商品信息、查看订单信息、商品销售额汇总、个人积分等。
二、表结构
- member 表
该表的含义是 会员,共有 4 个字段,详情如下:
| 表字段 | 数据库数据类型 | 含义 | 备注 |
|---|---|---|---|
| name | VARCHAR | 会员姓名 | 主键 |
| pwd | VARCHAR | 会员密码 | |
| score | FLOAT | 会员积分 | |
| rank | INT | 会员等级 |
- goods 表
该表的含义是 商品,共有 3 个字段,详情如下:
| 表字段 | 数据库数据类型 | 备注 | 备注 |
|---|---|---|---|
| name | VARCHAR | 商品名称 | 主键 |
| price | INT | 商品单价 | |
| num | INT | 商品数量 |
- order 表
该表的含义是 订单,共有 5 个字段,详情如下:
| 表字段 | 数据库数据类型 | 含义 | 备注 |
|---|---|---|---|
| id | INT | 订单号 | |
| mname | VARCHAR | 会员姓名 | 外键->会员表(name) |
| gname | VARCHAR | 商品名称 | 外键->商品表(name) |
| num | INT | 商品数量 | |
| price | FLOAT | 商品单价 |
三、步骤
【5 分】步骤 1:项目准备
复制粘贴、略。
【5 分】步骤 2:完成实体类 Member
题目:
首先我们要设计一系列的实体类,它们是 org.lanqiao.bean.Member、org.lanqiao.bean.Goods、org.lanqiao.bean.Order, 现在 Member 类需要你来完善。
org.lanqiao.bean.Member是一个实体类,有四个属性,与数据库表 member 及其字段一一对应,对应关系如下。
【数据库表 member 的字段及其与实体类 Member 的属性的对应关系】
| 序号 | 类属性 | 表字段 | 数据库数据类型 | 备注 |
|---|---|---|---|---|
| 1 | name | name | VARCHAR | 主键 |
| 2 | pwd | pwd | VARCHAR | |
| 3 | score | score | FLOAT | |
| 4 | rank | rank | INT |
请根据注释要求,补全空缺的代码。
package org.lanqiao.bean;public class Member {private String name;private String pwd;private float score;private int rank;//已经提供Member类的属性,补充完成该类的有参(四个参数)及无参构造方法}
答案:
public Member(){}public Member(String name, String pwd, float score, int rank){this.setName(name);this.setPwd(pwd);this.setScore(score);this.setRank(rank);
}
【10 分】步骤 3:完成实体类 Goods
题目:
现在来完善 Goods 商品类。
org.lanqiao.bean.Goods是一个实体类,有三个属性,与数据库表 goods 及其字段一一对应,对应关系如下。
【数据库表 goods 的字段及其与实体类 Goods 的属性的对应关系】
| 序号 | 类属性 | 表字段 | 数据库数据类型 | 备注 |
|---|---|---|---|---|
| 1 | name | name | VARCHAR | 主键 |
| 2 | price | price | FLOAT | |
| 3 | num | num | INT |
请根据注释要求,补全空缺的代码。
package org.lanqiao.bean;public class Goods {//请修改该方法,并且在赋值时,商品数量不能超过100public void setNum(int num) {this.num = num;}}
答案:
public void setNum(int num) {if (num > 100) return;this.num = num;
}
【10 分】步骤 4:完成工具类 DateUtil的convertFromStringToDate方法
题目:
在项目中我们需要用到日期和字符串类型的相互转换,我们把这些功能封装到 org.lanqiao.util.DateUtil 里面,请根据注释要求,补全 convertFromStringToDate
/*** 使用全局变量: sdf,将字符串转换为java.util.Date类型并返回* @param stringDate* 注意,不能声明任何形式的异常抛出,否则测试用例无法通过* @return*/public static Date convertFromStringToDate(String stringDate) {// 补全代码:Date date = null;return date;}
答案:
public static Date convertFromStringToDate(String stringDate) {// 补全代码:Date date = null;try {date = sdf.parse(stringDate);} catch (Exception e) {// TODO: handle exception}return date;
}
【10 分】步骤 5:完成工具类 DateUtil的convertFromDateToString 方法
题目:
请根据注释要求,补全org.lanqiao.util.DateUtil 的 convertFromDateToString 方法。
/*** 使用全局变量: sdf,将日期转换成字符串* @param date 需要被转换的日期* @return 转换之后的字符串形式的日期*/public static String convertFromDateToString(Date date) {// 补全或替换代码return null;}
答案:
public static String convertFromDateToString(Date date) {// 补全或替换代码return sdf.format(date);
}
【10 分】步骤 6:完成 GoodsDaoImpl 的 queryExpensiveGoods 方法
题目:
数据存入数据库之后,我们需要进行相关的 CRUD,进行数据的处理和展示,数据库中有关商品的操作我们封装到 org.lanqiao.daoimpl.GoodsDaoImpl 里面,请帮忙完成。
请根据注释要求,补全 queryExpensiveGoods 方法。
/*** 查询所有商品中价钱最贵的商品名称* @return 返回商品名称*/public String queryExpensiveGoods() {// 请补全sql语句String sql = "###";Goods g = goodsUtil.getOne(sql, Goods.class);return g.getName();
}
答案:
public String queryExpensiveGoods() {// 请补全sql语句String sql = "select name from goods where price = (select max(price) from goods)";Goods g = goodsUtil.getOne(sql, Goods.class);return g.getName();
}
【10 分】步骤 7:完成 GoodsDaoImpl 的 querySum 方法
题目:
数据存入数据库之后,我们需要进行相关的 CRUD,进行数据的处理和展示,数据库中有关商品的操作我们封装到 org.lanqiao.daoimpl.GoodsDaoImpl 里面,请帮忙完成。
请根据注释要求,补全 querySum 方法。
/*** 查询所有商品的总价值金额* @return 返回所有商品的总价值金额*/public double querySum() {String sql = "select * from goods";double sum = 0;List<Goods> list = goodsUtil.getList(sql, Goods.class);for (Goods goods : list) {// 请补全代码}return sum;}
}
答案:
public double querySum() {String sql = "select * from goods";double sum = 0;List<Goods> list = goodsUtil.getList(sql, Goods.class);for (Goods goods : list) {// 请补全代码sum += goods.getNum() * goods.getPrice();}return sum;
}
【10 分】步骤 8:完成 MemberDaoImpl 的 updatePwd 方法
题目:
数据存入数据库之后,我们需要进行相关的 CRUD,进行数据的处理和展示,数据库中有关会员的操作我们封装到 org.lanqiao.daoimpl.MemberDaoImpl 里面,请帮忙完成。
请根据注释要求,补全 updatePwd 方法。
/*** 给每个会员的密码加密* 加密规则:密码的逆序。* 如:原来的密码是123,加密后为321。*/public void updatePwd(){// 请补全sql语句String sql = "###";memberUtil.update(sql); }
答案:
public void updatePwd(){// 请补全sql语句String sql = "update member set pwd = reverse(pwd)";memberUtil.update(sql);
}
【10 分】步骤 9:完成 MemberDaoImpl 的 updateRank 方法
题目:
数据存入数据库之后,我们需要进行相关的 CRUD,进行数据的处理和展示,数据库中有关会员的操作我们封装到 org.lanqiao.daoimpl.MemberDaoImpl 里面,请帮忙完成。
请根据注释要求,补全 updateRank 方法。
/*** 根据会员的积分来更新会员的等级* 0<=score<100分,等级为0* 100<=score<200分,等级为1* 200<=score<300分,等级为2* 300<=score<400分,等级为3* 400<=score<500分,等级为4* 500<=score分,等级为5* @return*/public void updateRank() {// 请补全sql语句String sql = "###";memberUtil.update(sql); }
答案:
踩坑——字段名上的标点符号 ` 必须加上,否则报错。
public void updateRank() {// 请补全sql语句String sql = "update member set `rank` = "+ "(case "+ "when score between 0 and 99 then 0 "+ "when score between 100 and 199 then 1 "+ "when score between 200 and 299 then 2 "+ "when score between 300 and 399 then 3 "+ "when score between 400 and 499 then 4 "+ "when score >= 500 then 5 "+"end)";memberUtil.update(sql);
}
【10 分】步骤 10:完成 OrderDaoImpl 的 queryNum 方法
题目:
数据存入数据库之后,我们需要进行相关的 CRUD,进行数据的处理和展示,数据库中有关订单的操作我们封装到 org.lanqiao.daoimpl.OrderDaoImpl 里面,请帮忙完成。
请根据注释要求,补全 queryNum 方法。
/*** 查询一共有多少笔订单* @return 返回订单数量*/
public int queryNum() {String sql = "select * from `order`;";List<Order> o = orderUtil.getList(sql, Order.class); Set<Integer> s = new HashSet<Integer>();for (Order order : o) {// 请补全语句}return s.size();
}
答案:
public int queryNum() {String sql = "select * from `order`;";List<Order> o = orderUtil.getList(sql, Order.class); Set<Integer> s = new HashSet<Integer>();for (Order order : o) {// 请补全语句s.add(order.getId());}return s.size();
}
【10 分】步骤 11:完成 OrderDaoImpl 的 queryMax 方法
题目:
数据存入数据库之后,我们需要进行相关的 CRUD,进行数据的处理和展示,数据库中有关订单的操作我们封装到 org.lanqiao.daoimpl.OrderDaoImpl 里面,请帮忙完成。
请根据注释要求,补全 queryMax 方法。
/*** 查询消费金额最多的人* @return 返回会员名称*/
public String queryMax() {// 请补全sql语句String sql = "###";Order o = orderUtil.getOne(sql, Order.class); return o.getMname();
}
答案:
踩坑——字段名上的标点符号 ` 必须加上,否则报错。
public String queryMax() {// 请补全sql语句String sql = "select * from `order` order by (num*price) desc limit 1";Order o = orderUtil.getOne(sql, Order.class); return o.getMname();
}
相关文章:
实验14:20211030 1+X 中级实操考试(id:2498)
实验14:20211030 1X 中级实操考试(id:2498) 一、项目背景说明二、表结构三、步骤【5 分】步骤 1:项目准备【5 分】步骤 2:完成实体类 Member【10 分】步骤 3:完成实体类 Goods【10 分】步骤 4&a…...
(字符串 ) 剑指 Offer 58 - II. 左旋转字符串 ——【Leetcode每日一题】
❓剑指 Offer 58 - II. 左旋转字符串 难度:简单 字符串的左旋转操作是把字符串前面的若干个字符转移到字符串的尾部。请定义一个函数实现字符串左旋转操作的功能。比如,输入字符串"abcdefg"和数字2,该函数将返回左旋转两位得到的…...
EPICS编程
提纲 1) 为什么在EPICS上编程 2)构建系统特性:假设基本理解Unix Make 3)在libCom中可用的工具 1) 为什么在EPICS上编程 1、社区标准:EPICS合作者知道和明白EPICS结构 2、在很多操作系统之间代码移值性…...
17:00面试,还没10分钟就出来了,问的实在是太...
从外包出来,没想到死在另一家厂子 自从加入这家公司,每天都在加班,钱倒是给的不少,所以也就忍了。没想到8月一纸通知,所有人不许加班,薪资直降30%,顿时有吃不起饭的赶脚。 好在有个兄弟内推我去…...
docker都有那些工具,及工具面试题
docker介绍 Docker 是一种开源的容器化平台,可以帮助开发者将应用程序和依赖项打包到轻量级的容器中,然后部署到任何基于 Linux 的操作系统中。使用 Docker 可以大大简化开发、部署和管理应用程序的过程,使其更加快速、灵活和可靠。 Docker…...
LAMP网站应用架构
LAMP 一、LAMP概述1、各组件的主要作用2、构建LAMP各组件的安装顺序 二、编译安装Apache httpd服务1、关闭防火墙,将安装Apache所需软件包传到/opt目录下2.安装环境依赖包3.配置软件模块4.编译及安装5.优化配置文件路径,并把httpd服务的可执行程序文件放…...
C++虚函数virtual(动态多态)(纯虚函数)
怎么判断函数是虚函数还是普通函数? 用VS,在调用对象的方法的地方。。按altg ,如果他跳转到正确的函数,那也就意味着他是编译时可以确定的。。。 但是如果他跳到了这个调用对象的基类的函数,那么也就意味着他是一个运行…...
【Java 接口】接口(Interface)的定义,implements关键字,接口实现方法案例
博主:_LJaXi Or 東方幻想郷 专栏: Java | 从入门到入坟 专属:六月一日 | 儿童节 Java 接口 接口简介 🎃接口的定义 🧧接口实现类名定义 🎁接口实现类小案例 🎈后话 🎰 接口简介 &…...
解决Vmware上的kali找不到virtualbox上的靶机的问题
解决kali找不到靶场ip问题的完整方法 1.配置靶机2.配置kali的虚拟网络3.配置kali中的eth0网络 1.配置靶机 靶机部署在Virtualbox上对其进行网络配置,选择连接方式为仅主机(Host-Only)网络。 2.配置kali的虚拟网络 在编辑中选择虚拟网络配…...
查看MySQL服务器是否启用了SSL连接,并且查看ssl证书是否存在
文章目录 一、查看MySQL服务器是否启用了SSL连接 1.登录MySQL服务器 2.查看SSL配置 二、查看证书是否存在 前言 查看MySQL服务器是否启用了SSL连接,并且查看ssl证书是否存在 一、查看MySQL服务器是否启用了SSL连接 1.登录MySQL服务器 在Linux终端中…...
华为OD机试真题 Java 实现【表示数字】【牛客练习题】
一、题目描述 将一个字符串中所有的整数前后加上符号“*”,其他字符保持不变。连续的数字视为一个整数。 数据范围:字符串长度满足1≤n≤100 。 二、输入描述 输入一个字符串。 三、输出描述 字符中所有出现的数字前后加上符号“*”,其他字符保持不变。 四、解题思路…...
使用Python进行接口性能测试:从入门到高级
前言: 在今天的网络世界中,接口性能测试越来越重要。良好的接口性能可以确保我们的应用程序可以在各种网络条件下,保持流畅、稳定和高效。Python,作为一种广泛使用的编程语言,为进行接口性能测试提供了强大而灵活的工…...
sed编辑器
文章目录 一.sed命令基础1.sed概念2.sed的工作流程3.命令格式4.sed命令的常用选项5.sed命令的操作符 二.sed命令的打印功能1.打印文本文件内容1.1 格式1.2 默认打印方式 2.指定行打印2.1 指定行号打印2.2 只打印文件的行数2.3 即打印文件的行号也打印文件的内容2.4 即显示行也显…...
深入理解深度学习——正则化(Regularization):稀疏表示
分类目录:《深入理解深度学习》总目录 另一种策略是惩罚神经网络中的激活单元,稀疏化激活单元。这种策略间接地对模型参数施加了复杂惩罚。我们已经在《深入理解深度学习——正则化(Regularization):参数范数惩罚》中讨…...
【Android】分别用JAVA和Kotlin实现横向扫描的动画效果
Android 横向扫描的动画可以通过使用 ViewPropertyAnimator 和 ObjectAnimator 来实现。 首先,在 XML 布局文件中创建一个 ImageView,并设置其宽度为 0dp,高度为 match_parent。然后,创建一个横向的渐变色 Drawable,并…...
长尾词挖掘,如何选择精准的长尾词优化?
长尾词的挖掘也是一门大学问,它存在多种不同的方法。最常用的方法是把关键词直接放搜索引擎的搜索框搜索和使用长尾词挖掘工具这两种。 以运动水壶为例。 关键词直接放搜索引擎的搜索框搜索,结果如下: 使用长尾词挖掘工具,…...
Python相关环境变量配置和模拟手机app登录
【java环境变量配置】 接着,打开系统->高级系统设置->环境变量。新建一个JAVA_HOME C:\Program Files\Java\jdk1.8.0_201(这里是你的安装路径,最好复制粘贴) 然后在Path下添加 %JAVA_HOME%\bin;%JAVA_HOME%\jre\bin; 然后…...
c++ 11标准模板(STL) std::map(九)
定义于头文件<map> template< class Key, class T, class Compare std::less<Key>, class Allocator std::allocator<std::pair<const Key, T> > > class map;(1)namespace pmr { template <class Key, class T, clas…...
深入探索chatGPT插件:SceneXplain,Wolfram,和AppyPieAIAppBuilder
1. 引言 在这个日益依赖技术的世界中,AI插件已经成为了我们日常生活和工作的重要组成部分。在这篇博客中,我们将深入探索三个强大的AI插件:SceneXplain,Wolfram,和AppyPieAIAppBuilder,了解他们的功能&…...
华为OD机试真题B卷 Java 实现【停车场车辆统计】,附详细解题思路
一、题目描述 特定大小的停车场,数组cars[]表示,其中1表示有车,0表示没车。 车辆大小不一,小车占一个车位(长度1),货车占两个车位(长度2),卡车占三个车位&a…...
RAG架构全解析:从基础到高级,打造你的企业级知识库问答系统!
本文详细介绍了RAG(Retrieval-Augmented Generation)架构的多种变体,从基础的Naive RAG和Standard RAG开始,逐步深入到Advanced RAG、Hybrid Search RAG、Rerank型RAG、文档增强型RAG、Agentic RAG、Router RAG、GraphRAG、RAPTOR…...
特朗普移动数据泄露:客户信息险曝光,T1 手机真实订单远低于网传
特朗普移动数据泄露:客户信息岌岌可危就在 T1 手机似乎即将发布之时,特朗普移动(Trump Mobile)被指控不安全地存储客户数据,使得客户的地址和电话号码面临泄露风险。YouTuber Coffeezilla 最先在他的第二个频道 voidzi…...
大模型实战:AgentScope ReActAgent 多智能体框架实战指南,小白程序员必备收藏!
本文介绍了如何利用 AgentScope 框架及其新版本 Spring AI Alibaba 来构建基于大模型的多智能体应用。文章首先强调了从单智能体优先原则出发,然后详细阐述了 AgentScope 支持的多智能体模式,包括 Pipeline、Routing、Skills、Subagents、Supervisor、Ha…...
【深度解析】Gemini 3.5 Flash:面向 Agentic Workflow 的高速多模态大模型选型与实战
摘要 本文围绕 Gemini 3.5 Flash 的技术定位、Agentic Workflow、多模态能力、速度优势与模型选型策略展开分析,并给出可落地的 Python 调用示例,帮助开发者判断其在编码助手、智能体、多模态应用中的适用边界。背景介绍 近两年,大模型迭代速…...
APK Installer:重新定义Windows运行Android应用的突破性方案
APK Installer:重新定义Windows运行Android应用的突破性方案 【免费下载链接】APK-Installer An Android Application Installer for Windows 项目地址: https://gitcode.com/GitHub_Trending/ap/APK-Installer 在Windows系统上运行Android应用的传统方案往往…...
5分钟学会AnyFlip电子书一键下载:免费PDF转换终极指南
5分钟学会AnyFlip电子书一键下载:免费PDF转换终极指南 【免费下载链接】anyflip-downloader Download anyflip books as PDF 项目地址: https://gitcode.com/gh_mirrors/an/anyflip-downloader 你是否曾经在AnyFlip上找到一本精彩的电子书,想要永…...
Android NDK/JNI开发深度指南:从基础到实战
引言 在移动应用开发领域,Android平台以其开放性和灵活性著称。然而,当应用需要处理高性能计算、图像处理、游戏引擎或重用现有C/C++库时,纯Java实现可能面临性能瓶颈。这时,Native Development Kit(NDK)和Java Native Interface(JNI)成为关键工具。NDK允许开发者使用…...
2026年数字孪生升级版:三维重构透明建筑实时重构跟踪定位
2026数字孪生升级:三维重构透明建筑实时重构跟踪定位结合2026年数字孪生技术前沿迭代趋势,围绕实景三维重构、建筑透明可视化、场景实时重构、全域跟踪定位四大核心能力,完成新一代数字孪生体系技术升级。彻底解决传统数字孪生静态滞后、建筑…...
别再只用v-html了!Vue.js项目里防XSS,这个vue-xss插件配置一次就搞定
Vue.js项目实战:用vue-xss插件构建坚不可摧的XSS防御体系 在富文本交互频繁的现代Web应用中,安全防线就像大楼的消防系统——平时看不见,关键时刻能救命。最近接手一个医疗咨询平台项目时,我们遇到个典型场景:医生端使…...
告别命令行!用mqtt-spy这个开源神器,5分钟搞定MQTT消息调试(附保姆级配置流程)
可视化MQTT调试革命:mqtt-spy如何让物联网开发效率提升300% 在智能家居和工业物联网项目开发中,MQTT协议因其轻量级和高效性成为设备通信的首选方案。然而,传统的命令行调试方式往往让开发者陷入重复输入命令、难以直观查看消息流的困境。一…...
