1. 程式人生 > >java物件陣列的增刪練習之《學生資訊管理系統》

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