【目的要求】
了解JavaAPI的使用
掌握集合类List,Set和Map的使用
【注意事项】
注意电源插座的用电安全;
遵守计算机的使用注意事项;
防范病毒。
二、实验环境
【使用工具】
- 电脑
- window系统
- JDK环境
- eclipse开发环境
【相关知识】
- String类是final类,因此
- Date类在 java.util包中。使用Date类的无参数构造方法创建的对象可以获取本地当前时间。用Date的构造方法 Date(long time)创建的Date对象表示相对1970年1月1日0点(GMT)的时间,例如参数time取值秒表示 Thu Jan 01 00:00:00 GMT 1970。
- Calendar类在 java. util包中。使用 Calendar类的 static方法 getInstance()以初始化一个
- :
- calendar= Calendar. getInstance();
- calendar对象可以调用方法:
- final void set (int year, int month, int date)
public final void set(int year, int month, int date, int hour, int minute)
public final void set (int year, int month, int date, int hour, int minute, int second)
- year取负数时表示公元前。
【主要内容】
-
本例要求编写一个程序,模拟默认密码的自动生成策略,手动输入用户名,根据用户名自动生成默认密码。(在生成密码时,将用户名反转即为默认的密码。
代码如下:
public class Demo1 {
public static void main(String[] args) {
System.out.println("欢迎使用自动生成密码");
System.out.println("请输入你的用户名");
Scanner sc =new Scanner(System.in);
String s=sc.nextLine();
StringBuilder sb=new StringBuilder(s);
System.out.println("你的密码是:"+ sb.reverse().toString());
}
}
-
编写一个程序,模拟学生管理系统。可以实现对学生信息的添加、删除、修改和查询功能,要求使用List集合存储自定义的对象集合,并熟练使用List集合的中常用方法实现相关的操作。
- 提示:进入系统后,有一个文字菜单,包括1.查询学生信息;2.添加学生信息;3.删除学生信息;4.修改学生信息;5.退出程序提供查询、添加(注意检测重复添加),删除,修改这些功能,
- 学生信息包括:学号、姓名、年龄、籍贯等
代码如下:
package Pakeage2;
public class Student {
private String sid;//学号
private String name;//姓名
private String age;//年龄
private String address;//地址
//alt+insert快捷键
public Student() {
}
public Student(String sid, String name, String age, String address) {
this.sid = sid;
this.name = name;
this.age = age;
this.address = address;
}
public String getSid() {
return sid;
}
public void setSid(String sid) {
this.sid = sid;
}
public String getName() {
return name;
}
public void setName(String name) {
this.name = name;
}
public String getAge() {
return age;
}
public void setAge(String age) {
this.age = age;
}
public String getAddress() {
return address;
}
public void setAddress(String address) {
this.address = address;
}
}
//测试类
package Pakeage2;
import java.util.*;
public class Demo2 {
public static void main(String[] args) {
//创建集合对象,用于存储学生数据
ArrayList<Student> array=new ArrayList<Student>();
//用循环完成回到主界面
while (true) {
System.out.println("------欢迎来到主界面------");
System.out.println("1.添加学生");
System.out.println("2.删除学生");
System.out.println("3.修改学生");
System.out.println("4.查看所有学生");
System.out.println("5.退出");
System.out.println("请输入您的选择");
Scanner sc = new Scanner(System.in);
String line = sc.nextLine();
switch (line) {
case "1":
// System.out.println("添加学生");
addStudent(array);
break;
case "2":
// System.out.println("删除学生");
deleteStudent(array);
break;
case "3":
// System.out.println("修改学生");
updateStudent(array);
break;
case "4":
// System.out.println("查看所有学生");
findAllStudent(array);
break;
case "5":
System.out.println("谢谢使用!!!!");
// break;
System.exit(0);//JVM退出
}
}
}
//定义一个方法,用于添加学生信息
public static void addStudent(ArrayList<Student> array){
//键盘录入学生所需数据,显示提示信息
Scanner sc=new Scanner(System.in);
System.out.println("请输入学生学号:");
String sid=sc.nextLine();
System.out.println("请输入学生姓名:");
String name=sc.nextLine();
System.out.println("请输入学生年龄:");
String age=sc.nextLine();
System.out.println("请输入学生居住地:");
String address=sc.nextLine();
//创建学生对象,把键盘录入的数据赋值给学生对象的成员变量
Student s=new Student();
s.setSid(sid);
s.setName(name);
s.setAge(age);
s.setAddress(address);
//将学生对象添加到集合中
array.add(s);
//给出成功提示
System.out.println("添加学生成功!!!");
}
//定义一个方法,用于查看学生信息
public static void findAllStudent(ArrayList<Student> array){
//判断集合是否有数据,如果没有显示提示信息
if (array.size()== 0) {
System.out.println("无信息,请添加信息再查询");
//为了让程序不在往下执行,给出return;
return;
}
//显示表头信息
System.out.println("学号\t姓名\t年龄\t居住地" );
//将集合中的数据取出按照对应格式显示学生信息,年龄显示补充“岁”
for (int i = 0; i < array.size() ; i++) {
Student s= array.get(i);
System.out.println(s.getSid()+"\t"+s.getName()+"\t"+s.getAge()+"岁\t"+s.getAddress());
}
}
//定义一个方法,用于删除学生信息
public static void deleteStudent(ArrayList<Student> array){
//键盘录入要删除的学生学号,显示提示信息
Scanner sc=new Scanner(System.in);
System.out.println("请输入你要删除的学生学号");
String sid=sc.nextLine();
//在删除/修改之前,对学号判断是否存在
//如果不存在,显示提示信息
//如果存在,执行删除修改操作
//遍历集合将对应学生从集合中删除
int index=-1;
for (int i = 0; i < array.size() ; i++) {
Student s= array.get(i);
if (s.getSid().equals(sid) ) {
index=i;
break;
}
}
if (index == -1) {
System.out.println("该信息不存在,请重新输入");
}else{
array.remove(index);
//给出删除成功提示
System.out.println("删除学生成功");
}
}
//定义一个方法,用于修改学生信息
public static void updateStudent(ArrayList<Student> array) {
//键盘录入要修改的学生学号,显示提示信息
Scanner sc = new Scanner(System.in);
System.out.println("请输入要修改学生的学号:");
String sid = sc.nextLine();
//键盘录入要修改的信息
System.out.println("请输入学生新姓名:");
String name = sc.nextLine();
System.out.println("请输入学生新年龄:");
String age = sc.nextLine();
System.out.println("请输入学生新居住地:");
String address = sc.nextLine();
//创建学生对象
Student s = new Student();
s.setSid(sid);
s.setName(name);
s.setAge(age);
s.setAddress(address);
//遍历集合修改对应学生信息
int index=-1;
for (int i = 0; i < array.size(); i++) {
Student student = array.get(i);
if (student.getSid().equals(sid)) {
index=i;
break;
/* array.set(i, s);
break;*/
}
}
if (index == -1) {
System.out.println("该信息不存在");
}else {
array.set(index,s);
System.out.println("修改学生成功");
}
}
}
图6
编写一个Java应用程序,用户输入两个日期,程序将判断两个日期的大小关系,以及两个日期之间的间隔天数。
package Pakeage3;
import java.util.Scanner;
import java.util.Calendar;
public class Demo3{
public static void main(String[] args) {
Calendar calendar = Calendar.getInstance();
System.out.println(calendar);
//第一个日期输入
System.out.println("输入第一个年月日数据:");
System.out.print("请输入年份");
Scanner y1 = new Scanner(System.in);
int str1 = y1.nextInt();
System.out.print("请输入月份");
Scanner m1 = new Scanner(System.in);
int str2 = m1.nextInt();
System.out.print("请输入日期");
Scanner d1 = new Scanner(System.in);
int str3 = d1.nextInt();
System.out.println("日期为"+str1+"年"+str2+"月"+str3+"日");
//更新日期
calendar.set(str1,str2,str3);
Calendar calendar1 = Calendar.getInstance();
System.out.println("输入第二个年月日数据:");
//第二个日期的输入
System.out.print("请输入年份");
Scanner y2 = new Scanner(System.in);
int int1 = y1.nextInt();
System.out.print("请输入月份");
Scanner m2 = new Scanner(System.in);
int int2 = m2.nextInt();
System.out.print("请输入日期");
Scanner d2 = new Scanner(System.in);
int int3 = d2.nextInt();
System.out.println("日期为"+int1+"年"+int2+"月"+int3+"日");
calendar1.set(int1,int2,int3);
long time1 = calendar.getTimeInMillis();
System.out.println(time1);
long time2 = calendar1.getTimeInMillis();
System.out.println(time2);
if (time1 > time2) {
//计算相差的天数
long subDay = (time1 - time2) / (1000 * 60 * 60 * 24);
System.out.println("您输入的第一个日期大于第二个日期");
System.out.println(str1+"年"+str2+"月"+str3+"日"+"与"+int1+"年"+int2+"月"+int3+"日"+"相隔" + subDay + "天");
} else {
System.out.println("您输入的第二个日期大于第一个日期");
long subDay = (time2 - time1) / (1000 * 60 * 60 * 24);
System.out.println(str1+"年"+str2+"月"+str3+"日"+"与"+int1+"年"+int2+"月"+int3+"日"+"相隔" + subDay + "天");
}
}
}