學生成績管理系統2(java類的運用,面向物件思想的應用)
阿新 • • 發佈:2019-01-02
本來想自己直接用java的類寫一個管理系統,結果還是心太燥,於是順著視訊教程跟著進度寫完了這個小專案,體會到了面向物件思想的妙用
開發環境: eclipse
實現功能:1.輸入學生資訊 姓名 年齡
2.輸入學生的成績 java, c# , html, sql
3.根據某一門課排序
4.根據總分排序
5.根據編號查詢學生資訊
6.根據編號刪除學生
7.根據編號修改學生資訊
共寫了三個類 主類Test , 學生類Student ,學生資訊操作的類Admin
【主檔案】
【學生類】//Test.java import java.util.*; import java.text.*; import java.math.*; public class Text { static int num=0; public static void main(String[] args){ Scanner in=new Scanner(System.in); System.out.println("--請定義人數--"); Student[] stuArr=new Student[in.nextInt()]; Admin adminStu= new Admin(); while(true){ System.out.println("--你要執行的功能:--"); System.out.println("0:新增一個學生"); 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("7:退出系統"); String number=in.next(); if(number.equals("0")){ System.out.println("請輸入學生的姓名:"); String name=in.next(); System.out.println("請輸入學生的年齡: "); int age=in.nextInt(); adminStu.create(name,age,stuArr); }else if(number.equals("1")){ System.out.println("執行查詢學生的基本資訊操作"); System.out.println("請輸入學生的編號進行查詢:"); int on=in.nextInt(); adminStu.select(on, stuArr); }else if(number.equals("2")){ 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); }else if(number.equals("3")){ System.out.println("執行刪除學生操作"); System.out.println("請輸入學生的編號"); int on =in.nextInt(); adminStu.delete(on,stuArr); }else if(number.equals("4")){ System.out.println("執行輸入學生操作"); System.out.println("請輸入學生的編號"); int on=in.nextInt(); adminStu.input(on,stuArr); }else if(number.equals("5")){ 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("6")){ System.out.println("執行根據總分排序操作"); adminStu.sumSort(stuArr); }else if(number.equals("7")){ System.out.println("--程式已經退出--"); System.exit(0);//退出 } } } }
【學生資訊操作類】//Student.java public class Student {//學生類 private int on; private String name; private int age; private double java; private double c_shar; private double html; private double sql; private double sum; private double avg; public int getOn() { return on; } public void setOn(int on) { this.on = 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 double getJava() { return java; } public void setJava(double java) { this.java = java; } public double getC_shar() { return c_shar; } public void setC_shar(double c_shar) { this.c_shar = c_shar; } public double getHtml() { return html; } public void setHtml(double html) { this.html = html; } public double getSql() { return sql; } public void setSql(double sql) { this.sql = sql; } public double getSum() { return sum; } public void setSum() { sum=java+c_shar+html +sql; } public double getAvg() { return avg; } public void setAvg() { avg=(java+c_shar+html +sql)/4; } public String toString(){ //定義toString String n="\t"+on+"\t"+name+"\t"+age+"\t"+java+"\t"+c_shar+"\t"+html+"\t"+sql+"\t"+sum+ "\t"+avg; return n; } }
//Admin.java
import java.util.*;
public class Admin {//管理學生的類
String msg="\t編號\t姓名\t年齡\tjava\tc#\thtml\tsql\t總分\t平均分";
public void print(Student[] 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]);
}
}
}
public boolean exist(int on,Student stu){//判斷學生是否存在
if(stu==null)
return false;
else
if(stu.getOn()==on)
return true;
else
return false;
}
public void create(String name,int age,Student[] arr){//新增學生的方法
Student stu= new Student();
stu.setName(name);
stu.setAge(age);
int i=this.setIndex(arr);
stu.setOn(i);
if(i==-1){
System.out.println("學生人數已經新增到最大值,不能再新增");
}else{
arr[i]=stu;
}
this.print(arr);
}
public void select(int on,Student[] arr){//查詢方法
for(int i=0;i<arr.length;i++){
if(this.exist(on, arr[i])){
System.out.println(msg);
System.out.println(arr[i]);
return;
}
}
System.out.println("--沒有這個學生的存在--");
}
public int setIndex(Student[] arr){//返回數組裡為空的下標
for(int i=0;i<arr.length;i++)
{
if(arr[i]==null){
return i;
}
}
return -1;
}
public void update(int on,String name,int age,Student[] 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,Student[] arr){
for(int i=0;i<arr.length;i++){
if(this.exist(on,arr[i])){
arr[i]=null;
this.print(arr);
return ;
}
}
System.out.println("您所指定編號的學生沒有存在");
}
public void input(int on,Student[] arr){//輸入學生成績的操作
Scanner in=new Scanner(System.in);
for(int i=0;i<arr.length;i++){
if(this.exist(on,arr[i])){
System.out.println("請輸入"+arr[i].getName()+"的java成績");
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);
return ;
}
}
System.out.println("沒有找到您想找到的學生");
}
public void courseSort(int num,Student[] arr ){//根據指定的科目進行排序操作
switch(num){
case 1:
for(int i=0;i<arr.length-1;i++){ //手寫的選擇排序
int k=i;
if(arr[i]==null)
continue;
for(int j=i+1;j<arr.length;j++){
if(arr[j]==null)
continue;
if(arr[j].getJava()>arr[k].getJava()){
k=j;
}
}
if(k!=i){
Student t=arr[k];
arr[k]=arr[i];
arr[i]=t;
}
}break;
case 2:
for(int i=0;i<arr.length-1;i++){
int k=i;
if(arr[i]==null)
continue;
for(int j=i+1;j<arr.length;j++){
if(arr[j]==null)
continue;
if(arr[j].getC_shar()>arr[k].getC_shar()){
k=j;
}
}
if(k!=i){
Student t=arr[k];
arr[k]=arr[i];
arr[i]=t;
}
}break;
case 3:
for(int i=0;i<arr.length-1;i++){
int k=i;
if(arr[i]==null)
continue;
for(int j=i+1;j<arr.length;j++){
if(arr[j]==null)
continue;
if(arr[j].getHtml()>arr[k].getHtml()){
k=j;
}
}
if(k!=i){
Student t=arr[k];
arr[k]=arr[i];
arr[i]=t;
}
}break;
case 4:
for(int i=0;i<arr.length-1;i++){
int k=i;
if(arr[i]==null)
continue;
for(int j=i+1;j<arr.length;j++){
if(arr[j]==null)
continue;
if(arr[j].getSql()>arr[k].getSql()){
k=j;
}
}
if(k!=i){
Student t=arr[k];
arr[k]=arr[i];
arr[i]=t;
}
}break;
}
this.print(arr);
}
public void sumSort(Student[] arr){
for(int i=0;i<arr.length-1;i++){
int k=i;
if(arr[i]==null)
continue;
for(int j=i+1;j<arr.length;j++){
if(arr[j]==null)
continue;
if(arr[j].getSum()>arr[k].getSum()){
k=j;
}
}
if(k!=i){
Student t=arr[k];
arr[k]=arr[i];
arr[i]=t;
}
}
this.print(arr);
}
}