• 您現在的位置是:首頁 >綜合 > 2023-07-23 06:30:09 來源:

    霞山管理系統價格(學生管理系統java)

    導讀 大家好,我是小華,我來為大家解答以上問題。霞山管理系統價格,學生管理系統java很多人還不知道,現在讓我們一起來看看吧!內容較多,你先...

    大家好,我是小華,我來為大家解答以上問題。霞山管理系統價格,學生管理系統java很多人還不知道,現在讓我們一起來看看吧!

    內容較多,你先自己用一下,感受感受,請看實例:

    User類:

    public class User {

    private int id;

    private String name;

    private String password;

    private Course[] courses;

    private int role; //0老師,1學生

    public int total(){

    int total=0;

    if(role==1 && courses!=null){

    for(Course c:courses){

    total+=c.getScore();

    }

    }

    return total;

    }

    public String toString(String courseName){

    if(courses==null){

    return "編號:"+id+" 姓名"+name;

    }else if(courses!=null && new Config().notEmpty(courseName)){

    for(Course c:courses){

    if(courseName.equals(c.getName())){

    return "編號:"+id+" 姓名:"+name+" "+courseName+c.getScore();

    }

    }

    }else{

    return "編號:"+id+" 姓名:"+name+" 總分"+total();

    }

    return "";

    }

    //有參和無參構造方法不再贅述

    }

    Course門課:

    public class Course {

    private String name;

    private int score;

    //getter和setter及有參、無參構造方法不再贅述

    }

    Config類:

    public class Config {

    private User[] users;

    public Config(){}

    public Config(User[] users){

    this.users=users;

    }

    public User[] getUsers() {

    return users;

    }

    public void setUsers(User[] users) {

    this.users = users;

    }

    //查詢數組內有無空元素

    public boolean cheakHasNull(){

    for(User u:users){

    if(u==null){

    return true;

    }

    }

    return false;

    }

    //輸入字符串

    public String inputString(Scanner sc,String attr){

    String str="";

    do{

    System.out.println("請輸入"+attr);

    str=sc.next();

    if(!notEmpty(str)){

    System.out.println(attr+"不為空,請重新輸入");

    }

    }while(!notEmpty(str));

    return str;

    }

    //輸入整數

    public int inputInt(Scanner sc,String attr){

    int sum=0;

    do{

    System.out.println("請輸入"+attr);

    sum=sc.nextInt();

    if(sum==0){

    System.out.println(attr+"不為空,請重新輸入");

    }

    }while(sum==0);

    return sum;

    }

    //篩選出所有學生

    public User[] cheakStudents(){

    List<User>userList=new ArrayList<User>();

    for(User u:users){

    if(u!=null && u.getRole()==1){

    userList.add(u);

    }

    }

    int len=userList.size();

    User[] result=new User[len];

    for(int i=0;i<len;i++){

    result[i]=userList.get(i);

    }

    return result;

    }

    //查詢有無重復id

    public boolean cheakRepeat(int id){

    for(User u:users){

    if(u!=null && id==u.getId()){

    return true;

    }

    }

    return false;

    }

    //打印數組信息

    public void print(String courseName){

    if(notEmpty(courseName)){

    for(int i=0;i<users.length;i++){

    if(users[i]!=null && users[i].getRole()==1){

    System.out.println("第"+i+"名: "+users[i].toString(courseName));

    }

    }

    }else{

    for(int i=0;i<users.length;i++){

    if(users[i]!=null && users[i].getRole()==1){

    System.out.println("第"+i+"名: "+users[i].toString(null));

    }

    }

    }

    }

    //字符串非空驗證

    public boolean notEmpty(String str){

    return str!=null && !"".equals(str);

    }

    //登錄驗證

    public User login(String name,String password){

    if(users!=null && notEmpty(name) && notEmpty(password)){

    for(User u:users){

    if(u!=null && name.equals(u.getName()) && password.equals(u.getPassword())){

    return u;

    }

    }

    }

    return null;

    }

    //尋找指定id的學生信息

    public User find(int id){

    for(User u:users){

    if(u!=null && id==u.getId()){

    return u;

    }

    }

    return null;

    }

    //增加

    public boolean add(User user){

    for(int i=0;i<users.length;i++){

    if(users[i]==null){

    users[i]=user;

    return true;

    }

    }

    return false;

    }

    //修改

    public boolean update(User user){

    for(User u:users){

    if(user.getId()==u.getId()){

    u=user;

    return true;

    }

    }

    return false;

    }

    //刪除

    public boolean remove(int id){

    int index=-1;

    for(int i=0;i<users.length;i++){

    if(id==users[i].getId()){

    index=i;

    }

    }

    if(index==-1){

    return false;

    }

    for(int i=index;i<users.length-1;i++){

    users[i]=users[i+1];

    }

    users[users.length-1]=null;

    return true;

    }

    //排序

    public void sort(){

    if(users!=null){

    for(int i=0;i<users.length;i++){

    for(int j=i+1;j<users.length;j++){

    if(users[i]!=null && users[j]!=null && users[i].total()<users[j].total()){

    User temp=users[i];

    users[i]=users[j];

    users[j]=temp;

    }

    }

    }

    }

    }

    //按門課排序

    public void sort(String courseNum){

    if(users!=null){

    for(int i=0;i<users.length;i++){

    for(int j=i+1;j<users.length;j++){

    if(users[i]!=null && users[j]!=null && users[i].total()<users[j].total()){

    User temp=users[i];

    users[i]=users[j];

    users[j]=temp;

    }

    }

    }

    }

    }

    }

    public class Manager {

    private User[] users;

    public Manager(User[] users){

    this.users=users;

    }

    public void doManager(){

    try{

    Scanner sc=new Scanner(System.in);

    Config config=new Config(users);

    int choose1=0;

    for(;choose1!=3;){

    System.out.println("歡迎來到學生管理系統 1.登錄 2.注冊 3.退出");

    choose1=sc.nextInt();

    if(choose1==1){

    User loginUser=null;

    String loginName="";

    for(;loginUser==null || !"exit".equals(loginName);){

    System.out.println("請輸入用戶名或輸入exit退出");

    loginName=sc.next();

    if(loginName.equals("exit")){

    break;

    }

    System.out.println("請輸入密碼");

    String loginPassword=sc.next();

    loginUser=config.login(loginName, loginPassword);

    if(loginUser!=null && loginUser.getRole()==1){

    System.out.println("你好,學生"+loginUser.getName());

    int choose2=0;

    do{

    System.out.println("1.查詢個人信息 2.修改個人信息 3.排行榜 4.退出");

    choose2=sc.nextInt();

    if(choose2==1){

    System.out.println("請輸入編號");

    int id=sc.nextInt();

    User search=config.find(id);

    if(search!=null){

    System.out.println(search.toString(null));

    }else{

    System.out.println("查無此人");

    }

    }else if(choose2==2){

    System.out.println("請輸入編號");

    int id=sc.nextInt();

    User search=config.find(id);

    if(search!=null){

    System.out.println(search.toString(null)+" 請選擇要修改的內容 1.姓名 2.密碼");

    int choose3=sc.nextInt();

    if(choose3==1){

    System.out.println("輸入新的用戶名");

    String newName=sc.next();

    search.setName(newName);

    }else if(choose3==2){

    String newPassword=sc.next();

    search.setPassword(newPassword);

    }

    System.out.println(config.update(search)?"修改成功":"修改失敗");

    }else{

    System.out.println("查無此人");

    }

    }else if(choose2==3){

    System.out.println("1.總分排行2.單門排行");

    int choose6=sc.nextInt();

    users=config.cheakStudents();

    if(choose6==1){

    config.sort();

    config.print(null);

    }else if(choose6==2){

    String courseNum=config.inputString(sc, "科目");

    config.sort(courseNum);

    config.print(courseNum);

    }

    }

    }while(choose2!=4);

    }else if(loginUser!=null && loginUser.getRole()==0){

    int choose4=0;

    System.out.println("你好,管理員"+loginUser.getName());

    do{

    System.out.println("1.添加 2.修改 3.刪除 4.查詢 5.排行榜 6.退出");

    choose4=sc.nextInt();

    if(choose4==1){

    if(config.cheakHasNull()){

    System.out.println("請輸入編號,輸入0退出");

    int id=0;

    boolean flag=false;

    do{

    id=sc.nextInt();

    if(id==0){

    break;

    }

    flag=config.cheakRepeat(id);

    if(flag){

    System.out.println("編號重復,請重新輸入");

    }

    }while(flag);

    String name=config.inputString(sc, "用戶名");

    String password=config.inputString(sc, "密碼");

    int role=config.inputInt(sc, "角色");

    User user=new User(id,name,password,role,null);

    config.add(user);

    }else{

    System.out.println("名額已滿");

    }

    }else if(choose4==2){

    System.out.println("請輸入編號");

    int id=sc.nextInt();

    User search=config.find(id);

    if(search!=null){

    if(search.getRole()==1){

    int choose5=0;

    do{

    System.out.println(search.toString(null)+" 請選擇要修改的內容 1.姓名 2.密碼 3.成績 4.退回");

    choose5=sc.nextInt();

    if(choose5==1){

    String name=config.inputString(sc, "用戶名");

    search.setName(name);

    }else if(choose5==2){

    String password=config.inputString(sc, "密碼");

    search.setPassword(password);

    }else if(choose5==3){

    System.out.println("一共幾門課?");

    int len=sc.nextInt();

    Course[] courses=new Course[len];

    for(int i=0;i<len;i++){

    String name=config.inputString(sc, "科目");

    int score=config.inputInt(sc, "分數");

    courses[i]=new Course(name,score);

    }

    search.setCourses(courses);

    }

    }while(choose5!=4);

    }

    }else{

    System.out.println("查無此人");

    }

    }else if(choose4==3){

    System.out.println("請輸入編號");

    int id=sc.nextInt();

    boolean result=config.remove(id);

    System.out.println(result?"成功刪除":"查無此人");

    }else if(choose4==4){

    System.out.println("請輸入編號");

    int id=sc.nextInt();

    User user=config.find(id);

    System.out.println(user==null?"查無此人":user.toString(null));

    }else if(choose4==5){

    System.out.println("1.總分排行2.單門排行");

    int choose6=sc.nextInt();

    users=config.cheakStudents();

    if(choose6==1){

    config.sort();

    config.print(null);

    }else if(choose6==2){

    String courseNum=config.inputString(sc, "科目");

    config.sort(courseNum);

    config.print(courseNum);

    }

    }

    }while(choose4!=6);

    }else{

    System.out.println("登錄失敗,用戶名或密碼錯誤");

    }

    }

    }else if(choose1==2){

    if(config.cheakHasNull()){

    System.out.println("請輸入編號");

    int id=0;

    do{

    id=config.inputInt(sc, "id");

    if(config.cheakRepeat(id)){

    System.out.println("編號已被注冊,請重新輸入");

    }

    }while(config.cheakRepeat(id));

    String name=config.inputString(sc, "姓名");

    String password=config.inputString(sc, "密碼");

    int role=config.inputInt(sc, "角色");

    User newUser=new User(id,name,password,role,null);

    boolean result=config.add(newUser);

    System.out.println(result?"添加成功":"添加失敗");

    }else{

    System.out.println("名額已滿");

    }

    }else{

    System.out.println("正在退出...");

    };

    };

    }catch(InputMismatchException e){

    System.out.println("您的輸入有誤,回主界面");

    doManager();

    }

    }

    }

    測試:

    Manager manager=new Manager(Data.getData());

    manager.doManager();

    部分效果圖:

    由于有字數限制,設置初始數據的Data類和部分代碼只能省略,需要完整項目的話請留言。

    本文到此講解完畢了,希望對大家有幫助。

  • 成人app