這篇文章將為大家詳細講解有關使用Java編寫一個學生成績管理系統,文章內容質量較高,因此小編分享給大家做個參考,希望大家閱讀完這篇文章后對相關知識有一定的了解。
Java主要應用于:1. web開發;2. Android開發;3. 客戶端開發;4. 網頁開發;5. 企業級應用開發;6. Java大數據開發;7.游戲開發等。
儲存學生的基本信息
public class Student {
private int no;
private String name;
Result result;
public Student() {
super();
}
public Student(int no, String name,Result result) {
super();
this.result = result;
this.name = name;
this.no = no;
}
public Result getResult() {
return result;
}
public void setResult(Result result) {
this.result = result;
}
public String getName() {
return name;
}
public void setName(String name) {
this.name = name;
}
public int getNo() {
return no;
}
public void setNo(int no) {
this.no = no;
}
public String toString(){
return "\t" + no + "\t" + name + "\t" + result;
}
}便于成績的增加,易于管理
public class Result {//成績類
private int java;
private int python;
private int c_shar;
private int sql;
private int sum;
private int avg;
public Result() {
}
public Result(int java, int python, int c_shar, int sql) {
super();
this.java = java;
this.python = python;
this.c_shar = c_shar;
this.sql = sql;
}
public int getJava() {
return java;
}
public void setJava(int java) {
this.java = java;
}
public int getPython() {
return python;
}
public void setPython(int python) {
this.python = python;
}
public int getC_shar() {
return c_shar;
}
public void setC_shar(int c_shar) {
this.c_shar = c_shar;
}
public int getSql() {
return sql;
}
public void setSql(int sql) {
this.sql = sql;
}
public int getSum(){
return this.java + this.python + this.c_shar + this.sql;
}
public int getAvg(){
return this.getSum() / 4;
}
public String toString(){
return java + "\t" + python + "\t" + c_shar + "\t" + sql + "\t" + this.getSum() + "\t" + this.getAvg();
}
}主要功能在此類中,例如添加學生信息、查找學生等等
import java.util.Scanner;
public class StudentAdmin {//管理學生類
Scanner in = new Scanner(System.in);
/**
*
* @param name 傳一個name添加學生姓名
* @param Arr傳一個學生數組,將學生對象保存
* @throws AddStudentException
*/
public void addStudent(String name,Student[] Arr) throws AddStudentException{//添加學生方法
AddStudentException ase = new AddStudentException("學生已達上限,添加失??!");
Student stu = new Student();
Result r = new Result();
stu.setNo(setIndex(Arr) + 1);
stu.setName(name);
stu.setResult(r);
if(setIndex(Arr) == -1){
throw ase;
}else{
Arr[this.setIndex(Arr)] = stu;
}
}
/**
*
* @param Arr傳一個數組
* @return返回空數組元素的下標
*/
public int setIndex(Student[] Arr){
for(int i = 0; i < Arr.length; i++){
if(null == Arr[i]){
return i;
}
}
return -1;
}
public void print(Student[] arr){//打印學生對象
for(int i = 0; i < arr.length; i++){
if(judge(i+1,arr[i])){
System.out.println(arr[i]);
}
}
}
public boolean judge(int no,Student stu){//判斷數組元素編號和傳的編號是否一致
if(stu != null){
if(stu.getNo() == no){
return true;
}else{
return false;
}
}
return false;
}
public void search(String name,Student[] arr){//查找學生方法
for(int i = 0; i < arr.length; i++){
if(judge(i + 1,arr[i])){
if(arr[i].getName().equals(name)){
System.out.println(arr[i]);
return;
}
}
}
System.out.println("沒有找到此學生,請確認輸入的姓名是否正確!");
}
public void update(int no,String name,Student[] arr){//更新學生姓名
for(int i = 0; i < arr.length; i++){
if(judge(i + 1,arr[i])){
arr[i].setName(name);
System.out.println(arr[i]);
return;
}
}
System.out.println("沒有此編號,請確認輸入的編號是否正確!");
}
public void del(int no,Student[] arr){//刪除學生信息
for(int i = 0; i < arr.length; i++){
if(judge(no,arr[i])){
arr[i] = null;
return;
}
}
System.out.println("沒有此編號,請確認輸入的編號是否正確!");
}
public void stuResult(int no,Student[] arr){//根據編號輸入學生各科成績
for(int i = 0; i < arr.length; i++){
if(judge(i + 1,arr[i])){
if(arr[i].getNo() == no){
System.out.println("請輸入" + arr[i].getName() + "的java成績:");
arr[i].result.setJava(in.nextInt());
System.out.println("請輸入" + arr[i].getName() + "的python成績:");
arr[i].result.setPython(in.nextInt());
System.out.println("請輸入" + arr[i].getName() + "的c_char成績:");
arr[i].result.setC_shar(in.nextInt());
System.out.println("請輸入" + arr[i].getName() + "的sql成績:");
arr[i].result.setSql(in.nextInt());
break;
}
}
}
}
public void paiXu(int no,Student[] arr){//根據某科成績排序
switch(no){
case 1:
for(int i = 0; i < arr.length-1; i++){
for(int j = i + 1; j < arr.length; j++){
if(arr[j].result.getJava() > arr[i].result.getJava()){
Student max = arr[i];
arr[i] = arr[j];
arr[j] = max;
}
}
}
for(int i = 0; i < arr.length; i++){
System.out.println(arr[i]);
}
break;
case 2:
for(int i = 0; i < arr.length-1; i++){
for(int j = i + 1; j < arr.length; j++){
if(arr[j].result.getPython() > arr[i].result.getPython()){
Student max = arr[i];
arr[i] = arr[j];
arr[j] = max;
}
}
}
for(int i = 0; i < arr.length; i++){
System.out.println(arr[i]);
}
break;
case 3:
for(int i = 0; i < arr.length-1; i++){
for(int j = i + 1; j < arr.length; j++){
if(arr[j].result.getC_shar() > arr[i].result.getC_shar()){
Student max = arr[i];
arr[i] = arr[j];
arr[j] = max;
}
}
}
for(int i = 0; i < arr.length; i++){
System.out.println(arr[i]);
}
break;
case 4:
for(int i = 0; i < arr.length-1; i++){
for(int j = i + 1; j < arr.length; j++){
if(arr[j].result.getSql() > arr[i].result.getSql()){
Student max = arr[i];
arr[i] = arr[j];
arr[j] = max;
}
}
}
for(int i = 0; i < arr.length; i++){
System.out.println(arr[i]);
}
break;
default:
System.out.println("你輸入的編號錯誤!");
}
}
public void sumPaiXu(Student[] arr){//根據總分進行排序
for(int i = 0; i < arr.length-1; i++){
for(int j = i + 1; j < arr.length; j++){
if(arr[j].result.getSum() > arr[i].result.getSum()){
Student max = arr[i];
arr[i] = arr[j];
arr[j] = max;
}
}
}
for(int i = 0; i < arr.length; i++){
System.out.println(arr[i]);
}
return;
}
}練習自定義異常類的創建及使用
public class AddStudentException extends Exception{
public AddStudentException(){}
public AddStudentException(String s){
super(s);
}
}import java.util.Scanner;
public class Test {
public static void main(String[] args){
Scanner in = new Scanner(System.in);
StudentAdmin admin = new StudentAdmin();
System.out.println("請定義學生的人數:");
Student[] stuArr = new Student[in.nextInt()];
while(true){
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("7:根據總分進行排序");
System.out.println("0:退出系統");
int num = in.nextInt();
switch(num){
case 0 :
System.exit(0);
case 1 :
System.out.println("請輸入學生姓名:");
try {
admin.addStudent(in.next(), stuArr);
} catch (AddStudentException e) {
e.printStackTrace();
}
admin.print(stuArr);
break;
case 2 :
System.out.println("請輸入要查找的學生姓名:");
String name = in.next();
admin.search(name, stuArr);
break;
case 3 :
System.out.println("請輸入要修改的編號:");
int no = in.nextInt();
System.out.println("請重新輸入學生姓名:");
String name1 = in.next();
admin.update(no, name1, stuArr);
break;
case 4 :
System.out.println("請輸入學生編號:");
int no1 = in.nextInt();
admin.del(no1, stuArr);
System.out.println("刪除學生信息成功!");
break;
case 5 :
System.out.println("請輸入學生編號:");
int no2 = in.nextInt();
admin.stuResult(no2, stuArr);
admin.print(stuArr);
break;
case 6 :
System.out.println("請輸入編號對應成績進行排序【1:java 2:python 3:c_char 4:sql】");
int no3 = in.nextInt();
admin.paiXu(no3, stuArr);
break;
case 7 :
admin.sumPaiXu(stuArr);
break;
default :
System.out.println("您輸入的編號有誤,請重新輸入!");
break;
}
}
}
}關于使用Java編寫一個學生成績管理系統就分享到這里了,希望以上內容可以對大家有一定的幫助,可以學到更多知識。如果覺得文章不錯,可以把它分享出去讓更多的人看到。
免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。