java学生管理系统代码
//導(dǎo)入的包名
import?java.io.BufferedReader;
import?java.io.BufferedWriter;
import?java.io.FileReader;
import?java.io.FileWriter;
import?java.io.IOException;
import?java.util.ArrayList;
import?java.util.Scanner;
?
//學(xué)生管理系統(tǒng)類
public?class?StudentManager {
public?static?void?main(String[] args) throws?IOException {
ArrayList<Student> array = new?ArrayList<Student>();//定義一個(gè)集合,用于接收學(xué)生對(duì)象的信息。
Scanner sc = new?Scanner(System.in);//定義Scanner對(duì)象用于接收指令信息。
System.out.println("----------歡迎來到學(xué)生管理系統(tǒng)----------");
//建立循環(huán)使程序能夠循環(huán)進(jìn)行。
while(true){
顯示();//包含指令信息已經(jīng)對(duì)應(yīng)的操作。
System.out.println("請(qǐng)輸入一個(gè)數(shù)字進(jìn)行操作:");
int?num = sc.nextInt();//根據(jù)提示,錄入指令。
switch(num){//根據(jù)指令,選擇需要進(jìn)行的操作。
case?1:
查看學(xué)生(array);//具體如方法名
break;
case?2:
添加學(xué)生(array);//具體如方法名
break;
case?3:
修改學(xué)生(array);//具體如方法名
break;
case?4:
刪除學(xué)生(array);//具體如方法名
break;
case?5:
是否保存信息(array);//具體如方法名
System.out.println("系統(tǒng)已退出!");
System.exit(0);//退出系統(tǒng)的代碼。
break;
default:
System.out.println("你輸入有誤請(qǐng)重新輸入!");
break;
}
}
}
public?static?void?是否保存信息(ArrayList<Student> array) throws?IOException {//退出系統(tǒng)提示是否保存信息。
Scanner sc = new?Scanner(System.in);//定義Scanner對(duì)象用于接收指令信息。
System.out.println("是否保留本次操作的結(jié)果!(輸入1保存,輸入2不保存):");
//建立循環(huán)使程序在輸入有問題的時(shí)候能夠循環(huán)進(jìn)行。
while(true){
int?num =sc.nextInt();//獲取指令信息。
if(num==1){//當(dāng)指令為1時(shí),保存此次操作的結(jié)果。
System.out.println("請(qǐng)輸入保存數(shù)據(jù)的文件路徑:");//選擇一個(gè)保存文件的路徑。
String f = sc.next();
BufferedWriter bw = new?BufferedWriter(new?FileWriter(f));//建立對(duì)象用于接收數(shù)據(jù)。
bw.write("學(xué)號(hào)"+"\t"+"姓名"+"\t"+"年齡"+"\t"+"戶籍");//文檔抬頭。
bw.newLine();//換行
for?(int?i = 0; i < array.size(); i++) {//建立for循環(huán),將集合中的數(shù)據(jù)循環(huán)錄入到文檔中。
Student s = array.get(i);//得到集合中i索引的對(duì)象。
bw.write(s.get學(xué)號(hào)()+"\t"+s.get姓名()+"\t"+s.get年齡()+"\t"+s.get戶籍());//將集合中i索引的對(duì)象的信息數(shù)據(jù)錄入到文檔中。
bw.newLine();//換行
}
bw.close();//結(jié)束輸入。
break;//跳出while循環(huán),從而結(jié)束方法。
}else?if(num==2){
break;//當(dāng)不保存操作結(jié)果的時(shí)候,不用進(jìn)行任何操作,跳出循環(huán)即可。
}else{
System.out.println("你輸入有誤!請(qǐng)重新輸入(輸入1保存,輸入2不保存):");//輸入錯(cuò)誤的提示。
}
}
}
public?static?void?顯示() {//包含指令信息已經(jīng)對(duì)應(yīng)的操作。
System.out.println("1.輸入1查看(查看系統(tǒng)中所有的學(xué)生信息);");
System.out.println("2.輸入2添加(添加學(xué)生信息到系統(tǒng)中);");
System.out.println("3.輸入3修改(根據(jù)學(xué)號(hào)修改學(xué)生信息);");
System.out.println("4.輸入4刪除(根據(jù)學(xué)號(hào)刪除學(xué)生信息);");
System.out.println("5.輸入5退出。");
}
public?static?void?刪除學(xué)生(ArrayList<Student> array) throws?IOException {//按照錄入與導(dǎo)入的方法修改集合當(dāng)中學(xué)生的信息。
Scanner sc = new?Scanner(System.in);//定義Scanner對(duì)象用于接收指令信息。
System.out.println("請(qǐng)輸入刪除的方法(1、導(dǎo)入 ?2、手動(dòng)輸入):");
while(true){
int?num = sc.nextInt();
if(num==2){//手動(dòng)輸入。
System.out.println("請(qǐng)輸入學(xué)生學(xué)號(hào):");
String code = sc.nextLine();//學(xué)號(hào)。
int?index = 判斷(array, code);
if(index!=-1){//當(dāng)索引值為true的時(shí)候,即集合中存在輸入的學(xué)號(hào)的時(shí)候,根據(jù)該對(duì)象的索引刪除該對(duì)象。
array.remove(index);
System.out.println("刪除成功!");
}else{
System.out.println("系統(tǒng)中不存在該學(xué)號(hào),請(qǐng)重新輸入!");//不存在就循環(huán)錄入。
}
}else?if(num==1){//導(dǎo)入。
System.out.println("請(qǐng)輸入需要?jiǎng)h除數(shù)據(jù)的文件路徑:");//選擇一個(gè)文件的路徑。
String filename = sc.next();
BufferedReader br = new?BufferedReader(new?FileReader (filename));//建立導(dǎo)入數(shù)據(jù)的對(duì)象
String line="";//定義字符串用于接收整行數(shù)據(jù)。
int?sum = 0 ;//用于接收刪除的學(xué)生總數(shù)。
while((line = br.readLine())!=null){//判斷讀取的數(shù)據(jù)是否為空。
String[] s = line.split(" ");//利用空格分割字符串得到Student對(duì)象的信息。
//下面的方法同上面手動(dòng)錄入的過程。
int?index = 判斷(array, s[0]);
if(index!=-1){
array.remove(index);
sum++ ;
}else{
System.out.println("學(xué)號(hào)'"+s[0]+"不存在");
}
}
br.close();
System.out.println("成功刪除了"+sum+"位同學(xué)的信息!");
break;
}else{
System.out.println("你輸入有誤,請(qǐng)重新選擇刪除的方法(1、導(dǎo)入 ?2、手動(dòng)輸入):");
}
}
}
public?static?void?修改學(xué)生(ArrayList<Student> array) throws?IOException {//按照錄入與導(dǎo)入的方法修改集合當(dāng)中學(xué)生的信息。
Scanner sc = new?Scanner(System.in);
System.out.println("請(qǐng)輸入修改的方法(1、導(dǎo)入 ?2、手動(dòng)輸入):");
while(true){
int?num = sc.nextInt();
if(num==1){
System.out.println("請(qǐng)輸入需要修改數(shù)據(jù)的文件路徑:");
String filename = sc.next();
BufferedReader br = new?BufferedReader(new?FileReader (filename));
String line="";
int?sum = 0 ;
//while循環(huán)判斷是否錄入完畢。
while((line = br.readLine())!=null){
String[] s = line.split(" ");
//for循環(huán)判斷是否存在錄入的學(xué)號(hào)
int?index = 判斷(array, s[0]);
if(index==-1){
System.out.println("學(xué)號(hào)'"+s[0]+"不存在");
}else{
Student st = new?Student(s);
array.set(index,st);
sum++ ;
}
}
br.close();
System.out.println("成功修改了"+sum+"位同學(xué)的信息!");
break;
}else?if(num==2){
System.out.println("請(qǐng)輸入學(xué)生學(xué)號(hào):");
String code = sc.nextLine();
//for循環(huán)判斷是否存在錄入的學(xué)號(hào)
int?index = 判斷(array, code);
if(index==-1){
System.out.println("系統(tǒng)中不存在學(xué)號(hào)'"+code+"',請(qǐng)重新輸入!");
}else{
System.out.println("請(qǐng)輸入學(xué)生新姓名:");
String name = sc.next();
System.out.println("請(qǐng)輸入學(xué)生新年齡:");
String age = sc.next();
System.out.println("請(qǐng)輸入學(xué)生新戶籍:");
String place=sc.next();
Student s = new?Student(code,name,age,place);
array.set(index,s);
System.out.println("修改成功!");
break;
}
}else{
System.out.println("你輸入有誤,請(qǐng)重新選擇修改的方法(1、導(dǎo)入 ?2、手動(dòng)輸入):");
}
}
}
public?static?void?查看學(xué)生(ArrayList<Student> array) {//將集合中的數(shù)據(jù)以特定格式遍歷出來。
if(array.isEmpty()==true){
System.out.println("系統(tǒng)中還未存儲(chǔ)學(xué)生信息,請(qǐng)你添加之后再查看!");
}else{
System.out.println("學(xué)號(hào)"+"\t"+"姓名"+"\t"+"年齡"+"\t"+"戶籍");
for?(int?i = 0; i < array.size(); i++) {
Student s = array.get(i);
System.out.println(s.get學(xué)號(hào)()+"\t"+s.get姓名()+"\t"+s.get年齡()+"\t"+s.get戶籍());
}
}
}
public?static?void?添加學(xué)生(ArrayList<Student> array) throws?IOException {//按照錄入與導(dǎo)入的方法添加學(xué)生的信息到集合中。
Scanner sc = new?Scanner(System.in);
System.out.println("請(qǐng)輸入添加的方法(1、導(dǎo)入 ?2、手動(dòng)輸入):");
while(true){
int?num = sc.nextInt();
if(num==1){
System.out.println("請(qǐng)輸入需要導(dǎo)入數(shù)據(jù)的文件路徑:");
String filename = sc.next();
BufferedReader br = new?BufferedReader(new?FileReader (filename));
String line="";
int?sum = 0;
//while循環(huán)判斷是否錄入完畢。
while((line = br.readLine())!=null){
String[] s = line.split(" ");
int?index = 判斷(array, s[0]);
if(index!=-1){
System.out.println("學(xué)號(hào)'"+s[0]+"'在系統(tǒng)中已存在!");
}else{
Student st = new?Student(s);
array.add(st);//將對(duì)象存入集合。
sum++;
}
}
br.close();
System.out.println("成功添加了"+sum+"位同學(xué)的信息!");
return;
}else?if(num==2){
System.out.println("請(qǐng)輸入學(xué)生學(xué)號(hào):");
String code = sc.next();
int?index = 判斷(array, code);
if(index!=-1){
System.out.println("學(xué)號(hào)'"+code+"'已經(jīng)存在,請(qǐng)重新輸入!");
}else{
System.out.println("請(qǐng)輸入學(xué)生姓名:");
String name = sc.next();
System.out.println("請(qǐng)輸入學(xué)生年齡:");
String age = sc.next();
System.out.println("請(qǐng)輸入學(xué)生戶籍:");
String place=sc.next();
Student s = new?Student(code,name,age,place);
array.add(s);//將對(duì)象存入集合。
System.out.println("添加成功!");
return;
}
}else{
System.out.println("你輸入有誤,請(qǐng)重新選擇添加的方法:");
}
}
}
public?static?int?判斷(ArrayList<Student> array, String code) {//判斷集合中是否存在與code相同的學(xué)號(hào),如果存在,返回值為索引值,不存在返回值為-1。
for?(int?i = 0; i < array.size(); i++) {//遍歷集合。
if?(array.get(i).get學(xué)號(hào)().equals(code)){//判斷集合中是否存在與code相同的學(xué)號(hào),如果存在,同時(shí)得到索引值。
return?i ;
}
}
return?-1;//不存在返回值為-1。
}
}
?
//學(xué)生類
public?class?Student {
private?String 學(xué)號(hào)?;
private?String 姓名?;
private?String 年齡?;
private?String 戶籍?;
public?Student() {
}
public?Student(String[] s) {
this.學(xué)號(hào)?= s[0];
this.姓名?= s[1];
this.年齡?= s[2];
this.戶籍?= s[3];
}
public?Student(String 學(xué)號(hào), String 姓名, String 年齡, String 戶籍) {
this.學(xué)號(hào)?= 學(xué)號(hào);
this.姓名?= 姓名;
this.年齡?= 年齡;
this.戶籍?= 戶籍;
}
public?String get學(xué)號(hào)() {
return?學(xué)號(hào);
}
public?void?set學(xué)號(hào)(String 學(xué)號(hào)) {
this.學(xué)號(hào)?= 學(xué)號(hào);
}
public?String get姓名() {
return?姓名;
}
public?void?set姓名(String 姓名) {
this.姓名?= 姓名;
}
public?String get年齡() {
return?年齡;
}
public?void?set年齡(String 年齡) {
this.年齡?= 年齡;
}
public?String get戶籍() {
return?戶籍;
}
public?void?set戶籍(String 戶籍) {
this.戶籍?= 戶籍;
}
}
總結(jié)
以上是生活随笔為你收集整理的java学生管理系统代码的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: Docker swarm 实战-部署wo
- 下一篇: 2018-2019-1 20165219