❥ 作为上学年 “Java硬核程序设计实验详解” 系列补充 ❥
目录
❀1. 题目:编写程序练习泛型和List集合的基本使用
❀2. 题目:编写程序练习泛型和Map集合的基本使用
❀3. 题目:按照教材[案例7-8]的思路,在其基础上设计一个图书购物车
❀4. 题目:在Eclipse 下完成如下实践项目 (选做题)
:star:️4. 架构&源代码:
:sunny:| 一、实验目的
1.理解集合的概念、体系结构、分类及使用场景
2.掌握Set接口及主要实现类
3.掌握List接口及主要实现类
4.掌握Map接口及主要实现类
5.理解泛型的作用,并掌握类型安全检查在集合中的应用
:sunny:| 二、实验内容
❀1. 题目:编写程序练习泛型和List集合的基本使用
(1)创建一个只能容纳String对象名为strNames的ArrayList集合;
(2)按顺序往集合中添加5个字符串对象:“信电学院”、“数理学院”、“机电学院”、“土木学院”、“食品学院”;
(3)对集合进行遍历(掌握几种遍历集合的方法),分别打印集合中的每个元素的位置与内容;
(4)首先打印集合的大小,然后删除集合中的第3个元素,并显示删除元素的内容,然后再打印目前集合中第3个元素的内容,并再次打印集合的大小。
(5)本题测试程序的名称为SY6_1_List,包名为com.xzit.sy6
☞ 思考 :
如果将第(1)中的ArrayList集合换成HashSet集合,程序有什么不同?编程测试。
实验结果:
若更换为Hashset则不能用普通for循环遍历
❀2. 题目:编写程序练习泛型和Map集合的基本使用
(1)创建一个Book类,该类包含图书的ISBN号、图书名称、作者、出版社、出版日期、图书价格等属性。
(2)创建一个Map<Key,Values>类型的对象booksmap,其中Key的类型为图书的ISBN号、Values类型为Book类对象。
(3)往booksmap集合中添加5个“键-值”对象,即五个ISBN号对应于五本书籍信息。
(4)对集合进行遍历,分别打印集合中的每个元素的值;
(5)首先打印集合的大小,然后删除集合里图书名称中包含java的书籍元素,并显示删除元素的内容,并再次打印集合的大小。
(6)本题测试程序的名称为SY6_2_Map,包名为com.xzit.sy6
实验结果:
❀3. 题目:按照教材[案例7-8]的思路,在其基础上设计一个图书购物车
存储用户购买图书的信息。能够打印出购物车中图书的信息,图书价格、小计和总的费用。用HashMap类模拟购物车。
实现思路指导:
(1)新建图书类(Product),该步骤第2题已实现。
(2)新建BookShop类,该类实现对所购图书信息的封装。
(3)新建书库类BookStore,书库里存放了大量的图书,这里我们用ArrayList来存放,并初始化部分图书信息。
(4)新建顾客类Customer。每个顾客进入书库都可以获得一个购物车,这个购物车用HashMap来实现,图书的编号是它的键,捆扎后的BookShop是它的值。
(5)新建测试主类SY6_3_BuyCar。
实验结果:
❀4. 题目:在Eclipse 下完成如下实践项目 (选做题)
1.[SY6_4.java]学生选课系统的设计与实现。一个学生可以选修多门课程、一门课程可以被多个学生选,但一门课程不能被一个学生选择多次。
功能要求:
(1)运行程序时,先显示一个顶层菜单,如下图6-1所示。
图6-1 顶级菜单
(2)各个菜单命令的含义:0表示退出程序,1表示学生登录,2表示管理员查看各门课程都被哪些学生选了。
(3)学生登录信息存放在StudentVDB类中类型为Map的Students对象中。在登录过程中,学号或密码输入不正确的次数有三次输入机会,如果三次都不成功,返回到如图7-1所示的界面,如果登录成功,显示如图6-2所示的界面。
图6-2 学生登录成功后的界面
(4)完成学生界面中各个命令对应的功能能。课程信息存放在CourseVDB类中。当学生输入“0”时返回图1界面,此时该学生的这次选课就结束了。可以等待下一个学生来进行登录。
设计要求:采用如下包结构,不能改变次包结构,但可以在其中增加新类或新建包。
(5)本实验测试主类为SY6_4.java
实验结果:
:sunny:| 三、实验结果
:star:️1. 源代码:
package EXPS.Exp06.com.xzit.sy6; import java.sql.SQLOutput; import java.util.ArrayList; import java.util.Iterator; /** * 班级:19软嵌2 * 学号:20190507223 * 姓名:夏旭 * 实验时间:2020-5-25 * 本程序的功能是:定义应该LIST,存取数据 */ public class SY6_1_LIST { public static void main(String[] args) { ArrayList<String> lis=new ArrayList<>(); lis.add("信电学院"); lis.add("数理学院"); lis.add("机电学院"); lis.add("土木学院"); lis.add("食品学院"); for(int i=0;i<lis.size();i++){ System.out.println("第"+(i+1)+"个数据:"+" "+lis.get(i)); } System.out.println("------------------"); Iterator iterator=lis.iterator(); int num=1; while (iterator.hasNext()){ String node=(String) iterator.next();