Student.java(主程序)
package student;
/**
*
* @author asus
*/
import java.util.*;
public class Student {
/**
* @param args the command line arguments
*/
public static void main(String[] args) {
// TODO code application logic here
/** Students stu = new Students();
stu.setOn(0);
stu.setName("小李");
stu.setAge(24);
stu.setJava(70);
stu.setC_shar(50);
stu.setHtml(70);
stu.setSql(80);
stu.setSum();
stu.setAvg();
System.out.println("\t编号\t姓名\t年龄\tJava\tC#\thtml\tsql\t总分\t平均分");
System.out.println(stu);
**/
Scanner in =new Scanner(System.in);
// System.out.println("--请定义人数--");
Students[] stuArr=new Students[4];//数组长度为2
// System.out.println(stuArr.length);做测试
Admin adminStu=new Admin();
while(true) {
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:退出系统");
String number=in.next();
if(number.equals("10")){
System.out.println("请输入学生的姓名");
//接收姓名
String name=in.next();
System.out.println("请输入学生的年龄:");
//接收年龄
int age=in.nextInt();
//添加学生
adminStu.create(name,age, stuArr);
// adminStu.print(stuArr);
} else if (number.equals("11")){
System.out.println("执行查找学生的基本信息操作");
System.out.println("请输入学生的编号进行查找:");
//编号是进行接收的
int on=in.nextInt();
//调用查询的方法
adminStu.select(on,stuArr);
} else if (number.equals("12")) {
System.out.println("执行更新学员的基本信息");
System.out.println("请输入学生的编号:");
int on = in.nextInt();
System.out.println("请输入学生的姓名:");
String name =in.next();
System.out.println("请输入学生的年龄:");
int age = in.nextInt();
adminStu.update(on, name, age, stuArr);
// adminStu.print(stuArr);//刷新输出
} else if (number.equals("13")){
System.out.println("执行删除操作");
System.out.println("请输入学生的编号");
int on=in.nextInt();
adminStu.delete(on,stuArr);
// adminStu.print(stuArr);
}else if (number.equals("14")){
System.out.println("执行输入成绩操作");
System.out.println("请输入学生的编号");
int on=in.nextInt();
adminStu.inputSorce(on,stuArr);
}else if (number.equals("15")){
System.out.println("执行根据某科成绩排序操作");
System.out.println("请确定课程:1.Java 2.C# 3.Html 4.Sql");
int num=in.nextInt();
adminStu.courseSort(num,stuArr);
}else if (number.equals("16")){
System.out.println("执行根据总分排序操作");
adminStu.sumSort(stuArr);
}else if (number.equals("99")){
//break;
System.out.println("程序已结束");
System.exit(0);//专门结束循环,跳出这个主类
}
}
}
}
Students.java(对象的封装与初始化)
package student;
/**
*
* @author asus
*/
public class Students {
private int on;
private String name;
private int age;
private int java;
private int c_shar;
private int html;
private int sql;
private int sum;
private int avg;
public void setOn(int on){
this.on =on;
}
public int getOn(){
return this.on;
}
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 int getJava() {
return java;
}
public void setJava(int java) {
this.java = java;
}
public int getC_shar() {
return c_shar;
}
public void setC_shar(int c_shar) {
this.c_shar = c_shar;
}
public int getHtml() {
return html;
}
public void setHtml(int html) {
this.html = html;
}
public int getSql() {
return sql;
}
public void setSql(int sql) {
this.sql = sql;
}
public int getSum() {
return sum;
}
public void setSum() {
this.sum = this.java+this.c_shar+this.html+this.sql;
}
public int getAvg() {
return avg;
}
public void setAvg() {
this.avg = this.sum/4;
}
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.sum+"\t"+this.avg;
return msg;
}
}
Admin.java(对象所实现的功能)
package student;
/**
*
* @author asus
*/
//用来管理学生的一个类
import java.util.*;
public class Admin {
String msg="\t编号\t姓名\t年龄\tJava\tC#\tHtml\tSql\t总分\t平均分";
//参数传递的过程、传递数组。更新信息的一个方法
public void print(Students[] arr){
System.out.println(msg);
for (int i=0;i<arr.length;i++) {
if (arr[i]!=null){
arr[i].setSum();
arr[i].setAvg();
System.out.println(arr[i]);
}
}
}
//判断是否存在学生
//students 此时传递的数组
public boolean exist(int on,Students stu){
if (stu!=null){
if (stu.getOn()==on){
return true;
}else{
return false;
}
}
//大if的else
return false;
}
//添加学生的方法
public void create(String name,int age,Students[] arr){
Students stu = new Students();
stu.setName(name);
stu.setAge(age);
int i=this.setIndex(arr);
stu.setOn(i);
if (i==99999){
System.out.println("学生人数已达到最大,不能再添加了");
}else{
arr[i]=stu;
}
}
//返回数组为空的下标
public int setIndex(Students[] arr){
for (int i=0;i<arr.length;i++){
if (arr[i]==null){//为空返回下标
return i;
}
}
return 99999;
}
//查询方法,方法里面的参数传递过程
public void select(int on,Students[] arr){
System.out.println(msg);
for (int i=0;i<arr.length;i++){
if (this.exist(on, arr[i])==true){
System.out.println(msg);
System.out.println(arr[i]);
this.print(arr);
return ;//直接结束这个方法用return
}
}
System.out.println("--没有这个学生的存在--");
}
//更新学生的基本信息
public void update (int on,String name ,int age,Students[] arr){
for (int i=0;i<arr.length;i++){
if (this.exist(on,arr[i])){
arr[i].setName(name);
arr[i].setAge(age);
System.out.println("---更新学生信息成功---");
this.print(arr);
return ; //不执行下面直接返回
}
}
//如果不存在
System.out.println("没找到这个学生,更新信息失败");
}
public void delete(int on,Students [] arr){
for (int i=0;i<arr.length;i++){
if (this.exist(on,arr[i])){
//第i个学生信息为空则为删除了
arr[i]=null;
this.print(arr);
return;
}
}
//如果没有执行for,则执行system
System.out.println("您所指定编号的学生没有存在");
}
//输入某学生的某科成绩
public void inputSorce(int on,Students[] arr){
for (int i=0;i< arr.length;i++){
if(exist(on,arr[i])==true){
System.out.println("请输入"+arr[i].getName()+"Java的成绩");
Scanner in=new Scanner(System.in);
//判断用户台输入的是否为整数in.hasNextInt
if (in.hasNextInt()){//如果输入的整型才会继续输入成绩
arr[i].setJava(in.nextInt());
}
System.out.println("请输入"+arr[i].getName()+"C#的成绩");
if (in.hasNextInt()){
arr[i].setC_shar(in.nextInt());
}
System.out.println("请输入"+arr[i].getName()+"Html的成绩");
if (in.hasNextInt()){
arr[i].setHtml(in.nextInt());
}
System.out.println("请输入"+arr[i].getName()+"Sql的成绩");
if (in.hasNextInt()){
arr[i].setSql(in.nextInt());
}
this.print(arr);
break;
}
}
}
//根据指定的科目进行排序操作
public void courseSort(int num,Students[] arr){
if (num==1){
for (int i=0;i<arr.length-1;i++){
for (int j=i+1;j<arr.length;j++){
if (arr[i]!=null&&arr[j]!=null){
if (arr[i].getJava()<arr[j].getJava()){
Students t=arr[i];
arr[i]=arr[j];
arr[j]=t;
}
}
}
}
}else if (num==2) {
for (int i=0;i<arr.length-1;i++){
for (int j=i+1;j<arr.length;j++){
if (arr[i]!=null&&arr[j]!=null){
if (arr[i].getC_shar()<arr[j].getC_shar()){
Students t=arr[i];
arr[i]=arr[j];
arr[j]=t;
}
}
}
}
} else if (num==3){
for (int i=0;i<arr.length-1;i++){
for (int j=i+1;j<arr.length;j++){
if (arr[i]!=null&&arr[j]!=null){
if (arr[i].getHtml()<arr[j].getHtml()){
Students t=arr[i];
arr[i]=arr[j];
arr[j]=t;
}
}
}
}
}else if(num==4){
for (int i=0;i<arr.length-1;i++){
for (int j=i+1;j<arr.length;j++){
if (arr[i]!=null&&arr[j]!=null){
if (arr[i].getSql()<arr[j].getSql()){
Students t=arr[i];
arr[i]=arr[j];
arr[j]=t;
}
}
}
}
}
this.print(arr);
}
public void sumSort(Students[] arr){
for (int i=0;i<arr.length-1;i++){
for (int j=i+1;j<arr.length;j++){
if (arr[i]!=null&&arr[j]!=null){
if (arr[i].getSum()<arr[j].getSum()){
Students t=arr[i];
arr[i]=arr[j];
arr[j]=t;
}
}
}
}
this.print(arr);
}
}