首页 > 其他分享 >实验十八

实验十八

时间:2023-11-20 09:12:37浏览次数:29  
标签:name 十八 list 实验 vec Student sid new

[实验任务一]JAVAC++常见数据结构迭代器的使用

信1305班共44名同学,每名同学都有姓名,学号和年龄等属性,分别使用JAVA内置迭代器和C++中标准模板库(STL)实现对同学信息的遍历,要求按照学号从小到大和从大到小两种次序输出学生信息。

实验要求:

1. 搜集并掌握JAVA和C++中常见的数据结构和迭代器的使用方法,例如,vector, list, map和set等;

2. 提交源代码;

3. 注意编程规范。

#include<iostream>
#include <vector>
#include<algorithm>
using namespace std;
class Student{
public:
     long studentid;
     string name;
     int age;
     string major;
public:
     Student(long studentid, string name, int age, string major) {
        this->studentid = studentid;
        this->name = name;
        this->age = age;
        this->major = major;
    }
    void show(){
        cout<<"姓名: "<<this->name<<"\t学号: "<<this->studentid <<"\t年龄: "<< this->age<< "\t专业: " << this->major<<endl;
    }
};
bool compMax(Student *a,Student *b){
    if (a->studentid> b->studentid)
         return true;
     else
         return false;
}
bool compMin(Student *a,Student *b){
    if (a->studentid< b->studentid)
         return true;
     else
         return false;
}
int main(){
    Student *s1 = new Student(20193288, "张三", 19, "土木");
    Student *s2 = new Student(20193999, "李四", 21, "经管");
    Student *s3 = new Student(20196654, "王五", 22, "软工");
    Student *s4 = new Student(20193367, "赵六", 20, "机械");
    vector<Student*> vec;
    vec.push_back(s1);
    vec.push_back(s2);
    vec.push_back(s3);
    vec.push_back(s4);
    cout<<"按照学号从大到小输出: "<<endl;
    vector<Student*>::iterator it;
    sort(vec.begin(), vec.end(),compMax);
    for(it=vec.begin();it!=vec.end();it++){
        (*it)->show();
    }
    cout<<"-----------------------------------------------------------------"<<endl;
    cout<<"按照学号从小到大输出: "<<endl;
    sort(vec.begin(), vec.end(),compMin);
    for(it=vec.begin();it!=vec.end();it++){
        (*it)->show();
    }
}

  

public class Student implements Comparable<Student>{
    private String name;
    private int sid;
    private int age;
    public Student(String name, int sid, int age) {
        this.name = name;
        this.sid = sid;
        this.age = age;
    }
    public String toString() {
        return "Student{" +
                "姓名='" + name + '\'' +
                ", 学号=" + sid +
                ", 年龄=" + age +
                '}';
    }
    public int compareTo(Student o) {
        if (this.sid > o.sid){
            return -1;
        }
        else if (this.sid < o.sid){
            return 1;
        }
        else {
            return 0;
        }
    }
}

  

import java.util.ArrayList;
import java.util.Collections;
import java.util.Iterator;
import java.util.List;

public class IteratorDemo {
	public static void main(String[] args) {
        Student student1 = new Student("张三",20211145,21);
        Student student2 = new Student("李四",20215142,20);
        Student student3 = new Student("王五",20211919,23);
        Student student4 = new Student("赵六",20218108,22);
        Student student5 = new Student("李七",20214121,19);
        List<Student> list = new ArrayList<Student>();
        list.add(student1);
        list.add(student2);
        list.add(student3);
        list.add(student4);
        list.add(student5);
        Collections.sort(list);
        System.out.println("按学号排序输出:");
        Iterator i = list.iterator();
        while (i.hasNext()){
            System.out.println(i.next().toString());
        }
    }
}

  

标签:name,十八,list,实验,vec,Student,sid,new
From: https://www.cnblogs.com/usadingzhen/p/17843162.html

相关文章

  • 11.20实验18
    实验18:迭代器模式本次实验属于模仿型实验,通过本次实验学生将掌握以下内容:1、理解迭代器模式的动机,掌握该模式的结构;2、能够利用迭代器模式解决实际问题。[实验任务一]:JAVA和C++常见数据结构迭代器的使用信1305班共44名同学,每名同学都有姓名,学号和年龄等属性,分别使用JAVA内置迭代......
  • s实验4
    #include<stdio.h>#defineN4voidtest1(){inta[N]={1,9,8,4};inti;//输出数组a占用的内存字节数printf("sizeof(a)=%d\n",sizeof(a));//输出int类型数组a中每个元素的地址、值for(i=0;i<N;++i)pr......
  • 第二十八周
    学习时间:11.13-11.19一、完成内容学习方面:1.看论文《Global-to-LocalModelingforVideo-based3DHumanPoseandShapeEstimation》以及代码实现,做ppt。2.以及关于形变图卷积的论文《DeformableGraphConvolutionalNetworks》和它的应用《Deformablegraphconvolutiona......
  • COM病毒实验原理
    0×01实验内容编译生成com病毒,用com病毒对测试文件进行感染。0×02实验目的了解COM病毒的原理,掌握COM病毒的分析及其修改过程。0×03实验原理COM文件是一种单段执行结构的文件,其执行文件代码和执行时内存映像完全相同,起始执行偏移地址为100H,对应于文件的偏移00H(文件头)......
  • 实验四
    task1.1#include<stdio.h>#defineN4voidtest1(){inta[N]={1,9,8,4};inti;//输出数组a占用的内存字节数printf("sizeof(a)=%d\n",sizeof(a));//输出int类型数组a中每个元素的地址、值for(i=0;i<N;++i)......
  • 51时钟实验——DS1302芯片
    关于DS1302芯片:1、引脚说明: Vcc1:主电源;Vcc2:备份电源。当Vcc2>Vcc1+0.2VVcc2>Vcc1+0.2VVcc2>Vcc1+0.2VVcc2>Vcc1+0.2V时,由Vcc2向DS1302供电,当Vcc2<Vcc1时,由Vcc1向DS1302供电。SCLK:串行时钟,输入,控制数据的输入与输出;I/O:三线接口时的双向数据线;CE:输入信号,在读、写数据期......
  • 23-1 MSTP实验理解
    拓扑配置多实例生成树,使同VLAN之间采用最优路径通信且不环路TRUNK,ACCESS基础配置LSW1#interfaceGigabitEthernet0/0/1portlink-typetrunkporttrunkallow-passvlan8to9#interfaceGigabitEthernet0/0/2portlink-typetrunkporttrunkallow-passvlan......
  • 大型数据库实验七
    ......
  • 前端学习笔记202309学习笔记第九十八天-vue2-动画特效和常见组件库3
     ......
  • 信息系统项目管理师 第十八章-组织级项目管理
    1.组织级项目管理概述529组织级项目管理是指在组织战略的指导下,具体落实组织的战略行动,从业务管理、组织架构、人员配置等多个方面对组织进行项目化的管理。组织级项目管理是组织在其内部搭建起项目组合管理、项目集管理和单项目管理的各个领域,以及在这领域之间支持实现最佳......