diff --git "a/work/com/java/minxi/java_20240425/java_2302_\345\210\230\345\256\227\346\227\255_2344310210/TestWork.java" "b/work/com/java/minxi/java_20240425/java_2302_\345\210\230\345\256\227\346\227\255_2344310210/TestWork.java" new file mode 100644 index 0000000000000000000000000000000000000000..94e5f6b523c3235521fc25e306dfb6f60c69df68 --- /dev/null +++ "b/work/com/java/minxi/java_20240425/java_2302_\345\210\230\345\256\227\346\227\255_2344310210/TestWork.java" @@ -0,0 +1,164 @@ +package com.java.minxi.java_20240425.java_2302_刘宗旭_2344310210; + +//:Java2024/data4_25.TestWork.java + +import java.util.*; + +class Employee {//员工类 + static long count = 0; + private static ArrayList obj = new ArrayList<>();//存放对象集合 + private long staffId = 230000; + private String account; + private String password = "123456";//初始密码 + private String name; + private int age; + private ArrayList setAccount;//该集合属于对象 + private Random random; + + public Employee() {//无参构造器:它同时也是一个注册功能,创建对象时自动生成一个账号 + Employee.obj.add(this); + setAccount = new ArrayList<>();//存放账户的集合 + random = new Random(); + this.generateAccount(); + staffId++; + count++; + } + + public Employee(String uid, String password, String name, int age) {//有参构造器:用于修改信息(名字,性别,年龄,密码) + } + + //将以下三个功能集成为一个系统 + public static void ManagementSystem(Employee a) { + System.out.println("-------<欢迎使用初音ミク推荐的管理系统>-------"); + System.out.println("说明:键入的数字以选择功能:" + "\n" + "1.登入\n" + "2.打卡\n" + "3.退出"); + for (; ; ) { + System.out.println("继续选择功能-"); + Scanner select = new Scanner(System.in); + int num = select.nextInt(); + switch (num) { + case 1: + obj.get(obj.indexOf(a)).Login(); + continue; + case 2: + obj.get(obj.indexOf(a)).clockInAndOut(); + continue; + case 3: + obj.get(obj.indexOf(a)).exit(); + return; + default: + System.out.println("选择错误"); + } + } + } + + private void generateAccount() {//生成账号方法 + int randomNumber = generateRandomNumber();//调用生成随机数方法,生成一个随机数 + if (checkDuplicate(randomNumber)) {//调用检查重复方法,检查是否存在账号重复 + generateAccount(); + } + String account = generateAccount(randomNumber);//定义引用account + setAccount.add(account);//将account的值放入集合 + this.account = account;//将account的值赋给对象属性account + System.out.println("注册成功--" + setAccount.get(setAccount.indexOf(account))); +// System.out.println(setAccount); + } + + private int generateRandomNumber() {//生成随机数方法 + return random.nextInt(1000000); + } + + private boolean checkDuplicate(int randomNumber) {//检查重复账号方法 + return setAccount.contains(String.valueOf(randomNumber)); + } + + private String generateAccount(int randomNumber) {//重载生成账号方法,用于记录随机数作为账号 + return String.valueOf(randomNumber); + } + + public long getStaffId() { + return staffId; + } + + public void setStaffId(long staffId) { + this.staffId = staffId; + } + + public String getAccount() { + return account; + } + + public void setAccount(String account) { + this.account = account; + } + + public String getPassword() { + return password; + } + + public void setPassword(String password) { + this.password = password; + } + + public String getName() { + return name; + } + + public void setName(String name) { + this.name = name; + } + + public int getAge() { + return age; + } + + public void setAge(int age) { + this.age = age; + } + + //创建登录,打卡,退出三个功能 + public void Login() {// 登录功能:必须要进行账号密码校验,校验OK才可以登录 + System.out.println("请输入账号:"); + Scanner inputAccount = new Scanner(System.in); + String act = String.valueOf(inputAccount.nextInt()); + System.out.println("请输入密码:"); + Scanner inputPassword = new Scanner(System.in); + String psw = inputPassword.nextLine(); + + //校验:每个账号对应一个密码 + if (this.setAccount.contains(act)) { + if (this.account.equals(act) && this.password.equals(psw)) { + System.out.println("登入成功"); + } else System.out.println("账号或者密码错误"); + } else System.out.println("账号不存在"); + } + + + public void clockInAndOut() {//打卡功能:需要校验员工的ID和密码才可以进行打卡; + System.out.println("请输入id:"); + Scanner inputStaffId = new Scanner(System.in); + long isi = inputStaffId.nextLong(); + System.out.println("请输入入密码:"); + Scanner inputPassword = new Scanner(System.in); + String psd = inputPassword.nextLine(); + + //校验ID和密码 + if (this.staffId == isi && this.password.equals(psd)) { + System.out.println("打卡成功"); + } else System.out.println("id或者密码不正确"); + } + + public void exit() {//退出功能:员工的退出,不需要校验,直接退出系统 + System.out.println("已退出"); + } +} + +public class TestWork { + public static void main(String[] args) { + //创建对象 + Employee employee = new Employee(); + System.out.println("请设置密码"); + Scanner input = new Scanner(System.in); + employee.setPassword(input.nextLine()); + Employee.ManagementSystem(employee); + } +} diff --git "a/work/com/java/minxi/java_20240426/java_2302_\345\210\230\345\256\227\346\227\255_2344310210/Student.java" "b/work/com/java/minxi/java_20240426/java_2302_\345\210\230\345\256\227\346\227\255_2344310210/Student.java" new file mode 100644 index 0000000000000000000000000000000000000000..f94f8a522feb08579f6f6449d6c970a573438a9c --- /dev/null +++ "b/work/com/java/minxi/java_20240426/java_2302_\345\210\230\345\256\227\346\227\255_2344310210/Student.java" @@ -0,0 +1,66 @@ +package com.java.minxi.java_20240426.java_2302_刘宗旭_2344310210; + +/* +题目: +现有一个代码需求如下: +1).声明一个名为Person的类,里面有name与age两个属性,并声明一个含有两个参数的构造方法; +2).声明一个名为Student的类,此类继承自Person类,添加一个属性school; +3).在Student类的构造方法中调用父类中有两个参数的构造方法; +4).定义一个intro方法,进行自我介绍,输出格式:姓名:张三,年龄:18,学校:闽西职业技术学院。注意:输出语句中“,”和“:”均为中文标点符号。 +5).实例化一个Student类的对象student,为Student对象student中的school赋值,调用intro方法,打印输出姓名:张三,年龄:18,学校:龙岩学院。 +*/ + + +class Person { + protected String name; + protected int age; + + public Person(String name, int age) {//基类的有参构造器在导出类构造器之后调用,并且只能手动调用(super()显式调用) + System.out.println("Person arg-constructor"); + this.name = name; + this.age = age; + } + + public Person() {//基类的无参构造器(默认构造器)在总是在导出类构造器之前调用,并且自动调用(super()隐式调用) + System.out.println("Person non-arg-constructor"); + } + + +} + +public class Student extends Person {//基类一定要有默认构造器(无参构造器),否则报错 + private String school; + + public Student() { + super("玥華", 18);//必须写在第一行,如果没有显式调用,则隐式调用基类的默认构造器(无参) + System.out.println("Student non-arg-constructor"); + } + + public Student(String name, int age) { + System.out.println("Student arg-constructor"); + super.name = name; + super.age = age; + } + + public static void main(String[] args) { + Student student1 = new Student(); + student1.setSchool("闽西职业技术学院"); + student1.intro(); + + Student student2 = new Student("溺水小刀", 19); + student2.setSchool("龙岩学院"); + student2.intro(); + } + + public void intro() { + System.out.println("姓名:" + super.name + "," + "年龄:" + super.age + "," + "学校:" + this.school); + } + + public String getSchool() { + return school; + } + + public void setSchool(String school) { + this.school = school; + } +}