學(xué)生管理系統(tǒng)
簡單實(shí)現(xiàn)學(xué)生系統(tǒng)的登錄和注冊,以及學(xué)生信息添加、刪除,修改、查詢功能。根據(jù)需求,創(chuàng)建一個(gè)學(xué)生類和和用戶類以及學(xué)生系統(tǒng)類,在登錄管理系統(tǒng)之前需要先注冊用戶,只有輸入正確的用戶名和密碼才可以登錄,忘記密碼后可以根據(jù)用戶信息進(jìn)行修改,用容器存儲學(xué)生信息和用戶信息,這里用到ArrayList<E>,這是基礎(chǔ)版的,進(jìn)一步可以將信息存到數(shù)據(jù)庫中。
目錄
學(xué)生管理系統(tǒng)
? ? ? ???1.項(xiàng)目演示
? ? ? ???2.學(xué)生管理系統(tǒng)實(shí)現(xiàn)思路
3.1定義用戶類
3.2定義學(xué)生類
4.1主界面的實(shí)現(xiàn)
4.2添加學(xué)生的代碼編寫
4.3刪除學(xué)生的代碼編寫
4.4修改學(xué)生的代碼編寫
4.5查詢學(xué)生的代碼
5.登錄時(shí)的驗(yàn)證碼功能
6.1項(xiàng)目結(jié)構(gòu)
6.2全部代碼
?總結(jié)
?注:需將用戶類和學(xué)生類和測試類三個(gè)代碼放在同一個(gè)包下才可運(yùn)行
?1.項(xiàng)目演示
?
?2.學(xué)生管理系統(tǒng)實(shí)現(xiàn)思路
1.定義用戶類
2.實(shí)現(xiàn)登錄界面的代碼編寫
3.實(shí)現(xiàn)注冊、登錄、忘記密碼功能的代碼編寫
4.定義學(xué)生類
5.管理系統(tǒng)主界面的代碼編寫
6.實(shí)現(xiàn)增刪改查功能的代碼編寫
3.1定義用戶類
package com.ithm.student;
public class User {
private String username;
private String password;
private String personID;
private String phoneNumber;
public User() {
}
public User(String username, String password, String personID, String phoneNumber) {
this.username = username;
this.password = password;
this.personID = personID;
this.phoneNumber = phoneNumber;
}
public String getUsername() {
return username;
}
public void setUsername(String username) {
this.username = username;
}
public String getPassword() {
return password;
}
public void setPassword(String password) {
this.password = password;
}
public String getPersonID() {
return personID;
}
public void setPersonID(String personID) {
this.personID = personID;
}
public String getPhoneNumber() {
return phoneNumber;
}
public void setPhoneNumber(String phoneNumber) {
this.phoneNumber = phoneNumber;
}
}
3.2定義學(xué)生類
package com.ithm.student;
public class Student {
private int id;
private String name;
private int age;
private String address;
public Student() {
}
public Student(int id, String name, int age, String address) {
this.id = id;
this.name = name;
this.age = age;
this.address = address;
}
public int getId() {
return id;
}
public void setId(int 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;
}
}
4.1主界面的實(shí)現(xiàn)
思路:
- 用輸出語句完成主界面的編寫
- 用Scanner實(shí)現(xiàn)鍵盤錄入數(shù)據(jù)
- 用switch語句完成操作的選擇
- 用循環(huán)完成再次回到主界面
public static void menu(){ System.out.println("-------------歡迎來到學(xué)生管理系統(tǒng)-----------"); System.out.println("--- 1.添加學(xué)生 ---"); System.out.println("--- 2.刪除學(xué)生 ---"); System.out.println("--- 3.修改學(xué)生 ---"); System.out.println("--- 4.查詢學(xué)生 ---"); System.out.println("--- 0.退出 ---"); System.out.println("----------------------------------------"); } public static void choose(ArrayList<Student> list){ while (true){ menu(); System.out.print("請輸入你的選擇:"); Scanner sc=new Scanner(System.in); int t= sc.nextInt(); switch (t){ case(1): addStudent(list); break; case(2): deleteStudent(list); break; case(3): updateStudent(list); break; case(4): queryStudent(list); break; case(0): System.exit(0); default: return; } } }
4.2添加學(xué)生的代碼編寫
- 用鍵盤錄入選擇添加學(xué)生
- 定義一個(gè)方法,用于添加學(xué)生
顯示提示信息,提示要輸入何種信息? ? ? ? ? - 錄入id時(shí)定義一個(gè)查詢方法,查看集合中是否已經(jīng)添加過此id,確保id唯一
- 鍵盤錄入學(xué)生對象所需要的數(shù)據(jù)創(chuàng)建學(xué)生對象,把鍵盤錄入的數(shù)據(jù)賦值給學(xué)生對象的成員變量
- 將學(xué)生對象添加到集合中(保存數(shù)據(jù))
public static void addStudent(ArrayList<Student> list){
Student stu=new Student();
Scanner sc=new Scanner(System.in);
System.out.print("請輸入學(xué)生的學(xué)號id:");
while (true){
int id= sc.nextInt();
boolean item=comain(list,id);
if(item){
System.out.println("此學(xué)生已經(jīng)存在,請重新輸入學(xué)生id");
}else {
stu.setId(id);
break;
}
}
System.out.print("請輸入學(xué)生的名字:");
String name=sc.next();
stu.setName(name);
System.out.print("請輸入學(xué)生的年齡:");
int age= sc.nextInt();
stu.setAge(age);
System.out.print("請輸入學(xué)生的地址:");
String address=sc.next();
stu.setAddress(address);
list.add(stu);
}
public static boolean comain(ArrayList<Student> list,int id){
for (int i = 0; i < list.size(); i++) {
if(id==list.get(i).getId()){
return true;
}
}
return false;
}
4.3刪除學(xué)生的代碼編寫
- 用鍵盤錄入選擇刪除學(xué)生信息
- 定義一個(gè)方法,用于刪除學(xué)生信息
提示信息
鍵盤錄入要刪除的學(xué)生學(xué)號
遍歷集合將對應(yīng)學(xué)生對象從集合里刪除
給出刪除成功提示
public static void deleteStudent(ArrayList<Student> list){
System.out.println("請輸入要刪除的學(xué)生學(xué)號:");
while (true){
Scanner sc=new Scanner(System.in);
int id= sc.nextInt();
for (int i = 0; i < list.size(); i++) {
if(list.get(i).getId()==id){
list.remove(i);
System.out.println("刪除成功");
return;
}
}
System.out.println("未找到該學(xué)生,請重新輸入id");
}
}
4.4修改學(xué)生的代碼編寫
- 鍵盤錄入選擇修改學(xué)生
- 自定義一個(gè)方法,用于修改學(xué)生信息
提示信息
鍵盤錄入要修改的學(xué)生學(xué)號
根據(jù)提示選擇修改哪一個(gè)信息 - 鍵盤錄入要修改的學(xué)生信息
遍歷集合修改對應(yīng)學(xué)生信息
給出成功提示
public static void updateStudent(ArrayList<Student> list){
while (true){
System.out.print("請輸入學(xué)生id:");
Scanner sc=new Scanner(System.in);
int id= sc.nextInt();
for (int i = 0; i < list.size(); i++) {
if(list.get(i).getId()==id){
System.out.println("已查詢到該學(xué)生,請選擇更改哪一條信息");
Student stu=list.get(i);
System.out.println("1.更改學(xué)生姓名 2.更改學(xué)生年齡 3.更改學(xué)生家庭地址");
int item=sc.nextInt();
if(item==1){
System.out.println("請輸入更改后的學(xué)生姓名");
String name=sc.next();
stu.setName(name);
System.out.println("更改成功!"); return;
}else if(item==2){
System.out.println("請輸入更改后的學(xué)生年齡");
int age=sc.nextInt();
stu.setAge(age);
System.out.println("更改成功!"); return;
}else if(item==3){
System.out.println("請輸入更改后的學(xué)生家庭地址");
String address=sc.next();
stu.setName(address);
System.out.println("更改成功!"); return;
}
}
}
System.out.println("未查詢到該學(xué)生");
}
}
4.5查詢學(xué)生的代碼
- 首先判斷集合里是否存在學(xué)生對象,如果沒有直接返回
- 根據(jù)提示,按照id查詢或查詢?nèi)繉W(xué)生
- 將集合中數(shù)據(jù)取出按照對應(yīng)格式顯示學(xué)生信息
public static void queryStudent(ArrayList<Student> list){
if(list.size()==0){
System.out.println("請先添加學(xué)生,暫無學(xué)生信息!");
return;
}
System.out.println("1.根據(jù)學(xué)生id查詢 2.查詢?nèi)繉W(xué)生");
Scanner sc=new Scanner(System.in);
int t= sc.nextInt();
if(t==1){
System.out.println("請輸入要查詢的學(xué)生id");
while (true){
int id= sc.nextInt();
for (int i = 0; i < list.size(); i++) {
if(list.get(i).getId()==id){
System.out.println("id\t\t姓名\t\t年齡\t家庭地址");
Student stu=list.get(i);
System.out.println(stu.getId()+"\t"+stu.getName()+"\t"+stu.getAge()+"\t"+stu.getAddress());
return;
}
}
System.out.println("沒有該學(xué)生信息,請重新輸入id");
}
}else if(t==2) {
for (int i = 0; i < list.size(); i++) {
System.out.println("id\t\t姓名\t\t年齡\t家庭地址");
Student stu=list.get(i);
System.out.println(stu.getId()+"\t"+stu.getName()+"\t"+stu.getAge()+"\t"+stu.getAddress());
}
}
}
實(shí)現(xiàn)用戶類與學(xué)生類的思路相同,都是先定義一個(gè)用戶對象,根據(jù)提示將數(shù)據(jù)添加到對象中,再將對象添加到集合中,實(shí)現(xiàn)用戶類時(shí)對用戶的各種信息的長度和格式都有要求,只有滿足格式輸入正確才可以成功輸入,具體代碼就不展示了,只展示一下驗(yàn)證碼功能
5.登錄時(shí)的驗(yàn)證碼功能
- 定義一個(gè)集合存放所有的大小寫字母
- 通過隨機(jī)數(shù)獲取集合的下標(biāo)
- 遍歷得到4個(gè)不同的大小寫字母,將字母都添加到StringBuider,最后隨機(jī)一個(gè)數(shù)字并添加
- 將StringBuider變成字符串再變成字符數(shù)字,隨機(jī)得到該數(shù)組的任意下標(biāo),將最后一位數(shù)字與下標(biāo)交換,實(shí)現(xiàn)了隨機(jī)數(shù)字和字母的驗(yàn)證碼
private static String getCode(){
//驗(yàn)證碼要求有數(shù)字和大小寫字母,且數(shù)字出現(xiàn)在任意位置
ArrayList<Character> list=new ArrayList<>();
for (int i = 0; i < 26; i++) {
list.add((char)('a'+i));
list.add((char)('A'+i));
}
Random random=new Random();
StringBuilder sb=new StringBuilder();
for (int i = 0; i < 4; i++) {
int index=random.nextInt(list.size());
char c=list.get(index);
sb.append(c);
}
int number=random.nextInt(10);
sb.append(number);
char []arr=sb.toString().toCharArray();
int flag=random.nextInt(arr.length);
char temp=arr[flag];
arr[flag]=arr[arr.length-1];
arr[arr.length-1]=temp;
return new String(arr);
}
6.1項(xiàng)目結(jié)構(gòu)
6.2全部代碼
package com.ithm.student;
import java.util.ArrayList;
import java.util.Random;
import java.util.Scanner;
public class StudentSystem {
public static void main(String[] args) {
ArrayList<Student> list=new ArrayList<>();
ArrayList<User> userlist=new ArrayList<>();
loginPage(userlist,list);
}
public static void loginPage(ArrayList<User> userlist,ArrayList<Student> list){
while (true){
System.out.println("\t歡迎來到學(xué)生管理系統(tǒng)");
System.out.println("請選擇操作:1登錄 2注冊 3忘記密碼");
Scanner sc=new Scanner(System.in);
int item=sc.nextInt();
switch (item){
case (1): loginUser(userlist,list); break;
case (2): reggisterUser(userlist); break;
case (3): forgetPassword(userlist); break;
default: return;
}
}
}
public static void loginUser(ArrayList<User> userlist,ArrayList<Student> list){
Scanner sc=new Scanner(System.in);
while (true){
System.out.print("請輸入用戶名:");
String username=sc.next();
boolean t=containsUsername(userlist,username);
if(!t){
System.out.println(username+"不存在,請先注冊");
return;
}
System.out.print("請輸入密碼:");
String password=sc.next();
while (true){
String rightcode=getCode();
System.out.println("當(dāng)前正確的驗(yàn)證碼是:"+rightcode);
System.out.print("請輸入驗(yàn)證碼:");
String Code=sc.next();
if(rightcode.equalsIgnoreCase(Code)){
System.out.println("驗(yàn)證碼正確");
break;
}else{
System.out.println("驗(yàn)證碼錯誤,請重新輸入");
}
}
User useInfo=new User(username,password,null,null);
boolean flag=checklogin(useInfo,userlist);
int count=0;
if(flag){
System.out.println("登錄成功!");
break;
} else{
count++;
System.out.println("賬戶或者密碼錯誤,您還有"+(3-count)+"次機(jī)會嘗試登錄");
if(count==3){
System.out.println("您已連續(xù)三次登錄失敗,當(dāng)前用戶"+username+"已經(jīng)被鎖定");
}
}
}
choose(list);
}
public static void reggisterUser(ArrayList<User> userlist){
Scanner sc=new Scanner(System.in);
String username,password1,personID, number;
while (true){
System.out.print("請輸入用戶名(4-16位字母加數(shù)字):");
username= sc.next();
boolean flag1=checkUsername(username);
if(flag1){
boolean flag2=containsUsername(userlist,username);
if(flag2){
System.out.println("已經(jīng)存在該用戶,請重新輸入");
}else{
System.out.println("用戶名:"+username+"可以使用");
break;
}
}else{
System.out.println("用戶名的格式不滿足條件,請重新輸入");
}
}
while (true){
System.out.print("請輸入密碼:");
password1= sc.next();
System.out.print("請?jiān)俅屋斎朊艽a:");
String password2= sc.next();
if(password1.equals(password2)){
System.out.println("兩次密碼一致");
break;
}else{
System.out.println("兩次密碼不一致,請重新輸入");
}
}
while (true){
System.out.print("請輸入身份證號碼:");
personID=sc.next();
boolean flag=checkPersonID(personID);
if(flag){
System.out.println("身份證號碼滿足要求");
break;
}else {
System.out.println("身份證格式錯誤,請重新輸入");
}
}
while (true){
System.out.print("請輸入電話號碼:");
number=sc.next();
boolean flag=checkPhoneNumber(number);
if(flag){
System.out.println("電話號碼滿足格式要求");
break;
}else {
System.out.println("電話號碼格式錯誤,請重新輸入");
}
}
User user=new User(username,password1,personID,number);
userlist.add(user);
System.out.println("注冊成功");
}
public static void forgetPassword(ArrayList<User> userlist){
Scanner sc=new Scanner(System.in);
System.out.print("請輸入用戶名:");
String username=sc.next();
boolean flag=containsUsername(userlist,username);
int index=findIndex(userlist,username);
User user=userlist.get(index);
if(!flag){
System.out.println(username+"不存在,請先注冊");
return;
}
System.out.print("請輸入身份證號碼:");
String personID=sc.next();
System.out.print("請輸入手機(jī)號碼:");
String number= sc.next();
if(!(user.getPersonID().equals(personID)&&user.getPhoneNumber().equals(number))){
System.out.println("用戶信息輸入有誤,無法修改密碼");
return;
}
String passwor1;
while (true){
System.out.print("請輸入新密碼:");
passwor1= sc.next();
System.out.print("請?jiān)俅屋斎胄旅艽a:");
String passwor2= sc.next();
if(passwor1.equals(passwor2)){
System.out.println("兩次密碼輸入一致");
break;
}else{
System.out.println("兩次密碼不一致,請重新輸入");
}
}
user.setPassword(passwor1);
System.out.println("密碼修改成功!");
}
public static boolean checkUsername(String username){
//檢查用戶名長度合法,長度在4到16位
if(username.length()<4 ||username.length()>16){
return false;
}
//用戶名只能是字母加數(shù)字,但不能是純數(shù)字
int count=0;
for (int i = 0; i < username.length(); i++) {
char c=username.charAt(i);
if(!((c>='0'&&c<='9') ||(c>='a'&&c<='z') ||(c>='A'&&c<='Z'))){
return false;
}
if((c>='a'&&c<='z') ||(c>='A'&&c<='Z')){
count++;
break;
}
}
return count>0;
}
public static boolean containsUsername(ArrayList<User> userlist,String username){
for (int i = 0; i < userlist.size(); i++) {
if(userlist.get(i).getUsername().equals(username)){
return true;
}
}
return false;
}
private static boolean checkPersonID(String personID) {
//身份證號碼必須是18位,首位不能為0,前17位是數(shù)字,第18位是數(shù)字或字母x
if(personID.length()!=18) return false;
if(personID.startsWith("0")) return false;
for (int i = 0; i < personID.length()-1; i++) {
char c=personID.charAt(i);
if(!(c>='0'&&c<='9')){
return false;
}
}
char end=personID.charAt(personID.length()-1);
if(!(end=='x'|| end=='X'|| (end>='0'&&end<='9'))) return false;
return true;
}
private static boolean checkPhoneNumber(String number) {
//電話號碼為11位純數(shù)字,首位不能為0
if(number.length()!=11) return false;
if(number.startsWith("0")) return false;
for (int i = 0; i < number.length(); i++) {
char c=number.charAt(i);
if(!(c>='0'&&c<='9')) return false;
}
return true;
}
private static boolean checklogin(User useInfo,ArrayList<User> userlist) {
for (int i = 0; i < userlist.size(); i++) {
User u=userlist.get(i);
if(u.getUsername().equals(useInfo.getUsername()) &&u.getPassword().equals(useInfo.getPassword())){
return true;
}
}
return false;
}
private static String getCode(){
//驗(yàn)證碼要求有數(shù)字和大小寫字母,且數(shù)字出現(xiàn)在任意位置
ArrayList<Character> list=new ArrayList<>();
for (int i = 0; i < 26; i++) {
list.add((char)('a'+i));
list.add((char)('A'+i));
}
Random random=new Random();
StringBuilder sb=new StringBuilder();
for (int i = 0; i < 4; i++) {
int index=random.nextInt(list.size());
char c=list.get(index);
sb.append(c);
}
int number=random.nextInt(10);
sb.append(number);
char []arr=sb.toString().toCharArray();
int flag=random.nextInt(arr.length);
char temp=arr[flag];
arr[flag]=arr[arr.length-1];
arr[arr.length-1]=temp;
return new String(arr);
}
private static int findIndex(ArrayList<User> userlist, String username) {
for (int i = 0; i < userlist.size(); i++) {
if(userlist.get(i).getUsername().equals(username)){
return i;
}
}
return -1;
}
public static void menu(){
System.out.println("-------------歡迎來到學(xué)生管理系統(tǒng)-----------");
System.out.println("--- 1.添加學(xué)生 ---");
System.out.println("--- 2.刪除學(xué)生 ---");
System.out.println("--- 3.修改學(xué)生 ---");
System.out.println("--- 4.查詢學(xué)生 ---");
System.out.println("--- 0.退出 ---");
System.out.println("----------------------------------------");
}
public static void choose(ArrayList<Student> list){
while (true){
menu();
System.out.print("請輸入你的選擇:");
Scanner sc=new Scanner(System.in);
int t= sc.nextInt();
switch (t){
case(1): addStudent(list); break;
case(2): deleteStudent(list); break;
case(3): updateStudent(list); break;
case(4): queryStudent(list); break;
case(0): System.exit(0);
default: return;
}
}
}
public static void addStudent(ArrayList<Student> list){
Student stu=new Student();
Scanner sc=new Scanner(System.in);
System.out.print("請輸入學(xué)生的學(xué)號id:");
while (true){
int id= sc.nextInt();
boolean item=comain(list,id);
if(item){
System.out.println("此學(xué)生已經(jīng)存在,請重新輸入學(xué)生id");
}else {
stu.setId(id);
break;
}
}
System.out.print("請輸入學(xué)生的名字:");
String name=sc.next();
stu.setName(name);
System.out.print("請輸入學(xué)生的年齡:");
int age= sc.nextInt();
stu.setAge(age);
System.out.print("請輸入學(xué)生的地址:");
String address=sc.next();
stu.setAddress(address);
list.add(stu);
}
public static void deleteStudent(ArrayList<Student> list){
System.out.println("請輸入要刪除的學(xué)生學(xué)號:");
while (true){
Scanner sc=new Scanner(System.in);
int id= sc.nextInt();
for (int i = 0; i < list.size(); i++) {
if(list.get(i).getId()==id){
list.remove(i);
System.out.println("刪除成功");
return;
}
}
System.out.println("未找到該學(xué)生,請重新輸入id");
}
}
public static void updateStudent(ArrayList<Student> list){
while (true){
System.out.print("請輸入學(xué)生id:");
Scanner sc=new Scanner(System.in);
int id= sc.nextInt();
for (int i = 0; i < list.size(); i++) {
if(list.get(i).getId()==id){
System.out.println("已查詢到該學(xué)生,請選擇更改哪一條信息");
Student stu=list.get(i);
System.out.println("1.更改學(xué)生姓名 2.更改學(xué)生年齡 3.更改學(xué)生家庭地址");
int item=sc.nextInt();
if(item==1){
System.out.println("請輸入更改后的學(xué)生姓名");
String name=sc.next();
stu.setName(name);
System.out.println("更改成功!"); return;
}else if(item==2){
System.out.println("請輸入更改后的學(xué)生年齡");
int age=sc.nextInt();
stu.setAge(age);
System.out.println("更改成功!"); return;
}else if(item==3){
System.out.println("請輸入更改后的學(xué)生家庭地址");
String address=sc.next();
stu.setName(address);
System.out.println("更改成功!"); return;
}
}
}
System.out.println("未查詢到該學(xué)生");
}
}
public static void queryStudent(ArrayList<Student> list){
if(list.size()==0){
System.out.println("請先添加學(xué)生,暫無學(xué)生信息!");
return;
}
System.out.println("1.根據(jù)學(xué)生id查詢 2.查詢?nèi)繉W(xué)生");
Scanner sc=new Scanner(System.in);
int t= sc.nextInt();
if(t==1){
System.out.println("請輸入要查詢的學(xué)生id");
while (true){
int id= sc.nextInt();
for (int i = 0; i < list.size(); i++) {
if(list.get(i).getId()==id){
System.out.println("id\t\t姓名\t\t年齡\t家庭地址");
Student stu=list.get(i);
System.out.println(stu.getId()+"\t"+stu.getName()+"\t"+stu.getAge()+"\t"+stu.getAddress());
return;
}
}
System.out.println("沒有該學(xué)生信息,請重新輸入id");
}
}else if(t==2) {
for (int i = 0; i < list.size(); i++) {
System.out.println("id\t\t姓名\t\t年齡\t家庭地址");
Student stu=list.get(i);
System.out.println(stu.getId()+"\t"+stu.getName()+"\t"+stu.getAge()+"\t"+stu.getAddress());
}
}
}
public static boolean comain(ArrayList<Student> list,int id){
for (int i = 0; i < list.size(); i++) {
if(id==list.get(i).getId()){
return true;
}
}
return false;
}
}
?總結(jié)
1.注冊時(shí)所有的信息都有數(shù)據(jù)上的判斷和要求,都是基礎(chǔ)的String方法,沒有使用正則表達(dá)式。
2.使用ArrayList集合來實(shí)現(xiàn)簡單的學(xué)生管理系統(tǒng),測試類和用數(shù)組實(shí)現(xiàn)的方法一樣。文章來源:http://www.zghlxwxcb.cn/news/detail-448053.html
2.添加學(xué)生時(shí)候先對list數(shù)組內(nèi)學(xué)生進(jìn)行判斷,確保學(xué)生id唯一,修改學(xué)生信息可以根據(jù)需求修改每一項(xiàng)數(shù)據(jù),查詢學(xué)生可以根據(jù)id查詢或者查詢?nèi)俊?span toymoban-style="hidden">文章來源地址http://www.zghlxwxcb.cn/news/detail-448053.html
注:需將用戶類和學(xué)生類和測試類三個(gè)代碼放在同一個(gè)包下才可運(yùn)行
到了這里,關(guān)于用Java代碼實(shí)現(xiàn)學(xué)生管理系統(tǒng)(可實(shí)現(xiàn)用戶登錄注冊功能)的文章就介紹完了。如果您還想了解更多內(nèi)容,請?jiān)谟疑辖撬阉鱐OY模板網(wǎng)以前的文章或繼續(xù)瀏覽下面的相關(guān)文章,希望大家以后多多支持TOY模板網(wǎng)!