这个项目很简单,只有用户的登录注册,和登陆成功之后对学生的改查,没有连接数据库。分3个包,分别装实体类,测试类和页面,所以功能也放在页面类里。两个实体类分别装学生和用户,两个页面分别是登录注册页面和管理页面。如下图
首先是两个实体类
public class User {
private String userName;
private String userPass;
public User(String userName, String userPass) {
super();
this.userName = userName;
this.userPass = userPass;
}
public User() {
super();
}
public String getUserName() {
return userName;
}
public void setUserName(String userName) {
this.userName = userName;
}
public String getUserPass() {
return userPass;
}
public void setUserPass(String userPass) {
this.userPass = userPass;
}
@Override
public String toString() {
return "User [userName=" + userName + ", userPass=" + userPass + "]";
}
}
public class Student {
private int stuId;
private String stuName;
private String stuSex;
private int stuAge;
private String stuClass;
public Student(int stuId, String stuName, String stuSex, int stuAge, String stuClass) {
super();
this.stuId = stuId;
this.stuName = stuName;
this.stuSex = stuSex;
this.stuAge = stuAge;
this.stuClass = stuClass;
}
public Student() {
super();
}
public int getStuId() {
return stuId;
}
public void setStuId(int stuId) {
this.stuId = stuId;
}
public String getStuName() {
return stuName;
}
public void setStuName(String stuName) {
this.stuName = stuName;
}
public String getStuSex() {
return stuSex;
}
public void setStuSex(String stuSex) {
this.stuSex = stuSex;
}
public int getStuAge() {
return stuAge;
}
public void setStuAge(int stuAge) {
this.stuAge = stuAge;
}
public String getStuClass() {
return stuClass;
}
public void setStuClass(String stuClass) {
this.stuClass = stuClass;
}
@Override
public String toString() {
return "Student [stuId=" + stuId + ", stuName=" + stuName + ", stuSex=" + stuSex + ", stuAge=" + stuAge
+ ", stuClass=" + stuClass + "]";
}
}
然后是登录注册页面
public class MainView {
private Scanner scanner = new Scanner(System.in);
private List<User> userList = new ArrayList<User>();
private int b = 0;//b = 3 错误三次退出
//初始界面
public void mainView() {
while(true) {
System.out.println("***欢迎进入学生管理系统***");
System.out.println("1.登录");
System.out.println("2.注册");
System.out.println("3.退出系统");
System.out.print("请选择功能编号:");
String num = scanner.next();
if("1".equals(num)) {
//登录
userLogin();
}else if("2".equals(num)) {
//注册
userRegister();
}else if("3".equals(num)) {
//退出
System.err.println("欢迎下次光临!");
System.exit(0);
}else {
System.out.println("您的序号输入有误!请重新输入!\n");
}
}
}
//用户登录
public void userLogin() {
if(userList.size() > 0) {
System.out.println("\n欢迎进入登陆系统");
System.out.println("请输入需要登录的账号:");
String userName = scanner.next();
System.out.println("请输入需要登录的密码:");
String userPass = scanner.next();
int a = 0;//a = 0 代表用户登录失败,1代表用户登录成功
for(User u:userList) {
if(u.getUserName().equals(userName)) {
if(u.getUserPass().equals(userPass)) {
a = 1;
System.out.println("恭喜您登录成功!正在加载学生管理系统界面......");
break;
}
}
}
if(a == 1) {
b = 0;//登录次数
StudentView studentView = new StudentView();
studentView.studentMainView(scanner);
}else {
System.out.println("登录失败!账号或密码错误!\n");
b++;
if(b == 2) {
System.out.println("您已经账号或密码错误2次,系统将在第三次错误的情况下自动退出!");
}else if(b == 3) {
System.out.println("账号或密码错误3次!系统即将自动退出!");
System.exit(0);
}
}
}else {
System.out.println("账号未注册,请先注册账号后登录!\n");
}
}
//用户注册
public void userRegister() {
System.out.println("\n欢迎进入注册系统");
System.out.println("请输入需要注册的账号:");
String userName = scanner.next();
System.out.println("请输入需要注册的密码:");
String userPass = scanner.next();
//账号首字母必须大写,密码长度超过6位才可以注册成功
if (Character.isUpperCase(userName.charAt(0)) && userPass.length() > 6) {
User user = new User(userName, userPass);
userList.add(user);
System.out.println("恭喜您注册成功!");
} else {
System.out.println("注册失败!账号首字母必须大写,密码长度必须大于6位!");
}
}
}
然后是登录成功后的功能页面
public class StudentView {
private List<Student>stuList = new ArrayList<Student>();
public StudentView() {
stuList.add(new Student(1,"张三","男",20,"11301"));
stuList.add(new Student(2,"李四","男",21,"11302"));
stuList.add(new Student(3,"王五","男",20,"11301"));
stuList.add(new Student(4,"麻六","男",19,"11301"));
stuList.add(new Student(5,"赵七","男",18,"11301"));
}
//学生管理系统主页面
public void studentMainView(Scanner scanner) {
while(true) {
System.out.println("\n欢迎使用学生管理系统");
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("6.退出系统");
System.out.println("-----------------------------");
System.out.println("请选择功能编号:");
String number = scanner.next();
if("1".equals(number)) {
selectAllStu(scanner);
}else if("2".equals(number)) {
selectIdStu(scanner);
}else if("3".equals(number)) {
reviseIdStuAge(scanner);
}else if("4".equals(number)) {
reviseNameStuClass(scanner);
}else if("5".equals(number)) {
selectClassStu(scanner);
}else if("6".equals(number)) {
break;
}else {
System.out.println("您输入的信息有误!请重新输入!");
}
}
}
//信息表头分割线
private void titleLine() {
System.out.println("\n编号\t姓名\t性别\t年龄\t班级");
System.out.println("---------------------------------------");
}
//功能1,显示所有学生信息
private void selectAllStu(Scanner scanner) {
titleLine();
for(Student s:stuList) {
System.out.println(s.getStuId() + "\t"
+ s.getStuName() + "\t"
+ s.getStuSex() + "\t"
+ s.getStuAge() + "\t"
+ s.getStuClass());
}
System.out.println("查询完毕,输入任意字符继续:");
String pd = scanner.next();
}
//功能2,根据编号查询学生信息
private void selectIdStu(Scanner scanner) {
System.out.println("\n请输入需要查询的学生编号:");
while (!scanner.hasNextInt()) {
System.out.println("输入有误,请重新输入需要查询的学生编号:");
scanner.next();
}
int stuId = scanner.nextInt();
boolean flag = false;
titleLine();
for(Student s:stuList) {
if(s.getStuId() == stuId) {
System.out.println(s.getStuId() + "\t"
+ s.getStuName() + "\t"
+ s.getStuSex() + "\t"
+ s.getStuAge() + "\t"
+ s.getStuClass());
flag = true;
break;
}
}
if(!flag) {
System.out.println("未找到该学生信息!");
}
System.out.println("查询完毕,输入任意字符继续:");
String pd = scanner.next();
}
//功能3,根据编号修改学生年龄
private void reviseIdStuAge(Scanner scanner) {
System.out.println("请输入您要修改年龄的学生编号:");
while (!scanner.hasNextInt()) {
System.out.println("输入有误,请重新输入需要修改年龄的学生编号:");
scanner.next();
}
int stuId = scanner.nextInt();
boolean flag = false;
for(Student s:stuList) {
if(s.getStuId() == stuId) {
//打印目前信息,方便浏览确认
titleLine();
System.out.println(s.getStuId() + "\t"
+ s.getStuName() + "\t"
+ s.getStuSex() + "\t"
+ s.getStuAge() + "\t"
+ s.getStuClass());
System.out.println("请输入新的年龄:");
while (!scanner.hasNextInt()) {
System.out.println("输入有误,请重新输入新的年龄:");
scanner.next();
}
int newAge = scanner.nextInt();
s.setStuAge(newAge);
//打印修改后信息,方便确认
titleLine();
System.out.println(s.getStuId() + "\t"
+ s.getStuName() + "\t"
+ s.getStuSex() + "\t"
+ s.getStuAge() + "\t"
+ s.getStuClass());
System.out.println("修改成功!");
flag = true;
break;
}
}
if(!flag) {
System.out.println("未找到该学生信息!");
}
System.out.println("修改完毕,输入任意字符继续:");
String pd = scanner.next();
}
//功能4,根据姓名修改学生班级
private void reviseNameStuClass(Scanner scanner) {
System.out.println("请输入需要修改班级的学生姓名:");
String name = scanner.next();
boolean flag = false;
for(Student s : stuList) {
if(s.getStuName().equals(name)) {
//打印目前信息,方便浏览确认
titleLine();
System.out.println(s.getStuId() + "\t"
+ s.getStuName() + "\t"
+ s.getStuSex() + "\t"
+ s.getStuAge() + "\t"
+ s.getStuClass());
System.out.println("请输入新的班级:");
String newClass = scanner.next();
s.setStuClass(newClass);
//打印修改后信息,方便确认
titleLine();
System.out.println(s.getStuId() + "\t"
+ s.getStuName() + "\t"
+ s.getStuSex() + "\t"
+ s.getStuAge() + "\t"
+ s.getStuClass());
System.out.println("修改成功!");
flag = true;
break;
}
}
if(!flag) {
System.out.println("未找到该学生信息!");
}
System.out.println("修改完毕,输入任意字符继续:");
String pd = scanner.next();
}
//功能5,根据班级查询全部学生信息
private void selectClassStu(Scanner scanner) {
System.out.println("请输入需要查询的班级编号:");
while (!scanner.hasNextInt()) {
System.out.println("输入有误,请重新输入需要查询的班级编号:");
scanner.next();
}
int classId = scanner.nextInt();
boolean flag = false;
titleLine();
for(Student s : stuList) {
if(s.getStuClass().equals(String.valueOf(classId))) {
System.out.println(s.getStuId() + "\t" +
s.getStuName() + "\t" +
s.getStuSex() + "\t" +
s.getStuAge() + "\t" +
s.getStuClass());
flag = true;
}
}
if(!flag) {
System.out.println("未找到该班级的学生信息!");
}
System.out.println("查询完毕,输入任意字符继续:");
String pd = scanner.next();
}
}
最后是测试类
public class TestDemo {
public static void main(String[] args) {
// TODO Auto-generated method stub
MainView mainView = new MainView();
mainView.mainView();
Scanner scanner = new Scanner(System.in);
StudentView studentView = new StudentView();
studentView.studentMainView(scanner);
}
}