编写一个成绩排名程序(GUI)

题目:编写一个成绩排名程序。首先从一个文件中读入一组学生的姓名、学号和成绩,其中,姓名为一个字符串,学号为一个整数,成绩为一个实数,每位学生的信息占用一行,如“Yueying 20050923 95.5”。然后对这些学生的成绩进行排序,并将排序后的结果保存在另一个文件中。在该文件中,除了原有的姓名、学号和成绩以外,再增加排名信息。

import java.io.*;
import java.util.*;

public class Test5 {
    
    static int num = 0;
    
    public static void main(String[] args) throws FileNotFoundException{
        //读入"student.txt"文件
        Scanner input = new Scanner(new File("student.txt"));
        double []arr = new double[100];
        while(input.hasNext()){
            if(input.hasNextDouble()){
                //将文件内容存入数组中
                arr[num++] = input.nextDouble();
            }
            else input.next();
        }
        System.out.print("学生成绩分别为");
        //打印学生为排名成绩
        for(int i = 0;i < num;i++){
            System.out.print(" " + arr[i]);
        }
        try{
            //复制"student.txt"内容并粘贴到新文件"newDemo.txt"中
            FileReader fr = new FileReader("student.txt");
            FileWriter fw = new FileWriter("newDemo.txt");
            int ch;
            while((ch = fr.read()) != -1){
                fw.write(ch);
            }
            fr.close();
            fw.close();
            //保证在"newDemo.txt"新添加的内容不覆盖原来的内容
            FileOutputStream fos = new FileOutputStream("newDemo.txt",true);
            fos.write(sort(arr).getBytes());
            fos.close();//关闭文件流
        }catch(IOException ex){
            System.out.println("无法打开文件!");
        }
    }
    
    //将学生成绩进行排序
    public static String sort(double score[]){
        int i;
        String str = "\r\n成绩排名为: ";
        for(i = num - 2;i >= 0;i--){
            for(int j = 0;j <= i;j++){
                if(score[j] < score[j+1]){
                    double temp;
                    temp = score[j];
                    score[j] = score[j+1];
                    score[j+1] = temp;
                }
            }
        }
        for(int n = 0;n < num;n++){
            str += score[n] + " ";
        }
        return str;
    }
}

程序运行成功后创建的"newDemo.txt"文本:

编写一个成绩系统,需要实现以下步骤: 1. 确定系统设计目标和功能要求。设计目标可以包括管理学生信息、记录学生成绩、计算平均分和排名等。 2. 分析系统需求,确定系统模块和数据结构。例如,需要设计学生类和成绩类,存储学生信息和成绩数据的数据结构可以使用数组、列表等常见数据结构。 3. 设计系统框架,包括用户界面和程序逻辑。用户界面可以使用Java Swing或JavaFX等GUI工具实现,程序逻辑需要考虑到各个功能模块的交互和数据处理。 4. 实现系统功能模块。分别编写学生信息管理、成绩输入、平均分计算和排名等功能的代码,并通过单元测试确保各模块的正确性。 5. 集成各模块代码,进行整体测试。将各模块代码集成为一个完整的系统,在测试数据下对系统进行测试,确保系统运行正确。 6. 优化系统性能和增加新功能。系统的性能优化可以考虑采用缓存、多线程等技术,新增功能可以根据用户反馈和需求进行增加。 7. 文档化和发布。编写用户手册和系统文档,发布系统的二进制包和源代码,并向用户提供技术支持和维护服务。 总之,设计和实现一个成绩管理系统需要综合考虑各方面因素,包括需求分析、模块设计、代码实现、测试和发布等。在设计和开发过程中,需要遵循良好的软件工程实践和编码规范,确保系统的可维护性、可扩展性和稳定性。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值