//student.java

package com.sran.www;

import java.util.Arrays;
import java.util.Scanner; public class Student implements Comparable<Student>{
int num;
String name;
int age;
double[]s;
double sum; //存储学生的总分 public Student()
{
s=new double[3];
} public static boolean insert()
{
Scanner sc=new Scanner(System.in);
String str=null;
boolean be=true; do
{
Student stud=new Student();
System.out.println("开始录入学生的相关信息.....");
System.out.print("学号:");
stud.num=sc.nextInt();
System.out.print("姓名:");
stud.name=sc.next();
System.out.print("年龄:");
stud.age=sc.nextInt(); System.out.println("依次输入三门课的成绩:");
System.out.print("语文:");
stud.s[0]=sc.nextDouble();
System.out.print("数学:");
stud.s[1]=sc.nextDouble();
System.out.print("英语:");
stud.s[2]=sc.nextDouble(); stud.sum=stud.calculate_sum(); StudentTest.set.add(stud); System.out.println("如果继续录入,则输入%,否则输入 #");
System.out.print("请输入:");
str=sc.next(); if(!(str.equals("%")||str.equals("#")))
{
be=false;
System.out.println("你输入有误,已强制结束录入操作");
} }while(str.equals("%") && be); return be;
} public static boolean delete()
{
String str=null;
boolean be=true;
System.out.println("开始删除学生的相关信息.....");
do
{
System.out.print("请输入要删除的学生的学号:");
Scanner sc=new Scanner(System.in);
int s=sc.nextInt(); boolean flag=false; //设一标志位 for(Student stud:StudentTest.set)
{
if(s==stud.num)
{
StudentTest.set.remove(stud);
flag=true;
System.out.println("已删除该学生的信息");
break;
} } if(flag==false)
{
System.out.println("你要删除的学生的学号不存在");
} System.out.println("如果继续删除,则输入 %,否则输入#");
System.out.print("请输入:");
str=sc.next(); if(!(str.equals("%")||str.equals("#")))
{
be=false;
System.out.println("你输入有误,已强制结束删除操作");
} }while(str.equals("%") && be); return be;
} public static boolean seek()
{
String str=null;
boolean be=true;
System.out.println("开始查找学生的相关信息.....");
do
{
System.out.print("请输入要查找的学生的学号:");
Scanner sc=new Scanner(System.in);
int s=sc.nextInt(); boolean flag=false; for(Student stud:StudentTest.set)
{
if(s==stud.num)
{
flag=true; //修改标志位
System.out.println("你要查找的学生的信息:"); System.out.println("学号:"+stud.num);
System.out.println("姓名:"+stud.name);
System.out.println("年龄:"+stud.age);
System.out.println("语文成绩:"+stud.s[0]);
System.out.println("数学成绩:"+stud.s[1]);
System.out.println("英语成绩:"+stud.s[2]); break;
}
} if(flag==false)
{
System.out.println("你要查找的学生的学号不存在");
} System.out.println("如果继续查找,则输入 %,否则输入#");
System.out.print("请输入:");
str=sc.next(); if(!(str.equals("%")||str.equals("#")))
{
be=false;
System.out.println("你输入的有误,已强制结束查询操作");
} }while(str.equals("%") && be); return be;
} public double calculate_sum()
{
sum=s[0]+s[1]+s[2];
return sum;
} @Override
public int compareTo(Student stud) {
this.sum=this.calculate_sum();
stud.sum=stud.calculate_sum(); if(this.sum>stud.sum) return -1;
else if(this.sum<stud.sum) return 1;
else
{
if(this.name.compareTo(stud.name)>0) return -1;
else if(this.name.compareTo(stud.name)<0) return 1;
else
return 0;
}
} public String toString()
{
System.out.println("学号"+"\t\t"+"姓名"+"\t\t"+"年龄"+"\t\t"+"语文"+"\t\t"+"数学"+"\t\t"+"英语"+"\t\t"+"总分");
return(num+"\t\t"+name+"\t\t"+age+"\t\t"+s[0]+"\t\t"+s[1]+"\t\t"+s[2]+"\t\t"+sum); } public static boolean update()
{
String str=null;
boolean bot=true; System.out.println("开始更新学生信息.....");
do
{
System.out.print("请输入要更新的学生的学号:");
Scanner sc=new Scanner(System.in);
int s=sc.nextInt();
boolean be=false;
boolean br=false; for(Student stud:StudentTest.set)
{
if(stud.num==s)
{
be=true; //修改标志位
System.out.println("请输入要更新的哪一项: 其中1代表学号,2代表姓名,3代表年龄,4代表语文成绩,5代表数学成绩,6代表英语成绩");
System.out.print("请输入:");
int n=sc.nextInt(); switch(n)
{
case 1:
{
System.out.print("请输入修改后的学号:");
stud.num=sc.nextInt();
System.out.println("修改成功");
break;
}
case 2:
{
System.out.print("请输入修改后的姓名:");
stud.name=sc.next();
System.out.println("修改成功");
break;
}
case 3:
{
System.out.print("请输入修改后的年龄:");
stud.age=sc.nextInt();
System.out.println("修改成功");
break;
}
case 4:
{
System.out.print("请输入修改后的语文成绩:");
stud.s[0]=sc.nextDouble();
System.out.println("修改成功"); stud.sum=stud.calculate_sum(); //重新更新总分
br=true; break;
}
case 5:
{
System.out.print("请输入修改后的数学成绩:");
stud.s[1]=sc.nextDouble();
System.out.println("修改成功"); stud.sum=stud.calculate_sum(); //重新更新总分
br=true; break;
}
case 6:
{
System.out.print("请输入修改后的英语成绩:");
stud.s[2]=sc.nextDouble();
System.out.println("修改成功"); stud.sum=stud.calculate_sum(); //重新更新总分
br=true; break;
} } }
} if(br==true)
{
Object[]obj=StudentTest.set.toArray();
Arrays.sort(obj);
StudentTest.set.clear(); for(int i=0;i<obj.length;i++)
{
Student st=(Student)obj[i];
StudentTest.set.add(st);
}
} if(be==false)
{
System.out.println("你要修改的学生的学号不存在");
} System.out.println("如果继续修改,则输入 %,否则输入#");
System.out.print("请输入:");
str=sc.next(); if(!(str.equals("%")||str.equals("#")))
{
bot=false;
System.out.println("你输入有误,已强制结束更新操作");
} }while(str.equals("%") && bot); return bot;
} }
//StudentTest

package com.sran.www;

import java.util.Scanner;
import java.util.Set;
import java.util.TreeSet; public class StudentTest {
static Set<Student>set=null; //定义集合,存储学生信息 public void fun()
{
int i;
boolean b,bt;
set=new TreeSet<Student>();
do{
int flag=0;
System.out.println("请输入1,2,3,4,5 1代表录入,2代表删除,3代表查找,4代表显示学生总成绩排名,5代表更新某个学生数据");
System.out.print("请输入:");
Scanner sc=new Scanner(System.in);
int n=sc.nextInt(); switch(n)
{
case 1:
{
b=Student.insert();
if(b==true)
{
System.out.println("正常结束录入操作.....");
}
flag=1;
break;
}
case 2:
{
b=Student.delete();
if(b==true)
{
System.out.println("正常结束删除操作.....");
}
flag=1;
break;
}
case 3:
{
b=Student.seek();
if(b==true)
{
System.out.println("正常结束查询操作.....");
}
flag=1;
break;
}
case 4:
{
System.out.println("开始排名学生信息.....");
System.out.println("学生按总成绩排名:");
for(Student stud:set)
{
System.out.println(stud);
System.out.println();
} System.out.println("正常结束排名操作.....");
flag=1;
break;
} case 5:
{
b=Student.update();
if(b==true)
{
System.out.println("正常结束更新操作.....");
}
flag=1;
break;
} }
if(flag==0)
{
System.out.println("你输入有误,请重新输入");
} System.out.println(); do
{
bt=false;
System.out.println("继续所有学生信息操作,请输入1 退出学生信息系统 ,请输入0");
System.out.print("请输入:");
i=sc.nextInt(); if(i!=1 && i!=0)
{
bt=true;
System.out.println("输入有误,请重新输入");
} }while(bt==true); }while(i==1); System.out.println("你已退出学生信息系统....."); } public static void main(String[] args) {
new StudentTest().fun();
}
}

java集合学生管理系统的更多相关文章

  1. java构建学生管理系统(一)

    用java搭建学生管理系统,重要还是对数据库的操作,诸如增删改查等. 1.基本的功能: 老师完成对学生信息的查看和修改,完成对班级的信息的概览. 学生可以看自己的成绩和对自己信息的修改. 学生和老师有 ...

  2. Java 简化版学生管理系统(IO版)

    Student management system   学生管理系统IO版 详细知识点可参考一下几篇文章 常用API Java 之ArrayList集合及应用 Java 之IO流及应用 Compreh ...

  3. Java案例——学生管理系统

    简单完整的学生管理系统 学生类 public class Student { private String id; private String age; private String name; p ...

  4. Java+Mysql+学生管理系统

    最近正在学java和数据库,想起以前写的学生管理系统,都是从网上下载,敷衍了事.闲来无事,也就自己写了一个,不过功能实现的不是很多. 开发语言:java: 开发环境:Mysql, java: 开发工具 ...

  5. Java 小型学生管理系统心得

    这个学生管理系统相对来说比较简单,主要就是复习下java怎么连接数据库,然后你怎么来实现这个功能,我简单的说下思路吧. 首先你要构思好这个界面,他包括增删查改这些基本功能,然后你去分析这些功能都能怎么 ...

  6. Java开发学生管理系统

    Java 学生管理系统 使用JDBC了链接本地MySQL 数据库,因此在没有建立好数据库的情况下没法成功运行 (数据库部分, Java界面部分, JDBC部分) 资源下载: http://downlo ...

  7. Java写学生管理系统

    package Homework08;/*调试了一上午,收获:学会了昨天的debug的使用吸取教训:Student stus[]=new Student[2]; for (int i=0;i<s ...

  8. Java基础进阶:学生管理系统数组方式分包源码实现,教师管理系统集合和数组两种方式源码实现,图书馆管理系统源码实现,现附重难点,代码实现源码,课堂笔记,课后扩展及答案

    1.案例驱动模式 1.1案例驱动模式概述 (理解) 通过我们已掌握的知识点,先实现一个案例,然后找出这个案例中,存在的一些问题,在通过新知识点解决问题 1.2案例驱动模式的好处 (理解) 解决重复代码 ...

  9. java基础: ArrayList集合应用, ArrayList增删改查详解,综合java基础实现学生管理系统,

    1.ArrayList 集合和数组的区别 : 共同点:都是存储数据的容器 不同点:数组的容量是固定的,集合的容量是可变的 1.1 -ArrayList的构造方法和添加方法 public ArrayLi ...

随机推荐

  1. javascript 常见方法记录

    1,trim():去除字符串左右两端的空格,在vbscript里面可以轻松地使用 trim.ltrim 或 rtrim,但在js中却没有这3个内置方法,需要手工编写. <script langu ...

  2. RMAN备份脚本一列分享

    在ORACLE数据库中,RMAN备份的脚本非常多,下面介绍一例shell脚本如何通过RMAN备份,以及FTP上传RMAN备份文件以及归档日志文件的脚本. fullback.sh 里面调用RMAN命令做 ...

  3. SQL Server 关于列的权限控制

    在SQL SERVER中列权限(Column Permissions)其实真没有什么好说的,但是好多人对这个都不甚了解,已经被人问了几次了,所以还是在这里介绍一下,很多人都会问,我能否单独对表的某列授 ...

  4. SQLite使用(一)&&选择表类型

    在SQLite中,主要有两种表类型,带rowid的表和不带rowid的表.我们利用create table 建一张表,默认都会有一个隐含名字为rowid的主键,暂且称带rowid的表为普通表.如果建表 ...

  5. mac xcode c++ cin cout注意细节一

    #include <iostream> using namespace std; 要同时存在 要不然std命名空间无法生效

  6. 把Tomcat注册为windows服务

    配置环境变量 JAVA_HOME=D:\java CLASSPATH=.;%JAVA_HOME%\lib; PATH=%JAVA_HOME%\bin; 提示:一般jre默认在jdk目录下%JAVA_H ...

  7. C++11 - 类型推导auto关键字

    在C++11中,auto关键字被作为类型自动类型推导关键字 (1)基本用法 C++98:类型 变量名 = 初值;   int i = 10; C++11:auto 变量名 = 初值;  auto i ...

  8. 自己开发一个 vsts agent 的 task

    vsts 中支持自定义Build/Release的过程Task 目标:做一个可以读取 Xamarin.Android 所生成的 APK 的 基本信息的 task ,包括 package(包名) / a ...

  9. 找不到mysql.sock,mysql.sock丢失问题解决方法

    Can 't connect to local MySQL server through socket '/var/lib/mysql/mysql.sock '(2) "; 是你的mysql ...

  10. [django]django xlrd处理xls中日期转换问题

    xlrd会把xls文件中比如20160--03-01类型的时间转换成整数,那么我们如何保证xlrd读取进来的时间为2016-03-01格式呢? 使用xlrd中的xldate_as_tuple函数 代码 ...