ICode9

精准搜索请尝试: 精确搜索
首页 > 编程语言> 文章详细

Java-成绩文件处理

2022-05-20 17:33:10  阅读:127  来源: 互联网

标签:文件 Java String System 学生 println 成绩 public out


设计学生类Student,属性:学号(整型);姓名(字符串),选修课程(名称)及课程成绩(整型)。编写一个控制台程序,能够实现Student信息的保存、读取。具体要求:(1)提供Student信息的保存功能:通过控制台输入若干个学生的学号、姓名以及每个学生所修课程的课程名和成绩,将其信息保存到data.dat中;(2)数据读取显示:能够从data.dat文件中读取学生及其课程成绩并显示于控制台。(要求,学号和课程成绩按照整数形式(而非字符串形式)存储)

/**
 * @ author ichihtc
 * @ 2022.5.20
 * 新建学生列表,将学生放入列表中,将列表写入文件,读取文件中的列表,然后返回列表
 */
import java.io.*;
import java.util.*;

public class ReadObject
{
    public static void ReadStudent()
    {
        ObjectInputStream oi=null;
        try
        {
            oi=new ObjectInputStream(new FileInputStream("d:\\data.dat"));
            LinkedList<Student> l=(LinkedList<Student>)oi.readObject();
            Iterator<Student> lnum=l.iterator();
            Iterator<Student> lname=l.iterator();
            Iterator<Student> lmajor=l.iterator();
            Iterator<Student> lscore=l.iterator();

            while(lnum.hasNext()||lname.hasNext()||lmajor.hasNext()||lscore.hasNext())
            {
                System.out.println(lnum.next().getNum());
                System.out.println(lname.next().getName());
                System.out.println(lmajor.next().getMajor());
                System.out.println(lscore.next().getScore());
            }
        }
        catch(IOException e)
        {
            System.out.println("读取学生列表失败");
        }
        catch (ClassNotFoundException e)
        {
            System.out.println("读取学生列表对象失败");
        }
        finally
        {
            try
            {
                oi.close();
            }
            catch(IOException e)
            {
                System.out.println("输入流关闭失败");
            }
        }
    }
    public static void WriteStudent(LinkedList<Student> l)
    {
        ObjectOutputStream ob=null;
        try
        {
            ob=new ObjectOutputStream(new FileOutputStream("d:\\data.dat"));
            ob.writeObject(l);
        }
        catch(IOException e)
        {
            System.out.println("写学生列表失败");
        }
        finally
        {
            try
            {
                ob.close();
            }
            catch(IOException e)
            {
                System.out.println("关闭流失败");
            }
        }
    }
    public static void main(String[] args)
    {
        Scanner scan=new Scanner(System.in);
        System.out.println("是否继续录入学生的信息");
        String s;
        LinkedList<Student> l=new LinkedList<Student>();
        while((s=scan.next()).equals("yes"))
        {
            System.out.println("请输入学生学号");
            int num=scan.nextInt();
            System.out.println("请输入学生姓名");
            String name=scan.next();
            System.out.println("请输入学生课程");
            String course=scan.next();
            System.out.println("请输入学生成绩");
            int score=scan.nextInt();
            l.add(new Student(num,name,course,score));
            System.out.println("是否继续录入学生信息");
        }
        WriteStudent(l);
        ReadStudent();
    }
}
class Student implements Serializable
{
    private int num;
    private String name;
    private String major;
    private int score;
    public Student(int num,String name,String major,int score)
    {
        this.num=num;this.name=name;this.major=major;this.score=score;
    }

    public int getNum() {
        return num;
    }

    public String getName() {
        return name;
    }

    public String getMajor() {
        return major;
    }

    public int getScore() {
        return score;
    }

}
//输入
是否继续录入学生的信息
yes
请输入学生学号
001
请输入学生姓名
ichihtc
请输入学生课程
IT
请输入学生成绩
100
是否继续录入学生信息
no
//输出
1
ichihtc
IT
100

转载至:https://www.manongdao.com/article-52513.html 修改了部分代码,有错之处希望各位大佬指教【抱拳】!

标签:文件,Java,String,System,学生,println,成绩,public,out
来源: https://www.cnblogs.com/ichihtc/p/16293092.html

本站声明: 1. iCode9 技术分享网(下文简称本站)提供的所有内容,仅供技术学习、探讨和分享;
2. 关于本站的所有留言、评论、转载及引用,纯属内容发起人的个人观点,与本站观点和立场无关;
3. 关于本站的所有言论和文字,纯属内容发起人的个人观点,与本站观点和立场无关;
4. 本站文章均是网友提供,不完全保证技术分享内容的完整性、准确性、时效性、风险性和版权归属;如您发现该文章侵犯了您的权益,可联系我们第一时间进行删除;
5. 本站为非盈利性的个人网站,所有内容不会用来进行牟利,也不会利用任何形式的广告来间接获益,纯粹是为了广大技术爱好者提供技术内容和技术思想的分享性交流网站。

专注分享技术,共同学习,共同进步。侵权联系[81616952@qq.com]

Copyright (C)ICode9.com, All Rights Reserved.

ICode9版权所有