java经典课设大作业之学生信息管理系统

本文详细介绍了如何在Java中使用IDEA开发一个简单的学生信息管理系统,包括添加、修改、删除和显示学生信息的功能以及文件操作的相关代码。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

要求如下:

根据要求建立工程目录结构如下(在IDEA下进行开发):

代码如下:

package cn.edu.swufe.students;

import javax.jws.Oneway;
import java.io.*;
import java.util.Scanner;

class StudentManager {

    /**
     * addAStudent()静态方法向文件中增加一条记录
     */
    static void addAStudent(int xh, Scanner scanner) {
        System.out.println("请输入年级:");
        int nj = scanner.nextInt();
        System.out.println("请输入数学成绩:");
        int sx = scanner.nextInt();
        System.out.println("请输入计算机成绩:");
        int jsj = scanner.nextInt();
        System.out.println("请输入姓名:");
        String xm = scanner.next();
        System.out.println("请输入学院:");
        String xy = scanner.next();


        //将学生信息写入文件
        String fileName = "user.txt";
        String record = xh + "," + nj + "," + sx + "," + jsj + "," + xm + "," + xy;
        try {
            FileWriter fileWriter = new FileWriter(fileName, true);
            BufferedWriter bufferedWriter = new BufferedWriter(fileWriter);

            bufferedWriter.newLine();
            bufferedWriter.write(record);
            bufferedWriter.close();
        } catch (IOException e) {
            System.out.println("写入文件时发生错误:" + e.getMessage());
        }

    }

    /**
     * deleteAStudent()静态方法用于删除学生信息
     */
    static void deleteAStudent(int is_exist_in) {
        String fileName = "user.txt";
        int lineNumber = is_exist_in;

        String line = null;
        String[] lineArray = null;
        StringBuilder stringBuilder = new StringBuilder();

        try {
            RandomAccessFile randomAccessFile = new RandomAccessFile(fileName, "rw");
            for (int i = 0; i < lineNumber; i++) {
                line = randomAccessFile.readLine();
            }
            lineArray = line.split(",");
            for (int i = 0;i < lineArray.length;i++) {
                for (int j=0;j<lineArray[i].length();j++){
                    stringBuilder.append(" ");
                }
            }
            for (int i=0;i<5;i++) {
                stringBuilder.append(" ");
            }
            randomAccessFile.seek(randomAccessFile.getFilePointer()-line.length()-2);
            randomAccessFile.writeBytes(String.valueOf(stringBuilder));

            randomAccessFile.close();

        } catch (IOException e) {
            System.out.println("删除文件时出现错误:" + e.getMessage());
        }

    }

    /**
     * changeAStudent()静态方法用于修改学生信息
     */
    static void changeAStudent(int is_exist_in, int xh, Scanner scanner) {
        deleteAStudent(is_exist_in);
        addAStudent(xh, scanner);
    }

    /**
     * showAllStudents()静态方法用于显示所有学生信息
     */
    static void showAllStudents() {
        String fileName = "user.txt";
        try {
            FileReader fileReader = new FileReader(fileName);
            BufferedReader bufferedReader = new BufferedReader(fileReader);

            String[] lineArray = null;
            double average = 0;

            String line = null;
            while ((line = bufferedReader.readLine()) != null) {
                if (!line.trim().isEmpty()) {
                    lineArray = line.split(",");
                    average = (Integer.parseInt(lineArray[2]) + Integer.parseInt(lineArray[3])) / 2.0;
                    System.out.println(line.trim() + " 平均成绩为 " + average);
                }
            }

            bufferedReader.close();

        } catch (IOException e) {
            System.out.println("读取文件时发生错误:" + e.getMessage());
        }

        System.out.println("输出完成!");
    }

    /**
     * studentExist()方法用于判断学生是否存在
     */
    static int studentExist(int xh) {
        int is_exist_in = 0;

        String fileName = "user.txt";
        int lineNumber = 0;
        try {
            FileReader fileReader = new FileReader(fileName);
            BufferedReader bufferedReader = new BufferedReader(fileReader);

            String[] lineArray = null; //将每一行以逗号分隔成字符串数组赋值给lineArray

            String line = null;
            while ((line = bufferedReader.readLine()) != null) {
                lineNumber++;
                lineArray = line.split(",");
                if (lineArray[0].equals(Integer.toString(xh))) {
                    is_exist_in = lineNumber;
                    break;
                }
            }

            bufferedReader.close();

        } catch (IOException e) {
            System.out.println("读取文件时发生错误:" + e.getMessage());
        }

        return is_exist_in;
    }


}

public class Main {

    /**
     * prompt()静态方法用于提示用户,向用户介绍功能
     */
    static void prompt() {
        System.out.println("欢迎使用学生信息管理系统!");
        System.out.println("按1新增学生信息");
        System.out.println("按2修改学生信息");
        System.out.println("按3删除学生信息");
        System.out.println("按4显示所有学生信息");
        System.out.println("按5退出系统");
    }


    public static void main(String[] args) {


        //定义通用变量
        int xh = 0;
        int is_exist_in = 0;

        //输出提示词
        prompt();

        //与用户的交互循环
        while (true) {
            Scanner scanner = new Scanner(System.in);
            int item = scanner.nextInt();
            if (item == 5) {
                System.out.println("退出成功!");
                break;
            }
            switch (item) {
                case 1:
                    System.out.println("请指定要新增学生的学号:");
                    xh = scanner.nextInt();
                    is_exist_in = StudentManager.studentExist(xh);
                    if (is_exist_in == 0) {
                        StudentManager.addAStudent(xh, scanner);
                        System.out.println("新增成功!");
                    } else {
                        System.out.println("该学生已经存在!");
                    }
                    break;
                case 2:
                    System.out.println("请指定要修改学生的学号:");
                    xh = scanner.nextInt();
                    is_exist_in = StudentManager.studentExist(xh);
                    if (is_exist_in == 0) {
                        System.out.println("该学生不存在!");
                    } else {
                        StudentManager.changeAStudent(is_exist_in, xh, scanner);
                        System.out.println("修改成功!");
                    }
                    break;
                case 3:
                    System.out.println("请指定要删除学生的学号:");
                    xh = scanner.nextInt();
                    is_exist_in = StudentManager.studentExist(xh);
                    if (is_exist_in == 0) {
                        System.out.println("该学生不存在!");
                    } else {
                        StudentManager.deleteAStudent(is_exist_in);
                        System.out.println("删除成功!");
                    }
                    break;
                case 4:
                    StudentManager.showAllStudents();
                    break;
                default:
                    System.out.println("请输入正确的命令");
                    System.out.println();
            }
        }

    }
}

以上. 

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值