Java一道题

本文介绍了一个简单的Java程序,用于输入和处理学生基本信息(姓名、学号、Java成绩),计算总分与平均分,并将数据保存至文件。接着从文件读取数据,按Java成绩排序,输出最高与最低分。
最近闲着没事, 拿出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();
}
}

}


源码来自:https://pan.quark.cn/s/a4b39357ea24 ### 操作指南:洗衣机使用方法详解#### 1. 启动与水量设定- **使用方法**:使用者必须首先按下洗衣设备上的“启动”按键,同时依据衣物数量设定相应的“水量选择”旋钮(高、中或低水量)。这一步骤是洗衣机运行程序的开端。- **运作机制**:一旦“启动”按键被触发,洗衣设备内部的控制系统便会启动,通过感应器识别水量选择旋钮的位置,进而确定所需的水量高度。- **技术执行**:在当代洗衣设备中,这一流程一般由微处理器掌管,借助电磁阀调控进水量,直至达到指定的高度。#### 2. 进水过程- **使用说明**:启动后,洗衣设备开始进水,直至达到所选的水位(高、中或低)。- **技术参数**:水量的监测通常采用浮子式水量控制器或压力感应器来实现。当水位达到预定值时,进水阀会自动关闭,停止进水。- **使用提醒**:务必确保水龙头已开启,并检查水管连接是否牢固,以防止漏水。#### 3. 清洗过程- **使用步骤**:2秒后,洗衣设备进入清洗环节。在此期间,滚筒会执行一系列正转和反转的动作: - 正转25秒 - 暂停3秒 - 反转25秒 - 再次暂停3秒- **重复次数**:这一系列动作将重复执行5次,总耗时为280秒。- **技术关键**:清洗环节通过电机驱动滚筒旋转,利用水流冲击力和洗衣液的化学效果,清除衣物上的污垢。#### 4. 排水与甩干- **使用步骤**:清洗结束后,洗衣设备会自动进行排水,将污水排出,然后进入甩干阶段,甩干时间为30秒。- **技术应用**:排水是通过泵将水抽出洗衣设备;甩干则是通过高速旋转滚筒,利用离心力去除衣物上的水分。- **使用提醒**:...
代码下载地址: https://pan.quark.cn/s/c289368a8f5c 在安卓应用开发领域,构建一个高效且用户友好的聊天系统是一项核心任务。 为了协助开发者们迅速达成这一目标,本文将分析几种常见的安卓聊天框架,并深入说明它们的功能特性、应用方法及主要优势。 1. **环信(Easemob)** 环信是一个专为移动应用打造的即时通讯软件开发套件,涵盖了文本、图片、语音、视频等多种消息形式。 通过整合环信SDK,开发者能够迅速构建自身的聊天平台。 环信支持消息内容的个性化定制,能够应对各种复杂的应用场景,并提供多样的API接口供开发者使用。 2. **融云(RongCloud)** 融云作为国内领先的IM云服务企业,提供了全面的聊天解决方案,包括一对一交流、多人群聊、聊天空间等。 融云的突出之处在于其稳定运行和高并发处理性能,以及功能完备的后台管理工具,便于开发者执行用户管理、消息发布等操作。 再者,融云支持多种消息格式,如位置信息、文件传输、表情符号等,显著增强了用户聊天体验。 3. **Firebase Cloud Messaging(FCM)** FCM由Google提供的云端消息传递服务,可达成安卓设备与服务器之间的即时数据交换。 虽然FCM主要应用于消息推送,但配合Firebase Realtime Database或Firestore数据库,开发者可以开发基础的聊天软件。 FCM的显著优势在于其全球性的推送网络,保障了消息能够及时且精确地传输至用户。 4. **JMessage(极光推送)** 极光推送是一款提供消息发布服务的软件开发工具包,同时具备基础的即时通讯能力。 除了常规的文字、图片信息外,极光推送还支持个性化消息,使得开发者能够实现更为复杂的聊天功能。 此...
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值