/* * 有五个学生,每个学生有3门课的成绩,从键盘输入以上数据 *(包括学生号,姓名,三门课成绩),计算出平均成绩, *将原有的数据和计算出的平均分数存放在磁盘文件"stud"中。 */
1.Student类:类中有五个变量,分别是学号,姓名,三门成绩
package test3;
public class Student {
private int num;
private String name;
private double Chinese;
private double English;
private double math;
private double avg;
public Student() { }
@Override
public String toString() {
return "学生学号:" + num + ", 姓名:" + name + ", 语文成绩:" + Chinese + ", 英语成绩:" + English + ", 数学成绩:"
+ math + ",平均成绩:" + avg ;
}
public int getNum() {
return num;
}
public void setNum(int num) {
this.num = num;
}
public String getName() {
return name;
}
public void setName(String name) {
this.name = name;
}
public double getChinese() {
return Chinese;
}
public void setChinese(double chinese) {
Chinese = chinese;
}
public double getEnglish() {
return English;
}
public void setEnglish(double english) {
English = english;
}
public double getMath() {
return math;
}
public void setMath(double math) {
this.math = math;
}
public void setAvg(double avg) {
this.avg=avg;
}
public double getAvg() {
return avg;
}
}
2.StudentDao类,用来获取学生的平均成绩 的工具类
package test3;
public class StudentDao {
static Student stu;
static double avg;
public static double getAvg(Student s) {
stu=s;
double cw;
double en;
double ma;
cw=stu.getChinese();
en=stu.getEnglish();
ma=stu.getMath();
avg=(cw+en+ma)/3;
return avg;
}
}
3.主类,用来获取学生的信息和把学生的信息输入到本地文件stud中
package test3; import java.io.BufferedOutputStream;
import java.io.BufferedWriter;
import java.io.FileNotFoundException;
import java.io.FileOutputStream;
import java.io.FileWriter;
import java.io.IOException;
import java.util.ArrayList;
import java.util.Iterator;
import java.util.Scanner; /*
* 有五个学生,每个学生有3门课的成绩,从键盘输入以上数据
*(包括学生号,姓名,三门课成绩),计算出平均成绩,
*将原有的数据和计算出的平均分数存放在磁盘文件"stud"中。
*/
public class test {
static ArrayList<Student> list = new ArrayList<Student>();
static BufferedWriter out = null; public static void main(String[] args) throws Exception {
getStu();
saveStu();
} // 从键盘获取学生信息
public static void getStu() {
Scanner scan = new Scanner(System.in);
int count = 1;
while (list.size() < 3) {
System.out.println("--------请输入学生信息--------");
System.out.println("请输入" + count + "学生的学号:");
int num = scan.nextInt();
System.out.println("请输入" + count + "学生的姓名:");
String name = scan.next();
System.out.println("请输入" + count + "学生的语文成绩:");
double cw = scan.nextDouble();
System.out.println("请输入" + count + "学生的数学成绩:");
double sx = scan.nextDouble();
System.out.println("请输入" + count + "学生的英语成绩:");
double yy = scan.nextDouble(); Student s = new Student();
// 判断学生成绩是否正确
if (!(cw < 0) && !(yy < 0) && !(sx < 0)) {
s.setNum(num);
s.setName(name);
s.setChinese(cw);
s.setEnglish(yy);
s.setMath(sx);
s.setAvg(StudentDao.getAvg(s));
list.add(s);
count += 1; } else {
System.out.println("成绩输入错误!");
continue;
}
}
System.out.println(list);
} // 把学生信息录入本地文件
public static void saveStu() {
// 创建一个字符缓冲输出流
try {
out = new BufferedWriter(new FileWriter("stud.txt"));
for (int i = 0; i < list.size(); i++) {
out.write("姓名:" + list.get(i).getName() + " 学号:" + list.get(i).getNum() + " 语文成绩:"
+ list.get(i).getChinese() + " 数学成绩" + list.get(i).getMath() + "英语成绩:"
+ list.get(i).getEnglish() + " 平均成绩:" + list.get(i).getAvg());
out.newLine();
}
} catch (IOException e) {
e.printStackTrace();
} finally {
try {
if (out != null) {
out.close();
}
} catch (IOException e) {
e.printStackTrace();
}
} }
}
/*
* 带缓冲区的流中的特殊方法
* readLine()属于BufferedReader
* newLine()属于BufferedWriter
*
* newLine 和 \r\n的区别
* newLine是跨平台的方法
* \r\n只支持的是windows系统
*/
---------------------
作者:Soar_Sir
来源:CSDN
原文:https://blog.csdn.net/SoarFly0807/article/details/76034807
版权声明:本文为博主原创文章,转载请附上博文链接!
/* * 有五个学生,每个学生有3门课的成绩,从键盘输入以上数据 *(包括学生号,姓名,三门课成绩),计算出平均成绩, *将原有的数据和计算出的平均分数存放在磁盘文件"stud"中。 */的更多相关文章
- 代码实现:有五个学生,每个学生有3门课的成绩,从键盘输入以上数据 (包括学生号,姓名,三门课成绩),计算出平均成绩,将原有的数据和计算出的平均分数存放在磁盘文件"stud"中。
import java.io.BufferedWriter; import java.io.FileWriter; import java.io.IOException; import java.ut ...
- java例题_50 题目:有五个学生,每个学生有 3 门课的成绩,从键盘输入以上数据(包括学生号,姓名,三门课成 绩),计算出平均成绩,将原有的数据和计算出的平均分数存放在磁盘文件"stud"中。
1 /*50 [程序 50 文件 IO] 2 题目:有五个学生,每个学生有 3 门课的成绩,从键盘输入以上数据(包括学生号,姓名,三门课成 3 绩),计算出平均成绩,将原有的数据和计算出的平均分数存放 ...
- Java初学者作业——编写Java程序,根据输入的某个班级的学员成绩,计算该班级学员的平均成绩,要求输入班级的人数。
返回本章节 返回作业目录 需求说明: 编写Java程序,根据输入的某个班级的学员成绩,计算该班级学员的平均成绩,要求输入班级的人数. 实现思路: 声明变量sum.count以及avg用于存储总成绩.班 ...
- 案例:利用累加器计算前N个学生的总成绩和平均成绩
/* *录入N个学生的成绩,并求出这些学生的总成绩和平均成绩! * */ import java.util.Scanner; public class SumTest{ public static v ...
- Hadoop 学生平均成绩
1.实例描述 通过一个计算学生平均成绩的例子来讲解开发MapReduce程序的流程.输入文件都是纯文本文件,输入文件中的每行内容均为一个学生的姓名和他相应的成绩,如果有多门学科,则每门学科为一个文件. ...
- 编写一个ComputerAverage抽象类,类中有一个抽象方法求平均分average,可以有参数。定义 Gymnastics 类和 School 类,它们都是 ComputerAverage 的子类。Gymnastics 类中计算选手的平均成绩的方法是去掉一个最低分,去掉一个最高分,然后求平均分;School 中计算平均分的方法是所有科目的分数之和除以总科目数。 要求:定义ComputerAv
题目: 编写一个ComputerAverage抽象类,类中有一个抽象方法求平均分average,可以有参数. 定义 Gymnastics 类和 School 类,它们都是 ComputerAverag ...
- mapreduce实现学生平均成绩
思路: 首先从文本读入一行数据,按空格对字符串进行切割,切割后包含学生姓名和某一科的成绩,map输出key->学生姓名 value->某一个成绩 然后在reduce里面对成绩进行遍历 ...
- 问题 C: B 统计程序设计基础课程学生的平均成绩
题目描述 程序设计基础课程的学生成绩出来了,老师需要统计出学生个数和平均成绩.学生信息的输入如下: 学号(num) 学生姓名(name) ...
- java从键盘输入学生成绩,找出最高分,并输出学生成绩等级。
/*从键盘输入学生成绩,找出最高分,并输出学生成绩等级:成绩 >=最高分-10 等级为A成绩 >=最高分-20 等级为B成绩 >=最高分-30 等级为C其余为 等级为D 提示:先输入 ...
随机推荐
- Nginx 反向代理获取设备真实的IP地址
package com.das.common.util; import org.apache.commons.lang3.StringUtils; import org.springframework ...
- 安装 RabbitMQ
Ubuntu 16.04 安装 RabbitMQ #1 更新 $ sudo apt-get update $ sudo apt-get upgrade #2 安装Erlang $ cd /tmp $ ...
- C#俄罗斯方块小游戏程序设计与简单实现
C#俄罗斯方块小游戏程序设计与简单实现 相信90后或者80后都玩过这款小游戏,一直想干一票,琢磨一下,但又不太懂,于是网上搜集修改就有了以下效果!bug较多,多多包涵! 1.效果展示 2.实现方法 参 ...
- nohup 部署springboot 使用命令
启动jar包:nohup java -jar news-0.0.1-SNAPSHOT.jar 查看进程:netstat -nap|grep [3389]3389 为需要查看的端口号 关闭进程:ki ...
- shell for循环 多个变量
需求:需要输出以下2开头的端口号和其对应的文件 like: port and port_k8s_xxx.conf 其脚本为: #! /bash/shell #以value_name=(value1 v ...
- zabbix的安装部署及自定义监控的实现
此篇感谢我的小师傅. 1. Zabbix主要功能和优劣势说明 1. Zabbix主要功能和优劣势说明 1.1 Zabbix主要功能: 1)Application monitoring 应用监控 数据库 ...
- 有趣的JavaScript隐式类型转换
JavaScript的数据类型是非常弱的(不然不会叫它做弱类型语言了)!在使用算术运算符时,运算符两边的数据类型可以是任意的,比如,一个字符串可以和数字相加.之所以不同的数据类型之间可以做运算,是因为 ...
- vue里在自定义的组件上定义的事件
事件分为原生事件和自定义事件. vue里在自定义的组件上定义的事件,都被认为是自定义事件,必须用$emit()来触发. 这也是子组件向父传值的原理. 如果想作为原生事件,需要在原生事件后面加上.nat ...
- bash shell执行方式
五种bash shell执行方式 fork, source, exec, (), {} Shell脚本的执行方式: 注明:wd代表“脚本保存的目录” 1.fork语法:/wd/shell.shfork ...
- JavaScript基础知识(字符串的方法)
字符串的方法 1.字符串: 在js中被单引号或双引号包起来的内容都是字符串: var t = "true"; console.log(typeof t);// "stri ...