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

接口测试中缓存处理策略
在接口测试中,缓存处理策略是一个关键环节,直接影响测试结果的准确性和可靠性。合理的缓存处理策略能够确保测试环境的一致性,避免因缓存数据导致的测试偏差。以下是接口测试中常见的缓存处理策略及其详细说明: 一、缓存处理的核…...
在软件开发中正确使用MySQL日期时间类型的深度解析
在日常软件开发场景中,时间信息的存储是底层且核心的需求。从金融交易的精确记账时间、用户操作的行为日志,到供应链系统的物流节点时间戳,时间数据的准确性直接决定业务逻辑的可靠性。MySQL作为主流关系型数据库,其日期时间类型的…...
云计算——弹性云计算器(ECS)
弹性云服务器:ECS 概述 云计算重构了ICT系统,云计算平台厂商推出使得厂家能够主要关注应用管理而非平台管理的云平台,包含如下主要概念。 ECS(Elastic Cloud Server):即弹性云服务器,是云计算…...

Day131 | 灵神 | 回溯算法 | 子集型 子集
Day131 | 灵神 | 回溯算法 | 子集型 子集 78.子集 78. 子集 - 力扣(LeetCode) 思路: 笔者写过很多次这道题了,不想写题解了,大家看灵神讲解吧 回溯算法套路①子集型回溯【基础算法精讲 14】_哔哩哔哩_bilibili 完…...
蓝桥杯 2024 15届国赛 A组 儿童节快乐
P10576 [蓝桥杯 2024 国 A] 儿童节快乐 题目描述 五彩斑斓的气球在蓝天下悠然飘荡,轻快的音乐在耳边持续回荡,小朋友们手牵着手一同畅快欢笑。在这样一片安乐祥和的氛围下,六一来了。 今天是六一儿童节,小蓝老师为了让大家在节…...
多模态商品数据接口:融合图像、语音与文字的下一代商品详情体验
一、多模态商品数据接口的技术架构 (一)多模态数据融合引擎 跨模态语义对齐 通过Transformer架构实现图像、语音、文字的语义关联。例如,当用户上传一张“蓝色连衣裙”的图片时,接口可自动提取图像中的颜色(RGB值&…...

从零实现STL哈希容器:unordered_map/unordered_set封装详解
本篇文章是对C学习的STL哈希容器自主实现部分的学习分享 希望也能为你带来些帮助~ 那咱们废话不多说,直接开始吧! 一、源码结构分析 1. SGISTL30实现剖析 // hash_set核心结构 template <class Value, class HashFcn, ...> class hash_set {ty…...
css的定位(position)详解:相对定位 绝对定位 固定定位
在 CSS 中,元素的定位通过 position 属性控制,共有 5 种定位模式:static(静态定位)、relative(相对定位)、absolute(绝对定位)、fixed(固定定位)和…...

均衡后的SNRSINR
本文主要摘自参考文献中的前两篇,相关文献中经常会出现MIMO检测后的SINR不过一直没有找到相关数学推到过程,其中文献[1]中给出了相关原理在此仅做记录。 1. 系统模型 复信道模型 n t n_t nt 根发送天线, n r n_r nr 根接收天线的 MIMO 系…...

ABAP设计模式之---“简单设计原则(Simple Design)”
“Simple Design”(简单设计)是软件开发中的一个重要理念,倡导以最简单的方式实现软件功能,以确保代码清晰易懂、易维护,并在项目需求变化时能够快速适应。 其核心目标是避免复杂和过度设计,遵循“让事情保…...