`

Java一道题

    博客分类:
  • j2se
阅读更多
最近闲着没事, 拿出java课本的两道题 ,用烦了Struts  spring , hibernate ,
基础的程序觉得挺有意思的。 故上到博客里, 大家有时间也做一做。 限半个小时完成。
题目:在控制台输入几个学生的基本信息,(包括姓名, 学号, java学科成绩), 并统计学生的总分, 平均分 , 并将学生的基本信息和计算结果保存到文件“Student.txt”;然后再在“Student.txt”中读取保存的嘘声的基本数据, 将java课的成绩递减排序, 并输出最高分和最低分, 将嘘声的基本信息和排序结果保存到文件“StudentScore.txt”中。
先编写一个学生类:
package lyx.com.cn;

/**
 * @author 李亚希 天豪工作室 2009-8-27
 */
public class Student {
	public String name; // 姓名
	public String stuNo;// 学号
	public float javaScore;// Java学课的成绩

	public Student() {
	}

	public Student(String name, String stuNo, float javaScore) {
		this.name = name;
		this.stuNo = stuNo;
		this.javaScore = javaScore;
	}

	public String getName() {
		return name;
	}

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

	public String getStuNo() {
		return stuNo;
	}

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

	public float getJavaScore() {
		return javaScore;
	}

	public void setJavaScore(float javaScore) {
		this.javaScore = javaScore;
	}

}


这个是控制台读取信息并输出信息,
package lyx.com.cn;

import java.io.BufferedReader;
import java.io.FileWriter;
import java.io.IOException;
import java.io.InputStreamReader;
import java.util.ArrayList;
import java.util.List;

/**
 * @author 李亚希 天豪工作室 2009-8-27
 */
public class JavaScore {
	public InputStreamReader in;
	public BufferedReader br;
	public FileWriter fw;

	public JavaScore() throws IOException {
		in = new InputStreamReader(System.in);
		br = new BufferedReader(in);
		fw = new FileWriter("student.txt");
	}

	public void outStudentInfo() {
		System.out.println("请输入5个学生的信息, 分别为 姓名、学号 、java成绩 。信息之间以\",\" 隔开。 每个学生一行 ,输入quit即可退出系统");
		List<Student> stuList = new ArrayList<Student>();
		String[] stuInfo = new String[3];
		try {
			String str = br.readLine();
			while (!"quit".equals(str)) {
				Student stu = new Student();
				System.out.println(str);
				fw.write(str + "\r\n");
				stuInfo = str.split(",");
				stu.setName(stuInfo[0]);
				stu.setStuNo(stuInfo[1]);
				stu.setJavaScore(Float.parseFloat(stuInfo[2]));
				stuList.add(stu);
				str = br.readLine();

			}
			float sumScore = 0.0f;
			for (Student s : stuList) {
				sumScore += s.getJavaScore();
			}
			String info = "总成绩:" + sumScore + " 平均成绩" + sumScore
					/ stuList.size();
			System.out.println(info);
			fw.write(info);
			in.close();
			br.close();
			fw.close();
		} catch (IOException e) {
			e.printStackTrace();
		}
	}

	public static void main(String[] args) {
		JavaScore js;
		try {
			js = new JavaScore();
			js.outStudentInfo();
		} catch (IOException e) {
			e.printStackTrace();
		}
	}
}

这个是从student.txt 读取信息并处理的类。
package lyx.com.cn;

import java.io.BufferedReader;
import java.io.BufferedWriter;
import java.io.FileNotFoundException;
import java.io.FileReader;
import java.io.FileWriter;
import java.io.IOException;
import java.util.ArrayList;
import java.util.List;

/**
 * @author 李亚希 天豪工作室 2009-8-28
 */
public class ReadJavaScore {
	public FileReader fr;
	public FileWriter fw;
	public BufferedReader br;
	public BufferedWriter bw;

	public ReadJavaScore() throws FileNotFoundException, IOException {
		fr = new FileReader("student.txt");
		br = new BufferedReader(fr);
		fw = new FileWriter("studentScore.txt");
		bw = new BufferedWriter(fw);
	}

	public Student[] readFile() throws IOException, NullPointerException {
		List<String> list = new ArrayList<String>();
		String str = new String();
		while ((str = br.readLine()) != null) {
			System.out.println(str);
			list.add(str);
		}
		list.remove(list.size() - 1);
		Student[] stus = new Student[list.size()];
		String[] stuInfo = new String[3];
		for (int i = 0; i < list.size(); i++) {
			Student stu = new Student();
			String info = list.get(i);
			stuInfo = info.split(",");
			stu.setName(stuInfo[0]);
			stu.setStuNo(stuInfo[1]);
			stu.setJavaScore(Float.parseFloat(stuInfo[2]));
			stus[i] = stu;
		}
		fr.close();
		br.close();
		return stus;

	}

	public Student[] sort(Student[] ss) {
		for (int i = 0; i < ss.length - 1; i++) {
			for (int j = i + 1; i < ss.length; i++) {
				Student temp;
				if (ss[i].getJavaScore()< ss[j].getJavaScore()) {
					temp = ss[j];
					ss[j] = ss[i];
					ss[i] = temp;
				}
			}
		}
		return ss;
	}

	public void writerToFile(Student[] ss) throws IOException {
		bw.write("学生信息如下:");
		bw.newLine();
		bw.write("姓名: \t 学号\t Java成绩(单位分)");
		bw.newLine();
		for (int i = 0; i < ss.length; i++) {
			bw.write(ss[i].getName() + "\t" + ss[i].getStuNo() + "\t"
					+ ss[i].getJavaScore());
			bw.newLine();
		}
		bw.write("最高成绩:" + ss[0].getJavaScore() + "\t"
				+ ss[ss.length - 1].getJavaScore());
		bw.close();
		System.out.println("最高成绩:" + ss[0].getJavaScore() + "\t"
				+ ss[ss.length - 1].getJavaScore());
	}

	public static void main(String[] args) {
		try {
			ReadJavaScore rjs = new ReadJavaScore();
			Student[] ss = rjs.sort(rjs.readFile());
			rjs.writerToFile(ss);

		} catch (FileNotFoundException e) {
			e.printStackTrace();
		} catch (IOException e) {
			e.printStackTrace();
		}
	}

}




0
2
分享到:
评论

相关推荐

    非常经典的java一道题

    import java.util.Scanner; public class v { /* * Merry Christams!!! */ public static void main(String[] args) { Scanner sc = new Scanner(System.in); System.out.print("请输入要祝福人的名字:"); ...

    JAVA界面的一道题

    JAVA界面的一道题

    最新JAVA编程题全集(50题及答案

    掌握如何创建线程、实现线程同步、以及线程间的通信,是成为一名合格Java开发者必须逾越的一道门槛。 异常处理是保证程序健壮性的关键一环,编程题能够帮助开发者意识到编写可预测、可控制的代码的重要性。而IO流...

    一道java题

    根据给定的信息,这是一道Java编程题目,其主要功能是将阿拉伯数字转换为中文大写数字,并且处理包括整数部分与小数部分在内的数值。下面将详细解析该题目中的核心知识点。 ### 核心知识点分析 #### 1. 数组与常量...

    java练习题,适合一些java初学者

    Java编程语言是面向对象的、跨平台的编程语言,对于初学者来说,它提供了...建议按照题目的难易程度逐步进行,每完成一道题目都要深入理解其背后的原理,这样才能真正掌握Java编程,并为更高级的开发工作打下坚实基础。

    Java 面试题 Java 面试题

    下面将详细解析每一道题目涉及的关键概念。 ### 第一部分:基础知识 #### 1. final, finally, finalize的区别 - **final**: 用于声明变量、方法或者类,表示不可变性。例如,声明为final的变量不允许再次赋值;...

    蓝桥杯大赛java历年真题及答案整理.docx

    其中一道经典题目是关于全排列的实现。此题要求根据给定的不同字符集合,输出所有可能的排列组合。 **知识点解析**: 1. **全排列定义**:给定一个包含`N`个不同元素的集合,全排列是指将这些元素的所有可能的排列...

    阿里软件JAVA笔试题

    11. 一道有关 JavaScript 的编程题。 测试驱动开发 12. 说说你对测试驱动开发(TDD)的理解。 其他 13. 用 3 个关键词表现你想从阿里巴巴得到什么? 阿里软件JAVA笔试题涵盖了 JAVA 语言、数据结构、算法、设计...

    一道java课后题

    这道Java课后题在NetBeans环境中进行,主要考察的是Java编程基础,可能涉及类、对象、变量、方法、控制流程、数据类型等核心概念。NetBeans是一个流行的集成开发环境(IDE),它提供了代码编辑、调试、构建和部署等...

    自考 java 模拟题 共八套 并带答案

    每一道编程题都是对逻辑思维和代码组织能力的锻炼。同时,答案部分则可以帮助考生检查理解是否正确,及时发现并纠正错误。通过反复练习,考生可以逐步熟悉考试的出题风格,提高应试技巧。 总的来说,这个压缩包为...

    蓝桥杯java历年真题

    蓝桥杯 Java 历年真题中的一道题目要求程序对用户输入的串进行处理,具体规则如下: * 把每个单词的首字母变为大写。 * 把数字与字母之间用下划线字符(_)分开,使得更清晰。 * 把单词中间有多个空格的调整为 1 个...

    50道Java常见编程题(有精力的同学看看).rar

    每一道编程题都是一个学习和提升的机会,可以帮助开发者建立扎实的编程基础,理解并掌握Java的核心概念。对于初学者来说,解决这些问题不仅可以锻炼逻辑思维,还能提高编程效率。在遇到困难时,不应轻易放弃,而是要...

    Java高级面试题汇总及答案(2022年Java面试题及答案大全)

    这是一道经典的Java面试题。解决这个问题需要了解Java的内存管理机制,包括FULL GC的触发条件、Perm Gen的设置、System.gc()方法的调用等。 Java集合框架 3. Java集合框架是Java语言中的一种重要概念,它提供了...

    原创一道Java笔试面试题考考大家

    根据提供的文件信息,我们可以分析出这是一道关于Java继承与方法重写的相关笔试面试题。题目涉及到了Java类的继承、方法重写、实例化对象时的调用顺序以及对象多态性等知识点。接下来,我们将对这些知识点进行详细的...

    java的一道考试题

    【标题解析】:“Java的一道考试题”这个标题暗示了我们即将探讨的是一道与Java编程语言相关的考试问题。在Java的学习和实践中,考试题目往往涵盖了许多核心概念、语法特性和编程技巧。这类问题旨在检验开发者对Java...

    Java题库(内含15套题)

    Java是一种广泛使用的面向对象的编程语言,以其跨平台、高性能和丰富的类库而闻名。这份“Java题库”包含了15套题目,旨在帮助学习者...建议逐一解答并理解每一道题,结合实际编程练习,以巩固理论知识并提升实战能力。

    NIT-Pro软件工程师(JAVA)案例题样题

    ### NIT-Pro软件工程师(JAVA)案例题样题解析 #### 一、考试概况与要求概览 **考试目的:** NIT-Pro初级Java工程师认证旨在评估考生是否具备基础的Java编程能力和团队协作能力。 **考试形式:** 实战案例题,需要...

    employeeJAVA作业 一道习题

    在本题目中,我们面临的是一个名为"employeeJAVA作业"的编程练习,主要涉及Java语言。根据描述,这个作业是关于“应聘者”的,暗示我们需要编写一个与员工或应聘者管理相关的程序。在这个作业中,可能需要实现一些...

    JAVA复习题及答案

    ### JAVA复习题及答案知识点解析 #### 题目1:编译Java Application源程序文件将产生相应的字节码文件,这些字节码文件的扩展名为? - **知识点解析**: - Java 源代码文件经过编译后,会生成字节码文件,其扩展...

    java基础编程题java基础编程题.doc

    马克思手稿中有一道趣味数学问题是Java基础编程题中的一道题目,它考察了程序员对数学运算和逻辑思维的理解。通过解决马克思手稿中的一道趣味数学问题,我们可以了解Java中的数学运算和逻辑思维等。 7. 正的九九...

Global site tag (gtag.js) - Google Analytics