具体完整代码:简单Java系统--学生数组系统-Java文档类资源-CSDN文库
db--数据源 entity--实体类 dao--数据访问,直接操作数据源的 service--业务逻辑 view--表现,视图 菜单 util--工具类 view-->service-->dao-->db
package com.liling.view;
import com.liling.entity.Student;
import com.liling.entity.User;
import com.liling.service.StudentService;
import com.liling.service.StudentServiceI;
import com.liling.service.UserService;
import com.liling.service.UserServiceI;
import com.liling.util.InputUtil;
import java.util.Scanner;
public class Main {
private Scanner scanner = new Scanner(System.in);
UserService userService = new UserServiceI();
public void mainMenu(){
User user = null;
while (true){
System.out.println("欢迎来到学生数组系统");
System.out.println("1.注册n2.登录n3.退出");
System.out.println("请输入你的选择:");
int num = InputUtil.getNum(scanner);
switch (num){
case 1:
System.out.println("开始注册");
user = getUser();
boolean flag1 = userService.register(user);
if(flag1){
System.out.println("注册成功");
}else {
System.out.println("注册失败");
}
break;
case 2:
user = getUser();
boolean flag2 = userService.login(user);
if(flag2){
System.out.println("登录成功");
}else {
if(!userService.judgeA(user)){
System.out.println("账号错误");
break;
}else if(!userService.judgeP(user)){
System.out.println("密码错误");
break;
}
}
enterSystem();
break;
case 3:
System.out.println("退出");
return;
default:
System.out.println("请重新输入");
}
}
}
private User getUser(){
System.out.println("请输入账号");
String account = scanner.next();
System.out.println("请输入密码");
String password = scanner.next();
User user = new User(account, password);
return user;
}
private void enterSystem(){
StudentService studentService = new StudentServiceI();
while (true){
System.out.println("欢迎进入学生数组系统");
System.out.println("1.添加学生信息n2.删除学生信息n3.修改学生信息n4.查询学生信息n5.修改个人密码n6.返回上级菜单");
System.out.println("请输入你的选择:");
int num = InputUtil.getNum(scanner);
switch (num){
case 1:
Student student = getStudentInfo();
boolean flag = studentService.addStudentInfo(student);
if(flag){
System.out.println("添加学生信息成功");
}else{
System.out.println("添加学生信息失败");
}
break;
case 2:
System.out.println("请输入待删除学生的学号:");
String studentID2 = scanner.next();
boolean flag1 = studentService.deleteByStudentID(studentID2);
if(flag1){
System.out.println("删除学生信息成功");
Student[] students = studentService.inquireAllStudentInfo();
iterArray(students);
}else {
System.out.println("删除学生信息失败");
}
break;
case 3:
System.out.println("请输入待修改学生的学号:");
String studentID1 = scanner.next();
System.out.println("请输入替换地址信息");
String address = scanner.next();
if(studentService.modify(studentID1, address)){
System.out.println("修改学生信息成功,具体信息如下:");
System.out.println(studentService.inquireByID(studentID1));
}else {
System.out.println("修改学生信息失败");
}
break;
case 4:
System.out.println("系统所有学生信息如下:");
Student[] students = studentService.inquireAllStudentInfo();
iterArray(students);
System.out.println("请输入待查询学生的学号:");
String studentID = scanner.next();
Student student1 = studentService.inquireByID(studentID);
if(student1 != null){
System.out.println(student1);
}else {
System.out.println("未查询到学号为" + studentID + "的学生信息");
}
break;
case 5:
User user = getUser();
System.out.println("请输入新密码:");
String newPassword = scanner.next();
System.out.println("请输入确认新密码:");
String confirm = scanner.next();
if(userService.login(user)){
if(!newPassword.equals(confirm)){
System.out.println("两次输入的密码不一致");
}else {
userService.alterP(user, newPassword);
System.out.println("修改密码成功");
System.out.println(user);
}
}else {
if(!userService.judgeA(user)){
System.out.println("账号错误");
}else if(!userService.judgeP(user)){
System.out.println("密码错误");
}
}
break;
case 6:
return;
default:
System.out.println("请重新输入");
}
}
}
private Student getStudentInfo(){
System.out.println("请输入学生学号:");
String studentID = scanner.next();
System.out.println("请输入学生姓名:");
String name = scanner.next();
System.out.println("请输入学生性别:");
char gender = scanner.next().charAt(0);
System.out.println("请输入学生年龄:");
int age = InputUtil.getNum(scanner);
System.out.println("请输入学生手机号码:");
String phoneNumber = scanner.next();
System.out.println("请输入学生家庭住址:");
String address = scanner.next();
Student student = new Student(studentID, name, gender, age, phoneNumber, address);
return student;
}
private void iterArray(Student[] students){
if(students == null || students.length == 0){
System.out.println("系统中无学生数据");
return;
}
for(Student student : students){
System.out.println(student);
}
}
}
package com.liling.util;
import java.util.InputMismatchException;
import java.util.Scanner;
public class InputUtil {
public static int getNum(Scanner scanner){
while (true){
try {
int num = scanner.nextInt();
return num;
}catch (InputMismatchException e){
scanner = new Scanner(System.in);//清楚缓存
System.out.println("输入有误,请重新输入");
}
}
}
}
package com.liling.service;
import com.liling.entity.User;
public interface UserService {
boolean register(User user);//注册
boolean login(User user);//登录
boolean judgeA(User user);//判断输入的账号是否正确
boolean judgeP(User user);//判断输入的密码是否正确
boolean alterP(User user, String newPassword);
}
package com.liling.service;
import com.liling.dao.UserDao;
import com.liling.dao.UserDaoI;
import com.liling.entity.User;
public class UserServiceI implements UserService{
private final UserDao userDao;
public UserServiceI(){
userDao = new UserDaoI();//初始化
}
@Override
public boolean register(User user) {
boolean flag = userDao.inquireByAccount(user.getAccount());//查询系统中是否已经存在该账号
if(flag){
System.out.println("此账号已存在");
return false;
}else {
return userDao.insert(user);//插入到数据源中
}
}
@Override
public boolean login(User user) {
return userDao.inquireByAccountAndPassword(user);
}
@Override
public boolean judgeA(User user) {
if(userDao.judgeAccount(user)){
return true;
}
return false;
}
@Override
public boolean judgeP(User user) {
if(userDao.judgePassword(user)){
return true;
}
return false;
}
@Override
public boolean alterP(User user, String confirm) {
userDao.AlterPassword(user, confirm);
return true;
}
}
package com.liling.service;
import com.liling.entity.Student;
public interface StudentService {
boolean addStudentInfo(Student student);
Student[] inquireAllStudentInfo();
Student inquireByID(String studentID);
boolean modify(String studentID, String address);
boolean deleteByStudentID(String studentID);
}
package com.liling.service;
import com.liling.dao.StudentDao;
import com.liling.dao.StudentDaoI;
import com.liling.entity.Student;
public class StudentServiceI implements StudentService{
private StudentDao studentDao;
public StudentServiceI(){
studentDao = new StudentDaoI();
}
@Override
public boolean addStudentInfo(Student student) {
boolean flag = studentDao.inquireByStudentID(student.getStudentID());
if(!flag){//在系统中没有找到该学号
return studentDao.addStudentInfo(student);
}
return false;
}
@Override
public Student[] inquireAllStudentInfo() {
return studentDao.inquireAllStudentInfo();
}
@Override
public Student inquireByID(String studentID) {
return studentDao.inquireByID(studentID);
}
@Override
public boolean modify(String studentID, String address) {
if(studentDao.inquireByStudentID(studentID)){
return studentDao.update(studentID, address);
}
return false;
}
@Override
public boolean deleteByStudentID(String studentID) {
boolean flag = studentDao.inquireByStudentID(studentID);
if(flag){
return studentDao.delete(studentID);
}
return false;
}
}
package com.liling.entity;
public class Student {
private String studentID;//学号
private String name;//姓名
private char gender;//性别
private int age;//年龄
private String phoneNumber;//手机号码
private String address;//家庭住址
public Student(){
}
public Student(String studentID, String name, char gender, int age, String phoneNumber, String address) {
this.studentID = studentID;
this.name = name;
this.gender = gender;
this.age = age;
this.phoneNumber = phoneNumber;
this.address = address;
}
public String getStudentID() {
return studentID;
}
public void setStudentID(String studentID) {
this.studentID = studentID;
}
public String getName() {
return name;
}
public void setName(String name) {
this.name = name;
}
public char getGender() {
return gender;
}
public void setGender(char gender) {
this.gender = gender;
}
public int getAge() {
return age;
}
public void setAge(int age) {
this.age = age;
}
public String getPhoneNumber() {
return phoneNumber;
}
public void setPhoneNumber(String phoneNumber) {
this.phoneNumber = phoneNumber;
}
public String getAddress() {
return address;
}
public void setAddress(String address) {
this.address = address;
}
@Override
public String toString() {
return "Student{" +
"studentID='" + studentID + ''' +
", name='" + name + ''' +
", gender=" + gender +
", age=" + age +
", phoneNumber='" + phoneNumber + ''' +
", address='" + address + ''' +
'}';
}
}
package com.liling.entity;
import java.util.Objects;
public class User {
private String account;//账户
private String password;//密码
public User(){
}
public User(String account, String password) {
this.account = account;
this.password = password;
}
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;
}
@Override
public boolean equals(Object o) {
if (this == o) return true;
if (!(o instanceof User)) return false;
User user = (User) o;
return Objects.equals(getAccount(), user.getAccount()) &&
Objects.equals(getPassword(), user.getPassword());
}
@Override
public String toString() {
return "User{" +
"account='" + account + ''' +
", password='" + password + ''' +
'}';
}
}
package com.liling.db;
import com.liling.entity.Student;
import com.liling.entity.User;
public class DataBase {
public static Student[] students = {
new Student("10001","1号",'女',18,"12345","上海"),
new Student("10002","2号",'男',19,"23451","北京"),
new Student("10003","3号",'女',20,"34512","深圳"),
new Student("10004","4号",'男',21,"45123","江西")
};
public static User[] users = {
new User("30298","34630"),
new User("19376","73679")
};
}
package com.liling.dao;
import com.liling.entity.User;
public interface UserDao {
boolean inquireByAccount(String account);//查询系统中是否已经存在该账号
boolean inquireByAccountAndPassword(User user);//查询系统中用户的账号和密码
boolean judgeAccount(User user);//判断输入的账号是否正确
boolean judgePassword(User user);//判断输入的密码是否正确
boolean insert(User user);//插入到数据源中
boolean AlterPassword(User user, String newPassword);
}
package com.liling.dao;
import com.liling.db.DataBase;
import com.liling.entity.User;
import java.util.Arrays;
public class UserDaoI implements UserDao{
@Override
public boolean inquireByAccount(String account) {
for(User user: DataBase.users){
if(user.getAccount().equals(account)){
return true;
}
}
return false;
}
@Override
public boolean inquireByAccountAndPassword(User user) {
for(User user1 : DataBase.users){
if(user.equals(user1)){
return true;
}
}
return false;
}
@Override
public boolean judgeAccount(User user) {
for(User user1 : DataBase.users){
if(user.getAccount().equals(user1.getAccount())){
return true;
}
}
return false;
}
@Override
public boolean judgePassword(User user) {
for(User user1 : DataBase.users){
if(user.getPassword().equals(user1.getPassword())){
return true;
}
}
return false;
}
@Override
public boolean insert(User user) {
DataBase.users = Arrays.copyOf(DataBase.users, DataBase.users.length + 1);//数组扩容
DataBase.users[DataBase.users.length - 1] = user;//将注册的数据插入到数据源中
return true;
}
@Override
public boolean AlterPassword(User user, String newPassword) {
user.setPassword(newPassword);
return true;
}
}
package com.liling.dao;
import com.liling.entity.Student;
public interface StudentDao {
boolean inquireByStudentID(String studentID);
boolean addStudentInfo(Student student);
Student[] inquireAllStudentInfo();
Student inquireByID(String studentID);
boolean update(String studentID, String address);
boolean delete(String studentID);
}
package com.liling.dao;
import com.liling.db.DataBase;
import com.liling.entity.Student;
import java.util.Arrays;
public class StudentDaoI implements StudentDao{
@Override
public boolean inquireByStudentID(String studentID) {
for(int i = 0; i < DataBase.students.length; i++){
if(DataBase.students[i].getStudentID().equals(studentID)){
return true;
}
}
return false;
}
@Override
public boolean addStudentInfo(Student student) {
DataBase.students = Arrays.copyOf(DataBase.students, DataBase.students.length + 1);//数组扩容
DataBase.students[DataBase.students.length - 1] = student;//将注册的数据插入到数据源中
return true;
}
@Override
public Student[] inquireAllStudentInfo() {
return DataBase.students;
}
@Override
public Student inquireByID(String studentID) {
for(Student student : DataBase.students){
if(student.getStudentID().equals(studentID)){
return student;
}
}
return null;
}
@Override
public boolean update(String studentID, String address) {
for(int i = 0; i < DataBase.students.length; i++){
if(DataBase.students[i].getStudentID().equals(studentID)){
DataBase.students[i].setAddress(address);
break;
}
}
return true;
}
@Override
public boolean delete(String studentID) {
Student[] newStudent = new Student[DataBase.students.length - 1];
int k = 0;//新数组下标
for(int i = 0; i < DataBase.students.length; i++){
if(DataBase.students[i].getStudentID().equals(studentID)){
continue;
}
newStudent[k] = DataBase.students[i];
k++;
}
DataBase.students = newStudent;
return true;
}
}



