import java.io.BufferedReader;
import java.io.FileReader;
import java.io.FileWriter;
import java.io.IOException;
import java.util.ArrayList;
import java.util.Collections;
import java.util.List;
import java.util.Scanner;
public class Kaige {
/**
* @param args
* @throws IOException
* @throws InterruptedException
*/
public static void main(String[] args) throws IOException, InterruptedException {
// TODO Auto-generated method stub
System.out.printf("欢迎来到学生成绩管理系统\n");
System.out.printf("----------------\n");
jiazzai();
List<Student> list=new ArrayList<Student>();
dupan(list);
bianli(list);
Scanner ss=new Scanner(System.in);
while(true)
{
meun();
int input;
input=ss.nextInt();
switch (input) {
case 1:
Kaige.Insert(list);
break;
case 2:Kaige.delect(list);
break;
case 3:Kaige.bianli(list);
break;
case 4:Kaige.select(list);
break;
case 5:Kaige.xiugai(list);
break;
case 6:Kaige.save(list);
break;
case 7:Kaige.paixu(list);
break;
case 8:list.clear();
break;
case 0:
System.exit(0);
}
}
}
public static void Insert(List<Student> list)
{
Scanner s=new Scanner(System.in);
//Kaige.bianli(list);
System.out.printf("请输入你要插入的学号:\n");
String string=s.nextLine();
//System.out.println(string);
boolean f=panduan(list, string);
if(f)
{
System.out.printf("你想要插入的学号已经存在\n");
}
else
{
Scanner scanner=new Scanner(System.in);
System.out.printf("请输入你要插入的学生的姓名:\n");
String name=scanner.nextLine();
System.out.printf("请输入你要插入的学生的成绩:\n");
double score=scanner.nextDouble();
Student student=new Student();
student.getNo(string);
student.getName(name);
student.getSorce(score);
list.add(student);
System.out.printf("学生信息插入成功\n");
//scanner.close();
}
//s.close();
}
public static void bianli(List<Student> list)
{
System.out.println("共有"+list.size()+"名学生");
System.out.println("学号\t姓名\t成绩\t");
for(int i=0;i<list.size();i++)
{
Student s=list.get(i);
System.out.println(s.dno()+"\t"+s.dname()+"\t"+s.dss());
}
}
public static boolean panduan(List<Student> list,String str)
{
int f=1;
for (Student student : list)
{
String string=student.dno();
if(string.equals(str))
f=0;
}
if(f==1)
{
return false;
}
else
{
return true;
}
}
public static void delect(List<Student> list)
{
Scanner s=new Scanner(System.in);
System.out.println("请输入你要删除的学号:");
String string=s.nextLine();
boolean f=panduan(list, string);
System.out.println(f);
if(f)
{
for (Student student : list)
{
if(string.equals(student.dno()))
{
list.remove(student);
System.out.println("删除成功");
break;
}
}
}
else
{
System.out.println("你要删除的学号对应的学生不存在");
}
}
public static void select(List<Student> list)
{
System.out.println("你要查找的学号是:");
Scanner cc=new Scanner(System.in);
String str=cc.nextLine();
if (panduan(list, str)) {
System.out.println("此学生存在");
}
else {
System.out.println("此学生不存在");
}
}
public static void xiugai(List<Student> list)
{
System.out.println("你要修改的学号是:");
Scanner cc=new Scanner(System.in);
String str=cc.nextLine();
int index = 0;
if (panduan(list, str))
{
for(int i=0;i<list.size();i++)
{
if (list.get(i).dno().contains(str)) {
index=i;
break;
}
}
System.out.println("请输入你要改的姓名:");
String str1=cc.nextLine();
System.out.println("请输入你要修改的成绩");
double str2=cc.nextDouble();
Student s1=new Student();
s1.getNo(str);//学号不可变
s1.getName(str1);
s1.getSorce(str2);
list.set(index, s1);
System.out.println("修改成功");
}
else {
System.out.println("你想要修改的学生信息不存在");
}
}
//把数据存到文件中
public static void save(List<Student> list) throws IOException
{
FileWriter fw = new FileWriter("C:\\test.txt"); // 可以自动创
fw.write("学号\t姓名\t成绩\n");
for(int i=0;i<list.size();i++)
{
fw.write(list.get(i).dno()+"\t"+list.get(i).dname()+"\t"+list.get(i).dss());
fw.write("\n");
}
fw.close();
System.out.println("数据已保存C:\\test.txt文件中");
}
//把数据从文件中读取到类中在放进集合
public static void dupan(List<Student> list) throws IOException
{
FileReader fr=new FileReader("C:\\test.txt");
BufferedReader buff=new BufferedReader(fr);
String line;
buff.readLine();
while((line= buff.readLine()) != null)
{
String []string = line.split("\t");
Student student=new Student();
double kk=Double.parseDouble(string[2]);
student.getNo(string[0]);
student.getName(string[1]);
student.getSorce(kk);
list.add(student);
}
buff.close();
}
public static void jiazzai() throws InterruptedException
{
System.out.println("数据加载中...");
StringBuilder ss=new StringBuilder();
System.out.print("[");
for(int i=1;i<=50;i++)
{
System.out.print("■");
if(i>=6&&i<=15)
Thread.sleep(50);
else if(i==21&&i==25&&i==26&&i==27)
Thread.sleep(200);
else
Thread.sleep(100);
}
System.out.println("]");
System.out.println("加载完成");
}
public static void paixu(List<Student> list) //排序
{
Collections.sort(list);
bianli(list);
}
public static void meun()
{
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("-------7.根据学生成绩排序--------");
System.out.println("-------8.清空所有学生数据--------");
}
}
class Student implements Comparable<Student>{
private String no;
private String name;
private double sorce;
public String dno()
{
return this.no;
}
public String dname()
{
return this.name;
}
public double dss()
{
return this.sorce;
}
public void getNo(String no)
{
this.no=no;
}
public void getName(String name)
{
this.name=name;
}
public void getSorce(double sorce)
{
this.sorce=sorce;
}
public int compareTo(Student student)
{
return (int) (this.sorce-student.sorce);
}
}
java实现简单的学生管理系统
最新推荐文章于 2023-05-05 01:00:14 发布