吾爱破解 - 52pojie.cn

 找回密码
 注册[Register]

QQ登录

只需一步,快速开始

查看: 9146|回复: 28
收起左侧

[Java 转载] 【面向对象】学生管理系统

[复制链接]
太帥是罪過 发表于 2018-7-21 14:03
本帖最后由 太帥是罪過 于 2018-7-24 15:39 编辑

用面向对象的方式写的一个简单的学生管理系统,支持添加学生、删除学生、修改学生成绩等各种操作,还在学习java基础的同学可以参考。

环境:eclipse2018、java10.0.1


包:cn.HolmesCraft.Six


主类:
[Java] 纯文本查看 复制代码
package cn.HolmesCraft.Six;

import java.util.Scanner;

public class StudentAdministrator {
        public static void main(String[] args) {
                
                Administrator admin=new Administrator();
                
                Scanner Lol=new Scanner(System.in);
                
                System.out.println("--请定义人数--");
                int number=admin.testInt();
                
                Student[] stu=new Student[number];
                
                int i = 0;
                while(!(i==99)) {
                        
                        System.out.println(">>请选择你要执行的功能:");
                        System.out.println("10:添加一个学生");
                        System.out.println("11:查找一个学生");
                        System.out.println("12:根据学生编号更新学生基本信息");
                        System.out.println("13:根据学生编号删除学生");
                        System.out.println("14:根据学生编号输入学生各门成绩");
                        System.out.println("15:根据某门成绩进行排序");
                        System.out.println("16:总分进行排序");
                        System.out.println("99:退出系统");
                        
                        i=admin.testInt();
                        
                        switch(i) {
                        case 10:                        
                                System.out.println(">>执行创建学生的操作");
                                
                                System.out.println("请输入学生的姓名:");
                                String name=Lol.next();
                                System.out.println("请输入学生的年龄:");
                                int age=admin.testInt();
                                admin.create(name, age, stu);
                                admin.export(stu);
                                break;
                        case 11:
                                System.out.println(">>执行查找学生的操作");
                                
                                System.out.println("请输入你要查询的学生编号:");
                                int on=admin.testInt();
                                admin.select(on,stu);
                                break;
                        case 12:
                                System.out.println(">>执行更新学生信息的操作");
                                
                                System.out.println("请输入你要更新的学生编号:");
                                int on1=admin.testInt();
                                System.out.println("请输入你要更新学生的姓名:");
                                String name1=Lol.next();
                                System.out.println("请输入你要更新学生的年龄:");
                                int age1=admin.testInt();
                                admin.update(on1, name1, age1, stu);
                                break;
                        case 13:
                                System.out.println(">>执行删除学生的操作");
                                
                                System.out.println("请输入你要删除的学生编号:");
                                int on2=admin.testInt();
                                admin.delete(on2, stu);
                                admin.export(stu);
                                break;
                        case 14:
                                System.out.println(">>执行输入学生成绩的操作");
                                
                                System.out.println("请输入你要输入成绩的学生编号:");
                                int on3=admin.testInt();
                                admin.input(on3, stu);
                                admin.export(stu);
                                break;
                        case 15:
                                System.out.println(">>执行根据学生某门成绩排名的操作");
                                
                                System.out.println("请选择你要根据的成绩:(1.java 2.C# 3.html 4.sql)");
                                int subject=admin.testInt();
                                admin.subject(subject, stu);
                                admin.export(stu);
                                break;
                        case 16:
                                System.out.println(">>执行根据总分进行排名的操作");
                                
                                admin.sum(stu);
                                admin.export(stu);
                                break;
                        case 99:
                                i=99;
                                break;
                        default:
                                System.out.println(">>请输入正确的数字!");
                                break;
                        }
                }
        }
}


学生类:
[Java] 纯文本查看 复制代码
package cn.HolmesCraft.Six;

public class Student {
        private int on;//编号
        private String name;//姓名
        private int age;//年龄
        private int java;//java成绩
        private int c_shar;//c#成绩
        private int html;//html成绩
        private int sql;//sql成绩
        private int sum;//总分
        private double avg; //平均分
        public String toString() {
                String msg="\t"+this.on+"\t"+this.name+"\t"+this.age+"\t"+this.java+"\t"+
                                this.c_shar+"\t"+this.html+"\t"+this.sql+"\t"+this.getSum()+"\t"+this.getAvg();
                return msg;
                
        }
        public int getOn() {
                return this.on;
        }
        public void setOn(int on) {
                this.on=on;
        }
        public String getName() {
                return this.name;
        }
        public void setName(String name) {
                this.name=name;
        }
        public int getAge() {
                return this.age;
        }
        public void setAge(int age) {
                this.age = age;
        }
        public int getJava() {
                return this.java;
        }
        public void setJava(int java) {
                this.java = java;
        }
        public int getC_shar() {
                return this.c_shar;
        }
        public void setC_shar(int c_shar) {
                this.c_shar = c_shar;
        }
        public int getHtml() {
                return this.html;
        }
        public void setHtml(int html) {
                this.html = html;
        }
        public int getSql() {
                return this.sql;
        }
        public void setSql(int sql) {
                this.sql = sql;
        }
        public int getSum() {
                return this.sum;
        }
        public void setSum() {
                this.sum = this.java+this.c_shar+this.html+this.sql;
        }
        public double getAvg() {
                return this.avg;
        }
        public void setAvg() {
                this.avg = this.sum/4;
        }
}


学生管理类:
[Java] 纯文本查看 复制代码
package cn.HolmesCraft.Six;

import java.util.Scanner;
import java.util.Arrays;

public class Administrator {

        static String msg="\t编号\t姓名\t年龄\tjava\tc#\thtml\tsql\t总分\t平均分";

        Scanner Lol= new Scanner(System.in);


        public int testInt() {     //测试输入字符是否为int类型,并录入
                while(!Lol.hasNextInt()) {
                        System.out.println("请输入一个自然数!");
                        Lol.next();        
                }
                return Lol.nextInt();
        }

        public boolean find(int on,Student[] air) {   //检测某编号是否有学生存在
                if(0<=on&&on<air.length) {
                        for(int i=0;i<air.length;i++) {
                                if(air[i]!=null) {
                                        if(air[on]==air[i]) {
                                                return true;
                                        }
                                }else {
                                        return false;
                                }
                        }
                        return false;
                }
                return false;
        }

        public void export(Student[] air) { //打印学生表格
                System.out.println(msg);
                for(int i=0;i<air.length;i++) {
                        if(air[i]!=null) {
                                System.out.println(air[i].toString());
                        }
                }
        }

        public void create(String name,int age,Student[] air) {     //添加学生的方法
                Student stu=new Student();
                stu.setName(name);
                stu.setAge(age);
                if(this.testAir(air)!=999999999) {
                        stu.setOn(this.testAir(air));
                        air[this.testAir(air)]=stu;
                }else {
                        System.out.println(">>已达系统最大存储学生量,无法添加学生。");
                }
        }

        public int testAir(Student[] air) {     //检测数组是否有空余,并返回空余数组的位置
                for(int i = 0;i<air.length;i++) {
                        if(air[i]==null) {
                                return i;
                        }
                }
                return 999999999;
        }

        public void select(int on,Student[] air) {   //查找某编号学生的方法
                if(this.find(on, air)) {
                        System.out.println(msg);
                        System.out.println(air[on]);
                }else {
                        System.out.println(">>该编号的学生不存在");
                }
        }

        public void update(int on,String name,int age,Student[] air) {   //更新学生基本信息的方法
                if(this.find(on, air)) {
                        air[on].setAge(age);
                        air[on].setName(name);
                        System.out.println(msg);
                        System.out.println(air[on]);
                }else {
                        System.out.println(">>该编号的学生不存在");
                }
        }

        public void delete(int on,Student[] air) {  //删除学生的方法
                if(this.find(on, air)) {
                        air[on]=null;
                        System.out.println(">>已删除");
                }else {
                        System.out.println(">>该编号的学生不存在");
                }
        }

        public void input(int on,Student[] air) {  //输入学生成绩信息的方法
                if(this.find(on, air)) {
                        System.out.println("请输入你的java成绩!");
                        air[on].setJava(this.testInt());
                        System.out.println("请输入你的C#成绩!");
                        air[on].setC_shar(this.testInt());
                        System.out.println("请输入你的html成绩!");
                        air[on].setHtml(this.testInt());
                        System.out.println("请输入你的sql成绩!");
                        air[on].setSql(this.testInt());
                        air[on].setSum();
                        air[on].setAvg();
                        System.out.println(">>录入完成");
                }else {
                        System.out.println(">>该编号的学生不存在");
                }
        }

        public void subject(int subject,Student[] air) {
                switch(subject) {
                case 1:
                        for(int i=0;i<air.length;i++) {
                                        for(int j=i+1;j<air.length;j++) {
                                                if(air[i]!=null&&air[j]!=null) {
                                                if(air[i].getJava()<air[j].getJava()) {
                                                        Student a=air[i];
                                                        air[i]=air[j];
                                                        air[j]=a;
                                                }
                                        }
                                }
                        }
                        break;
                case 2:
                        for(int i=0;i<air.length;i++) {
                                        for(int j=i+1;j<air.length;j++) {
                                                if(air[i]!=null&&air[j]!=null) {
                                                if(air[i].getC_shar()<air[j].getC_shar()) {
                                                        Student a=air[i];
                                                        air[i]=air[j];
                                                        air[j]=a;
                                                }
                                        }
                                }
                        }
                        break;
                case 3:
                        for(int i=0;i<air.length;i++) {
                                        for(int j=i+1;j<air.length;j++) {
                                                if(air[i]!=null&&air[j]!=null) {
                                                if(air[i].getHtml()<air[j].getHtml()) {
                                                        Student a=air[i];
                                                        air[i]=air[j];
                                                        air[j]=a;
                                                }
                                        }
                                }
                        }
                        break;
                case 4:
                        for(int i=0;i<air.length;i++) {
                                for(int j=i+1;j<air.length;j++) {
                                        if(air[i]!=null&&air[j]!=null) {
                                                if(air[i].getSql()<air[j].getSql()) {
                                                        Student a=air[i];
                                                        air[i]=air[j];
                                                        air[j]=a;
                                                }
                                        }
                                }
                        }
                        break;
                }
        }
        
        public void sum(Student[] air) {
                for(int i=0;i<air.length;i++) {
                        for(int j=i+1;j<air.length;j++) {
                                if(air[i]!=null&&air[j]!=null) {
                                if(air[i].getSum()<air[j].getSum()) {
                                        Student a=air[i];
                                        air[i]=air[j];
                                        air[j]=a;
                                }
                        }
                }
        }
        }
}


GitHub开源地址:https://github.com/Holmes-shuai/StudentAdministratorSystem

免费评分

参与人数 4吾爱币 +4 热心值 +4 收起 理由
thegonedays + 1 谢谢@Thanks!
苏紫方璇 + 2 + 1 感谢发布原创作品,吾爱破解论坛因你更精彩!
shao123 + 1 + 1 谢谢@Thanks!
cyzt + 1 + 1 谢谢@Thanks!

查看全部评分

发帖前要善用论坛搜索功能,那里可能会有你要找的答案或者已经有人发布过相同内容了,请勿重复发帖。

 楼主| 太帥是罪過 发表于 2019-4-29 22:26
niebaohua 发表于 2019-4-19 12:24
输入一个字符串  系统不就炸了, 可以用正则来一个判断输入的类

这只是一个测试,实际肯定会注意这些细节
 楼主| 太帥是罪過 发表于 2018-7-24 15:15
Panhh13 发表于 2018-7-21 16:58
那时我做的很简洁的,你做的真详细啊。

基本上把所有bug都给修好了,比如说数组越界的bug。
枯酒Bei空影 发表于 2018-7-21 14:26
cl990327 发表于 2018-7-21 14:45
来学习学习
头像被屏蔽
半梦半醒浮生葬 发表于 2018-7-21 14:46
提示: 作者被禁止或删除 内容自动屏蔽
baibao023 发表于 2018-7-21 14:50
好多这个实例
cyzt 发表于 2018-7-21 15:05
来学习学习
shao123 发表于 2018-7-21 15:14
感谢楼主分享
zhijian66 发表于 2018-7-21 15:48
学习学习。
aty520 发表于 2018-7-21 16:57
来学习学习
Panhh13 发表于 2018-7-21 16:58
那时我做的很简洁的,你做的真详细啊。
您需要登录后才可以回帖 登录 | 注册[Register]

本版积分规则

返回列表

RSS订阅|小黑屋|处罚记录|联系我们|吾爱破解 - LCG - LSG ( 京ICP备16042023号 | 京公网安备 11010502030087号 )

GMT+8, 2024-11-16 05:54

Powered by Discuz!

Copyright © 2001-2020, Tencent Cloud.

快速回复 返回顶部 返回列表