实验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…...

wordpress后台更新后 前端没变化的解决方法
使用siteground主机的wordpress网站,会出现更新了网站内容和修改了php模板文件、js文件、css文件、图片文件后,网站没有变化的情况。 不熟悉siteground主机的新手,遇到这个问题,就很抓狂,明明是哪都没操作错误&#x…...

日语AI面试高效通关秘籍:专业解读与青柚面试智能助攻
在如今就业市场竞争日益激烈的背景下,越来越多的求职者将目光投向了日本及中日双语岗位。但是,一场日语面试往往让许多人感到步履维艰。你是否也曾因为面试官抛出的“刁钻问题”而心生畏惧?面对生疏的日语交流环境,即便提前恶补了…...

RocketMQ延迟消息机制
两种延迟消息 RocketMQ中提供了两种延迟消息机制 指定固定的延迟级别 通过在Message中设定一个MessageDelayLevel参数,对应18个预设的延迟级别指定时间点的延迟级别 通过在Message中设定一个DeliverTimeMS指定一个Long类型表示的具体时间点。到了时间点后…...

centos 7 部署awstats 网站访问检测
一、基础环境准备(两种安装方式都要做) bash # 安装必要依赖 yum install -y httpd perl mod_perl perl-Time-HiRes perl-DateTime systemctl enable httpd # 设置 Apache 开机自启 systemctl start httpd # 启动 Apache二、安装 AWStats࿰…...
Qt Http Server模块功能及架构
Qt Http Server 是 Qt 6.0 中引入的一个新模块,它提供了一个轻量级的 HTTP 服务器实现,主要用于构建基于 HTTP 的应用程序和服务。 功能介绍: 主要功能 HTTP服务器功能: 支持 HTTP/1.1 协议 简单的请求/响应处理模型 支持 GET…...

基于Docker Compose部署Java微服务项目
一. 创建根项目 根项目(父项目)主要用于依赖管理 一些需要注意的点: 打包方式需要为 pom<modules>里需要注册子模块不要引入maven的打包插件,否则打包时会出问题 <?xml version"1.0" encoding"UTF-8…...

NLP学习路线图(二十三):长短期记忆网络(LSTM)
在自然语言处理(NLP)领域,我们时刻面临着处理序列数据的核心挑战。无论是理解句子的结构、分析文本的情感,还是实现语言的翻译,都需要模型能够捕捉词语之间依时序产生的复杂依赖关系。传统的神经网络结构在处理这种序列依赖时显得力不从心,而循环神经网络(RNN) 曾被视为…...

Android 之 kotlin 语言学习笔记三(Kotlin-Java 互操作)
参考官方文档:https://developer.android.google.cn/kotlin/interop?hlzh-cn 一、Java(供 Kotlin 使用) 1、不得使用硬关键字 不要使用 Kotlin 的任何硬关键字作为方法的名称 或字段。允许使用 Kotlin 的软关键字、修饰符关键字和特殊标识…...

【开发技术】.Net使用FFmpeg视频特定帧上绘制内容
目录 一、目的 二、解决方案 2.1 什么是FFmpeg 2.2 FFmpeg主要功能 2.3 使用Xabe.FFmpeg调用FFmpeg功能 2.4 使用 FFmpeg 的 drawbox 滤镜来绘制 ROI 三、总结 一、目的 当前市场上有很多目标检测智能识别的相关算法,当前调用一个医疗行业的AI识别算法后返回…...
Device Mapper 机制
Device Mapper 机制详解 Device Mapper(简称 DM)是 Linux 内核中的一套通用块设备映射框架,为 LVM、加密磁盘、RAID 等提供底层支持。本文将详细介绍 Device Mapper 的原理、实现、内核配置、常用工具、操作测试流程,并配以详细的…...