基于ArrayList+txt的学生信息管理系统

本文介绍了一个使用Java和ArrayList实现的学生信息管理系统。系统提供了添加、查找、更新、删除学生信息的功能,并能保存数据到文件。通过命令行交互,用户可以进行学生信息的管理。
package com.test;

import java.util.ArrayList;
import java.io.BufferedReader;
import java.io.FileReader;
import java.io.FileWriter;
import java.io.InputStreamReader;
import java.io.IOException;
import java.io.File;
import java.io.Writer;
import java.io.Reader;
public class Test {

	/**
	 * @param args teenway 2020/3/5
	 * @function ArrayList实现学生信息管理系统
	 */
	public static void main(String[] args) {
		// TODO Auto-generated method stub
		StuManager stuManager=new StuManager();
		BufferedReader br=new BufferedReader(new InputStreamReader(System.in));
			while(true){
		    stuManager.initData();
			stuManager.initMenu();
			try {
				int option=Integer.parseInt(br.readLine());
				switch(option){
				case 1:
					System.out.println("请输入学号:");
					String stuNo1=br.readLine();
					System.out.println("请输入姓名:");
					String name=br.readLine();
					System.out.println("请输入考试成绩:");
					float score1=Float.parseFloat(br.readLine());
					Student stu=new Student(stuNo1,name,score1);
					stuManager.addStu(stu);
					break;
				case 2:
					System.out.println("请输入学号:");
					String stuNo2=br.readLine();
					stuManager.findStu(stuNo2);
					break;
				case 3:
					System.out.println("请输入学号:");
					String stuNo3=br.readLine();
					System.out.println("请输入考试成绩:");
					float score2=Float.parseFloat(br.readLine());
					stuManager.updateScore(stuNo3, score2);
					break;
				case 4:
					System.out.println("请输入学号:");
					String stuNo4=br.readLine();
					stuManager.delStu(stuNo4);
					break;
				case 5:
					stuManager.showAll();
					break;
				case 0:
					stuManager.save();
					System.exit(0);
				}
			} catch (IOException e) {
				// TODO: handle exception
				e.printStackTrace();
			}
			
		}		
	}
}

class StuManager{
	private ArrayList<Student> al=null;
	public StuManager(){
		al=new ArrayList<Student>();
	}
	/*
	 * 添加员工
	 * @params Student stu
	 */
	public void addStu(Student stu){
		al.add(stu);
		System.out.println("添加成功!");
	}
	/*
	 * 显示信息
	 */
	public void findStu(String StuNo){
		for(int i=0;i<al.size();i++){
			if(al.get(i).getStuNo().equals(StuNo)){
				System.out.println("学号:"+al.get(i).getStuNo());
				System.out.println("学生姓名"+al.get(i).getName());
				System.out.println("考试成绩:"+al.get(i).getScore());
				return;
			}
		}
		System.out.println("没有该学生!");
	}
	/*
	 * 修改成绩
	 */
	public void updateScore(String StuNo,float newScore){
		for(int i=0;i<al.size();i++){
			if(al.get(i).getStuNo().equals(StuNo)){
				al.get(i).setScore(newScore);
				return;
			}
		}
		System.out.println("没有该学生!");
	}
	/*
	 * 删除学生
	 */
	public void delStu(String stuNo){
		for(int i=0;i<al.size();i++){
			if(al.get(i).getStuNo().equals(stuNo)){
				al.remove(i);
				System.out.println("删除学生成功!");
			}	return;
		}
		System.out.println("没有该学生!");
	}
	
	/*
	 * 显示菜单
	 */

	public void initMenu(){
		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("**    0.退出系统       **");
		System.out.println("**********************");
	}
	
	/*
	 * 显示所有学生
	 */
	public void showAll(){
		for(int i=0;i<al.size();i++){
			System.out.println("学号:"+al.get(i).getStuNo());
			System.out.println("姓名:"+al.get(i).getName());
			System.out.println("考试成绩:"+al.get(i).getScore());
			System.out.println("---------------------");
		}
	}
	
	public void save(){
		File f=new File("d:\\data.txt");
		Writer out=null;
		try {
			out=new FileWriter(f);
			out.write("学号\t姓名\t考试成绩\r\n");
		} catch (IOException e) {
			// TODO: handle exception
			e.printStackTrace();
		}
		for(int i=0;i<al.size();i++){
			try {
				String score=al.get(i).getScore()+"";
				out.write(al.get(i).getStuNo()+"\t"+al.get(i).getName()+"\t"+score+"\r\n");
			} catch (IOException e) {
				// TODO: handle exception
				e.printStackTrace();
			}
		}
		
		try {
			out.close();
		} catch (IOException e) {
			// TODO: handle exception
			e.printStackTrace();
		}
	}
	
	public void initData(){
		File f=new File("d:\\data.txt");
		Reader in=null;
		char c1[]=new char[1024];
		int i=0;
		try {
			in=new FileReader(f);
			i=in.read(c1);
		} catch (IOException e) {
			// TODO: handle exception
			e.printStackTrace();
		}
		try {
			in.close();
		} catch (IOException e) {
			// TODO: handle exception
			e.printStackTrace();
		}
		
		String str=new String(c1);
		System.out.println(str);
		String[] strs1=str.split("\n");
		for(i=1;i<strs1.length;i++){
			System.out.println(strs1[i]);
		
			String[] strs2=strs1[i].split("\t");
			System.out.println(strs2[strs2.length-1]);
			for(int j=0;j<strs2.length;j++){
				System.out.println(strs2[j]);
			//	Student stu=new Student(strs2[j],strs2[j+1],Float.parseFloat(strs2[j]));
		     //	al.add(stu);
			}
		}
	}
}

class Student{
	private String stuNo;
	private String name;
	private float score;
	
	public Student(String stuNo,String name,float score){
		this.stuNo=stuNo;
		this.name=name;
		this.score=score;
	}

	public String getName() {
		return name;
	}

	public void setName(String name) {
		this.name = name;
	}

	public float getScore() {
		return score;
	}

	public void setScore(float score) {
		this.score = score;
	}

	public String getStuNo() {
		return stuNo;
	}

	public void setStuNo(String stuNo) {
		this.stuNo = stuNo;
	}
}

运行结果
在这里插入图片描述
在这里插入图片描述

评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值