java物件陣列的增刪練習之《學生資訊管理系統》
題目要求:請完善實驗給定程式碼,使得工程可以完成學生資訊的管理功能,主要功能包括:新增學生資料、列印學生名單、刪除學生資料三個功能。
方法:
(1)新增資訊:每次空間不足時使用copyOf擴容或者每次都new一個數組來代替
(2)刪除資訊:刪除第i個位置上的元素,此時,需要將從第i個位置之後的所有元素都要向前移動一個位置,並把最後一個位置賦空。
import java.io.BufferedReader;
import java.io.IOException;
import java.io.InputStreamReader;
import java.util.Arrays;
import java.util.Scanner;
public class StudentManage2 {
public static void main(String[] args) throws IOException {
// TODO 自動生成的方法存根
StuManage sm=new StuManage();
Scanner sc = new Scanner(System.in);
BufferedReader br = new BufferedReader(new InputStreamReader(System.in));
int n = 0;
do {
System.out.println("************************************************");
System.out.println("請選擇需要的功能:");
System.out.println("1.新增學生資料");
System.out.println("2.列印學生名單");
System.out.println("3.刪除學生資訊");
System.out.println("************************************************" );
n = sc.nextInt();
//因為要輸入中文名稱,使用空格,所以scanner不合適,改用BufferedReader讀取輸入
switch(n){
case 1 : {
System.out.print("名字:");
String name=br.readLine();
System.out.print("學號:");
String stuNum=br.readLine();
System.out.print("性別:");
String sex=br.readLine();
System.out.print("年齡:");
String age=br.readLine();
Stu stu=new Stu(name,stuNum,sex,age);
sm.addStu(stu);}break;
case 2 : sm.showStu();break;
case 3 : {
System.out.println("請輸入需要刪除的學生的學號:");
String stuNum=sc.next();
if(sm.delStu(stuNum))
System.out.println("操作成功");
else
System.out.println("操作失敗");
}break;
}
}
while(true);
}
}
class Stu{ //學生類
String name ;
String stuNum ;
String sex ;
String age ;
public String getName() {
return name;
}
public String getStuNum() {
return stuNum;
}
public String getSex() {
return sex;
}
public String getAge() {
return age;
}
//建構函式
public Stu(String name,String stuNum,String sex,String age){
this.name = name;
this.stuNum = stuNum;
this.sex = sex;
this.age = age;
}
/* public void print() {
System.out.println(stuNum + " " + name+" " + sex +" "+ age);
}*/
}
class StuManage{ //學生管理類,物件陣列的建立,新增,列印,刪除
private Stu[]a= new Stu[1];
private int count;
//使用Arrays.copyOf對陣列擴容
/*
if (count >= a.length){ //空間不足時,擴容
int newLength = a.length+1; //新陣列的長度
a=Arrays.copyOf(a, newLength); //擴容
}
a[count] = student; //對新擴容陣列賦值(物件)
count++; //每新增一個物件,count加1
System.out.println("操作成功");
*/
//單純使用陣列擴容
if (count >= a.length){
Stu []b= new Stu [a.length+1];
for(int i=0;i<a.length;i++)
b[i]=a[i];
a= b ;
}
a[count] = student; //對新擴容陣列賦值(物件)
count++; //每新增一個物件,count加1
System.out.println("操作成功");
}
public void showStu(){ //列印學生資訊
System.out.println("學號 姓名 性別 年齡");
for(int i=0;i<count;i++){
Stu student=a[i]; //數組裡存的都是物件的引用(地址)
// a[i].print();
System.out.println(student.getStuNum() + " " + student.getName()+" " +student.getSex() +" "+ student.getAge());
}
}
public boolean delStu(String delstuNum){ //刪除學生資訊
for(int i=0;i<a.length;i++){
Stu student=a[i];
if(student.stuNum.equals(delstuNum)){ //(物件比較來說)equals表示比較兩個物件例項化後的值是否相等
//(物件比較來說)== 表示比較兩個物件的記憶體地址(就是物件的引用變數存放的記憶體地址)
/*for(int j=i;j<a.length;j++) //刪除原理:刪除第i個位置上的元素,此時,需要將從第i個位置之後的所有元素都要向前移動一個位置
a[j]=a[j+1];*/
for(int j=i+1;j<a.length;j++)
a[j-1]=a[j];
a[count-1]=null; // 將最後一個元素賦值為空,null
count--; // 刪除一個元素,,count自減1
return true;
}
}
return false;
}
}
相關推薦
物件陣列增刪練習之《學生資訊管理系統(使用ArrayList)》
//請完善實驗給定程式碼,使得工程可以完成學生資訊的管理功能,主要功能包括:新增學生資料、列印學生名單、刪除學生資料三個功能。 import java.io.*; import java.util.ArrayList; import java.util.Scanner;
Java之學生資訊管理系統(File類、集合類)
使用Java編寫一個能增刪改查以及儲存和載入的學生資訊管理系統,使用集合類來儲存學生的資訊,使用File類將資訊儲存到檔案中,方便下一次呼叫。 直接上程式碼: 學生類: package Student; public c
java集合類實現簡單的學生資訊管理系統
package jihe; import java.util.Scanner; public class Student { private String sno; private String sname; private int grade; private int age; private S
java中用集合編寫簡單的學生資訊管理系統
public class Info { private int stu_id; private String stu_name; private String stu_sex; private int stu_age; private int chinese; private int math
java(swing)+mysql實現學生資訊管理系統
import java.awt.BorderLayout; import java.awt.Color; import java.awt.Font; import java.awt.GridLayout; import java.awt.event.Action
Winform之學生資訊管理系統登陸窗體
好吧,對這塊的知識學習早已期待已久,感覺學習的進度還是慢了,最近一直在學習Winform,不得不說一些登陸窗體的設計,這幾天算是小有收穫,自己也看了許多這方面的知識,知道了要想做學生資
Python起步之學生資訊管理系統
#編譯環境為python3 #學生資訊管理系統包括基本的資訊功能,能夠實現學生資訊的輸入,查詢,增添和刪除 #基本框架:開始操作選單,接收輸入選項,呼叫相應的函式實現對應的功能,迴圈回到開始選單, #操作選單: student = [] def studentMeau(
Winform之學生資訊管理系統主頁面
在上次的學生登入視窗的設計中,需要修改的地方為; 1登入視窗的最大化和最小化,這個一般的登入視窗不需要,因此我們也不做,單擊學生資訊管理系統的窗體設計找到屬性MaximizeB
C語言課程設計之學生資訊管理系統
#include"stdio.h" //標準的輸入輸出函式檔案頭部說明 #include"math.h" // 數學函式頭部說明 #include"string.h" #include"stdlib.h" //通過該函式頭部裡的
java物件陣列的增刪練習之《學生資訊管理系統》
題目要求:請完善實驗給定程式碼,使得工程可以完成學生資訊的管理功能,主要功能包括:新增學生資料、列印學生名單、刪除學生資料三個功能。 方法: (1)新增資訊:每次空間不足時使用copyOf擴容或者每次都new一個數組來代替 (2)刪除資訊:刪除第i個位置上
Java——Web開發之簡單的學生資訊管理系統
這僅僅是一個跟著視訊學習的小系統,大牛就繞道啦~ 系統實現的功能: 與mysql資料庫連線,實現登陸功能 管理員登陸成功後能檢視學生資訊 擴充套件功能(完成刪除與更新學生資訊的操作) 系統實現過程: 寫一個簡單的登陸
Java——Web開發之MVC設計模式的學生資訊管理系統(二)
為什麼這個標題為“(二)”,其實是對於上一個特別簡單學生資訊管理系統裡功能的完善。 所謂的“(一)”在這:學生資訊管理系統(一) 系統實現的功能: 實現新增學生 顯示查詢到的學生 刪除學生 更新學生資訊 模糊查詢符合相關資訊的學生
6小時手把手帶你快速做一個自己的Java學生資訊管理系統之Java學生資訊管理系統專案原始碼視訊教程
本視訊教程一共分為四個階段,每個階段都會是上一個階段的擴充套件,每一個階段的系統都可獨立作為一個完整的系統。第一階段是Java學生資訊管理系統,完成了學生資訊的管理、班級資訊的管理、教師資訊的管理、以及
學生資訊管理系統之第三篇登入介面java程式碼
class DLFrame extends JFrame implements ActionListener, ItemListener {// 登入介面 JPanel p1 = null; JPanel p2 = null; JPanel p3 = null;
Android核心技術-day05-03-學生資訊管理系統小練習
package com.gaozewen.studentsystem.db; import android.content.ContentValues; import android.content.Context; import android.database.Curso
中職學生- 學生資訊管理系統【JavaWeb】Java+Servlet+Mysql+Jsp
1功能結構 2專案架構 3包及Java類說明 4資料庫設計 二功能實現 1登陸 2系統主介面 3新增學生資訊 4學生資訊維護 5根據學號查詢學生 6更新學生資訊 7刪除學生資訊 8更
java+SQL做學生資訊管理系統(增刪改查)學生新作
java+SQL做學生資訊管理系統(增刪改查) 過程中需要用到的所有工具資料庫以及資料庫管理器等等 密碼:q80t 大學學習java後做的第一個小專案忍不住分享一下,也是我自己的面向物件程式設計的實踐作業啦,有點水,不是很優。廢話不多數,下面進入正題 介面的編
java web 學生資訊管理系統
##學生資訊管理系統 ## 資料庫準備 CREATE DATABASE stus; USE stus; CREATE TABLE stu ( sid INT PRIMARY KEY AUTO_INCREMENT,
C語言陣列實現學生資訊管理系統
概述 單純只用多個數組管理學生成績資訊,不使用結構體,該程式最主要的難點是依據學號或總成績對學生資訊進行排序,藉助了臨時陣列來標記排好序的下標。 執行結果如下: 輸入資料: 列印資料: 根據
學生資訊管理系統--(Java+MySQL實現)
基於Java swing+MySQL實現學生資訊管理系統:主要實現JDBC對學生資訊進行增刪改查,應付一般課設足矣,分享給大家。(由於篇幅原因,程式碼未全部列出,如有需要留下郵箱) 1、開發環境:jdk7+MySQL5+win7 程式碼結構:model-dao