java简单的学生管理系统(无界面)
<span style="font-size:14px;">package Students;
public class Students {
private String Name;
private long Number;
private String Class;
private int Score;//不将数据域定义为私有的,定义为共有的,将使编写代码变得简单一些,可以省去很多方法
public Students(){
this("sdiuf h",6544534,"ef esf",48);//无意义
}
public Students(String Name,long Number,String Class){
this(Name,Number,Class,0);//主要是想尝试一下this引用本类
}
public Students(String Name,long Number,String Class,int Score){
this.Name = Name;
this.Number = Number;
this.Score = Score;
this.Class = Class;
}
public void SetName(String Name){
this.Name = Name;
}
public void SetNumber(long Number){
this.Number = Number;
}
public void SetClass(String Class){
this.Class = Class;
}
public void SetScore(int Score){
this.Score = Score;
}
public String GetName(){
return Name;
}
public long GetNumber(){
return Number;
}
public String GetClass(){
return Class;
}
public int GetScore(){
return Score;
}
}
</span>
<span style="font-size:14px;"><pre name="code" class="java">package Students;
import java.util.Scanner;
import java.io.*;
public class MainStudents {
static int i = 0;
public static void main(String[] args) throws FileNotFoundException, IOException, Exception{
Scanner Input = new Scanner(System.in);
int choose;
do{
System.out.println("--------------【1】、新建学生数据库----------------");
System.out.println("--------------【2】、增添学生数据------------------");
System.out.println("--------------【3】、删除学生数据------------------");
System.out.println("--------------【4】、修改学生数据------------------");
System.out.println("--------------【5】、查看学生数据------------------");
System.out.println("--------------【6】、显示所有学生数据---------------");
System.out.println("--------------【0】、退出应用----------------------");
choose = Input.nextInt();
switch(choose){
case 1: Students1(); break;
case 2: Students2(); break;
case 3: Students3(); break;
case 4: Students4(); break;
case 5: Students5(); break;
case 6: Students6(); break;
case 0: Students0(); break;
default:
System.out.println("你输入的信息有误,请重新输入!");
}
}while(choose != 0);
}
private static void Students1() throws FileNotFoundException{
Students[] stu = new Students[100];//这里只输入一组数据,可以不用对象数组,而直接用Students类
Scanner Input = new Scanner(System.in);
stu[i] = new Students();
System.out.println("请输入学生的班级:");//以String类储存汉字,可能会出现乱码的情况
stu[i].SetClass(Input.next());
System.out.println("请输入学生的学号:");
stu[i].SetNumber(Input.nextLong());
System.out.println("请输入学生的姓名:");
stu[i].SetName(Input.next());
System.out.println("请输入学生的成绩:");
stu[i].SetScore(Input.nextInt());
System.out.println(stu[i].GetClass());
File fl = new File("Students.txt");
try (PrintWriter output = new PrintWriter(fl)) {
output.print(stu[i].GetName() + "\t");
output.print(stu[i].GetNumber() + "\t");
output.print(stu[i].GetClass() + "\t");
output.println(stu[i].GetScore());
}
i++;
File Fl = new File("Number.txt");
try(PrintWriter output = new PrintWriter(Fl)){
output.print(i);
}
}
private static void Students2() throws IOException{
Scanner Input = new Scanner(System.in);
File Fl = new File("Number.txt");
try (Scanner input = new Scanner(Fl)) {
i = input.nextInt();
}
try (FileWriter out = new FileWriter("Students.txt",true)) {//以在文件末尾添加数据的方式创建向文件内输入数据的类
System.out.println("请输入学生的姓名");
out.write("\t" + Input.next() + "\t");
System.out.println("请输入学生的学号");
out.write(Input.nextLong() + "\t");
System.out.println("请输入学生的班级");
out.write(Input.next() + "\t");
System.out.println("请输入学生的成绩");
out.write(Input.nextInt() + "\n");
}
i++;
try(PrintWriter output = new PrintWriter(Fl)){
output.print(i);
}
}
private static void Students3() throws Exception{
File Fl = new File("Number.txt");
File fl = new File("Students.txt");
try (Scanner input = new Scanner(Fl)) {
i = input.nextInt();
}
System.out.println("请输入你想修改学生的学号");
Scanner input = new Scanner(System.in);
long Number = input.nextLong();
Students[] stu = new Students[i];
try(Scanner Input = new Scanner(fl)){
for(int j =0;j < i;j++){
stu[j] = new Students();//要先将对象数组初始化
stu[j].SetName(Input.next());//不能使用nextLine(),此为输入以\n为结尾的所有数
stu[j].SetNumber(Input.nextLong());
stu[j].SetClass(Input.next());
stu[j].SetScore(Input.nextInt());
if(Number == stu[j].GetNumber()){
System.out.println("姓名\t学号\t班级\t成绩");
System.out.println(stu[j].GetName() + "\t" + stu[j].GetNumber() +
"\t" + stu[j].GetClass() + "\t" + stu[j].GetScore());
System.out.println("你确定删除这组数据?(Y/N)(不区分大小写)");
String choose = input.next();
System.out.println(choose);
if("Y".equals(choose)||"y".equals(choose)){//不能使用choose == "y"语句
j--;
i--;
}
}
}
}
try(PrintWriter output = new PrintWriter(Fl)){
output.print(i);
}
if(i == 0){
try (PrintWriter output = new PrintWriter(fl)) {
}
}
else{
try (PrintWriter output = new PrintWriter(fl)) {
for(int j = 0;j < i;j ++){
output.print(stu[j].GetName() + "\t");
output.print(stu[j].GetNumber() + "\t");
output.print(stu[j].GetClass() + "\t");
output.println(stu[j].GetScore());
}
}
}
}
private static void Students4() throws FileNotFoundException {
File Fl = new File("Number.txt");
File fl = new File("Students.txt");
try (Scanner input = new Scanner(Fl)) {
i = input.nextInt();
}
System.out.println("请输入你想修改学生的学号");
Scanner input = new Scanner(System.in);
long Number = input.nextLong();
Students[] stu = new Students[i];
try(Scanner Input = new Scanner(fl)){
for(int j =0;j < i;j++){
stu[j] = new Students();//要先将对象数组初始化
stu[j].SetName(Input.next());//不能使用nextLine(),此为输入以\n为结尾的所有数
stu[j].SetNumber(Input.nextLong());
stu[j].SetClass(Input.next());
stu[j].SetScore(Input.nextInt());
if(Number == stu[j].GetNumber()){
System.out.println("姓名\t学号\t班级\t成绩");
System.out.println(stu[j].GetName() + "\t" + stu[j].GetNumber() +
"\t" + stu[j].GetClass() + "\t" + stu[j].GetScore());
System.out.println("请输入学生新的班级");
stu[j].SetClass(input.next());
System.out.println("请输入学生新的成绩");
stu[j].SetScore(input.nextInt());
}
}
}
try (PrintWriter output = new PrintWriter(fl)) {
for(int j = 0;j < i;j ++){
output.print(stu[j].GetName() + "\t");
output.print(stu[j].GetNumber() + "\t");
output.print(stu[j].GetClass() + "\t");
output.println(stu[j].GetScore());
}
}
}
private static void Students5() throws FileNotFoundException {
File Fl = new File("Number.txt");
File fl = new File("Students.txt");
try (Scanner input = new Scanner(Fl)) {
i = input.nextInt();
}
System.out.println("请输入你想查看学生的学号");
Scanner input = new Scanner(System.in);
long Number = input.nextLong();
Students[] stu = new Students[i];
try(Scanner Input = new Scanner(fl)){
for(int j =0;j < i;j++){
stu[j] = new Students();//要先将对象数组初始化
stu[j].SetName(Input.next());//不能使用nextLine(),此为输入以\n为结尾的所有数
stu[j].SetNumber(Input.nextLong());
stu[j].SetClass(Input.next());
stu[j].SetScore(Input.nextInt());
if(Number == stu[j].GetNumber()){
System.out.println("姓名\t学号\t班级\t成绩");
System.out.println(stu[j].GetName() + "\t" + stu[j].GetNumber() +
"\t" + stu[j].GetClass() + "\t" + stu[j].GetScore());
}
}
}
}
private static void Students6() throws FileNotFoundException {
File Fl = new File("Number.txt");
File fl = new File("Students.txt");
try (Scanner input = new Scanner(Fl)) {
i = input.nextInt();
}
Students[] stu = new Students[i];
System.out.println("姓名\t学号\t班级\t成绩");
try(Scanner Input = new Scanner(fl)){
for(int j =0;j < i;j++){
stu[j] = new Students();//要先将对象数组初始化
stu[j].SetName(Input.next());//不能使用nextLine(),此为输入以\n为结尾的所有数
stu[j].SetNumber(Input.nextLong());
stu[j].SetClass(Input.next());
stu[j].SetScore(Input.nextInt());
System.out.println(stu[j].GetName() + "\t" + stu[j].GetNumber() +
"\t" + stu[j].GetClass() + "\t" + stu[j].GetScore());
}
}
}
private static void Students0() {
System.out.println("你将退出程序!");
}
}</span>
为对象数组赋值是可以用此形式代替
stu[j] = new Students(Input.next(),Input.nextLong(),Input.next(),Input.nextInt());
因为在Students类里面已经定义此方法