ZUCC高级程序设计实验01
实验一 泛型
学号: 姓名: 班级:
【实验目的和要求】
1. 初步熟悉泛型的基本概念及用途,熟悉应用开发环境:Eclipse的使用;
2. 掌握利用泛型设计常见的类。
【实验内容】
1、 修改程序清单19-1中的GenerisStack类,使用数组而不是ArrayList来实现它。需要在给栈添加新元素之前检查数组的大小。如果数组满了,则创建一个新数组,该数组容量是原先数组容量的两倍,然后将当前数组的元素复制到新数组当中。
代码:(不要截图,直接源代码)
public class GenericStack<E> {
private static int size = 10;
Object[] nums = new Object[size];
public int getSize() {
return nums.length;
}
public E peek() {
return (E) nums[nums.length-1];
}
public void push(E o) {
Object[] nums1 = null;
if(isFull()) {
size = size*2;
nums1 = new Object[size];
for(int i=0;i<nums.length;i++) {
nums1[i] = nums[i];
}
}
for(int i=0;i<nums1.length;i++) {
if(nums1==null) {
nums[i] =o;
break;
}
}
}
public Object pop() {
Object o =nums[nums.length-1];
Object[] nums2 = new Object[size-1];
for(int i=0;i<nums.length-1;i++) {
nums2[i] = nums[i];
}
nums = nums2;
return o;
}
public boolean isEmpty() {
for(int i=0;i<nums.length;i++) {
if(nums[i]!=null) {
return false;
}
}
return true;
}
public boolean isFull() {
for(int i=0;i<nums.length;i++) {
if(nums[i]==null) {
return false;
}
}
return true;
}
public String toString() {
return "stack" + nums.toString();
}
}
2、 实现一个程序满足以下要求
1)系统不少于三个类(Student,Teacher,SortUtils),Student,Teacher都具有一个String类型的编号(学号,教师号)
2)SortUtils类中需要使用泛型,SortUitls有一个方法可以传入若干Student或者若干Teacher可以按照他们的编号降序排列后打印输出
3)整个过程中不能使用数组
4)排序比较算法需要自己实现
5)程序主过程是程序启动,随机生成20个学生,然后按照学号降序打印,然后随机生成20个老师,然后按照教师号降序打印;
代码:(不要截图,直接源代码)
import java.util.Collections;
import java.util.List;
public class SortUtils {
public void sort(List<Student> stus,List<Teacher> teas) {
for(int i = 0; i < stus.size()-1;i++){
for(int j = i + 1;j < stus.size();j++){
if(stus.get(i).getStuId().compareTo( stus.get(j).getStuId())<0){
Student tempStu = stus.get(j);
Collections.swap(stus, j, i);
stus.get(i).setStuId(tempStu.getStuId());
stus.get(i).setStuName(tempStu.getStuName());
}
}
}
System.out.println(stus);
for(int i = 0; i < teas.size()-1;i++){
for(int j = i + 1;j < teas.size();j++){
if(teas.get(i).gettId().compareTo( teas.get(j).gettId())<0){
Teacher tempStu = teas.get(j);
Collections.swap(stus, j, i);
teas.get(i).settId(tempStu.gettId());
teas.get(i).settName(tempStu.gettName());
}
}
}
System.out.println(teas);
}
}
import java.util.ArrayList;
import java.util.Random;
public class Starter {
public static void main(String[] args) {
int num ;
Random r = new Random();
ArrayList<Student> stus = newArrayList<Student>();
ArrayList<Teacher> teas = newArrayList<Teacher>();
for (int i = 0; i < 20; i++) {
num = r.nextInt(5) +1;
String id = String.valueOf(num);
String name = String.valueOf(num);
Student tempStu = newStudent(id,name);
stus.add(tempStu);
Teacher tempTea = newTeacher(id,name);
teas.add(tempTea);
}
new SortUtils().sort(stus, teas);
}
}
public class Student {
private String stuId;
private String stuName;
public Student() {
}
public Student(String stuId, String stuName) {
super();
this.stuId = stuId;
this.stuName = stuName;
}
public String getStuId() {
return stuId;
}
public void setStuId(String stuId) {
this.stuId = stuId;
}
public String getStuName() {
return stuName;
}
public void setStuName(String stuName) {
this.stuName = stuName;
}
@Override
public String toString() {
return "Student [stuId=" + stuId + ", stuName=" + stuName + "]";
}
}
public class Teacher {
private String tId;
private String tName;
public Teacher() {
}
public Teacher(String tId, String tName) {
super();
this.tId = tId;
this.tName = tName;
}
public String gettId() {
return tId;
}
public void settId(String tId) {
this.tId = tId;
}
public String gettName() {
return tName;
}
public void settName(String tName) {
this.tName = tName;
}
@Override
public String toString() {
return "Teacher [tId=" + tId + ", tName=" + tName + "]";
}
}
ZUCC高级程序设计实验01相关推荐
- 吉林大学超星慕课平台——高级语言程序设计 实验01 顺序程序设计(2022级)
实验01 顺序程序设计(2022级) 1. (程序题) 表达式计算. 问题描述:编写程序,计算并输出如下表达式的值: y= 其中a,x,y均为float类型,取值为3.1415926.输出结果要求保留 ...
- javascript高级程序设计--笔记01
概述 JavaScript的实现包含三个部分: 1 核心(ECMAScript) 提供核心语言功能 2 文档对象模型(DOM) 一套提供了访问以及操作网页内容的API 3 浏览器对象模型( ...
- JavaScript高级程序设计笔记01 | 第一章到第四章 | 关键字与保留字 | 数据类型 | 操作符 | 作用域
观前提示:大部分都是书上的内容,个人理解的部分的较少,看我的笔记还不如去看书 第二章 async:可选.表示应该立即下载脚本,但不应妨碍页面中的其他操作,比如下载其他资源或 等待加载其他脚本.只对外部 ...
- linux系统程序问题报告,Linux程序设计实验报告.docx
Linux程序设计实验报告.docx Linux程序设计实验指导书实验类别课内实验 实验课程名称Linux程序设计实验室名称软件工程专业实验室 实验课程编号 000 总 学 时32 学 分 2 适用专 ...
- .NET 程序设计实验 含记事本通讯录代码
实验一 .NET 程序设计基本流程 [实验内容] 一.控制台.Windows 应用程序.ASP.NET 程序开发流程 1.熟悉开发平台 2.分别开发控制台.Windows 应用程序.ASP.NET ...
- 高级程序设计c语言试卷答案,高级程序设计语言半期试卷答案.doc
高级程序设计语言半期试卷答案 西南交通大学2009-2010学年第1学期半期试卷 课程代码 3243800 课程名称 高级语言程序设计 考试时间 90分钟 题号一二三四五六七八九十总成绩得分 阅卷教师 ...
- javascript 高级程序设计_重读《JavaScript高级程序设计》
最近自己在休假,打算闭门几天将<JavaScript高级程序设计>(第3版)这本良心教材再回顾一遍.目前自己进入前端领域两年多,现在重读并记录下这本教材的"硬"知识点 ...
- Linux程序设计实验项目六,《linux程序设计》实验教学大纲
<linux程序设计>实验教学大纲 课程名称:Linux程序设计 课程编号:408412420408436407 适用专业:计算机科学与技术网络工程软件工程 总 学 分:3 总 学 时:4 ...
- java程序设计实验报告册_20145215《Java程序设计》实验一实验报告
实验一 Java开发环境的熟悉 实验内容及步骤 使用JDK编译.运行简单的Java程序 命令行下程序开发: 在命令行下建立实验目录,进入该目录后创建exp1目录 敲入以下代码: package exp ...
最新文章
- 概率论-4.1 大数定律
- 【2016计概A期末】照亮房间
- 使用JUnit对ADF应用程序进行单元测试
- 求两个数字的乘积,如果大于0,说明两个数字同号,如果小于0,说明两个数字异号,如果等于0,说明其中一个是0
- 《UNIX环境高级编程 3rd》笔记(1 / 21):UNIX基础知识
- 红豆、绿豆、黑豆、花生、莲子、薏仁米放在一起吃,可以吗?
- ibatis返回结果映射到HashMap时,列名无效的问题
- 【C++笔记】构造函数与析构函数相关知识
- 047——VUE中css过渡动作实例
- 车牌识别LPR系统系列文章汇总
- 基于python解析网易云歌单.
- Java基础视频教程
- TCP和UDP区别?如何改进TCP
- 计算机界面右下角,电脑开机卡主板界面右下角显示B4~
- 思维导图软件哪个好?盘点10款好用的思维导图软件
- dns域名解析原理及过程
- 国际标准时间显示格式
- 差动变压器的振动测量实验 思考题
- EMW3080+STC15轻松实现设备上云1(阿里云物联网平台、智能生活开放平台)
- python2.7实现简单日记本,兼容windows和linux