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

未来机器人的大脑:如何用神经网络模拟器实现更智能的决策?
编辑:陈萍萍的公主一点人工一点智能 未来机器人的大脑:如何用神经网络模拟器实现更智能的决策?RWM通过双自回归机制有效解决了复合误差、部分可观测性和随机动力学等关键挑战,在不依赖领域特定归纳偏见的条件下实现了卓越的预测准…...

Linux应用开发之网络套接字编程(实例篇)
服务端与客户端单连接 服务端代码 #include <sys/socket.h> #include <sys/types.h> #include <netinet/in.h> #include <stdio.h> #include <stdlib.h> #include <string.h> #include <arpa/inet.h> #include <pthread.h> …...

测试微信模版消息推送
进入“开发接口管理”--“公众平台测试账号”,无需申请公众账号、可在测试账号中体验并测试微信公众平台所有高级接口。 获取access_token: 自定义模版消息: 关注测试号:扫二维码关注测试号。 发送模版消息: import requests da…...
OpenLayers 分屏对比(地图联动)
注:当前使用的是 ol 5.3.0 版本,天地图使用的key请到天地图官网申请,并替换为自己的key 地图分屏对比在WebGIS开发中是很常见的功能,和卷帘图层不一样的是,分屏对比是在各个地图中添加相同或者不同的图层进行对比查看。…...
Java毕业设计:WML信息查询与后端信息发布系统开发
JAVAWML信息查询与后端信息发布系统实现 一、系统概述 本系统基于Java和WML(无线标记语言)技术开发,实现了移动设备上的信息查询与后端信息发布功能。系统采用B/S架构,服务器端使用Java Servlet处理请求,数据库采用MySQL存储信息࿰…...

排序算法总结(C++)
目录 一、稳定性二、排序算法选择、冒泡、插入排序归并排序随机快速排序堆排序基数排序计数排序 三、总结 一、稳定性 排序算法的稳定性是指:同样大小的样本 **(同样大小的数据)**在排序之后不会改变原始的相对次序。 稳定性对基础类型对象…...
SQL慢可能是触发了ring buffer
简介 最近在进行 postgresql 性能排查的时候,发现 PG 在某一个时间并行执行的 SQL 变得特别慢。最后通过监控监观察到并行发起得时间 buffers_alloc 就急速上升,且低水位伴随在整个慢 SQL,一直是 buferIO 的等待事件,此时也没有其他会话的争抢。SQL 虽然不是高效 SQL ,但…...

Windows安装Miniconda
一、下载 https://www.anaconda.com/download/success 二、安装 三、配置镜像源 Anaconda/Miniconda pip 配置清华镜像源_anaconda配置清华源-CSDN博客 四、常用操作命令 Anaconda/Miniconda 基本操作命令_miniconda创建环境命令-CSDN博客...

c++第七天 继承与派生2
这一篇文章主要内容是 派生类构造函数与析构函数 在派生类中重写基类成员 以及多继承 第一部分:派生类构造函数与析构函数 当创建一个派生类对象时,基类成员是如何初始化的? 1.当派生类对象创建的时候,基类成员的初始化顺序 …...
API网关Kong的鉴权与限流:高并发场景下的核心实践
🔥「炎码工坊」技术弹药已装填! 点击关注 → 解锁工业级干货【工具实测|项目避坑|源码燃烧指南】 引言 在微服务架构中,API网关承担着流量调度、安全防护和协议转换的核心职责。作为云原生时代的代表性网关,Kong凭借其插件化架构…...