我是靠谱客的博主 善良茉莉,最近开发中收集的这篇文章主要介绍c语言将学生id和成绩记录在文本文件"score.txt"中,从文件中读取学生信息和分数,求出平均分后升序写入另一个文件。...,觉得挺不错的,现在分享给大家,希望可以做个参考。

概述

Student类,代码如下:

package student;

import java.text.DecimalFormat;

public class Student {

private int id;//学号

private String name;//姓名

private int score1;//成绩1

private int score2;//成绩1

private int score3;//成绩1

private double avg;//平均值

public int getId() {

return id;

}

public void setId(int id) {

this.id = id;

}

public String getName() {

return name;

}

public void setName(String name) {

this.name = name;

}

public int getScore1() {

return score1;

}

public void setScore1(int score1) {

this.score1 = score1;

}

public int getScore2() {

return score2;

}

public void setScore2(int score2) {

this.score2 = score2;

}

public int getScore3() {

return score3;

}

public void setScore3(int score3) {

this.score3 = score3;

}

public double getAvg() {

return avg;

}

public void setAvg(double avg) {

this.avg = avg;

}

@Override

public String toString() {

return id + " " + name + " " + score1 + " " + score2 + " " + score3 + " " +new DecimalFormat("0.00").format(avg) + "rn";

}

}

ReadData类,代码如下:

package student;

import java.io.BufferedReader;

import java.io.BufferedWriter;

import java.io.File;

import java.io.FileNotFoundException;

import java.io.FileReader;

import java.io.FileWriter;

import java.io.IOException;

import java.util.Iterator;

import java.util.Map;

import java.util.TreeSet;

import student.Student;

public class ReadData {

public void Read(Map> map,String txt){

//读入数据

//String fileName="data/11.txt";

try {

BufferedReader reader = new BufferedReader(new FileReader(txt));

String line = null;

while((line=reader.readLine())!=null){//循环赋值读入

String str[] = line.split("\s+");

Student op=new Student();

op.setId( Integer.parseInt(str[0].trim()));

op.setName( str[1].trim());

op.setScore1(Integer.parseInt(str[2].trim()));

op.setScore2(Integer.parseInt(str[3].trim()));

op.setScore3(Integer.parseInt(str[4].trim()));

double k=(Integer.parseInt(str[2].trim())+Integer.parseInt(str[3].trim())+Integer.parseInt(str[4].trim()))/3.0;

op.setAvg(k);

if(map.containsKey(op.getAvg())){

map.get(op.getAvg()).add(op);

}else{

TreeSetts=new TreeSet();

ts.add(op);

map.put(op.getAvg(), ts);

}

}

}catch (FileNotFoundException e) {

e.printStackTrace();

}catch (IOException e) {

e.printStackTrace();

}

}

public void OutPrint(Map> map,String str){

//按一定的顺序输出信息

//System.out.println("学号 姓名 性别 地址 java语言成绩 C语言成绩 编译原理成绩 JavaEE成绩");

try {

BufferedWriter writer = new BufferedWriter(new FileWriter(new File(str), false));

for(Iteratorit = map.keySet().iterator();

it.hasNext();)

{

TreeSettp2=new TreeSet();

tp2.addAll(map.get(it.next()));

for(Iteratorit1 = tp2.iterator();

it1.hasNext();)

{

writer.write(it1.next().toString()+"n");

}

//writer.write("n");

System.out.println("程序执行中!");

}

writer.close();

} catch (IOException e) {

// TODO Auto-generated catch block

e.printStackTrace();

}

}

}

Main类,代码如下:

package student;

import java.util.Map;

import java.util.TreeMap;

import java.util.TreeSet;

public class Main {

/**

* @param args

*/

public static void main(String[] args) {

Map> map=new TreeMap>();

ReadData op=new ReadData();

String txt1="score.txt";

String txt2="scoreSort.txt";

op.Read(map,txt1);

op.OutPrint(map, txt2);

System.out.println("程序执行完毕!");

}

}

以上代码可能存在一些冗余的部分,没有进行修改,如果需要可以自行拷贝和修改。

最后

以上就是善良茉莉为你收集整理的c语言将学生id和成绩记录在文本文件"score.txt"中,从文件中读取学生信息和分数,求出平均分后升序写入另一个文件。...的全部内容,希望文章能够帮你解决c语言将学生id和成绩记录在文本文件"score.txt"中,从文件中读取学生信息和分数,求出平均分后升序写入另一个文件。...所遇到的程序开发问题。

如果觉得靠谱客网站的内容还不错,欢迎将靠谱客网站推荐给程序员好友。

本图文内容来源于网友提供,作为学习参考使用,或来自网络收集整理,版权属于原作者所有。
点赞(52)

评论列表共有 0 条评论

立即
投稿
返回
顶部