利用到的技术点:面向对象、IO流、Scanner扫描器、异常处理
不足之处:系统的不足之处在于没有对姓名、学号、专业班级等字段进行判断。实在是本人不知如何操作,如有会的请告知或联系我,QQ:3472242830、vx:17762745336。
package com.hubstc.student;
//学生类
public class Student {
//姓名
String name;
//学号
int sno;
//专业班级
String grade;
//高数成绩
double mathScore;
//英语成绩
double englishScore;
}
//主程序类
package com.hubstc.student;
import java.io.File;
import java.io.FileWriter;
import java.io.IOException;
import java.util.Scanner;
public class Run {
public static void main(String[] args) throws IOException {
//如何获取学生管理信息?
//利用Scanner扫描器,获取用户输入信息
Scanner input = new Scanner(System.in);
//姓名
System.out.println("请输入姓名:");
String name = input.next();
//学号
System.out.println("请输入学号:");
int sno = input.nextInt();
//专业班级
System.out.println("请输入专业班级:");
String grade = input.next();
//高数成绩
System.out.println("请输入高数成绩:");
double mathScore = input.nextDouble();
//对高数成绩进行判断,如果分数小于0或者大于100,则退出,否则执行
if(mathScore < 0 || mathScore > 100){
System.out.println("分数不能小于0,大于100");
return;
}
mathScore = input.nextDouble();
//英语成绩
System.out.println("请输入英语成绩:");
double englishScore = input.nextDouble();
if(englishScore < 0 || englishScore > 100){
System.out.println("分数不能小于0,大于100");
return;
}
englishScore = input.nextDouble();
//实例化Student对象,将其具体化
Student stu = new Student();
stu.name = name; //实时接收用户输入信息
stu.sno = sno;
stu.grade = grade;
stu.mathScore = mathScore;
stu.englishScore = englishScore;
//如何存储数据呢? 数组、集合、数据库(连接JDBC)、文件+IO流
//创建一个File对象
File file = new File("d:\\学生信息.txt"); //信息存放位置
//创建输出流对象FileWriter
FileWriter fw = new FileWriter(file,true); //true:追加文件信息(累加)
//输出学生信息
String info ="学生的姓名:"+stu.name+"\t学生的学号:"+stu.sno+"\t专业班级:"+stu.grade
+"\t高数成绩:"+stu.mathScore+"\t英语成绩:"+stu.englishScore+"\n";
//将学生信息写入文件
fw.write(info);
//关闭文件流或打开文件缓存均可完成信息的长期保存操作
//如果两者均步存在,则数据不会保存
//fw.close();
//打开文件缓存
fw.flush();
}
}
运行效果图:
|