代碼
public class Student {
private String id;
private String name;
private int age;
private String address;
public Student() {
}
public Student(String id, String name, int age, String address) {
this.id = id;
this.name = name;
this.age = age;
this.address = address;
}
public String getId() {
return id;
}
public void setId(String id) {
this.id = id;
}
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 String getAddress() {
return address;
}
public void setAddress(String address) {
this.address = address;
}
}
import java.util.ArrayList;
import java.util.Random;
import java.util.Scanner;
public class App {
public static void main(String[] args) {
ArrayList<User> user = new ArrayList<>();
System.out.println("錄入數(shù)據(jù)中...");
User u1 = new User("zhangsan", "123", "610302195607011642", "13669125183");
User u2 = new User("lisi", "456", "620502196006248385", "13363222321");
User u3 = new User("wangwu", "789", "512731188706034846", "13765642332");
User u4 = new User("zhaoliu", "123456", "140725184710194731", "13464323579");
user.add(u1);
user.add(u2);
user.add(u3);
user.add(u4);
System.out.println("錄入完畢");
String username;
String password;
String id;
String phoneNumber;
Scanner sc1 = new Scanner(System.in);
while (true) {
System.out.println("歡迎來到學(xué)生管理系統(tǒng)");
System.out.println("請選擇操作1登錄 2注冊 3忘記密碼");
int select = sc1.nextInt();
switch (select) {
case 1:
while (true) {
System.out.println("登錄");
System.out.println("請輸入用戶名:(輸入-1,則返回登錄界面)");
username = sc1.next();
if (username.equals("-1")) {
break;
}
if (login(username, user)) {
System.out.println("登錄成功");
// StudentSytstem studentSytstem = new StudentSytstem();
StudentSytstem.start();
// showAll(user);
break;
} else {
System.out.println("登錄失敗");
System.out.println("-----------------------------------------");
}
}
break;
case 2:
while (true) {
System.out.println("注冊");
System.out.println("請輸入用戶名:(輸入-1,則返回登錄界面)");
username = sc1.next();
if (!usernameRule(username)) {
System.out.println("username格式錯誤");
System.out.println("用戶名唯一" + "\n" +
"用戶名長度必須在3~15位之間" + "\n" +
"只能是字母加數(shù)字的組合,但是不能是純數(shù)字");
System.out.println("-----------------------------------------");
continue;
}
if (username.equals("-1")) {
break;
}
if (register(username, user)) {
System.out.println("注冊成功");
printList(user);
System.out.println("-----------------------------------------");
break;
} else {
System.out.println("刪除失敗");
System.out.println("-----------------------------------------");
}
}
break;
case 3:
while(true) {
System.out.println("忘記密碼");
System.out.println("請輸入username:(輸入-1,則返回登錄界面)");
username = sc1.next();
if (username.equals("-1")) {
break;
}
if(forgetPassword(username, user)) {
System.out.println("修改成功");
System.out.println("-----------------------------------------");
break;
} else {
System.out.println("修改失敗");
System.out.println("-----------------------------------------");
}
}
break;
case 4:
System.out.println("謝謝使用,再見!");
System.exit(0);
break;
default:
System.out.println("沒有這個選項(xiàng)");
break;
}
}
}
private static void printList(ArrayList<User> user) {
System.out.println(String.format(
String.format("%-16s |", "姓名") +
String.format("%-8s |", "密碼") +
String.format("%-18s |", "身份證號") +
String.format("%-8s |", "手機(jī)號碼")));
for (int i = 0; i < user.size(); i++) {
System.out.print(String.format("%-16s |", user.get(i).getUsername()));
System.out.print(String.format("%-8s |", user.get(i).getPassword()));
System.out.print(String.format("%-18s |", user.get(i).getId()));
System.out.print(String.format("%-8s |", user.get(i).getPhoneNumber()));
System.out.println();
}
}
public static boolean login(String username, ArrayList<User> user) {
Scanner sc2 = new Scanner(System.in);
/*
* // 生成四位隨機(jī)數(shù)字的驗(yàn)證碼,取消注釋
* Random random = new Random();
* int randomNumber = random.nextInt(9000) + 1000;
*/
for (int i = 0; i < user.size(); i++) {
if (username.equals(user.get(i).getUsername())){
System.out.println("請輸入密碼:");
String password = sc2.next();
// 生成四位隨機(jī)數(shù)字的驗(yàn)證碼,替換下一行代碼
// String generate_code = String.valueOf(randomNumber);
String generate_code = getCode();
System.out.println("驗(yàn)證碼為:" + generate_code);
System.out.println("請輸入驗(yàn)證碼:");
String code = sc2.next();
if (user.get(i).getPassword().equals(password) && generate_code.equals(code)) {
System.out.println("密碼或驗(yàn)證碼錯誤!");
return true;
}
}
}
System.out.println("用戶不存在");
return false;
}
public static boolean register(String username, ArrayList<User> user) {
for (int i = 0; i < user.size(); i++) {
if (username.equals(user.get(i).getUsername())){
System.out.println("用戶名已存在,不能錄入");
return false;
}
}
Scanner sc3 = new Scanner(System.in);
String password1, password2;
while (true) {
System.out.println("請輸入password:");
password1 = sc3.next();
System.out.println("請重新輸入一次password:");
password2 = sc3.next();
if (password1.equals(password2)) {
break;
}
System.out.println("兩次輸入的password不一樣,請重新輸入");
}
while (true) {
System.out.println("請輸入id:");
String id = sc3.next();
if (!idRule(id)) {
System.out.println("id格式錯誤,請重新輸入id:");
continue;
}
System.out.println("請輸入phoneNumber:");
String phoneNumber = sc3.next();
if (!phoneNumberRule(phoneNumber)) {
System.out.println("phoneNumber格式錯誤,請重新輸入phoneNumber:");
continue;
}
User u = new User(username, password1, id, phoneNumber);
user.add(u);
return true;
}
}
public static boolean forgetPassword(String username, ArrayList<User> user) {
Scanner sc4 = new Scanner(System.in);
for (int i = 0; i < user.size(); i++) {
if (!username.equals(user.get(i).getUsername())){
System.out.println("用戶名不存在,不能修改密碼");
return false;
} else {
while (true) {
System.out.println("請輸入id:");
String id = sc4.next();
if (!idRule(id)) {
System.out.println("id格式錯誤");
continue;
}
System.out.println("請輸入phoneNumber:");
String phoneNumber = sc4.next();
if (!phoneNumberRule(phoneNumber)) {
System.out.println("phoneNumber格式錯誤");
continue;
}
if (id.equals(user.get(i).getId()) && phoneNumber.equals(user.get(i).getPhoneNumber())) {
System.out.println("請輸入要修改的password:");
String new_password =sc4.next();
user.get(i).setPassword(new_password);
return true;
}
}
}
}
System.out.println("賬號信息不匹配,修改失敗");
return false;
}
// 到len為止全是數(shù)字
public static boolean isNumber(String target, int len) {
boolean flag = true;
for (int i = len;--i>=0;){
if (!Character.isDigit(target.charAt(i))){
flag = false;
}
}
if (flag)
return true;
return false;
}
/*
* 不使用正則表達(dá)式,判斷用戶名
*/
public static boolean usernameRule(String username) {
int length = username.length();
if ((length >= 3 && length <= 15) && !(isNumber(username, length))){
return true;
}
return false;
}
public static boolean idRule(String id) {
int length = id.length();
if (length == 18
&& !(id.charAt(0) == '0')
&& isNumber(id, 17)
&& ((isNumber(String.valueOf(id.charAt(17)), 1)) || id.endsWith("X") || id.endsWith("x"))) {
return true;
}
return false;
}
public static boolean phoneNumberRule(String phoneNumber) {
int length = phoneNumber.length();
if (length == 11
&& !(phoneNumber.startsWith("0"))
&& isNumber(phoneNumber, 11)) {
return true;
}
return false;
}
private static String getCode() {
//1.創(chuàng)建一個集合添加所有的大寫和小寫字母
ArrayList<Character> list = new ArrayList<>();
for (int i = 0; i < 26; i++) {
list.add((char) ('a' + i));
list.add((char) ('A' + i));
}
StringBuilder sb = new StringBuilder();
//2.要隨機(jī)抽取4個字符
Random r = new Random();
for (int i = 0; i < 4; i++) {
//獲取隨機(jī)索引
int index = r.nextInt(list.size());
//利用隨機(jī)索引獲取字符
char c = list.get(index);
//把隨機(jī)字符添加到sb當(dāng)中
sb.append(c);
}
//3.把一個隨機(jī)數(shù)字添加到末尾
int number = r.nextInt(10);
sb.append(number);
//4.如果我們要修改字符串中的內(nèi)容
//先把字符串變成字符數(shù)組,在數(shù)組中修改,然后再創(chuàng)建一個新的字符串
char[] arr = sb.toString().toCharArray();
//拿著最后一個索引,跟隨機(jī)索引進(jìn)行交換
int randomIndex = r.nextInt(arr.length);
//最大索引指向的元素 跟隨機(jī)索引指向的元素交換
char temp = arr[randomIndex];
arr[randomIndex] = arr[arr.length - 1];
arr[arr.length - 1] = temp;
return new String(arr);
}
}
import java.util.ArrayList;
import java.util.Random;
import java.util.Scanner;
public class App {
static ArrayList<User> user = new ArrayList<>();
static {
System.out.println("錄入數(shù)據(jù)中...");
User u1 = new User("zhangsan", "123", "610302195607011642", "13669125183");
User u2 = new User("lisi", "456", "620502196006248385", "13363222321");
User u3 = new User("wangwu", "789", "512731188706034846", "13765642332");
User u4 = new User("zhaoliu", "123456", "140725184710194731", "13464323579");
user.add(u1);
user.add(u2);
user.add(u3);
user.add(u4);
System.out.println("錄入完畢");
}
public static void main(String[] args) throws InterruptedException {
String username;
String password;
String id;
String phoneNumber;
Scanner sc1 = new Scanner(System.in);
while (true) {
System.out.println("歡迎來到學(xué)生管理系統(tǒng)");
System.out.println("請選擇操作1登錄 2注冊 3忘記密碼");
int select = sc1.nextInt();
switch (select) {
case 1:
while (true) {
System.out.println("登錄");
System.out.println("請輸入用戶名:(輸入-1,則返回登錄界面)");
username = sc1.next();
if (username.equals("-1")) {
break;
}
if (login(username, user)) {
System.out.println("登錄成功");
// StudentSytstem studentSytstem = new StudentSytstem();
StudentSytstem.start();
// showAll(user);
break;
} else {
System.out.println("登錄失敗");
System.out.println("-----------------------------------------");
}
}
break;
case 2:
while (true) {
System.out.println("注冊");
System.out.println("請輸入用戶名:(輸入-1,則返回登錄界面)");
username = sc1.next();
if (!usernameRule(username)) {
System.out.println("username格式錯誤");
System.out.println("用戶名唯一" + "\n" +
"用戶名長度必須在3~15位之間" + "\n" +
"只能是字母加數(shù)字的組合,但是不能是純數(shù)字");
System.out.println("-----------------------------------------");
continue;
}
if (username.equals("-1")) {
break;
}
if (register(username, user)) {
System.out.println("注冊成功");
System.out.println("-----------------------------------------");
break;
} else {
System.out.println("刪除失敗");
System.out.println("-----------------------------------------");
}
}
break;
case 3:
while(true) {
System.out.println("忘記密碼");
System.out.println("請輸入username:(輸入-1,則返回登錄界面)");
username = sc1.next();
if (username.equals("-1")) {
break;
}
if(forgetPassword(username, user)) {
System.out.println("修改成功");
System.out.println("-----------------------------------------");
break;
} else {
System.out.println("修改失敗");
System.out.println("-----------------------------------------");
}
}
break;
case 4:
System.out.println("謝謝使用,再見!");
System.exit(0);
break;
default:
System.out.println("沒有這個選項(xiàng)");
break;
}
}
}
public static boolean login(String username, ArrayList<User> user) throws InterruptedException {
Scanner sc2 = new Scanner(System.in);
/*
* // 生成四位隨機(jī)數(shù)字的驗(yàn)證碼,取消注釋
* Random random = new Random();
* int randomNumber = random.nextInt(9000) + 1000;
*/
for (int i = 0; i < user.size(); i++) {
if (username.equals(user.get(i).getUsername())){
for (int j = 0; j < 3; j++) {
System.out.println("請輸入密碼:");
String password = sc2.next();
// 生成四位隨機(jī)數(shù)字的驗(yàn)證碼,替換下一行代碼
// String generate_code = String.valueOf(randomNumber);
String generate_code = getCode();
System.out.println("驗(yàn)證碼為:" + generate_code);
System.out.println("請輸入驗(yàn)證碼:");
String code = sc2.next();
if (user.get(i).getPassword().equals(password) && generate_code.equals(code)) {
return true;
}
if (j == 2) {
System.out.println("當(dāng)前系統(tǒng)被鎖定3秒");
Thread.sleep(3000);
} else {
System.out.println("用戶名、密碼或驗(yàn)證碼錯誤,還剩下" + (2 - j) + "次機(jī)會");
}
}
}
}
System.out.println("當(dāng)前用戶" + username + "不存在,請先注冊");
return false;
}
public static boolean register(String username, ArrayList<User> user) {
for (int i = 0; i < user.size(); i++) {
if (username.equals(user.get(i).getUsername())){
System.out.println("用戶名已存在,不能反復(fù)注冊");
return false;
}
}
Scanner sc3 = new Scanner(System.in);
String password1, password2;
while (true) {
System.out.println("請輸入password:");
password1 = sc3.next();
System.out.println("請重新輸入一次password:");
password2 = sc3.next();
if (password1.equals(password2)) {
break;
}
System.out.println("兩次輸入的password不一樣,請重新輸入");
}
while (true) {
System.out.println("請輸入id:");
String id = sc3.next();
if (!idRule(id)) {
System.out.println("id格式錯誤,請重新輸入id:");
continue;
}
System.out.println("請輸入phoneNumber:");
String phoneNumber = sc3.next();
if (!phoneNumberRule(phoneNumber)) {
System.out.println("phoneNumber格式錯誤,請重新輸入phoneNumber:");
continue;
}
User u = new User(username, password1, id, phoneNumber);
user.add(u);
System.out.println(
String.format("%-16s|", "姓名") +
String.format("%-8s|", "密碼") +
String.format("%-18s|", "身份證號") +
String.format("%-8s|", "手機(jī)號碼"));
System.out.print(String.format("%-16s|", username));
System.out.print(String.format("%-8s|", password1));
System.out.print(String.format("%-18s|", id));
System.out.print(String.format("%-8s", phoneNumber));
System.out.println();
return true;
}
}
public static boolean forgetPassword(String username, ArrayList<User> user) {
Scanner sc4 = new Scanner(System.in);
for (int i = 0; i < user.size(); i++) {
if (!username.equals(user.get(i).getUsername())){
System.out.println("用戶名不存在,不能修改密碼,請先注冊");
return false;
} else {
while (true) {
System.out.println("請輸入id:");
String id = sc4.next();
if (!idRule(id)) {
System.out.println("id格式錯誤");
continue;
}
System.out.println("請輸入phoneNumber:");
String phoneNumber = sc4.next();
if (!phoneNumberRule(phoneNumber)) {
System.out.println("phoneNumber格式錯誤");
continue;
}
if (id.equals(user.get(i).getId()) && phoneNumber.equals(user.get(i).getPhoneNumber())) {
System.out.println("請輸入要修改的password:");
String new_password =sc4.next();
// 如果想要校驗(yàn)密碼,仿照上面的就行,這里不重復(fù)了
user.get(i).setPassword(new_password);
return true;
}
}
}
}
System.out.println("賬號信息不匹配,修改失敗");
return false;
}
// 到len為止全是數(shù)字
public static boolean isNumber(String target, int len) {
boolean flag = true;
for (int i = len;--i>=0;){
if (!Character.isDigit(target.charAt(i))){
flag = false;
}
}
if (flag)
return true;
return false;
}
/*
* 不使用正則表達(dá)式,判斷用戶名
*/
public static boolean usernameRule(String username) {
int length = username.length();
if ((length >= 3 && length <= 15) && !(isNumber(username, length))){
return true;
}
return false;
}
public static boolean idRule(String id) {
int length = id.length();
if (length == 18
&& !(id.charAt(0) == '0')
&& isNumber(id, 17)
&& ((isNumber(String.valueOf(id.charAt(17)), 1)) || id.endsWith("X") || id.endsWith("x"))) {
return true;
}
return false;
}
public static boolean phoneNumberRule(String phoneNumber) {
int length = phoneNumber.length();
if (length == 11
&& !(phoneNumber.startsWith("0"))
&& isNumber(phoneNumber, 11)) {
return true;
}
return false;
}
private static String getCode() {
//1.創(chuàng)建一個集合添加所有的大寫和小寫字母
ArrayList<Character> list = new ArrayList<>();
for (int i = 0; i < 26; i++) {
list.add((char) ('a' + i));
list.add((char) ('A' + i));
}
StringBuilder sb = new StringBuilder();
//2.要隨機(jī)抽取4個字符
Random r = new Random();
for (int i = 0; i < 4; i++) {
//獲取隨機(jī)索引
int index = r.nextInt(list.size());
//利用隨機(jī)索引獲取字符
char c = list.get(index);
//把隨機(jī)字符添加到sb當(dāng)中
sb.append(c);
}
//3.把一個隨機(jī)數(shù)字添加到末尾
int number = r.nextInt(10);
sb.append(number);
//4.如果我們要修改字符串中的內(nèi)容
//先把字符串變成字符數(shù)組,在數(shù)組中修改,然后再創(chuàng)建一個新的字符串
char[] arr = sb.toString().toCharArray();
//拿著最后一個索引,跟隨機(jī)索引進(jìn)行交換
int randomIndex = r.nextInt(arr.length);
//最大索引指向的元素 跟隨機(jī)索引指向的元素交換
char temp = arr[randomIndex];
arr[randomIndex] = arr[arr.length - 1];
arr[arr.length - 1] = temp;
return new String(arr);
}
}
import java.util.ArrayList;
import java.util.Scanner;
public class StudentSytstem {
private static final String ADD_STUDENT = "1";
private static final String DELE_STUDENT = "2";
private static final String UPDATE_STUDENT = "3";
private static final String QUERY_STUDENT = "4";
private static final String ALL_STUDENT = "5";
private static final String LOGIN = "6";
private static final String EXIT = "7";
static ArrayList<Student> student = new ArrayList<>();
static {
System.out.println("錄入數(shù)據(jù)中...");
Student s1 = new Student("001", "張三", 23, "南京");
Student s2 = new Student("002", "李四", 24, "北京");
Student s3 = new Student("003", "王五", 25, "廣州");
Student s4 = new Student("004", "趙六", 26, "深圳");
student.add(s1);
student.add(s2);
student.add(s3);
student.add(s4);
System.out.println("錄入完畢");
}
public static void start() throws InterruptedException {
ArrayList<Student> student = new ArrayList<>();
System.out.println("錄入數(shù)據(jù)中...");
Student s1 = new Student("001", "張三", 23, "南京");
Student s2 = new Student("002", "李四", 24, "北京");
Student s3 = new Student("003", "王五", 25, "廣州");
Student s4 = new Student("004", "趙六", 26, "深圳");
student.add(s1);
student.add(s2);
student.add(s3);
student.add(s4);
System.out.println("錄入完畢");
Scanner sc = new Scanner(System.in);
String id;
String name;
int age;
String address;
while(true) {
System.out.println(
"--------------歡迎來到學(xué)生管理系統(tǒng)-----------------" + "\n" +
"1:添加學(xué)生" + "\n" +
"2:刪除學(xué)生" + "\n" +
"3:修改學(xué)生" + "\n" +
"4:查詢學(xué)生" + "\n" +
"5:所有學(xué)生" + "\n" +
"6:返回登錄界面" + "\n" +
"7:退出系統(tǒng)" + "\n" +
"請輸入您的選擇:");
int select = sc.nextInt();
switch (select) {
case ADD_STUDENT:
while(true) {
System.out.println("添加");
System.out.println("請輸入id:(輸入-1,則返回主菜單)");
id = sc.next();
if (id.equals("-1")) {
break;
}
if (addStudent(id, student)) {
System.out.println("添加成功");
showAll(student);
break;
} else {
System.out.println("添加失敗");
}
}
break;
case DELE_STUDENT:
while (true) {
System.out.println("刪除");
System.out.println("請輸入id:(輸入-1,則返回主菜單)");
id = sc.next();
if (id.equals("-1")) {
break;
}
if (deleteStudent(id, student)) {
System.out.println("刪除成功");
showAll(student);
break;
} else {
System.out.println("刪除失敗");
}
}
break;
case UPDATE_STUDENT:
while(true) {
System.out.println("修改");
System.out.println("請輸入id:(輸入-1,則返回主菜單)");
id = sc.next();
if (id.equals("-1")) {
break;
}
if(updateStudent(id, student)) {
System.out.println("修改成功");
showAll(student);
break;
} else {
System.out.println("修改失敗");
}
}
break;
case QUERY_STUDENT:
while(true) {
System.out.println("查詢");
System.out.println("請輸入id:(輸入-1,則返回主菜單)");
id = sc.next();
if (id.equals("-1")) {
break;
}
if (queryStudent(id, student) != null) {
Student s = queryStudent(id, student);
System.out.println("id\t\t\t姓名\t\t年齡\t\t家庭住址");
System.out.print(s.getId() + "\t");
System.out.print(s.getName() + "\t\t");
System.out.print(s.getAge() + "\t\t");
System.out.print(s.getAddress());
System.out.println();
break;
} else {
System.out.println("查找失敗");
}
}
break;
case ALL_STUDENT:
System.out.println("所有學(xué)生");
showAll(student);
break;
case LOGIN:
System.out.println("返回登錄界面");
String[] args = {""};
App.main(args);
case EXIT:
System.out.println("退出系統(tǒng)");
System.exit(0);
default:
System.out.println("沒有這個選項(xiàng)");
break;
}
}
}
private static Student queryStudent(String id, ArrayList<Student> student) {
if (student.size() == 0) {
System.out.println("當(dāng)前無學(xué)生信息,請?zhí)砑雍笤俨樵?);
return null;
}
for (int i = 0; i < student.size(); i++) {
if (id.equals(student.get(i).getId())) {
Student s = student.get(i);
return s;
}
}
return null;
}
private static boolean updateStudent(String id, ArrayList<Student> student) {
Scanner sc = new Scanner(System.in);
for (int i = 0; i < student.size(); i++) {
if (id.equals(student.get(i).getId())) {
System.out.println(student.get(i).getName());
System.out.println("請輸入修改的姓名:");
String new_name = sc.next();
System.out.println(student.get(i).getAge());
System.out.println("請輸入修改的年齡:");
int new_age = sc.nextInt();
System.out.println(student.get(i).getAddress());
System.out.println("請輸入修改的地址:");
String new_address = sc.next();
Student s = new Student(id, new_name, new_age, new_address);
student.set(i, s);
return true;
}
}
System.out.println("id不存在");
return false;
}
private static boolean deleteStudent(String id, ArrayList<Student> student) {
for (int i = 0; i < student.size(); i++) {
if (id.equals(student.get(i).getId())) {
student.remove(i);
return true;
}
}
return false;
}
private static boolean addStudent(String id, ArrayList<Student> student) {
for (int i = 0; i < student.size(); i++) {
if (id.equals(student.get(i).getId())){
System.out.println("id已存在,不能錄入");
return false;
}
}
Scanner sc = new Scanner(System.in);
System.out.println("請輸入name:");
String name = sc.next();
System.out.println("請輸入age:");
int age = sc.nextInt();
System.out.println("請輸入address:");
String address = sc.next();
Student s = new Student(id, name, age, address);
student.add(s);
return true;
}
private static void showAll(ArrayList<Student> student) {
if (student.size() == 0) {
System.out.println("當(dāng)前無學(xué)生信息,請?zhí)砑雍笤俨樵?);
return;
}
for (int i = 0; i < student.size(); i++) {
if (i == 0) {
System.out.println(String.format("%-8s |", "id") + String.format("%-16s |", "姓名") + String.format("%-8s |", "年齡") + String.format("%-8s |", "家庭住址"));
}
System.out.print(String.format("%-8s |", student.get(i).getId()));
System.out.print(String.format("%-16s |", student.get(i).getName()));
System.out.print(String.format("%-8d |", student.get(i).getAge()));
System.out.print(String.format("%-8s |", student.get(i).getAddress()));
System.out.println();
}
}
}
需求
- 為學(xué)生管理系統(tǒng)書寫一個登陸、注冊、忘記密碼的功能。
- 只有用戶登錄成功之后,才能進(jìn)入到學(xué)生管理系統(tǒng)中進(jìn)行增刪改查操作。
- 采取控制臺的方式去書寫學(xué)生管理系統(tǒng)。
學(xué)生類
屬性:id、姓名、年齡、家庭住址
用戶類
屬性:用戶名、密碼、身份證號碼、手機(jī)號碼
學(xué)生管理系統(tǒng)登錄界面
注冊功能
1,用戶名需要滿足以下要求
驗(yàn)證要求:
- 用戶名唯一
- 用戶名長度必須在3~15位之間
- 只能是字母加數(shù)字的組合,但是不能是純數(shù)字
2,密碼鍵盤輸入兩次,兩次一致才可以進(jìn)行注冊
3,身份證號碼需要驗(yàn)證
驗(yàn)證要求:
- 長度為18位
- 不能以0為開頭
- 前17位,必須都是數(shù)字
- 最為一位可以是數(shù)字,也可以是大寫X或小寫x
4,手機(jī)號驗(yàn)證
- 驗(yàn)證要求:
- 長度為11位
- 不能以0為開頭
- 必須都是數(shù)字
登錄功能
1,鍵盤錄入用戶名
2,鍵盤錄入密碼
3,鍵盤錄入驗(yàn)證碼
????????驗(yàn)證要求:
- 用戶名如果未注冊,直接結(jié)束方法,并提示:用戶名未注冊,請先注冊
- 判斷驗(yàn)證碼是否正確,如不正確,重新輸入
- 再判斷用戶名和密碼是否正確,有3次機(jī)會
登錄成功
密碼錯誤3次
用戶不存在?
忘記密碼
1,鍵盤錄入用戶名,判斷當(dāng)前用戶名是否存在,如不存在,直接結(jié)束方法,并提示:未注冊
2,鍵盤錄入身份證號碼和手機(jī)號碼
3,判斷當(dāng)前用戶的身份證號碼和手機(jī)號碼是否一致,
- 如果一致,則提示輸入密碼,進(jìn)行修改。
- 如果不一致,則提示:賬號信息不匹配,修改失敗。
驗(yàn)證碼規(guī)則
- 長度為5
- 由4位大寫或者小寫字母和1位數(shù)字組成,同一個字母可重復(fù)
- 數(shù)字可以出現(xiàn)在任意位置
- 比如:aQa1K
添加功能
鍵盤錄入每一個學(xué)生信息并添加,需要滿足以下要求:
-
id唯一
刪除功能
鍵盤錄入要刪除的學(xué)生id,需要滿足以下要求:
-
id存在刪除
-
id不存在,需要提示不存在,并回到初始菜單
修改功能
鍵盤錄入要修改的學(xué)生id,需要滿足以下要求
-
id存在,繼續(xù)錄入其他信息
-
id不存在,需要提示不存在,并回到初始菜單
查詢功能
打印所有的學(xué)生信息,需要滿足以下要求
-
如果沒有學(xué)生信息,提示:當(dāng)前無學(xué)生信息,請?zhí)砑雍笤俨樵?/p>
-
如果有學(xué)生信息,需要按照格式輸出。
待更新
1、正則表達(dá)式——>判斷格式
2、數(shù)據(jù)的永久化存儲——>登錄次數(shù)過多,鎖定賬號?
更新
2023/10/24 加入靜態(tài)代碼塊文章來源:http://www.zghlxwxcb.cn/news/detail-775176.html
結(jié)論
系統(tǒng)有較好的健壯性,對于大部分異常輸入都會處理。如果發(fā)現(xiàn)有未處理的地方,請?jiān)谠u論區(qū)告訴我,我會盡快修改,謝謝!文章來源地址http://www.zghlxwxcb.cn/news/detail-775176.html
到了這里,關(guān)于【Java】學(xué)生管理系統(tǒng)-登錄、注冊、CRUD(附完整代碼)的文章就介紹完了。如果您還想了解更多內(nèi)容,請?jiān)谟疑辖撬阉鱐OY模板網(wǎng)以前的文章或繼續(xù)瀏覽下面的相關(guān)文章,希望大家以后多多支持TOY模板網(wǎng)!