題目:
一、測試要求:
1、按照測試內容要求完成程序的設計與編程;
2、將最終結果的源文件(.java)文件上傳到以班級為單位,保存源程序。
3、建立學號姓名文件夾,如:“20170001 管學生”,將源程序文件保存在文件夾中。
二、實驗內容:
1、定義 student 類,其中包括五個私有變量(stunumber,name,age,sex,score)。
各成員的含義如下:
變量 stunumber 為字符串類型 String,用於存儲學生的學號(有 8 位數字組成)。
變量 name 為字符串類型 String,用於存儲學生的姓名。
變量 age 為 int 類型,用於存儲學生的年齡。
變量 sex 為 boolean 類型,用於存儲學生的性別,男生為 false,女生為true。變量 score 為 double 類型,用於存儲學生的成績。
並對每個變量定義 get()(讀取變量信息)和 set()(設置變量信息)的方法。賦初值方法包括五個參數,用於為變量(stunumber ,name,age,sex 和score)賦值。
2、定義 StudentManager 類實現下列要求。
(1)利用數組實現至少存儲五個學生的信息;(將考生信息作為第一條記錄)。
(2)定義 showStudent()方法打印輸出所有的學生信息;
(3)定義 addStudent (stunumber,name,age,sex,score)方法增加一名新學生的信息,需要判斷學號是否重復,如果重復提示用戶,並禁止增加新學生信息;
(4)定義 deleteStudent(stunumber)方法刪除一名學生信息(將該學生所有信息清空);
(5)定義 updateStudent (stunumber,name,age,sex,score)方法修改學生信息;
(6)定義 selectStudent(stunumber)查詢並且輸出該名學生的全部信息。
(7)定義一個輸入界面如下圖所示,選擇相應的數字執行相應的功能
***************************************************************
---------信息科學與技術學院
學生信息管理系統 v2.0
****************************************************************
1、 遍歷輸出學生信息;
2、 新學生信息錄入;
3、 刪除學生信息;
4、 修改學生信息;
5、 查詢學生信息;
****************************************************************
學生類:
public class Student { String stunumber; String name; int age; boolean sex; double score; public String getStunumber() { return stunumber; } public void setStunumber(String stunumber) { this.stunumber = stunumber; } 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 boolean isSex() { return sex; } public void setSex(boolean sex) { this.sex = sex; } public double getScore() { return score; } public void setScore(double score) { this.score = score; } Student(String stunumber,String name,int age,boolean sex,double score) { this.stunumber=stunumber; this.name = name; this.age = age; this.sex = sex; this.score = score; } }
管理學生類:
//import java.util.*; import java.util.Scanner; public class StudentManager { static int sum=0; static Scanner sc = null; static Student[] a = new Student[1000]; public static int systemMenu() { sc = new Scanner(System.in); System.out.println("*************************************************************** \n" + " -------大學信息科學與技術學院 \n" + " 學生信息管理系統 v2.0 \n" + "**************************************************************** \n" + " 1、 遍歷輸出學生信息; \n" + " 2、 新學生信息錄入; \n" + " 3、 刪除學生信息; \n" + " 4、 修改學生信息; \n" + " 5、 查詢學生信息; \n" + "****************************************************************"); int ch; System.out.println("請選擇:"); ch = sc.nextInt(); return ch; } public static void showStudent(){ int i,f=0; for(i = 0 ;i < sum ;i++){ if(a[i].stunumber == null) { f++; continue; } System.out.println("第"+(i+1-f)+"名學生的學號為:"+a[i].stunumber); System.out.println("第"+(i+1-f)+"名學生的姓名為:"+a[i].name); if(a[i].isSex()) System.out.println("第"+(i+1-f)+"名學生的性別為:女"); else System.out.println("第"+(i+1-f)+"名學生的性別為:男"); System.out.println("第"+(i+1-f)+"名學生的年齡為:"+a[i].age); System.out.println("第"+(i+1-f)+"名學生的成績為:"+a[i].score); } sum=sum-f; } public static void addStudent(String stunumber,String name,int age,boolean sex,double score){ int k; for(k=0;k<sum;k++) { if( a[k].stunumber == stunumber ) { System.out.println("您輸入的學號與之前有重復,請檢查后重新輸入"); return; } } a[sum] = new Student(stunumber,name,age,sex,score); sum++; } public static void fristInput() { int i=0; System.out.println("請問是否繼續初始創建,是請輸入:1,否請輸入:0"); i = sc.nextInt(); String stunumber; String name; int age; boolean sex; double score; while(i == 1) { stunumber = sc.next(); name = sc.next(); age = sc.nextInt(); sex = sc.nextBoolean(); score = sc.nextDouble(); StudentManager.addStudent(stunumber,name,age,sex,score); System.out.println("請問是否繼續初始創建,是請輸入:1,否請輸入:0"); i = sc.nextInt(); } } public static void deleteStudent(String stunumber){ int k; for(k=0;k<sum;k++) { if(a[k].stunumber.compareTo(stunumber)==0) { a[k].stunumber = null; a[k].name = null; a[k].age = 0; a[k].score = 0.0; } } } public static void updateStudent(String stunumber,String name,int age,boolean sex,double score) { int k; for(k=0;k<sum;k++) { if(a[k].stunumber.compareTo(stunumber)==0) { a[k].stunumber = stunumber; a[k].name = name; a[k].age = age; a[k].sex = sex; a[k].score = score; } } } public static void selectStudent(String stunumber){ int k; for(k=0;k<sum;k++) { if( a[k].stunumber.compareTo(stunumber)==0 ) { System.out.println("您要查詢的名學生的學號為:"+a[k].stunumber); System.out.println("此學生的姓名為:"+a[k].name); if(a[k].isSex()) System.out.println("此學生的性別為:女"); else System.out.println("此學生的性別為:男"); System.out.println("此學生的年齡為:"+a[k].age); System.out.println("此學生的成績為:"+a[k].score); return; } } System.out.println("沒有學號為:"+stunumber+"的學生"); } public static void main(String[] args){ sc = new Scanner(System.in); int choose,k1; String stunumber; String name; int age; boolean sex; double score; System.out.println("現在是初始創建五名學生信息,請輸入學生信息(格式:學號 姓名 年齡 性別 成績):"); for(k1=0;k1<5;k1++) { stunumber = sc.next(); name = sc.next(); age = sc.nextInt(); sex = sc.nextBoolean(); score = sc.nextDouble(); StudentManager.addStudent(stunumber,name,age,sex,score); } sum=5; fristInput(); choose = systemMenu(); while(choose<=5&&choose>=1) { switch (choose) { case 1: StudentManager.showStudent(); break; case 2: int n,i,s=0; System.out.println("請輸入添加學生信息的個數:"); n = sc.nextInt(); s=sum+n; for(i=sum;i<s;i++) { stunumber = sc.next(); name = sc.next(); age = sc.nextInt(); sex = sc.nextBoolean(); score = sc.nextDouble(); StudentManager.addStudent(stunumber,name,age,sex,score); } break; case 3: stunumber = sc.next(); StudentManager.deleteStudent(stunumber); break; case 4: stunumber = sc.next(); name = sc.next(); age = sc.nextInt(); sex = sc.nextBoolean(); score = sc.nextDouble(); StudentManager.updateStudent(stunumber,name,age,sex,score); break; case 5: stunumber = sc.next(); StudentManager.selectStudent(stunumber); break; } choose = systemMenu(); } } }