1. 集合A={1,2,3,4}、B={1,3,5,7,9,11},编程求解两者的交集、并集和差集。
import java.util.HashSet;
import java.util.Scanner;
import java.util.Set;
public class Main1 {
public static void main(String[] args) {
Set result = new HashSet<>();
Set A = new HashSet<>();
Set B = new HashSet<>();
Scanner sc = new Scanner(System.in);
System.out.println("请输入集合A的数据量:");
int sizeA = sc.nextInt();
int num;
System.out.println("请输入集合A的数据:");
for (int i = 0; i < sizeA; i++) {
System.out.println("请输入第" + (i+1) + "个数据");
num = sc.nextInt();
A.add(num);
}
System.out.println("请输入集合B的数据量:");
int sizeB = sc.nextInt();
System.out.println("请输入集合B的数据:");
for (int i = 0; i < sizeB; i++) {
System.out.println("请输入第" + (i+1) + "个数据");
num = sc.nextInt();
B.add(num);
}
result.addAll(A);
result.retainAll(B);
System.out.print("A和B的交集为:");
System.out.println(result);
result.addAll(A);
result.addAll(B);
System.out.print("A和B的并集为:");
System.out.println(result);
result.clear();
result.addAll(A);
result.removeAll(B);
System.out.print("A和B的差集为:");
System.out.println(result);
}
}
2. 小孩报数问题:有N个小孩围成一圈,给他们从1开始依次编号,现指定从第W个开始报数,报到第S个时,该小孩出列,然后从下一个小孩开始报数,仍是报到S个出列,如此重复下去,直到所有的小孩都出列(总人数不足S个时将循环报数),求小孩出列的顺序。
import java.util.ArrayList;
import java.util.List;
import java.util.Scanner;
public class Main2 {
public static void main(String[] args) {
List list = new ArrayList<>();
int n,w,s;
Scanner sc = new Scanner(System.in);
System.out.println("请输入有多少个小孩:");
n = sc.nextInt();
for (int i = 0; i < n; i++) {
list.add(i+1);
}
System.out.println("请指定从第几个小孩开始报数:");
w = sc.nextInt();
System.out.println("请指定报到第几个出列:");
s = sc.nextInt();
int i = w-1,k = 0,count = 0;
while(count!=n){
k++;
if (k==s){
System.out.print(list.get(i) + " ");
list.remove(i);
k = 0;
count++;
continue;
}
i++;
i%=(list.size());
}
}
}
3 .信息学院年终评定奖学金,需要对整个年级的学生按照平均分数进行排名。
要求:根据输入的学号和平均成绩,按照平均成绩降序输出学号,如果平均成绩相同,按照输入的顺序输出。
import java.util.Scanner;
import java.util.Set;
import java.util.TreeSet;
public class Main3 {
public static void main(String[] args) {
Set students = new TreeSet<Student>();
int select = 1;
Scanner sc = new Scanner(System.in);
while (select==1) {
System.out.println("请输学号:");
String studentId = sc.next();
System.out.println("请输入平均成绩:");
double averageScore = sc.nextDouble();
students.add(new Student(studentId,averageScore));
System.out.println("是否继续进行添加学生的操作?");
System.out.println("0======否");
System.out.println("1======是");
select = sc.nextInt();
}
System.out.println(students);
}
}
class Student implements Comparable<Student>{
private String studentId;
private double averageScores;
public Student() {
}
public Student(String studentId, double averageScores) {
this.studentId = studentId;
this.averageScores = averageScores;
}
@Override
public int compareTo(Student o) {
return this.averageScores - o.averageScores <= 0 ? 1 :-1;
}
@Override
public String toString() {
return "Student{" +
"studentId='" + studentId + '\'' +
'}';
}
}
4、利用链表类及其顺序表类,完成一个学生成绩管理系统的设计
该题目要定义有关的类,定义类的方法和属性,再通过对象调用方法,完成所要求的功能。
要求:
完成一个学生管理信息系统,完成学生的各种管理。将文件中信息,读入,完成一下的各操作
(1)添加一个新学生: (通过键盘输入该学生的各信息)
(2)删除一个学生: (通过学号,删除学生信息)
(3)修改一个学生的信息:(通过学号,修改学生的信息,要输入或提供该学生的有关信息)
(4)查询一个学生并输出其有关信息:(通过学号,要查询学生,要输入或提供该学生的某项信息)
(5)显示出所有学生的信息: (按表格格式显示:由表头,并且一个学生显示一行)
import java.util.ArrayList;
import java.util.List;
import java.util.Scanner;
public class Main4 {
public static void main(String[] args) {
List<Student1> students = new ArrayList<>();
while (true) {
menu();
Scanner sc = new Scanner(System.in);
int select;
select = sc.nextInt();
switch (select){
case 1:
Add(students,sc);
break;
case 2:
Delete(students,sc);
break;
case 3:
Modify(students,sc);
break;
case 4:
Find(students,sc);
break;
case 5:
PrintAllStudents(students);
break;
}
}
}
private static void PrintAllStudents(List<Student1> students) {
//Student1 student = new Student1();
for (Student1 student:students) {
student.print();
}
}
private static void Find(List<Student1> students, Scanner sc) {
System.out.println("请输入学生学号:");
String studentId = sc.next();
int index = getIndexByStudentId(students,studentId);
if (index!=1){
students.get(index).print();
}else {
System.out.println("您查找的学生不存在!");
}
}
private static void Modify(List<Student1> students, Scanner sc) {
System.out.println("请输入学生学号:");
String studentId = sc.next();
int index = getIndexByStudentId(students,studentId);
if (index!=-1){
while (true){
System.out.println("请选择你要修改的信息:");
System.out.println("1、姓名");
System.out.println("2、成绩");
System.out.println("0、退出修改操作");
int select = sc.nextInt();
if (select==1){
System.out.println("请输入新的姓名:");
String newName = sc.next();
students.get(index).setName(newName);
} else if (select==2) {
System.out.println("请输入新的成绩:");
double newScore = sc.nextDouble();
students.get(index).setScore(newScore);
}else {
return;
}
}
}
}
private static void Delete(List<Student1> students, Scanner sc) {
System.out.println("请输入学生的学号:");
String studentId = sc.next();
int index = getIndexByStudentId(students,studentId);
if (index!=-1){
students.remove(index);
System.out.println("删除完成!");
}else {
System.out.println("该学生不存在!");
}
}
private static int getIndexByStudentId(List<Student1> students, String studentId) {
for (int i = 0; i < students.size(); i++) {
if (students.get(i).getStudentId().equals(studentId)){
return i;
}
}
return -1;
}
private static void Add(List<Student1> students, Scanner sc) {
System.out.println("请输入学生姓名:");
String name = sc.next();
System.out.println("请输入学号:");
String studentId = sc.next();
System.out.println("请输入学生成绩:");
double score = sc.nextDouble();
students.add(new Student1(name,studentId,score));
System.out.println("添加成功!");
}
private static void menu() {
System.out.println("请选择你的操作:");
System.out.println("1、添加学生信息");
System.out.println("2、删除学生信息");
System.out.println("3、修改学生信息");
System.out.println("4、查询学生信息");
System.out.println("5、显示所有学生信息");
}
}
class Student1 {
private String name;
private String studentId;
private double score;
public Student1() {
}
public Student1(String name, String studentId, double score) {
this.name = name;
this.studentId = studentId;
this.score = score;
}
public String getName() {
return name;
}
public void setName(String name) {
this.name = name;
}
public String getStudentId() {
return studentId;
}
public void setStudentId(String studentId) {
this.studentId = studentId;
}
public double getScore() {
return score;
}
public void setScore(double score) {
this.score = score;
}
public void print() {
System.out.println("姓名" + "\t" + this.name + "\t学号" + "\t" + this.studentId + "\t成绩" + "\t" + this.score);
}
}