软件设计-迭代器模式
Java 语言(一种计算机语言,尤用于创建网站)语言(一种计算机语言,尤用于创建网站)和C常见数据结构迭代器的使用
信1305班共44名同学,每名同学都有姓名,学号和年龄等属性,分别使用Java 语言(一种计算机语言,尤用于创建网站)语言(一种计算机语言,尤用于创建网站)内置迭代器和C中标准模板库(STL)实现对同学信息的遍历,要求按照学号从小到大和从大到小两种次序输出学生信息。
源码
Java 语言(一种计算机语言,尤用于创建网站)语言(一种计算机语言,尤用于创建网站)内置迭代器
包装rjsj.no18
导入Java。乌提尔。ArrayList
导入Java。乌提尔。收藏品;
导入Java。乌提尔。迭代器;
导入Java。乌提尔。列表;
学生类实现了比较研究
私有字符串名称;
私有int sid
私人互联网时代;
公共学生(字符串名称,整数样本号,整数年龄){ 0
this.name=name
this.sid=sid
this.age=年龄;
}
@覆盖
公共字符串ToString(){ 0
返回"学生{"
'姓名名称' \ '
,学号=' sid
,年龄='年龄
'}';
}
@覆盖
公共国际比较(学生)
如果(这个。sid o . sid){ 0
返回-1;
} else if(这个。sid o . sid){ 0
返回1;
} else {
返回0;
}
}
}
类迭代器
公共静态void main(String[]参数){ 0
学生1=新学生('张三',20193885,21);
学生2=新学生('李四',20201456,20);
学生3=新学生('王五',20184655,23);
学生4=新学生('赵六',20191242,22);
学生5=新学生('李七',20213256,19);
list学生列表=new ArrayList学生();
名单。添加(学生1);名单。添加(学生2);名单。添加(学生3);
名单。添加(学生4);名单。添加(学生5);
Collections.sort(列表);
System.out.println('按学号排序输出:');
迭代器I=列表。迭代器();
while(I . HasNeXt()){ 0
System.out.println(i.next().toString());
}
}
}
C
#包括牡蛎
#包含矢量
#包括算法
使用命名空间标准;
学生班级{
公众号:
长学生身份;
字符串名称;
国际年龄;
弦乐专业;
公众号:
学生(长学生标识、字符串名称、整数、字符串专业){ 0
this-学生证=学生证;
this-name=name;
这个年龄=年龄;
本-专业=专业;
}
void show(){ 0
cout '姓名:"此名称" \t学号: 'this-studentid '\t年龄:"这个年龄" \t专业: ' this-majorendl;
}
};
bool compMax(学生*a,学生* b){ 0
if (a-studentid b-studentid)
返回真;
其他
返回错误的
}
bool compMin(学生*a,学生* b){ 0
if (a-studentid b-studentid)
返回真;
其他
返回错误的
}
int main(){ 0
学生*s1=新学生(20193288 '张三', 19, '土木');
学生*s2=新学生(20193999 '李四', 21, '经管');
学生*s3=新学生(20196654 '王五', 22, '软工');
学生*s4=新学生(20193367 '赵六', 20, '机械');
向量研究*向量;
vec。推背(S1);
vec。推背(S2);
vec。推背(S3);
vec。推背(S4);
cout '按照学号从大到小输出: ' endl
向量学习* :迭代器迭代器它;
sort(vec.begin()、vec.end()、compMax);
for(it=vec。begin();它!=vec。end();it){ 0
(* it)-show();
}
cout '-' endl;
cout '按照学号从小到大输出: ' endl
sort(vec.begin()、vec.end()、compMin);
for(it=vec。begin();它!=vec。end();it){ 0
(* it)-show();
}
}
运行结果
内容来源网络,如有侵权,联系删除,本文地址:https://www.230890.com/zhan/145034.html